Salome HOME
Join modifications from branch OCC_debug_for_3_2_0b1
authorjfa <jfa@opencascade.com>
Sat, 6 May 2006 08:51:48 +0000 (08:51 +0000)
committerjfa <jfa@opencascade.com>
Sat, 6 May 2006 08:51:48 +0000 (08:51 +0000)
433 files changed:
INSTALL
Makefile.in
adm_local/Makefile.in
adm_local/unix/make_commence.in
bin/VERSION
build_configure
doc/Makefile.in
doc/salome/Makefile.in
doc/salome/gui/SMESH/about_viewing_meshes.htm
doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/aspect_ratio_3d.htm
doc/salome/gui/SMESH/borders_at_multi-connection.htm
doc/salome/gui/SMESH/borders_at_multiconnection_2d.htm
doc/salome/gui/SMESH/clipping.htm
doc/salome/gui/SMESH/constructing_meshes.htm
doc/salome/gui/SMESH/defining_hypotheses_tui.htm
doc/salome/gui/SMESH/display_entity.htm
doc/salome/gui/SMESH/extrusion_along_a_path.htm
doc/salome/gui/SMESH/files/about_hypotheses.htm
doc/salome/gui/SMESH/files/about_quality_controls.htm
doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm
doc/salome/gui/SMESH/files/area_of_elements.htm
doc/salome/gui/SMESH/files/arithmetic_1d.htm
doc/salome/gui/SMESH/files/aspect_ratio.htm
doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm
doc/salome/gui/SMESH/files/constructing_meshes.htm
doc/salome/gui/SMESH/files/constructing_submeshes.htm
doc/salome/gui/SMESH/files/creating_groups.htm
doc/salome/gui/SMESH/files/cutting_quadrangles.htm
doc/salome/gui/SMESH/files/editing_groups.htm
doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm
doc/salome/gui/SMESH/files/introduction_to_smesh.htm
doc/salome/gui/SMESH/files/length_of_edges.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
doc/salome/gui/SMESH/files/non_conform_mesh_allowed_hypothesis.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
doc/salome/gui/SMESH/files/skew.htm
doc/salome/gui/SMESH/files/smoothing.htm
doc/salome/gui/SMESH/files/taper.htm
doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm
doc/salome/gui/SMESH/files/viewing_mesh_info.htm
doc/salome/gui/SMESH/files/vtk_3d_viewer.htm [new file with mode: 0755]
doc/salome/gui/SMESH/free_borders.htm
doc/salome/gui/SMESH/free_edges.htm
doc/salome/gui/SMESH/grouping_elements.htm
doc/salome/gui/SMESH/image129.gif [deleted file]
doc/salome/gui/SMESH/image138.gif [deleted file]
doc/salome/gui/SMESH/image139.gif [deleted file]
doc/salome/gui/SMESH/image142.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image143.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image144.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image145.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image146.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image147.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image148.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image15.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image151.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image152.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image19.jpg [deleted file]
doc/salome/gui/SMESH/image21.gif [deleted file]
doc/salome/gui/SMESH/image22.gif [deleted file]
doc/salome/gui/SMESH/image23.gif [deleted file]
doc/salome/gui/SMESH/image26.jpg [deleted file]
doc/salome/gui/SMESH/image27.gif [deleted file]
doc/salome/gui/SMESH/image73.gif [deleted file]
doc/salome/gui/SMESH/length.htm
doc/salome/gui/SMESH/merge_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/modifying_meshes.htm
doc/salome/gui/SMESH/pattern_mapping.htm
doc/salome/gui/SMESH/pics/a-advmeshinfo.png [deleted file]
doc/salome/gui/SMESH/pics/a-createmesh1.png [deleted file]
doc/salome/gui/SMESH/pics/a-editmesh.png [deleted file]
doc/salome/gui/SMESH/pics/a-exportmesh.png [deleted file]
doc/salome/gui/SMESH/pics/a-nbsegments3.png [deleted file]
doc/salome/gui/SMESH/pics/a-nbsegments4.png [deleted file]
doc/salome/gui/SMESH/pics/advanced_mesh_infos.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/aqt.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/automaticlength.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/b-create_group.png [deleted file]
doc/salome/gui/SMESH/pics/borders_at_multi_connections1.png [deleted file]
doc/salome/gui/SMESH/pics/c-createmesh.png [deleted file]
doc/salome/gui/SMESH/pics/c-editmesh.png [deleted file]
doc/salome/gui/SMESH/pics/creategroup.png
doc/salome/gui/SMESH/pics/createmesh-inv.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/createmesh-inv2.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/createmesh-inv3.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/distributionwithtabledensity.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/editgroup.png
doc/salome/gui/SMESH/pics/graduatedaxes1.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image100.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image102.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image107.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image108.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image109.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image138.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image139.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image21.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image23.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image27.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image77.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image78.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image89.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image91.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image96.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image97.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image98.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/image99.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/importmesh.png [deleted file]
doc/salome/gui/SMESH/pics/length-crit.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/length1.png [deleted file]
doc/salome/gui/SMESH/pics/mergeelems.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/meshexportmesh.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/meshimportmesh.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png [new file with mode: 0755]
doc/salome/gui/SMESH/pics/submeshconstruction.png [deleted file]
doc/salome/gui/SMESH/presentation.htm
doc/salome/gui/SMESH/quality_controls.htm
doc/salome/gui/SMESH/revolution.htm
doc/salome/gui/SMESH/smesh.log
doc/salome/gui/SMESH/transforming_meshes.htm
doc/salome/gui/SMESH/transparency.htm
doc/salome/gui/SMESH/volume.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whftdata0.htm
doc/salome/gui/SMESH/whdata/whfts.htm
doc/salome/gui/SMESH/whdata/whfwdata0.htm
doc/salome/gui/SMESH/whdata/whtdata0.htm
doc/salome/gui/SMESH/whgdata/whlstf0.htm
doc/salome/gui/SMESH/whgdata/whlstf1.htm
doc/salome/gui/SMESH/whgdata/whlstf10.htm
doc/salome/gui/SMESH/whgdata/whlstf11.htm
doc/salome/gui/SMESH/whgdata/whlstf12.htm
doc/salome/gui/SMESH/whgdata/whlstf13.htm [new file with mode: 0755]
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
doc/salome/gui/SMESH/whgdata/whlstf6.htm
doc/salome/gui/SMESH/whgdata/whlstf7.htm
doc/salome/gui/SMESH/whgdata/whlstf8.htm
doc/salome/gui/SMESH/whgdata/whlstf9.htm
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
doc/salome/gui/SMESH/whgdata/whlstfl24.htm
doc/salome/gui/SMESH/whgdata/whlstfl25.htm
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/whlstt3.htm
doc/salome/gui/SMESH/whgdata/whlstt4.htm
doc/salome/gui/SMESH/whgdata/whlstt5.htm
doc/salome/gui/SMESH/whgdata/whlstt7.htm
doc/salome/gui/SMESH/whgdata/whlstt8.htm
doc/salome/gui/SMESH/whgdata/whnvl32.htm
doc/salome/gui/SMESH/whskin_info.htm
doc/salome/gui/SMESH/whxdata/whftdata0.xml
doc/salome/gui/SMESH/whxdata/whfts.xml
doc/salome/gui/SMESH/whxdata/whfwdata0.xml
doc/salome/gui/SMESH/whxdata/whtdata0.xml
doc/salome/tui/Makefile.in
doc/salome/tui/SMESH/doxyfile
doc/salome/tui/SMESH/doxyfile_py
doc/salome/tui/SMESH/sources/footer.html [new file with mode: 0755]
doc/salome/tui/SMESH/sources/myheader.html
doc/salome/tui/SMESH/sources/static/doxygen.css
doc/salome/tui/SMESH/sources/static/tree.js
idl/Makefile.in
idl/SMESH_Filter.idl
idl/SMESH_Gen.idl
idl/SMESH_Mesh.idl
idl/SMESH_Pattern.idl
resources/SMESHCatalog.xml
resources/SalomeApp.xml [new file with mode: 0644]
resources/StdMeshers.xml
resources/mesh_conv_to_quad.png [new file with mode: 0755]
resources/mesh_tree_algo_netgen_2d.png [new file with mode: 0755]
resources/mesh_tree_algo_netgen_2d3d.png [new file with mode: 0644]
resources/mesh_tree_hypo_netgen.png [new file with mode: 0644]
resources/mesh_tree_hypo_netgen_2d.png [new file with mode: 0644]
src/Controls/SMESH_Controls.cxx
src/Controls/SMESH_ControlsDef.hxx
src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx
src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx
src/DriverUNV/DriverUNV_R_SMDS_Mesh.h
src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx
src/DriverUNV/DriverUNV_W_SMDS_Mesh.h
src/DriverUNV/Makefile.in
src/DriverUNV/UNV2412_Structure.cxx
src/DriverUNV/UNV2417_Structure.cxx [new file with mode: 0644]
src/DriverUNV/UNV2417_Structure.hxx [new file with mode: 0644]
src/MEFISTO2/Makefile.in
src/MEFISTO2/aptrte.cxx
src/MEFISTO2/trte.f
src/NETGEN/Makefile.in
src/NETGENPlugin/NETGENPlugin_icons.po
src/OBJECT/Makefile.in
src/OBJECT/SMESH_Actor.cxx
src/OBJECT/SMESH_Actor.h
src/OBJECT/SMESH_ActorDef.h
src/OBJECT/SMESH_ActorUtils.cxx
src/OBJECT/SMESH_ActorUtils.h
src/OBJECT/SMESH_DeviceActor.cxx
src/OBJECT/SMESH_DeviceActor.h
src/OBJECT/SMESH_ExtractGeometry.cxx
src/OBJECT/SMESH_ExtractGeometry.h
src/OBJECT/SMESH_Object.cxx
src/SMDS/SMDS_Mesh.cxx
src/SMDS/SMDS_MeshElement.cxx
src/SMDS/SMDS_MeshElement.hxx
src/SMDS/SMDS_MeshGroup.hxx
src/SMESH/Makefile.in
src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx
src/SMESH/SMESH_MeshEditor.cxx
src/SMESH/SMESH_MeshEditor.hxx
src/SMESH/SMESH_MesherHelper.cxx [new file with mode: 0644]
src/SMESH/SMESH_MesherHelper.hxx [new file with mode: 0644]
src/SMESH/SMESH_Pattern.cxx
src/SMESH/SMESH_Pattern.hxx
src/SMESH/SMESH_subMesh.cxx
src/SMESHClient/SMESH_Client.cxx
src/SMESHDS/SMESHDS_Group.cxx
src/SMESHDS/SMESHDS_Mesh.cxx
src/SMESHDS/SMESHDS_Script.cxx
src/SMESHFiltersSelection/Makefile.in
src/SMESHGUI/Makefile.in
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI.h
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h
src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.cxx
src/SMESHGUI/SMESHGUI_AddQuadraticElementDlg.h
src/SMESHGUI/SMESHGUI_ClippingDlg.cxx
src/SMESHGUI/SMESHGUI_ClippingDlg.h
src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_ConvToQuadOp.h [new file with mode: 0644]
src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_CreatePatternDlg.cxx
src/SMESHGUI/SMESHGUI_CreatePatternDlg.h
src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.cxx
src/SMESHGUI/SMESHGUI_CreatePolyhedralVolumeDlg.h
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.cxx
src/SMESHGUI/SMESHGUI_DeleteGroupDlg.h
src/SMESHGUI/SMESHGUI_Dialog.h
src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_EditMeshDlg.cxx
src/SMESHGUI/SMESHGUI_EditMeshDlg.h
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h
src/SMESHGUI/SMESHGUI_ExtrusionDlg.cxx
src/SMESHGUI/SMESHGUI_ExtrusionDlg.h
src/SMESHGUI/SMESHGUI_Filter.cxx
src/SMESHGUI/SMESHGUI_FilterDlg.cxx
src/SMESHGUI/SMESHGUI_FilterDlg.h
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.h
src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx
src/SMESHGUI/SMESHGUI_GroupOpDlg.h
src/SMESHGUI/SMESHGUI_Hypotheses.cxx
src/SMESHGUI/SMESHGUI_Hypotheses.h
src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
src/SMESHGUI/SMESHGUI_HypothesesUtils.h
src/SMESHGUI/SMESHGUI_MergeNodesDlg.cxx
src/SMESHGUI/SMESHGUI_MergeNodesDlg.h
src/SMESHGUI/SMESHGUI_MeshDlg.cxx
src/SMESHGUI/SMESHGUI_MeshDlg.h
src/SMESHGUI/SMESHGUI_MeshInfosDlg.cxx
src/SMESHGUI/SMESHGUI_MeshInfosDlg.h
src/SMESHGUI/SMESHGUI_MeshOp.cxx
src/SMESHGUI/SMESHGUI_MeshOp.h
src/SMESHGUI/SMESHGUI_MeshPatternDlg.cxx
src/SMESHGUI/SMESHGUI_MeshPatternDlg.h
src/SMESHGUI/SMESHGUI_MoveNodesDlg.cxx
src/SMESHGUI/SMESHGUI_MoveNodesDlg.h
src/SMESHGUI/SMESHGUI_MultiEditDlg.cxx
src/SMESHGUI/SMESHGUI_MultiEditDlg.h
src/SMESHGUI/SMESHGUI_NodesDlg.cxx
src/SMESHGUI/SMESHGUI_NodesDlg.h
src/SMESHGUI/SMESHGUI_Operation.cxx
src/SMESHGUI/SMESHGUI_Operation.h
src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_PrecisionDlg.h [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx
src/SMESHGUI/SMESHGUI_RemoveElementsDlg.cxx
src/SMESHGUI/SMESHGUI_RemoveElementsDlg.h
src/SMESHGUI/SMESHGUI_RemoveNodesDlg.cxx
src/SMESHGUI/SMESHGUI_RemoveNodesDlg.h
src/SMESHGUI/SMESHGUI_RenumberingDlg.cxx
src/SMESHGUI/SMESHGUI_RenumberingDlg.h
src/SMESHGUI/SMESHGUI_RevolutionDlg.cxx
src/SMESHGUI/SMESHGUI_RevolutionDlg.h
src/SMESHGUI/SMESHGUI_RotationDlg.cxx
src/SMESHGUI/SMESHGUI_RotationDlg.h
src/SMESHGUI/SMESHGUI_Selection.cxx
src/SMESHGUI/SMESHGUI_SelectionOp.cxx
src/SMESHGUI/SMESHGUI_SelectionOp.h
src/SMESHGUI/SMESHGUI_SewingDlg.cxx
src/SMESHGUI/SMESHGUI_SewingDlg.h
src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.cxx
src/SMESHGUI/SMESHGUI_ShapeByMeshDlg.h
src/SMESHGUI/SMESHGUI_SingleEditDlg.cxx
src/SMESHGUI/SMESHGUI_SingleEditDlg.h
src/SMESHGUI/SMESHGUI_SmoothingDlg.cxx
src/SMESHGUI/SMESHGUI_SmoothingDlg.h
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.h
src/SMESHGUI/SMESHGUI_Swig.cxx
src/SMESHGUI/SMESHGUI_Swig.hxx
src/SMESHGUI/SMESHGUI_SymmetryDlg.cxx
src/SMESHGUI/SMESHGUI_SymmetryDlg.h
src/SMESHGUI/SMESHGUI_TranslationDlg.cxx
src/SMESHGUI/SMESHGUI_TranslationDlg.h
src/SMESHGUI/SMESHGUI_TransparencyDlg.cxx
src/SMESHGUI/SMESHGUI_TransparencyDlg.h
src/SMESHGUI/SMESHGUI_XmlHandler.cxx
src/SMESHGUI/SMESHGUI_XmlHandler.h
src/SMESHGUI/SMESH_icons.po
src/SMESHGUI/SMESH_images.po
src/SMESHGUI/SMESH_msg_en.po
src/SMESH_I/SMESH_2smeshpy.cxx
src/SMESH_I/SMESH_2smeshpy.hxx
src/SMESH_I/SMESH_DumpPython.cxx
src/SMESH_I/SMESH_Filter_i.cxx
src/SMESH_I/SMESH_Gen_i.cxx
src/SMESH_I/SMESH_Gen_i.hxx
src/SMESH_I/SMESH_Gen_i_1.cxx
src/SMESH_I/SMESH_Hypothesis_i.hxx
src/SMESH_I/SMESH_MEDFamily_i.hxx
src/SMESH_I/SMESH_MEDMesh_i.cxx
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_Pattern_i.cxx
src/SMESH_I/SMESH_PythonDump.hxx
src/SMESH_SWIG/Makefile.in
src/SMESH_SWIG/PAL_MESH_041_mesh.py
src/SMESH_SWIG/SMESH_BelongToGeom.py
src/SMESH_SWIG/SMESH_GroupFromGeom2.py
src/SMESH_SWIG/SMESH_GroupLyingOnGeom.py
src/SMESH_SWIG/SMESH_Nut.py
src/SMESH_SWIG/SMESH_Partition1_tetra.py
src/SMESH_SWIG/SMESH_box.py
src/SMESH_SWIG/SMESH_box2_tetra.py
src/SMESH_SWIG/SMESH_box3_tetra.py
src/SMESH_SWIG/SMESH_box_tetra.py
src/SMESH_SWIG/SMESH_demo_hexa2_upd.py
src/SMESH_SWIG/SMESH_fixation_hexa.py
src/SMESH_SWIG/SMESH_fixation_netgen.py [new file with mode: 0644]
src/SMESH_SWIG/SMESH_fixation_tetra.py
src/SMESH_SWIG/SMESH_flight_skin.py
src/SMESH_SWIG/SMESH_freebord.py
src/SMESH_SWIG/SMESH_hexaedre.py
src/SMESH_SWIG/SMESH_mechanic_netgen.py [new file with mode: 0644]
src/SMESH_SWIG/SMESH_shared_modules.py
src/SMESH_SWIG/SMESH_test0.py
src/SMESH_SWIG/SMESH_test4.py
src/SMESH_SWIG/batchmode_mefisto.py
src/SMESH_SWIG/ex00_all.py
src/SMESH_SWIG/ex01_cube2build.py
src/SMESH_SWIG/ex02_cube2primitive.py
src/SMESH_SWIG/ex03_cube2partition.py
src/SMESH_SWIG/ex04_cube5tetraHexa.py
src/SMESH_SWIG/ex05_hole1build.py
src/SMESH_SWIG/ex06_hole1boolean.py
src/SMESH_SWIG/ex07_hole1partition.py
src/SMESH_SWIG/ex08_hole2build.py
src/SMESH_SWIG/ex09_grid4build.py
src/SMESH_SWIG/ex10_grid4geometry.py
src/SMESH_SWIG/ex11_grid3partition.py
src/SMESH_SWIG/ex12_grid17partition.py
src/SMESH_SWIG/ex13_hole1partial.py
src/SMESH_SWIG/ex14_cyl1holed.py
src/SMESH_SWIG/ex15_cyl2geometry.py
src/SMESH_SWIG/ex16_cyl2complementary.py
src/SMESH_SWIG/ex17_dome1.py
src/SMESH_SWIG/ex18_dome2.py
src/SMESH_SWIG/ex19_sphereINcube.py
src/SMESH_SWIG/smesh.py
src/StdMeshers/Makefile.in
src/StdMeshers/StdMeshers_AutomaticLength.cxx
src/StdMeshers/StdMeshers_Helper.cxx [deleted file]
src/StdMeshers/StdMeshers_Helper.hxx [deleted file]
src/StdMeshers/StdMeshers_Hexa_3D.cxx
src/StdMeshers/StdMeshers_Hexa_3D.hxx
src/StdMeshers/StdMeshers_MEFISTO_2D.cxx
src/StdMeshers/StdMeshers_MEFISTO_2D.hxx
src/StdMeshers/StdMeshers_Penta_3D.cxx
src/StdMeshers/StdMeshers_Penta_3D.hxx
src/StdMeshers/StdMeshers_Quadrangle_2D.cxx
src/StdMeshers/StdMeshers_Quadrangle_2D.hxx
src/StdMeshers/StdMeshers_Regular_1D.cxx
src/StdMeshersGUI/Makefile.in
src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx
src/StdMeshersGUI/StdMeshersGUI_DistrPreview.h
src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.cxx
src/StdMeshersGUI/StdMeshersGUI_NbSegmentsCreator.h
src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.cxx
src/StdMeshersGUI/StdMeshersGUI_StdHypothesisCreator.h
src/StdMeshersGUI/StdMeshers_images.po
src/StdMeshersGUI/StdMeshers_msg_en.po
src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx
src/StdMeshers_I/StdMeshers_i.cxx

diff --git a/INSTALL b/INSTALL
index dd103826d86a7c0a78d05c402d0029d0391b9c9e..6d03e0a4a4d23f12aa1a2ee865c4f7bc23e50cda 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
-This is the version 3.2.0a2 of SMESH
+This is the version 3.2.0b1 of SMESH
 Compatible with :
-        - KERNEL 3.2.0a2
-       - SALOMEGUI 3.2.0a2
-       - GEOM 3.2.0a2
-       - MED 3.2.0a2
+        - KERNEL 3.2.0b1
+       - SALOMEGUI 3.2.0b1
+       - GEOM 3.2.0b1
+       - MED 3.2.0b1
index ded60d8ed783fa7388ab61bb981d06a730a111fe..c747231944d823c051fbcaa21c9db8bc478d60a3 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # -* Makefile *- 
 #
 # Author : Patrick GOLDBRONN (CEA)
@@ -76,11 +95,15 @@ mesh_tree_algo.png \
 mesh_tree_algo_quad.png \
 mesh_tree_algo_regular.png \
 mesh_tree_algo_tetra.png \
+mesh_tree_algo_netgen_2d3d.png \
+mesh_tree_algo_netgen_2d.png \
 mesh_tree_hypo_area.png \
 mesh_tree_hypo_length.png \
 mesh_tree_hypo.png \
 mesh_tree_hypo_segment.png \
 mesh_tree_hypo_volume.png \
+mesh_tree_hypo_netgen.png \
+mesh_tree_hypo_netgen_2d.png \
 mesh_tree_mesh.png \
 mesh_tree_importedmesh.png \
 mesh_tree_mesh_warn.png \
@@ -127,6 +150,7 @@ SMESH_en.xml \
 SMESH.config \
 StdMeshers.xml \
 SMESHCatalog.xml \
+SalomeApp.xml \
 mesh_pattern.png \
 pattern_sample_2d.png \
 pattern_sample_3D.png \
@@ -138,7 +162,8 @@ mesh_quad_quadrangle.png \
 mesh_quad_tetrahedron.png \
 mesh_quad_pyramid.png \
 mesh_quad_pentahedron.png \
-mesh_quad_hexahedron.png
+mesh_quad_hexahedron.png \
+mesh_conv_to_quad.png
 
 BIN_SCRIPT= \
 VERSION
index 9b5e810db5609f348cfc90502d69bd7da12b084f..734bc820a613abbc7ecc75492bb547fe8acd6002 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # source path
 top_srcdir=@top_srcdir@
 top_builddir=..
index 7f57ab3d8b71793ebf6e353f27e39beb36fe857c..3c259c88c715466eb416ac034ebd2bda5dbb5c9d 100644 (file)
@@ -168,6 +168,10 @@ CXXFLAGS+= $(CORBA_CXXFLAGS)
 #LDFLAGS+= $(CORBA_LIBS)
 LIBS+=$(CORBA_LIBS)
 
+DOXYGEN = @DOXYGEN@
+DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@
+DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@
+
 ## Shared libraries
 LT_STATIC_EXEC=@LT_STATIC_EXEC@
 DYNAMIC_DIRS=@DYNAMIC_DIRS@
@@ -224,7 +228,13 @@ all:
 Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in
        cd $(top_builddir) ; ./config.status
 
-$(top_builddir)/config.status: $(top_srcdir)/configure
+LOCAL_MAKE = make_commence make_conclude make_omniorb
+
+KERNEL_MAKE = make_module depend SALOMEconfig.h F77config.h sstream envScript
+
+$(top_builddir)/config.status: $(top_srcdir)/configure \
+                              $(LOCAL_MAKE:%=$(top_srcdir)/adm_local/unix/%.in) \
+                              $(KERNEL_MAKE:%=$(KERNEL_ROOT_DIR)/salome_adm/unix/%.in)
        cd $(top_builddir) ; ./config.status --recheck
 
 # VPATH contain $(srcdir), so make configure is good in top_srcdir and we must add target configure otherwise :-)
@@ -239,7 +249,7 @@ $(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base
        cd $(top_srcdir) && ./build_configure
 
 
-ACLOCAL_SRC = \
+ACLOCAL_KERNEL = \
 ac_cxx_bool.m4                    check_corba.m4                        \
 ac_cxx_depend_flag.m4             check_hdf5.m4      enable_pthreads.m4        \
 ac_cxx_mutable.m4                 check_mico.m4      libtool.m4                \
@@ -255,12 +265,12 @@ check_GUI.m4                        check_corba_in_GUI.m4
 ACLOCAL_MED =                 check_Med.m4
 ACLOCAL_GEOM =                check_GEOM.m4                      
 
-$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \
+$(top_srcdir)/aclocal.m4: $(ACLOCAL_KERNEL:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \
                           $(ACLOCAL_GUI:%=@GUI_ROOT_DIR@/adm_local/unix/config_files/%) \
                          $(ACLOCAL_MED:%=@MED_ROOT_DIR@/adm_local/unix/config_files/%) \
                          $(ACLOCAL_GEOM:%=@GEOM_ROOT_DIR@/adm_local/unix/config_files/%)
-       cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
+       cd $(top_srcdir) ; aclocal -adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
                                                                       -I @GUI_ROOT_DIR@/adm_local/unix/config_files \
                                                                       -I @MED_ROOT_DIR@/adm_local/unix/config_files \
                                                                       -I @GEOM_ROOT_DIR@/adm_local/unix/config_files
-       
\ No newline at end of file
+       
index 3fb4d29dd2dece7336d36b5098f9c917ac7ebc22..a3298922363448989753e47ee8fdc70d343699dd 100755 (executable)
@@ -1 +1 @@
-THIS IS SALOME - SMESH VERSION: 3.2.0a2
+THIS IS SALOME - SMESH VERSION: 3.2.0b1
index 2d81c7eae063c5d8eddba6a7e9ebca76cad95f37..121fb5d2a116f22d486963009dfb19b10331853a 100755 (executable)
@@ -150,10 +150,10 @@ echo "    ./salome_adm/unix/SALOMEconfig.h \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/F77config.h \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/sstream \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/depend \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_omniorb \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_omniorb:${ABS_CONF_DIR}/adm_local/unix/make_omniorb.in \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/envScript \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_commence \\" >> configure.in_tmp1
-echo " ./adm_local/unix/make_conclude \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_commence:${ABS_CONF_DIR}/adm_local/unix/make_commence.in \\" >> configure.in_tmp1
+echo " ./adm_local/unix/make_conclude:${ABS_CONF_DIR}/adm_local/unix/make_conclude.in \\" >> configure.in_tmp1
 echo " ./salome_adm/unix/make_module \\" >> configure.in_tmp1
 
 \rm -f configure.in_tmp2 configure.in_tmp3
index 7295ede75128e9e51b474f63ed9f8d7a128bb3df..59e6c5962483534e98f74b1b538e0700909fb4e4 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 # -* Makefile *- 
 #
index bd9a4eab57c132e129309fc3cd0304a6583186c8..224ee0881f4513ddb21a9cce9ac92a8785a05276 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 
 # -* Makefile *- 
 #
index 77ef549554d5c1e53ba0b61904921ef576c3e971..1cba90dabf5a3ec954b9bea894b8554723202025 100755 (executable)
@@ -14,23 +14,13 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-p.whs1 { font-weight:bold; }\r
+img_whs1 { border:none; width:25px; height:24px; border-style:none; }\r
 p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:327px; height:402px; border-style:none; }\r
-p.whs4 { margin-left:0px; }\r
+img_whs3 { border:none; width:404px; height:413px; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+p.whs5 { font-weight:bold; }\r
 -->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
 function reDo() {\r
   if (innerWidth != origWidth || innerHeight != origHeight)\r
@@ -60,7 +50,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("MESH module\nViewing meshes\nAbout viewing meshes");\r
+       addTocInfo("MESH module\nViewing meshes\nViewing meshes");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -84,59 +74,83 @@ else
                document.location.reload();\r
 //-->\r
 </script>\r
-<h1>About viewing meshes</h1>\r
-\r
-<p>You can get information about your mesh, change its presentation parameters \r
- and access to other useful functionalities by right-clicking on it in \r
- the <span style="font-weight: bold;"><B>Object Browser.</B></span></p>\r
-\r
-<p class="whs1"><span style="font-weight: normal;">Then the \r
- following pop-up menu appears:</span> </p>\r
-\r
-<p>&nbsp;&nbsp;</p>\r
+<h1>Viewing meshes</h1>\r
 \r
-<p class="whs2"><img src="image19.jpg" width="327px" height="402px" border="0" class="img_whs3"></p>\r
+<p>After definition of algorithms and hypotheses a new mesh is listed in \r
+ the Object Browser. Right-click on it and select <img src="image28.gif" width="25px" height="24px" border="0" class="img_whs1"> <span \r
+ style="font-weight: bold;"><B>Compute</B></span> - the mesh will be automatically \r
+ displayed in the <span style="font-weight: bold;"><B><a href="files/vtk_3d_viewer.htm">VTK \r
+ 3D Viewer</a>.</B></span> Alternatively click<span style="font-weight: bold;"><B> \r
+ Display only</B></span> to hide all other objects at the same time. </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>The Update button refreshes the presentation of your mesh in the Object \r
- Browser, applying all recent changes.</p>\r
-\r
-<p>By clicking on <span style="font-weight: bold;"><B>Standard Mesh Infos</B></span> \r
- and <span style="font-weight: bold;"><B>Advanced</B></span> <span style="font-weight: bold;"><B>Mesh \r
- Infos </B></span>you can learn the <span style="font-weight: bold;"><B><a href="files/viewing_mesh_info.htm">Mesh \r
- Infos</a>.</B></span></p>\r
-\r
-<p>Via <span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span> \r
- &nbsp;you can \r
- display the ID numbers of all meshing elements or nodes composing your \r
- mesh in the viewer.</p>\r
-\r
-<p>Via <a href="presentation.htm" style="font-weight: bold;">Display Mode</a>, <a href="display_entity.htm" style="font-weight: bold;">Display \r
- Entity</a>, &nbsp;Colors \r
- / Size, and &nbsp;<a href="transparency.htm" style="font-weight: bold;">Transparency</a> \r
- you can change the way of presentation of your mesh.</p>\r
+<p>After the mesh has appeared in the Viewer, you can select it with left \r
+ mouse click and &nbsp;get \r
+ information about it, change its presentation parameters and access to \r
+ other useful options by right-clicking on the selected mesh<span style="font-weight: bold;"><B>.</B></span></p>\r
 \r
-<p>In the <a href="clipping.htm" style="font-weight: bold;">Clipping</a> menu you can create \r
- cross-sections of the selected objects.</p>\r
-\r
-<p>Quality <a href="files/about_quality_controls.htm" style="font-weight: bold;">Controls</a> are described in \r
- the next chapter. </p>\r
-\r
-<p>By clicking on <span style="font-weight: bold;"><B>Display Only</B></span> \r
- you hide all other objects.</p>\r
-\r
-<p>The <span style="font-weight: bold;"><B>Erase</B></span> button deletes the \r
- selected object from the session.</p>\r
+<p>&nbsp;&nbsp;</p>\r
 \r
-<p>Using the <span style="font-weight: bold;"><B>Change background</B></span> \r
- button you can set the background color. By default it is black. &nbsp;</p>\r
+<p class="whs2"><img src="image15.jpg" width="404px" height="413px" border="0" class="img_whs3"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="viewing_meshes.htm">Viewing Mesh Infos</a> \r
- operation. &nbsp;</p>\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase all</B></span> \r
+ &nbsp;- allows \r
+ to hide all objects in the viewer</p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Update</B></span> \r
+ - refreshes the presentation of your mesh in the Object Browser, applying \r
+ all recent changes.</p></li>\r
+       \r
+       <li class=kadov-p><p><a href="files/viewing_mesh_info.htm#advanced infos" style="font-weight: bold;">Advanced Mesh Infos</a> \r
+ - &nbsp;provides \r
+ more detailed information about the mesh. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs5"><a href="files/viewing_mesh_info.htm#standard_infos">Standard \r
+ Mesh Infos</a> - <span style="font-weight: normal;">provides basic information \r
+ about the mesh.</span></p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span> \r
+ &nbsp;- allows \r
+ to display the ID numbers of all meshing elements or nodes composing your \r
+ mesh in the viewer.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs5"><a href="presentation.htm" style="font-weight: bold;">Display \r
+ Mode</a> - <span style="font-weight: normal;">allows to select between \r
+ Wireframe, Shading and Nodes presentation.</span></p></li>\r
+       \r
+       <li class=kadov-p><p><a href="display_entity.htm" style="font-weight: bold;">Display Entity</a> \r
+ - allows to display Faces, Edges or both. </p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Colors / Size</B></span> \r
+ - allows to select color and size of meshes.</p></li>\r
+       \r
+       <li class=kadov-p><p><a href="transparency.htm" style="font-weight: bold;">Transparency</a> \r
+ - allows to change the transparency of mesh elements.</p></li>\r
+       \r
+       <li class=kadov-p><p><a href="clipping.htm" style="font-weight: bold;">Clipping</a> - allows \r
+ to create cross-sections of the selected objects.</p></li>\r
+       \r
+       <li class=kadov-p><p><a href="files/about_quality_controls.htm" style="font-weight: bold;">Quality Controls</a> \r
+ - graphically presents various information about meshes.</p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase</B></span> \r
+ - allows to hide the selected mesh from the viewer. </p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Display Only</B></span> \r
+ -allows to display only the selected mesh, hiding all other from the viewer.</p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span> \r
+ - exports an object from the viewer in bmp, png, jpg or jpeg image format. \r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span> \r
+ - allows to redefine the background color. By default it is black. &nbsp;</p></li>\r
+</ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
diff --git a/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm b/doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm
new file mode 100755 (executable)
index 0000000..8f7706a
--- /dev/null
@@ -0,0 +1,119 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Adding Quadratic Nodes and Elements</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; width:148px; height:168px; border-style:none; }\r
+img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("MESH module\nModifying meshes\nAdding quadratic 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(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Adding Quadratic Elements</h1>\r
+\r
+<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic \r
+ Elements</B></span>.</p>\r
+\r
+<p>Quadratic Edge in not a straight but a broken line and can be defined \r
+ by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic \r
+ Elements</B></span> differ from ordinary ones in that they consist of Quadratic \r
+ Edges.</p>\r
+\r
+<p class=TODO\r
+       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
+ add a quadratic element to your mesh:</p>\r
+\r
+<p class="whs1">1. Select your mesh in the Object Browser \r
+ or in the 3D viewer.</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item \r
+ and select one of the following: </p>\r
+\r
+<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>\r
+\r
+<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic \r
+ Element </B></span>specify the nodes which will form your triangle by selecting \r
+ them in the 3D viewer with pressed Shift button. Their numbers will appear \r
+ in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span> \r
+ (alternatively you can just input numbers in this field without selection).The \r
+ edges formed by the corner nodes will appear in the table. To define the \r
+ middle nodes for each edge double-click on the respective field and input \r
+ the number of the node. All edges and the object formed by them will be \r
+ displayed in the Object browser. When all edges are defined you will be \r
+ able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span> \r
+ button to add the element to the mesh. </p>\r
+\r
+<p class="whs1">&nbsp;<img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span> \r
+ button for Quadratic Edges switches the first and the last nodes. <span \r
+ style="margin-left: 40px;">For all other elements it reverses the element. \r
+ </span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index 20573a1fdf15a29216192b9fcdb9e15e3bdfaa3e..90c6d6c8084c2d9a03460108ba7cef4a04ec54f4 100755 (executable)
@@ -16,21 +16,22 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 { border:none; width:416px; height:385px; border-style:none; }\r
 img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs3 { border:none; width:158px; height:110px; border-style:none; }\r
-img_whs4 { border:none; width:120px; height:48px; border-style:none; }\r
-img_whs5 { border:none; width:234px; height:96px; border-style:none; }\r
-img_whs6 { border:none; width:258px; height:246px; border-style:none; }\r
-img_whs7 { border:none; width:133px; height:56px; border-style:none; }\r
-img_whs8 { border:none; width:425px; height:192px; border-style:none; }\r
-img_whs9 { border:none; width:89px; height:32px; border-style:none; }\r
-p.whs10 { margin-left:0px; }\r
+ul.whs3 { list-style:disc; }\r
+img_whs4 { border:none; width:258px; height:246px; border-style:none; float:left; }\r
+img_whs5 { border:none; width:133px; height:56px; border-style:none; }\r
+img_whs6 { border:none; width:425px; height:192px; border-style:none; }\r
+img_whs7 { border:none; width:89px; height:32px; border-style:none; }\r
+img_whs8 { border:none; width:569px; height:386px; float:none; border-style:none; }\r
+p.whs9 { margin-left:40px; }\r
+img_whs10 { border:none; width:24px; height:26px; border-style:none; }\r
+p.whs11 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs10 {margin-left:1pt; }";\r
+  strNSS += "p.whs11 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -96,54 +97,88 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2">This mesh quality criterion resembles to the Aspect ratio \r
- criterion, however, it is applied to 3D mesh elements: tetrahedrons, \r
- pentahedrons, hexahedrons, etc. &nbsp;</p>\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> The Aspect Ratio 3D mesh quality criterion calculates \r
+ the same parameter as the <a href="files/aspect_ratio.htm">Aspect ratio</a> \r
+ criterion, but it is applied to 3D mesh elements: tetrahedrons, pentahedrons, \r
+ hexahedrons, etc. &nbsp;</p>\r
 \r
-<p>There are simple formulas to evaluate directly the value of quality \r
- Qk for simplex in 3D. The formulas are :</p>\r
-\r
-<br>\r
+<p>&nbsp;</p>\r
 \r
-<p>\95 For tetrahedron :</p>\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p><img src="image20.gif" width="258px" height="246px" align="left" border="0" class="img_whs4">The <span style="font-weight: bold;"><B>Aspect \r
+ Ratio</B></span> of a <span style="font-weight: bold;"><B>tetrahedron</B></span> \r
+ 3D element is calculated by the formula:</p></li>\r
+</ul>\r
 \r
-<p>&nbsp;<img src="image20.gif" width="258px" height="246px" border="0" class="img_whs6"></p>\r
+<p>&nbsp;</p>\r
 \r
-<p>&nbsp;<img src="image19.gif" width="133px" height="56px" border="0" class="img_whs7"></p>\r
+<p>&nbsp;</p>\r
 \r
-<p>where :</p>\r
+<p><img src="image19.gif" width="133px" height="56px" border="0" class="img_whs5">,</p>\r
 \r
-<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs8"> </p>\r
+<p>&nbsp;</p>\r
 \r
-<p>To calculate Sk , it is needed to sum the area of each of the 3 faces \r
- with the formula given with the triangle.</p>\r
+<p>where <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span \r
+ style="font-weight: bold;\r
+               font-style: italic;\r
+               vertical-align: Sub;"><I><B>K</B></I></span> is the sum of surfaces of the faces \r
+ of &#1050; and <span style="font-weight: bold; font-style: italic;"><I><B>V</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>K</B></I></span> is the volume of &#1050; :</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>For the other types of element like pentahedron and hexahedron \r
- the formula is the following :</p>\r
+<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs6">T</p>\r
 \r
-<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs9"> </p>\r
+<p>&nbsp;</p>\r
 \r
-<p>Where Qi are the quality of all the possible simplex (of same dimension \r
- as the element) that compose the element.</p>\r
+<ul type="disc" class="whs3">\r
+       \r
+       <li class=kadov-p><p>Other element types like quadrangle, pentahedron \r
+ and hexahedron use the following formula:</p></li>\r
+</ul>\r
+\r
+<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs7"> , where <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>i</B></I></span> represents the value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>k</B></I></span> for all possible simplexes (of the \r
+ same dimension as the element) that compose the element.</p>\r
+\r
+<p>For example, a hexahedron is split in 6 tetrahedrons, the <span style="font-weight: bold;"><B>Aspect \r
+ ratio 3D</B></span> is calculated for each of them, then the greatest <span \r
+ style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span style="vertical-align: Sub;\r
+       font-weight: bold;\r
+       font-style: italic;"><I><B>k</B></I></span> is considered to be the &nbsp;<span \r
+ style="font-weight: bold;"><B>Aspect ratio 3D</B></span> \r
+ criterion for the whole &nbsp;hexahedron.</p>\r
+\r
+<p><img src="pics/image139.gif" x-maintain-ratio="TRUE" width="569px" height="386px" border="0" class="img_whs8"></p>\r
 \r
-<p>For example, hexahedron is analysed via 6 tetrahedrons this way:</p>\r
+<p>&nbsp;</p>\r
 \r
-<p><img src="image139.gif" border="0" class="img_whs10"> </p>\r
+<p class=TODO>To apply the Aspect Ratio 3D quality criterion to your mesh:</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class=TODO>&nbsp;</p>\r
 \r
-<p>For 3D elements with quadrangular faces, aspect ratio of such faces\r
-is also analysed and the maximal one over 3D and 2D qualities is taken.</p>\r
+<p class="whs9">1. Display your mesh in the viewer.</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs9">&nbsp;</p>\r
+\r
+<p class="whs9">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ &gt; Aspect Ratio 3D </B></span>or click <img src="image144.gif" width="24px" height="26px" border="0" class="img_whs10"> button of the toolbar. \r
+ Your mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs10"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of an <a href="quality_controls.htm#bookmark11">Aspect \r
- Ratio quality control</a> operation. &nbsp;</p>\r
+<p class="whs11"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of an <span style="font-weight: bold;"><B><a href="quality_controls.htm#bookmark11">Aspect \r
+ Ratio 3D</B></span> quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
index cba301b961982aaf968cfe78fd9b79c2a8894fe6..e7500f2c318da4120a754bf98d1f65695e36dc43 100755 (executable)
@@ -15,15 +15,16 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; border-style:none; width:331px; height:297px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:223px; height:213px; border-style:none; }\r
+p.whs4 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1pt; }";\r
+  strNSS += "p.whs4 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -91,16 +92,16 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/borders_at_multi_connections1.png" x-maintain-ratio="TRUE" width="331px" height="297px" border="0" class="img_whs2"></p>\r
+<p class="whs2"><img src="image151.gif" width="223px" height="213px" border="0" class="img_whs3"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>In this picture the borders at multi-connection are displayed in white.</p>\r
+<p>In this picture the borders at multi-connection are displayed in blue.</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark2">Borders \r
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Borders \r
  at Multi-Connection quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index 9587602aae75c2dcb17ff352045312a0b80ee106..da61f5c2f643a6905795b06fdf0c86975b13f9d9 100755 (executable)
@@ -95,7 +95,7 @@ else
 <p>&nbsp;</p>\r
 \r
 <p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark6">Borders \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark5">Borders \r
  at Multi-Connection quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index 8652fd75fa6f6bd68c2adcdb93fbae5bd272b070..4faad7d21d5799bf62f1cde1d1fb05b000a4f8b4 100755 (executable)
@@ -14,10 +14,12 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; border-style:none; width:332px; height:327px; float:none; }\r
-p.whs2 { font-weight:bold; }\r
-img_whs3 { border:none; width:326px; height:199px; border-style:none; }\r
-img_whs4 { border:none; width:329px; height:210px; border-style:none; }\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; width:332px; height:327px; float:none; border-style:none; }\r
+p.whs3 { font-weight:bold; margin-left:40px; }\r
+img_whs4 { border:none; width:326px; height:199px; border-style:none; }\r
+p.whs5 { font-weight:bold; }\r
+img_whs6 { border:none; width:329px; height:210px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -84,7 +86,7 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs1"></p>\r
+<p class="whs1"><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -101,27 +103,27 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs2"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs4"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2"><span style="font-weight: normal;">If the</span> \r
+<p class="whs5"><span style="font-weight: normal;">If the</span> \r
  Auto Apply<span style="font-weight: normal;"> button is on, you can preview \r
  the cross-section in the</span> Object window</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs4"></p>\r
+<p class="whs3"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs6"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2"><span style="font-weight: normal;">To get \r
+<p class="whs5"><span style="font-weight: normal;">To get \r
  a new object from </span>Clipping, <span style="font-weight: normal;">click</span> \r
  Ok. </p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 78d8030db746d224827eea8f82143459bdfe7499..6fa5dae03e8500523f1b8fd8ce356eb2d306929c 100755 (executable)
@@ -406,7 +406,7 @@ else
 \r
 <p class="whs4"># compute the mesh</p>\r
 \r
-<p class="whs3">hexa.Compute() )</p>\r
+<p class="whs3">hexa.Compute() </p>\r
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
index 0874e45078cc068dff489cf745d6d965814b7ea6..17ca2d2a97c22ca36df053b372d6738d1ce24b54 100755 (executable)
@@ -16,9 +16,8 @@ p.whs1 { font-weight:bold; }
 p.whs2 { font-family:'Lucida Console' , monospace; }\r
 p.whs3 { font-family:'Times New Roman' , serif; }\r
 p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
-p.whs5 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs6 { margin-top:0pt; margin-bottom:0pt; font-family:Tahoma, sans-serif; }\r
-p.whs7 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
+p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
+p.whs6 { margin-top:0pt; margin-bottom:0pt; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -28,7 +27,6 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
   strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
   strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
   strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -284,53 +282,67 @@ else
 \r
 <p class="whs3"># create vertices</p>\r
 \r
-<p class="whs2">px &nbsp;&nbsp;=geompy.MakeVertex(100., 0. &nbsp;,0. &nbsp;)</p>\r
+<p class="whs2">px &nbsp;&nbsp;= \r
+ geompy.MakeVertex(100., 0. &nbsp;, \r
+ 0. &nbsp;)</p>\r
 \r
-<p class="whs2">py &nbsp;&nbsp;=geompy.MakeVertex(0. &nbsp;,100., 0. &nbsp;)</p>\r
+<p class="whs2">py &nbsp;&nbsp;= \r
+ geompy.MakeVertex(0. &nbsp;, \r
+ 100., 0. &nbsp;)</p>\r
 \r
-<p class="whs2">pz &nbsp;&nbsp;=geompy.MakeVertex(0. &nbsp;,0. &nbsp;, 100.)</p>\r
+<p class="whs2">pz &nbsp;&nbsp;= \r
+ geompy.MakeVertex(0. &nbsp;, \r
+ 0. &nbsp;, 100.)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs3"># create a vector from \r
  two points</p>\r
 \r
-<p class="whs2">vxy = geompy.MakeVector(px,py)</p>\r
+<p class="whs2">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs3"># create an arc from \r
  three points</p>\r
 \r
-<p class="whs2">arc = geompy.MakeArc(py, pz, px)</p>\r
+<p class="whs2">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs3"># create a wire</p>\r
 \r
-<p class="whs2">wire = geompy.MakeWire([vxy,arc])</p>\r
+<p class="whs2">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
 \r
 <p class="whs2">isPlanarFace = 1</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># create a face from the wire</p>\r
+<p class="whs3"># create a face from \r
+ the wire</p>\r
 \r
-<p class="whs2">face1 = geompy.MakeFace(wire,isPlanarFace)</p>\r
+<p class="whs2">face1 = geompy.MakeFace(wire, \r
+ isPlanarFace)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># get edges from the face</p>\r
+<p class="whs3"><span style="font-family: 'Times New Roman', serif;"># \r
+ get edges from the face</span></p>\r
 \r
-<p class="whs2">vxy, arc = geompy.SubShapeAll(face1, geompy.ShapeType["EDGE"])</p>\r
+<p class="whs2">vxy,arc = geompy.SubShapeAll(face1,geompy.ShapeType[&quot;EDGE&quot;])</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs3"># add objects in the study</p>\r
+<p class="whs3"># add objects in the \r
+ study</p>\r
 \r
 <p class="whs2">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
 \r
-<p class="whs2">id_arc = geompy.addToStudyInFather(face1,arc,&quot;Arc Edge&quot;)</p>\r
+<p class="whs2">id_arc = geompy.addToStudyInFather(face1,arc,&quot;Arc \r
+ Edge&quot;)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
@@ -346,38 +358,45 @@ else
 \r
 <p class="whs3"># create hexahedral mesh</p>\r
 \r
-<p class="whs2">hexa = smesh.Mesh(face1,&quot;Face compound : hexahedrical mesh&quot;)</p>\r
+<p class="whs2">hexa = smesh.Mesh(face1, \r
+ &quot;Face compound : hexahedrical mesh&quot;)</p>\r
 \r
 <p class="whs2">algo = hexa.Triangle()</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># define &quot;MaxElementArea&quot;hypothesis</p>\r
+<p class="whs3"># define &quot;MaxElementArea&quot; \r
+ hypothesis</p>\r
 \r
 <p class="whs2">algo.MaxElementArea(30)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># create a local hypothesis on the wire</p>\r
+<p class="whs3"># create a local hypothesis \r
+ on the wire</p>\r
 \r
 <p class="whs2">algo = hexa.Segment(wire)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># define &quot;NumberOfSegments&quot;hypothesis to cut\r
-a straight edge in a fixed number of segments</p>\r
+<p class="whs3"># define &quot;NumberOfSegments&quot; \r
+ hypothesis to cut a straight edge in a fixed number of segments</p>\r
 \r
 <p class="whs2">algo.NumberOfSegments(6)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># define a local &quot;Deflection1D&quot;hypothesis on the arc</p>\r
+<p class="whs3"># define a local &quot;Deflection1D&quot; \r
+ hypothesis on the arc</p>\r
 \r
 <p class="whs2">algo = hexa.Segment(arc)</p>\r
+\r
 <p class="whs2">algo.Deflection1D(1)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
+<p class="whs2">&nbsp;</p>\r
+\r
 <p class="whs3"># compute the mesh</p>\r
 \r
 <p class="whs2">hexa.Compute() </p>\r
@@ -741,17 +760,16 @@ a straight edge in a fixed number of segments</p>
 \r
 <h4><a name=bookmark4>Maximum Element Area</a></h4>\r
 \r
-<p class="whs4">import smesh</p>\r
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import \r
+ smesh</span></p>\r
 \r
 <p class="whs4">import geompy</p>\r
 \r
 <p class="whs4">import salome</p>\r
 \r
-<p class="whs4">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs5"># create vertices</p>\r
+<p class="whs5"># create a face</p>\r
 \r
 <p class="whs4">px &nbsp;&nbsp;= \r
  geompy.MakeVertex(100., 0. &nbsp;, \r
@@ -765,96 +783,71 @@ a straight edge in a fixed number of segments</p>
  geompy.MakeVertex(0. &nbsp;, \r
  0. &nbsp;, 100.)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a vector from \r
- two points</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
 <p class="whs4">vxy = geompy.MakeVector(px, \r
  py)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create an arc from three \r
- points</p>\r
-\r
 <p class="whs4">arc = geompy.MakeArc(py, \r
  pz, px)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a wire</p>\r
-\r
 <p class="whs4">wire = geompy.MakeWire([vxy, \r
  arc])</p>\r
 \r
-<p class="whs4">isPlanarFace = 1</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs5"># create a face from the \r
- wire</p>\r
+<p class="whs4">isPlanarFace = 1</p>\r
 \r
-<p class="whs4">face1 = geompy.MakeFace(wire, \r
+<p class="whs4">face = geompy.MakeFace(wire, \r
  isPlanarFace)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># add objects in the study</p>\r
-\r
-<p class="whs4">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># display faces</p>\r
-\r
-<p class="whs4">gg.createAndDisplayGO(id_face1)</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4">gg.setDisplayMode(id_face1,1)</p>\r
+<p class="whs5"># add the face in the \r
+ study</p>\r
 \r
-<p class="whs4">gg.setTransparency(id_face1,0.2)</p>\r
+<p class="whs4">id_face = geompy.addToStudy(face, \r
+ &quot;Face to be meshed&quot;)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a hexahedral mesh</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4">hexa = smesh.Mesh(face1, \r
- &quot;Face compound : hexahedrical mesh&quot;)</p>\r
+<p class="whs5"># create a mesh</p>\r
 \r
-<p class="whs4">algo = hexa.Triangle()</p>\r
+<p class="whs4">tria_mesh = smesh.Mesh(face, \r
+ &quot;Face : triangulation&quot;)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs5"># define &quot;MaxElementArea&quot; \r
- hypothesis to be applied to each triangle</p>\r
+<p class="whs5"># define 1D meshing:</p>\r
 \r
-<p class="whs4">algo.MaxElementArea(7)</p>\r
+<p class="whs4">algo = tria_mesh.Segment()</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">algo.NumberOfSegments(20)</p>\r
 \r
-<p class="whs5"># create a quadrangle 2D \r
- algorithm for faces</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4">hexa.Quadrangle()</p>\r
+<p class="whs5"># define 2D meshing:</p>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs5"># create a local hypothesis</p>\r
+<p class="whs5"># assign triangulation \r
+ algorithm</p>\r
 \r
-<p class="whs6">algo = hexa.Segment(wire)</p>\r
+<p class="whs4">algo = tria_mesh.Triangle()</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs5"># define &quot;NumberOfSegments&quot; \r
hypothesis to cut an edge in a fixed number of segments</p>\r
+<p class="whs5"># apply &quot;Max Element \r
Area&quot; hypothesis to each triangle</p>\r
 \r
-<p class="whs4">algo.NumberOfSegments(10)</p>\r
+<p class="whs4">algo.MaxElementArea(100)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
 <p class="whs5"># compute the mesh</p>\r
 \r
-<p class="whs4">hexa.Compute() </p>\r
+<p class="whs4">tria_mesh.Compute() \r
+ &nbsp;</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
@@ -867,6 +860,10 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">import StdMeshers</p>\r
 \r
+<p class="whs4">import NETGENPlugin</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
 <p class="whs4">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
  &quot;SMESH&quot;)</p>\r
 \r
@@ -876,14 +873,16 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># create a box</p>\r
+<p class="whs5"># create a box</p>\r
 \r
 <p class="whs4">box = geompy.MakeCylinderRH(30, \r
- 50) #MakeBox(0., 0., 0., 100., 200., 300.)</p>\r
+ 50) #MakeBox(0., 0., 0., </p>\r
+\r
+<p class="whs4">100., 200., 300.)</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># add the box to the \r
+<p class="whs5"># add the box in the \r
  study</p>\r
 \r
 <p class="whs4">idbox = geompy.addToStudy(box, \r
@@ -891,83 +890,11 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># create vertices</p>\r
-\r
-<p class="whs4">px &nbsp;&nbsp;= \r
- geompy.MakeVertex(100., 0. &nbsp;, \r
- 0. &nbsp;)</p>\r
-\r
-<p class="whs4">py &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 100., 0. &nbsp;)</p>\r
-\r
-<p class="whs4">pz &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 0. &nbsp;, 100.)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create a vector from \r
- two points</p>\r
-\r
-<p class="whs4">vxy = geompy.MakeVector(px, \r
- py)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create an arc from \r
- three points</p>\r
-\r
-<p class="whs4">arc = geompy.MakeArc(py, \r
- pz, px)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create a wire</p>\r
-\r
-<p class="whs4">wire = geompy.MakeWire([vxy, \r
- arc])</p>\r
-\r
-<p class="whs4">isPlanarFace = 1</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create a face from \r
- the wire</p>\r
-\r
-<p class="whs4">#face1</p>\r
-\r
-<p class="whs4">box = geompy.MakeFace(wire, \r
- isPlanarFace)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># add objects in the \r
- study</p>\r
-\r
-<p class="whs4">id_face1 = geompy.addToStudy(box,&quot;Face1&quot;)</p>\r
-\r
-<p class="whs4">#geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># display faces</p>\r
-\r
-<p class="whs4">gg.createAndDisplayGO(id_face1)</p>\r
+<p class="whs5"># create a set of hypotheses</p>\r
 \r
-<p class="whs4">gg.setDisplayMode(id_face1,1)</p>\r
-\r
-<p class="whs4">gg.setTransparency(id_face1,0.2)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create a hypothesis</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- create Hypothesis&quot;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs4">print &quot;-------------------------- \r
- NumberOfSegments&quot;</p>\r
+<p class="whs5"># Number of Segments</p>\r
 \r
 <p class="whs4">numberOfSegments \r
  = 7</p>\r
@@ -979,15 +906,14 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">print hypNbSeg.GetName()</p>\r
 \r
-<p class="whs4">print hypNbSeg.GetId()</p>\r
-\r
 <p class="whs4">print hypNbSeg.GetNumberOfSegments()</p>\r
 \r
 <p class="whs4">smeshgui.SetName(salome.ObjectToID(hypNbSeg), \r
- &quot;NumberOfSegments_10&quot;)</p>\r
+ &quot;NumberOfSegments_7&quot;)</p>\r
 \r
-<p class="whs4">print &quot;-------------------------- \r
- MaxElementArea&quot;</p>\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs5"># Max Element Area</p>\r
 \r
 <p class="whs4">maxElementArea = \r
  800</p>\r
@@ -999,15 +925,14 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">print hypArea.GetName()</p>\r
 \r
-<p class="whs4">print hypArea.GetId()</p>\r
-\r
 <p class="whs4">print hypArea.GetMaxElementArea()</p>\r
 \r
 <p class="whs4">smeshgui.SetName(salome.ObjectToID(hypArea), \r
  &quot;MaxElementArea_800&quot;)</p>\r
 \r
-<p class="whs4">print &quot;-------------------------- \r
- MaxElementVolume&quot;</p>\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs5"># Max Element Volume</p>\r
 \r
 <p class="whs4">maxElementVolume \r
  = 900</p>\r
@@ -1019,8 +944,6 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">print hypVolume.GetName()</p>\r
 \r
-<p class="whs4">print hypVolume.GetId()</p>\r
-\r
 <p class="whs4">print hypVolume.GetMaxElementVolume()</p>\r
 \r
 <p class="whs4">smeshgui.SetName(salome.ObjectToID(hypVolume), \r
@@ -1028,13 +951,11 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># create algorithms</p>\r
+<p class="whs5"># create a set of algorithms</p>\r
 \r
-<p class="whs4">print &quot;-------------------------- \r
- create Algorithms&quot;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs4">print &quot;-------------------------- \r
- Regular_1D&quot;</p>\r
+<p class="whs5"># Regular_1D</p>\r
 \r
 <p class="whs4">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
  &quot;libStdMeshersEngine.so&quot;)</p>\r
@@ -1042,8 +963,9 @@ a straight edge in a fixed number of segments</p>
 <p class="whs4">smeshgui.SetName(salome.ObjectToID(regular1D), \r
  &quot;Wire Discretisation&quot;)</p>\r
 \r
-<p class="whs4">print &quot;-------------------------- \r
- MEFISTO_2D&quot;</p>\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs5"># MEFISTO_2D</p>\r
 \r
 <p class="whs4">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
  &quot;libStdMeshersEngine.so&quot;)</p>\r
@@ -1051,18 +973,20 @@ a straight edge in a fixed number of segments</p>
 <p class="whs4">smeshgui.SetName(salome.ObjectToID(mefisto2D), \r
  &quot;MEFISTO_2D&quot;)</p>\r
 \r
-<p class="whs4">#print &quot;-------------------------- \r
- Hexa_3D (Hexahedron meshing algorithm)&quot;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4">hexa3D = smesh.CreateHypothesis(&quot;Hexa_3D&quot;, \r
&quot;libStdMeshersEngine.so&quot;)</p>\r
+<p class="whs5"># NETGEN_3D (Tetrahedron \r
meshing algorithm)</p>\r
 \r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(hexa3D), \r
- &quot;HEXA_3D&quot;)</p>\r
+<p class="whs4">tetra3D = smesh.CreateHypothesis(&quot;NETGEN_3D&quot;, \r
+ &quot;libNETGENEngine.so&quot;)</p>\r
+\r
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(tetra3D), \r
+ &quot;NETGEN_3D&quot;)</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># initialize a mesh \r
+<p class="whs5"># initialize a mesh \r
  with the box</p>\r
 \r
 <p class="whs4">mesh = smesh.CreateMesh(box)</p>\r
@@ -1072,11 +996,8 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># add a hypothesis \r
- to the box</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- add hypothesis to the box&quot;</p>\r
+<p class="whs5"># add hypotheses and \r
+ algorithms to the box</p>\r
 \r
 <p class="whs4">mesh.AddHypothesis(box,hypNbSeg)</p>\r
 \r
@@ -1088,43 +1009,41 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">mesh.AddHypothesis(box,mefisto2D)</p>\r
 \r
-<p class="whs4">mesh.AddHypothesis(box,hexa3D)</p>\r
+<p class="whs4">mesh.AddHypothesis(box,tetra3D)</p>\r
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs7"># compute the mesh</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- compute the mesh of the box&quot;</p>\r
+<p class="whs5"># compute the mesh</p>\r
 \r
 <p class="whs4">ret = smesh.Compute(mesh,box)</p>\r
 \r
-<p class="whs4">print ret</p>\r
-\r
 <p class="whs4">if ret == 0:</p>\r
 \r
 <p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print \r
  &quot;probleme when computing the mesh&quot;</p>\r
 \r
-<p class="whs4">salome.sg.updateObjBrowser(1)</p>\r
+<p class="whs4">else:</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print \r
+ &quot;Computation succeded&quot;</p>\r
 \r
-<h3>Defining Additional Hypotheses</h3>\r
+<p class="whs4">salome.sg.updateObjBrowser(1) \r
+ </p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
 \r
 <h4><a name=bookmark6>Length from Edges</a></h4>\r
 \r
-<p class="whs2">import smesh</p>\r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import \r
+ salome</span></p>\r
 \r
 <p class="whs2">import geompy</p>\r
 \r
-<p class="whs2">import salome</p>\r
-\r
-<p class="whs2">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
+<p class="whs2">import smesh</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p># create sketchers</p>\r
+<p class="whs3"># create sketchers</p>\r
 \r
 <p class="whs2">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F \r
  0 0:TT 70 0:TT 70 70:TT 0 70:WW&quot;)</p>\r
@@ -1134,77 +1053,66 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs2">isPlanarFace = 1</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p># create faces from two wires</p>\r
+<p class="whs3"># create a face from \r
+ two wires</p>\r
 \r
 <p class="whs2">face1 = geompy.MakeFaces([sketcher1, \r
  sketcher2],isPlanarFace)</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p># add objects in the study</p>\r
+<p class="whs3"># add object in the study</p>\r
 \r
 <p class="whs2">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
 \r
-<p>&nbsp;</p>\r
-\r
-<p># display faces</p>\r
-\r
-<p class="whs2">gg.createAndDisplayGO(id_face1)</p>\r
-\r
-<p class="whs2">gg.setDisplayMode(id_face1,1)</p>\r
-\r
-<p class="whs2">gg.setTransparency(id_face1,0.2)</p>\r
-\r
-<p>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p># create a mesh</p>\r
+<p class="whs3"># create a mesh</p>\r
 \r
-<p class="whs2">hexa = smesh.Mesh(face1, \r
+<p class="whs2">tria = smesh.Mesh(face1, \r
  &quot;Face : triangle 2D mesh&quot;)</p>\r
 \r
-<p class="whs2">algo = hexa.Triangle()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;MaxElementArea&quot; hypothesis to be applied to each \r
- triangle</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2">algo.MaxElementArea(30)</p>\r
+<p class="whs3"># Define 1D meshing</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs2">algo = tria.Segment()</p>\r
 \r
-<p># define &quot;LengthFromEdges&quot; hypothesis to build triangles based \r
- on the length of the edges taken from the wire</p>\r
+<p class="whs2">algo.NumberOfSegments(2)</p>\r
 \r
-<p class="whs2">algo.LengthFromEdges()</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs3"># create and assign the \r
+ algorithm for 2D meshing with triangles</p>\r
 \r
-<p># create local hypothesis</p>\r
+<p class="whs2">algo = tria.Triangle()</p>\r
 \r
-<p class="whs2">algo = hexa.Segment()</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs3"># create and assign &quot;LengthFromEdges&quot; \r
+ hypothesis to build triangles </p>\r
 \r
-<p># define &quot;NumberOfSegments&quot; hypothesis to cut an edge in a \r
fixed number of segments</p>\r
+<p class="whs3"># based on the length \r
of the edges taken from the wire</p>\r
 \r
-<p class="whs2">algo.NumberOfSegments(2)</p>\r
+<p class="whs2">algo.LengthFromEdges()</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p># compute the mesh</p>\r
+<p class="whs3"># compute the mesh</p>\r
 \r
-<p class="whs2">hexa.Compute() </p>\r
+<p class="whs2">tria.Compute() </p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
+<h3>Defining Additional Hypotheses</h3>\r
+\r
 <h4><a name=bookmark7>Propagation</a></h4>\r
 \r
-<p class="whs2">from geompy import \r
*</p>\r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from \r
geompy import *</span></p>\r
 \r
 <p class="whs2">import smesh</p>\r
 \r
@@ -1302,21 +1210,15 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs3"># create a solid</p>\r
 \r
-<p class="whs2">Block = MakeHexa(FaceX11, \r
+<p class="whs2">box = MakeHexa(FaceX11, \r
  FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"># create a compound</p>\r
-\r
-<p class="whs2">box = MakeCompound([Block])</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
 <p class="whs3"># add in the study</p>\r
 \r
 <p class="whs2">box_id = addToStudy(box, \r
- &quot;Box compound&quot;)</p>\r
+ &quot;Box&quot;)</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
@@ -1324,7 +1226,12 @@ a straight edge in a fixed number of segments</p>
  mesh on the box</p>\r
 \r
 <p class="whs2">hexa = smesh.Mesh(box, \r
- &quot;Box compound : hexahedrical mesh&quot;)</p>\r
+ &quot;Box : hexahedrical mesh&quot;)</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs3"># create an 1D algorithm \r
+ for edges</p>\r
 \r
 <p class="whs2">algo = hexa.Segment()</p>\r
 \r
@@ -1357,11 +1264,9 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"><span style="font-family: 'Times New Roman', serif;"># \r
- define &quot;Arithmetic1D&quot; hypothesis to cut an edge in several segments \r
- with arithmetic length</span> </p>\r
-\r
-<p class="whs2">increasing</p>\r
+<p class="whs3"># define &quot;Arithmetic1D&quot; \r
+ hypothesis to cut an edge<span style="font-family: 'Times New Roman', serif;"> \r
+ in several segments with increasing length</span></p>\r
 \r
 <p class="whs2">algo.Arithmetic1D(1, \r
  4)</p>\r
@@ -1369,8 +1274,10 @@ a straight edge in a fixed number of segments</p>
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs3"># define &quot;Propagation&quot; \r
- hypothesis that propagatea all other hypothesis on all edges on the opposite \r
- side in case of quadrangular faces</p>\r
+ hypothesis that propagates all other 1D hypotheses</p>\r
+\r
+<p class="whs3"># from all edges on the \r
+ opposite side of a face in case of quadrangular faces</p>\r
 \r
 <p class="whs2">algo.Propagation()</p>\r
 \r
@@ -1378,9 +1285,7 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs3"># compute the mesh</p>\r
 \r
-<p class="whs2">hexa.Compute() </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs2">hexa.Compute() &nbsp;</p>\r
 \r
 <h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>\r
 \r
@@ -1400,9 +1305,9 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">smeshgui.Init(salome.myStudyId);</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs5"># create algorithms</p>\r
+<p class="whs6"># create algorithms</p>\r
 \r
 <p class="whs4">print &quot;-------------------------- \r
  create Algorithms&quot;</p>\r
@@ -1462,7 +1367,7 @@ a straight edge in a fixed number of segments</p>
 \r
 <p class="whs4">salome.sg.updateObjBrowser(1)</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 8195fc5802f194386ab7395b729572083c2f18b0..aaf2b11219628a19f81d0d17785c7549b8c9af50 100755 (executable)
@@ -14,8 +14,9 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; height:282px; width:259px; }\r
-img_whs2 { border:none; height:287px; width:257px; }\r
+p.whs1 { margin-left:40px; font-weight:bold; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; height:285px; width:260px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -73,24 +74,18 @@ else
 </script>\r
 <h1>Display Entity</h1>\r
 \r
-<p>In this submenu you can choose to display only faces,</p>\r
+<p>In this submenu you can choose to display only volumes, faces or edges \r
+ or combine them. </p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="image56.jpg" height="282px" width="259px" border="0" class="img_whs1"></p>\r
+<p class="whs1">Only Faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Only \r
+ Edges</p>\r
 \r
-<p>&nbsp;</p>\r
-\r
-<p>only edges, </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="image58.gif" height="287px" width="257px" border="0" class="img_whs2"></p>\r
+<p class="whs2"><img src="image56.jpg" height="285px" width="260px" border="0" class="img_whs3"> &nbsp;<img src="image58.gif" height="285px" width="260px" border="0" class="img_whs3"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p>or both.</p>\r
-\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
index 1ae2b7b8bd5eb79c2319accfd884e37a23c17ae9..b92ec65465b88afa9987d57acc92c4f7d239b57b 100755 (executable)
@@ -23,7 +23,7 @@ td.whs6 { width:50%; padding-right:10px; padding-left:10px; border-top-style:non
 img_whs7 { border:none; width:350px; height:323px; border-style:none; }\r
 p.whs8 { margin-left:40px; }\r
 img_whs9 { border:none; width:27px; height:24px; border-style:none; }\r
-img_whs10 { border:none; width:434px; height:541px; border-style:none; float:none; }\r
+img_whs10 { border:none; width:434px; height:541px; float:none; border-style:none; }\r
 ul.whs11 { list-style:disc; }\r
 p.whs12 { margin-left:84px; }\r
 img_whs13 { border:none; width:26px; height:25px; border-style:none; }\r
@@ -121,7 +121,8 @@ else
 \r
 <p class="whs8">&nbsp;</p>\r
 \r
-<p class=TODO><img src="pics/a-extusionalongapath2.png" x-maintain-ratio="TRUE" width="434px" height="541px" border="0" class="img_whs10"></p>\r
+<p class=TODO\r
+       style="margin-left: 80px;"><img src="pics/a-extusionalongapath2.png" x-maintain-ratio="TRUE" width="434px" height="541px" border="0" class="img_whs10"></p>\r
 \r
 <p class="whs8">&nbsp;</p>\r
 \r
index 1ed1981452bd572bb55caca424a203e3ca7633e5..568ceec0ca689a5dd95964a28c9dbaf489a7e9dd 100755 (executable)
@@ -109,41 +109,46 @@ else
        <ul type="disc" class="whs2">\r
                \r
                <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Arithmetic \r
- 1D</p></li>\r
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>\r
                \r
                <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Average \r
- Length</p></li>\r
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#Average_length">Average Length</a></p></li>\r
                \r
                <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Deflection \r
- 1D </p></li>\r
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>\r
                \r
                <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Number \r
- of segments</p></li>\r
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>\r
                \r
                <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Start \r
- and end length</p></li>\r
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>\r
+               \r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>\r
        </ul>\r
        \r
        <li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
                type=circle\r
-               class=kadov-p><p class="whs3">2D \r
- Hypothesis (for meshing of <span style="font-weight: bold;"><B>faces)</B></span>: \r
- </p></li>\r
+               class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm">2D Hypotheses</a> (for meshing \r
+ 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
                <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm">Max Element Area</a></p></li>\r
+                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#max_element_area">Max Element Area</a></p></li>\r
+               \r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#length_from_edges">Length from \r
+ Edges</a></p></li>\r
+               \r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#quadrangle preference">Quadrangle \r
+ Preference</a></p></li>\r
        </ul>\r
-</ul>\r
+</ol>\r
 \r
 <ul type="disc" class="whs2">\r
        \r
@@ -165,17 +170,17 @@ else
 <p>There also exist some <a href="non_conform_mesh_allowed_hypothesis.htm">Additional \r
  Hypotheses</a></p>\r
 \r
-<ol type="disc" class="whs4">\r
+<ul type="disc" class="whs2">\r
        \r
        <ul type="disc" class="whs2">\r
                \r
                <li class=kadov-p><p>Propagation of 1D Hypothesis on opposite edges</p></li>\r
                \r
-               <li class=kadov-p><p>Length from edges</p></li>\r
-               \r
                <li class=kadov-p><p>Non conform mesh allowed</p></li>\r
+               \r
+               <li class=kadov-p><p>Quadratic mesh</p></li>\r
        </ul>\r
-</ol>\r
+</ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
index f52da280fc12234ba8a374f27d77331e6d2406dc..d102825c25e0f17aed65a57a375841158cbf81c2 100755 (executable)
@@ -154,6 +154,8 @@ else
        \r
        <li class=kadov-p><p class="whs1"><a href="../aspect_ratio_3d.htm">Aspect \r
  ratio 3D</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><a href="../volume.htm">Volume</a></p></li>\r
 </ul>\r
 \r
 <p class="whs1">&nbsp;</p>\r
index 420454e40f6fd445974500294212d87664d71c1a..89d6dc5b9254f025aa286a2aae8b000a79d4d5e0 100755 (executable)
@@ -17,19 +17,19 @@ if (navigator.appName !="Netscape")
 ul.whs1 { list-style:disc; }\r
 p.whs2 { font-weight:bold; }\r
 p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:157px; height:132px; border-style:none; }\r
+img_whs4 { border:none; width:155px; height:189px; border-style:none; }\r
 img_whs5 { border:none; width:332px; height:222px; float:none; border-style:none; }\r
-img_whs6 { border:none; border-style:none; width:257px; height:247px; float:none; }\r
+img_whs6 { border:none; width:257px; height:247px; float:none; border-style:none; }\r
 img_whs7 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
-img_whs8 { border:none; width:260px; height:255px; float:none; }\r
+img_whs8 { border:none; width:260px; height:255px; float:none; border-style:none; }\r
 img_whs9 { border:none; width:332px; height:257px; float:none; border-style:none; }\r
-img_whs10 { border:none; width:275px; height:254px; float:none; }\r
+img_whs10 { border:none; width:275px; height:254px; float:none; border-style:none; }\r
 h4.whs11 { margin-left:40px; }\r
-img_whs12 { border:none; float:none; width:280px; height:258px; }\r
-img_whs13 { border:none; width:251px; height:258px; float:none; }\r
+img_whs12 { border:none; float:none; width:280px; height:258px; border-style:none; }\r
+img_whs13 { border:none; width:251px; height:258px; float:none; border-style:none; }\r
 img_whs14 { border:none; width:350px; height:184px; border-style:none; }\r
 img_whs15 { border:none; width:332px; height:430px; float:none; border-style:none; }\r
-img_whs16 { border:none; width:369px; height:360px; float:none; }\r
+img_whs16 { border:none; width:369px; height:360px; float:none; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -87,7 +87,7 @@ else
 </script>\r
 <h1>Adding nodes and elements</h1>\r
 \r
-<p>In SMESH you can add to your mesh different elements such as:</p>\r
+<p>In MESH you can add to your mesh different elements such as:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -101,9 +101,13 @@ else
        \r
        <li class=kadov-p><p class="whs2"><a href="#Adding_quadrangles">Quadrangles</a></p></li>\r
        \r
+       <li class=kadov-p><p class="whs2"><a href="#Adding_polygons">Polygons</a></p></li>\r
+       \r
        <li class=kadov-p><p class="whs2"><a href="#Adding_tetrahedrons">Tetrahedrons</a></p></li>\r
        \r
        <li class=kadov-p><p class="whs2"><a href="#Adding_hexahedrons">Hexahedrons</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a href="#Adding_polyhedrons">Polyhedrons</a></p></li>\r
 </ul>\r
 \r
 <p>&nbsp;</p>\r
@@ -123,9 +127,7 @@ else
 \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
+<p class="whs3"><img src="../image146.gif" width="155px" height="189px" border="0" class="img_whs4"></p>\r
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
@@ -143,7 +145,11 @@ else
 \r
 <h4><a name=Adding_nodes>Adding nodes</a></h4>\r
 \r
-<p class="whs3"><img src="../pics/addnode.png" x-maintain-ratio="TRUE" width="332px" height="222px" border="0" class="img_whs5"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_node.png" x-maintain-ratio="TRUE" width="257px" height="247px" border="0" class="img_whs6"></p>\r
+<p class="whs3"><img src="../pics/addnode.png" x-maintain-ratio="TRUE" width="332px" height="222px" border="0" class="img_whs5"> &nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;<img src="../pics/add_node.png" x-maintain-ratio="TRUE" width="257px" height="247px" border="0" class="img_whs6"></p>\r
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
@@ -197,7 +203,8 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<h4><a name=Adding_quadrangles1>Adding polygons </a></h4>\r
+<h4><a name=Adding_polygons>Adding polygons</a><a name=Adding_quadrangles1> \r
+ </a></h4>\r
 \r
 <h4 class="whs11"><img src="../pics/addpolygon.png" x-maintain-ratio="TRUE" width="332px" height="257px" border="0" class="img_whs9"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_polygone.png" x-maintain-ratio="TRUE" width="251px" height="258px" border="0" class="img_whs13"></h4>\r
 \r
@@ -244,7 +251,7 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<h4><a name=Adding_hexahedrons1>Adding polyhedrons</a></h4>\r
+<h4><a name=Adding_polyhedrons>Adding polyhedrons</a></h4>\r
 \r
 <p class="whs3"><img src="../pics/a-createpolyhedralvolume.png" x-maintain-ratio="TRUE" width="332px" height="430px" border="0" class="img_whs15"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_polyhedron.png" x-maintain-ratio="TRUE" width="369px" height="360px" border="0" class="img_whs16"></p>\r
 \r
index d92aa5ef322019902a3ad5632a81d0f454dab9ee..5f8bcb65ee021136505fa66dea68b88f5f0063be 100755 (executable)
@@ -89,7 +89,7 @@ else
 \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>Area </B></span>mesh quality \r
  control is based on the algorithm of area calculation of &nbsp;meshing \r
- elements . It can be applied to meshes consisting of 2D meshing elements \r
+ elements. It can be applied to meshes consisting of 2D meshing elements \r
  with 3 and 4 nodes (triangles and quadrangles). &nbsp;&nbsp;&nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
@@ -116,7 +116,7 @@ else
 <p class="whs5">&nbsp;</p>\r
 \r
 <p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of an <a href="../quality_controls.htm#bookmark7">Area \r
+ a sample TUI Script of an <a href="../quality_controls.htm#bookmark6">Area \r
  quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index ead4f03b7c2ee062a089a1d72e04f24762628b21..6a4e2b48a230056bcf33ca041a601e40232f059e 100755 (executable)
@@ -14,28 +14,36 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; width:332px; height:238px; float:none; border-style:none; }\r
-img_whs2 { border:none; width:309px; height:316px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
-img_whs4 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
-img_whs5 { border:none; width:267px; height:339px; float:none; }\r
-p.whs6 { font-weight:bold; }\r
-img_whs7 { border:none; width:367px; height:224px; border-style:none; float:right; }\r
-img_whs8 { border:none; width:252px; height:243px; float:none; }\r
-p.whs9 { font-weight:bold; margin-left:40px; }\r
-img_whs10 { border:none; width:431px; height:233px; border-style:none; float:right; }\r
-img_whs11 { border:none; width:395px; height:387px; float:none; }\r
-img_whs12 { border:none; width:332px; height:264px; float:none; border-style:none; }\r
-img_whs13 { border:none; width:333px; height:386px; float:none; border-style:none; }\r
-img_whs14 { border:none; width:333px; height:285px; float:none; border-style:none; }\r
-img_whs15 { border:none; width:287px; height:305px; float:none; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { background-color:Transparent; color:#000000; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:332px; height:238px; float:none; border-style:none; }\r
+img_whs5 { border:none; width:309px; height:316px; float:none; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+img_whs7 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
+img_whs8 { border:none; width:267px; height:339px; float:none; border-style:none; }\r
+p.whs9 { font-weight:bold; }\r
+img_whs10 { border:none; width:367px; height:224px; border-style:none; float:right; }\r
+img_whs11 { border:none; width:252px; height:243px; float:none; border-style:none; }\r
+p.whs12 { font-weight:bold; margin-left:40px; }\r
+img_whs13 { border:none; width:431px; height:233px; border-style:none; float:right; }\r
+img_whs14 { border:none; width:395px; height:387px; float:none; border-style:none; }\r
+img_whs15 { border:none; width:332px; height:264px; float:none; border-style:none; }\r
+img_whs16 { border:none; width:368px; height:760px; float:none; border-style:none; }\r
+h3.whs17 { margin-left:40px; }\r
+img_whs18 { border:none; width:365px; height:605px; float:none; border-style:none; }\r
+img_whs19 { border:none; width:287px; height:305px; float:none; border-style:none; }\r
+img_whs20 { border:none; width:205px; height:175px; float:none; border-style:none; }\r
+img_whs21 { border:none; width:195px; height:192px; border-style:none; }\r
+img_whs22 { border:none; width:206px; height:195px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1pt; }";\r
+  strNSS += "p.whs2 {background-color:white; }";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -97,7 +105,34 @@ else
 </script>\r
 <h1>1D Meshing Hypotheses</h1>\r
 \r
-<h3>Arithmetic 1D hypothesis</h3>\r
+<ul type="disc" class="whs1">\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#arithmetic_1D"><span \r
+ style="font-weight: bold;"><B>Arithmetic 1D</B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#Average_length"><span \r
+ style="font-weight: bold;"><B>Average Length</B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#deflection_1D"><span \r
+ style="font-weight: bold;"><B>Deflection 1D </B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#Number_of_elements"><span \r
+ style="font-weight: bold;"><B>Number of segments</B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#start_and_end_length"><span \r
+ style="font-weight: bold;"><B>Start and end length</B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#automatic_length"><span \r
+ style="font-weight: bold;"><B>Automatic Length</B></span></a></p></li>\r
+</ul>\r
+\r
+<h3><a name=arithmetic_1D>Arithmetic 1D hypothesis</a></h3>\r
 \r
 <p><span style="font-weight: bold;"><B>Arithmetic 1D</B></span> hypothesis allows \r
  to split edges into segments with a length that changes in arithmetic \r
@@ -106,15 +141,15 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../pics/a-arithmetic1d.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs1"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-ithmetic1d.png" x-maintain-ratio="TRUE" width="309px" height="316px" border="0" class="img_whs2"></p>\r
+<p class="whs3"><img src="../pics/a-arithmetic1d.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-ithmetic1d.png" x-maintain-ratio="TRUE" width="309px" height="316px" border="0" class="img_whs5"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark">Defining \r
  Arithmetic 1D hypothesis</a> operation. &nbsp;</p>\r
 \r
-<h3><span style="font-weight: bold;"><B>Deflection</B></span> 1D hypothesis</h3>\r
+<h3><a name=deflection_1D>Deflection 1D hypothesis</a></h3>\r
 \r
 <p><span style="font-weight: bold;"><B>Deflection ID </B></span>hypothesis can \r
  be applied for meshing curvilinear edges composing your geometrical object. \r
@@ -128,19 +163,19 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../pics/a-deflection1d.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-flection1d.png" x-maintain-ratio="TRUE" width="267px" height="339px" border="0" class="img_whs5"></p>\r
+<p class="whs3"><img src="../pics/a-deflection1d.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs7"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-flection1d.png" x-maintain-ratio="TRUE" width="267px" height="339px" border="0" class="img_whs8"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark9">Defining \r
  Deflection 1D hypothesis</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs6"><img src="../image41.gif" x-maintain-ratio="TRUE" width="367px" height="224px" align="right" border="0" class="img_whs7"></p>\r
+<p class="whs9"><img src="../image41.gif" x-maintain-ratio="TRUE" width="367px" height="224px" align="right" border="0" class="img_whs10"></p>\r
 \r
-<h3>Average Length hypothesis</h3>\r
+<h3><a name=Average_length>Average Length hypothesis</a></h3>\r
 \r
 <p><span style="font-weight: bold;"><B>Average Length </B></span>hypothesis can \r
  be applied for meshing of edges composing your geometrical object. Definition \r
@@ -151,19 +186,19 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../pics/a-averagelength.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-erage_length.png" x-maintain-ratio="TRUE" width="252px" height="243px" border="0" class="img_whs8"></p>\r
+<p class="whs3"><img src="../pics/a-averagelength.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs7"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-erage_length.png" x-maintain-ratio="TRUE" width="252px" height="243px" border="0" class="img_whs11"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark3">Defining \r
  Average Length hypothesis</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs9"><img src="../image46.gif" x-maintain-ratio="TRUE" width="431px" height="233px" align="right" border="0" class="img_whs10"></p>\r
+<p class="whs12"><img src="../image46.gif" x-maintain-ratio="TRUE" width="431px" height="233px" align="right" border="0" class="img_whs13"></p>\r
 \r
-<h3>Number of segments hypothesis </h3>\r
+<h3><a name=Number_of_elements>Number of segments hypothesis</a> </h3>\r
 \r
 <p><span style="font-weight: bold;"><B>Number of segments </B></span>hypothesis \r
  can be applied for meshing of edges composing your geometrical object. \r
@@ -176,53 +211,60 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3">You can set the type of distribution for this \r
+<p class="whs6">You can set the type of distribution for this \r
  hypothesis in the <span style="font-weight: bold;"><B>Hypothesis Construction</B></span> \r
  dialog bog : </p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>Equidistant \r
+ Distribution</B></span> - all segments will have the same length, you define \r
+ only the <span style="font-weight: bold;"><B>Number of Segments</B></span>.</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>Equidistant \r
- Distribution</B></span> - all segments will have the same length</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p><img src="../pics/a-nbsegments1.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs1"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-mberofsegments.png" x-maintain-ratio="TRUE" width="395px" height="387px" border="0" class="img_whs11"></p>\r
+<p class="whs3"><img src="../pics/a-nbsegments1.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-mberofsegments.png" x-maintain-ratio="TRUE" width="395px" height="387px" border="0" class="img_whs14"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs6">Scale Distribution - <span style="font-weight: normal;">each \r
+<p class="whs9">Scale Distribution - <span style="font-weight: normal;">each \r
  next segment differs from the previous according to the formula:</span> \r
  A<span style="vertical-align: Sub;">i+1</span> = A<span style="vertical-align: Sub;">i \r
- </span>* k, <span style="font-weight: normal;">where</span> k <span style="font-weight: normal;">is</span> \r
Scale Factor </p>\r
+ </span>* k, <span style="font-weight: normal;">where</span> k <span style="font-weight: normal;">is \r
a</span> Scale Factor. </p>\r
 \r
-<p class="whs6"><img src="../pics/a-nbsegments2.png" x-maintain-ratio="TRUE" width="332px" height="264px" border="0" class="img_whs12">\</p>\r
+<p class="whs12"><img src="../pics/a-nbsegments2.png" x-maintain-ratio="TRUE" width="332px" height="264px" border="0" class="img_whs15">\</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs9">&nbsp;</p>\r
 \r
-<p class="whs6">Distribution with Table Density - <span style="font-weight: normal;">you \r
- input a number of pairs</span> t - F(t) <span style="font-weight: normal;">and \r
- the program computes the formula, which will rule the change of length \r
- of segments.</span></p>\r
+<p class="whs9">Distribution with Table Density - <span style="font-weight: normal;">you \r
+ input a number of pairs</span> t - F(t),<span style="font-weight: normal;"> \r
+ where </span>t<span style="font-weight: normal;"> ranges from 0 to 1,</span> \r
+ &nbsp;<span style="font-weight: normal;">and \r
+ the module computes the formula, which will rule the change of length \r
+ of segments and shows the curve in the plot. You can select the </span>Conversion \r
+ mode<span style="font-weight: normal;"> from </span>Exponent<span style="font-weight: normal;"> \r
+ and </span>Cut negative<span style="font-weight: normal;">. </span></p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs9">&nbsp;</p>\r
 \r
-<p class="whs6"><img src="../pics/a-nbsegments3.png" x-maintain-ratio="TRUE" width="333px" height="386px" border="0" class="img_whs13"></p>\r
+<p class="whs12"><img src="../pics/distributionwithtabledensity.png" x-maintain-ratio="TRUE" width="368px" height="760px" border="0" class="img_whs16"></p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs9">&nbsp;</p>\r
 \r
-<p class="whs6">Distribution with Analytic Density - <span \r
+<p class="whs9">Distribution with Analytic Density - <span \r
  style="font-weight: normal;">you input the formula, which will rule the \r
- change of length of segments</span></p>\r
+ change of length of segments and the module shows the curve in the plot.</span></p>\r
 \r
-<h3><img src="../pics/a-nbsegments4.png" x-maintain-ratio="TRUE" width="333px" height="285px" border="0" class="img_whs14"></h3>\r
+<h3 class="whs17"><img src="../pics/distributionwithanalyticdensity.png" x-maintain-ratio="TRUE" width="365px" height="605px" border="0" class="img_whs18"></h3>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark9">Defining \r
  Number of Segments hypothesis</a> operation. &nbsp;</p>\r
 \r
 <h3>&nbsp;</h3>\r
 \r
-<h3>Start and End Length hypothesis.</h3>\r
+<h3><a name=start_and_end_length>Start and End Length hypothesis.</a></h3>\r
 \r
 <p><span style="font-weight: bold;"><B>Start and End Length</B></span> hypothesis \r
  allows to divide a geometrical edge into segments so that the first and \r
@@ -233,15 +275,44 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../pics/a-startendlength.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs1"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-art_end_length.png" x-maintain-ratio="TRUE" width="287px" height="305px" border="0" class="img_whs15"></p>\r
+<p class="whs3"><img src="../pics/a-startendlength.png" x-maintain-ratio="TRUE" width="332px" height="238px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/b-art_end_length.png" x-maintain-ratio="TRUE" width="287px" height="305px" border="0" class="img_whs19"></p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark3">Defining \r
  Start and End Length &nbsp;hypothesis</a> \r
  operation. &nbsp;</p>\r
 \r
+<p class="whs6">&nbsp;</p>\r
+\r
+<h3><a name=automatic_length>Automatic Length</a></h3>\r
+\r
+<p>This hypothesis is automatically applied when you select <span style="font-weight: bold;"><B>Assign \r
+ a set of hypotheses</B></span> option in Create Mesh menu. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../pics/automaticlength.png" x-maintain-ratio="TRUE" width="205px" height="175px" border="0" class="img_whs20"> </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>The dialog box prompts you to define the quality of the future mesh \r
+ by only one parameter, which is <span style="font-weight: bold;"><B>Fineness</B></span>, \r
+ ranging from 0 (coarse mesh, low number of elements) to 1 (extremely fine \r
+ mesh, great number of elements). Compare one and the same object (sphere) \r
+ meshed with minimum and maximum value of this parameter. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image147.gif" width="195px" height="192px" border="0" class="img_whs21"> &nbsp;&nbsp;&nbsp;<img src="../image148.gif" width="206px" height="195px" border="0" class="img_whs22"></p>\r
+\r
+<p>&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
index 37b4dea756e3098d5d6c32b535a694b64087a376..a79bf0884ccab9effd70c9302aa0681771975322 100755 (executable)
@@ -15,21 +15,25 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-p.whs3 { margin-left:80px; }\r
-img_whs4 { border:none; width:238px; height:205px; border-style:none; }\r
-p.whs5 { margin-left:0px; }\r
-img_whs6 { border:none; width:226px; height:70px; border-style:none; }\r
-p.whs7 { margin-left:40px; }\r
-img_whs8 { border:none; width:25px; height:24px; border-style:none; }\r
-img_whs9 { border:none; width:439px; height:313px; border-style:none; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:120px; height:56px; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:158px; height:110px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:120px; height:48px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:234px; height:96px; float:none; border-style:none; }\r
+p.whs8 { margin-left:0px; }\r
+p.whs9 { margin-left:36px; }\r
+img_whs10 { border:none; width:622px; height:412px; float:none; border-style:none; }\r
+p.whs11 { margin-left:80px; }\r
+img_whs12 { border:none; width:25px; height:24px; border-style:none; }\r
+img_whs13 { border:none; width:439px; height:313px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs5 {margin-left:1pt; }";\r
+  strNSS += "p.whs8 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -92,63 +96,102 @@ else
 <h1>Aspect Ratio</h1>\r
 \r
 <p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The <span style="font-weight: bold;"><B>Aspect Ratio</B></span> \r
- quality criterion for mesh elements is defined as follows:</p>\r
+ quality criterion for mesh elements reveals the degree of conformity of \r
+ a mesh element to the regular element of its type (with all edges having \r
+ the same length). &nbsp;The \r
+ criterion can be defined as </p>\r
+\r
+<p class="whs2"><img src="../image142.gif" width="120px" height="56px" border="0" class="img_whs3">where <span style="font-weight: bold; font-style: italic;"><I><B>&#1050;</B></I></span> \r
+ is the considered element of the mesh, <span style="font-weight: bold; font-style: italic;"><I><B>h</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>max</B></I></span> is the diameter of the element \r
+ &#1050; (i.e. the length of the longest edge), <span style="font-weight: bold; font-style: italic;"><I><B>&#1088;</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>&#1082;</B></I></span> is the radius of the sphere \r
+ inscribed in the element K, and <span style="font-weight: bold; font-style: italic;"><I><B>a</B></I></span> \r
+ is a normalisation value chosen so that <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>K</B></I></span> = 1 when &#1050; is an equilateral \r
+ simplex. </p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p>The value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>K</B></I></span> varies between 1 and +oo and the \r
+ closer it is to 1, the better the element &#1050; is. </p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p>The <span style="font-weight: bold;"><B>Aspect Ratio</B></span> \r
+ of a <span style="font-weight: bold;"><B>triangle</B></span> 2D element consisting \r
+ of 3 nodes is calculated by the formula:</p></li>\r
+</ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For a <span style="font-weight: bold;"><B>triangle</B></span> \r
- 2D element consisting of 3 nodes the <span style="font-weight: bold;"><B>Aspect \r
- Ratio</B></span> is calculated by formula:\r
-<p>&nbsp;</p>\r
+<p class="whs2"><img src="../pics/image21.gif" x-maintain-ratio="TRUE" width="158px" height="110px" border="0" class="img_whs5"></p>\r
 \r
-<p><img src="../image21.gif" width="158px" height="110px" border="0" class="img_whs3"></p>\r
+<p class="whs2"><img src="../pics/image23.gif" x-maintain-ratio="TRUE" width="120px" height="48px" border="0" class="img_whs6"> ,</p>\r
 \r
-<p><img src="../image23.gif" width="120px" height="48px" border="0" class="img_whs4"></p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p>where :</p>\r
+<p class="whs2">where <span style="font-weight: bold; font-style: italic;"><I><B>&#1088;</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>&#1082;</B></I></span> is the half perimeter of the \r
+ element K and <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span \r
+ style="vertical-align: Sub;\r
+               font-weight: bold;\r
+               font-style: italic;"><I><B>K</B></I></span> is its surface.</p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p><img src="../image27.gif" width="234px" height="96px" border="0" class="img_whs5"></p>\r
+<p class="whs2"><img src="../pics/image27.gif" x-maintain-ratio="TRUE" width="234px" height="96px" border="0" class="img_whs7"></p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p>&nbsp;</p>\r
-</li>\r
-\r
-       <li class=kadov-p><p class="whs5">For a <span style="font-weight: bold;"><B>quadrangle</B></span> \r
- 2D element consisting of 4 nodes &nbsp;the \r
- <span style="font-weight: bold;"><B>Aspect Ratio </B></span>is the\r
- quality of the worst triange which can be built taking three nodes of\r
- the quadrangle. There are four triangles to consider:</p></li>\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs8">The <span style="font-weight: bold;"><B>Aspect \r
+ Ratio</B></span> of a <span style="font-weight: bold;"><B>quadrangle</B></span> 2D \r
+ element consisting of 4 nodes is the worst (i.e. the greatest) value from \r
+ all triangles which can be built taking three nodes of the quadrangle. \r
+ There are four triangles to consider: </p></li>\r
+</ul>\r
 \r
-<p><img src="../image138.gif" width="566px" border="0" class="img_whs6"></p>\r
+<p class="whs9"><img src="../pics/image138.gif" x-maintain-ratio="TRUE" width="622px" height="412px" border="0" class="img_whs10"></p>\r
 \r
-</ul>\r
+<p class="whs9">Note, that the Aspect Ratio criterion is \r
+ applicable to 2D mesh elements only. For 3D elements we use the <a href="../aspect_ratio_3d.htm">Aspect \r
+ Ratio 3D</a> criterion. &nbsp;&nbsp;</p>\r
 \r
+<p class="whs11">&nbsp;</p>\r
 \r
 <p class=TODO>To apply the Aspect Ratio quality criterion to your mesh:</p>\r
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs7">1. Display your mesh in the viewer.</p>\r
+<p class="whs2">1. Display your mesh in the viewer.</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs7">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs8"> button in the toolbar. \r
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ &gt; Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs12"> button in the toolbar. \r
  Your mesh will be displayed in the viewer with its elements colored according \r
  to the applied mesh quality control criterion:</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs7"><img src="../image94.jpg" width="439px" height="313px" border="0" class="img_whs9"></p>\r
+<p class="whs2"><img src="../image94.jpg" width="439px" height="313px" border="0" class="img_whs13"></p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs8"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of an <a href="../quality_controls.htm#bookmark8">Aspect \r
  Ratio quality control</a> operation. &nbsp;</p>\r
 \r
index fa7317e1dcceb0ded8a451b793d5a10afddd65e9..3bea1d007bde47d9d5857094a36e83907f3d1aa5 100755 (executable)
@@ -16,7 +16,7 @@ if (navigator.appName !="Netscape")
 <!--\r
 p.whs1 { margin-left:40px; }\r
 img_whs2 { border:none; width:21px; height:21px; border-style:none; }\r
-img_whs3 { border:none; width:306px; height:425px; border-style:none; float:none; }\r
+img_whs3 { border:none; width:306px; height:425px; float:none; border-style:none; }\r
 ul.whs4 { list-style:disc; }\r
 p.whs5 { margin-left:40px; font-weight:normal; }\r
 -->\r
@@ -136,6 +136,12 @@ else
  </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
  the operation.</p>\r
 \r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark12">Change \r
+ Orientation</a> operation. &nbsp;</p>\r
+\r
 <p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
index 481c03285c3460f036d27bd0c75587517981148b..895fc41f2d4f6e1077a4d906e83b18bd0609094a 100755 (executable)
@@ -19,14 +19,13 @@ ul.whs2 { list-style:disc; }
 p.whs3 { margin-left:40px; }\r
 img_whs4 { border:none; width:22px; height:24px; border-style:none; }\r
 p.whs5 { margin-left:80px; }\r
-img_whs6 { border:none; border-style:none; width:309px; height:296px; float:none; }\r
+img_whs6 { border:none; border-style:none; width:355px; height:296px; float:none; }\r
 img_whs7 { border:none; width:173px; height:88px; border-style:none; }\r
 img_whs8 { border:none; width:34px; height:29px; border-style:none; }\r
 img_whs9 { border:none; width:29px; height:28px; border-style:none; }\r
 img_whs10 { border:none; width:30px; height:29px; border-style:none; }\r
 img_whs11 { border:none; width:232px; height:142px; border-style:none; float:right; }\r
 img_whs12 { border:none; width:25px; height:24px; border-style:none; }\r
-img_whs13 { border:none; width:293px; height:350px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -120,7 +119,7 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs5"><img src="../pics/c-createmesh.png" x-maintain-ratio="TRUE" width="309px" height="296px" border="0" class="img_whs6"></p>\r
+<p class="whs5"><img src="../pics/createmesh-inv.png" x-maintain-ratio="TRUE" width="355px" height="296px" border="0" class="img_whs6"></p>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
@@ -180,13 +179,12 @@ else
 <p class="whs3">&nbsp;</p>\r
 \r
 <p class="whs3">3. Now, when everything is ready, select \r
- your mesh in the <span style="font-weight: bold;"><B>Object Browser</B></span>.<span> \r
- </span><span>&nbsp;From \r
- the </span><span style="font-weight: bold;"><B>Mesh </B></span><span>menu select</span><span \r
style="font-weight: bold;"><B> Compute </B></span><span>or click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs12"> button of the toolbar. </span></p>\r
+ your mesh in the <span style="font-weight: bold;"><B>Object Browser</B></span>. \r
+ &nbsp;From the \r
+ <span style="font-weight: bold;"><B>Mesh </B></span>menu select<span style="font-weight: bold;"><B> \r
Compute </B></span>or click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs12"> button of the toolbar. </p>\r
 \r
-<p class="whs3">If you've done everything right, you'll obtain \r
- something like this. <img src="../image129.gif" width="293px" height="350px" border="0" class="img_whs13"></p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
 <p class="whs3">Consider trying a sample script for construction \r
  of a mesh from our <a href="../constructing_meshes.htm">TUI Scripts</a> \r
index e09d47b8057662e8326d8df854967ec2891a0424..d2fe652bde635a8be916e4a6fba95ce83eb516ca 100755 (executable)
@@ -19,8 +19,9 @@ ul.whs2 { list-style:disc; }
 p.whs3 { margin-left:40px; }\r
 img_whs4 { border:none; width:27px; height:25px; border-style:none; }\r
 p.whs5 { margin-left:80px; }\r
-img_whs6 { border:none; width:332px; height:300px; float:none; border-style:none; }\r
-img_whs7 { border:none; width:224px; height:212px; border-style:none; }\r
+img_whs6 { border:none; border-style:none; width:355px; height:326px; float:none; }\r
+p.whs7 { margin-left:38px; }\r
+img_whs8 { border:none; width:224px; height:212px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -119,9 +120,16 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs5"><img src="../pics/submeshconstruction.png" x-maintain-ratio="TRUE" width="332px" height="300px" border="0" class="img_whs6"></p>\r
+<p class="whs5"><img src="../pics/createmesh-inv2.png" x-maintain-ratio="TRUE" width="355px" height="326px" border="0" class="img_whs6"></p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">It allows to define the <span style="font-weight: bold;"><B>Name</B></span>, \r
+ the parent <span style="font-weight: bold;"><B>Mesh</B></span> and the <span \r
+ style="font-weight: bold;"><B>Geometry</B></span> (e.g. a face if the parent \r
+ mesh has been built on box) of the submesh. You can define algorithms \r
+ and hypotheses in the same way as in <a href="constructing_meshes.htm">Create \r
+ mesh</a> menu. &nbsp;</p>\r
 \r
 <p class="whs5">&nbsp;</p>\r
 \r
@@ -130,7 +138,7 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../image10.jpg" width="224px" height="212px" border="0" class="img_whs7"></p>\r
+<p class="whs3"><img src="../image10.jpg" width="224px" height="212px" border="0" class="img_whs8"></p>\r
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
index 1a41ccd0bca8540ddfba6d537fb3a6fd0d604682..87d6e36455c80c4bdc61826c42da4003a992218e 100755 (executable)
@@ -25,20 +25,21 @@ p.whs8 { margin-left:36px; }
 table.whs9 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
 col.whs10 { width:33.382%; }\r
 col.whs11 { width:66.618%; }\r
-tr.whs12 { x-cell-content-align:top; }\r
+tr.whs12 { x-cell-content-align:top; height:587px; }\r
 td.whs13 { width:33.382%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }\r
-img_whs14 { border:none; width:312px; height:565px; float:none; border-style:none; }\r
+img_whs14 { border:none; width:312px; height:621px; float:none; border-style:none; }\r
 td.whs15 { width:66.618%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }\r
 p.whs16 { margin-left:0px; }\r
 img_whs17 { border:none; width:145px; height:150px; border-style:none; float:left; }\r
 img_whs18 { border:none; width:149px; height:158px; border-style:none; }\r
 col.whs19 { width:33.48%; }\r
 col.whs20 { width:66.52%; }\r
-td.whs21 { width:33.48%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs22 { border:none; width:312px; height:312px; float:none; border-style:none; }\r
-td.whs23 { width:66.52%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs24 { border:none; width:135px; height:150px; border-style:none; }\r
-p.whs25 { margin-left:80px; }\r
+tr.whs21 { x-cell-content-align:top; }\r
+td.whs22 { width:33.48%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs23 { border:none; width:312px; height:312px; float:none; border-style:none; }\r
+td.whs24 { width:66.52%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs25 { border:none; width:135px; height:150px; border-style:none; }\r
+p.whs26 { margin-left:80px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -155,8 +156,7 @@ else
 \r
 <h3>Standalone Group </h3>\r
 \r
-<p class="whs7">The box for creation of a <span style="font-weight: bold;"><B>Standalone \r
- Group</B></span> appears by default. <span style="font-weight: bold;"><B>Standalone \r
+<p class="whs7"><span style="font-weight: bold;"><B>Standalone \r
  Group</B></span> consists of mesh elements, which you can define in two possible \r
  ways.</p>\r
 \r
@@ -182,7 +182,14 @@ else
 <p class="whs7"><span style="font-weight: bold;"><B>Select from \r
  </B></span>set of fields allows to choose a submesh or an existing group whose \r
  elements of the previously defined type will be added to the list of elements \r
- which will form your group.</p>\r
+ which will form your group. </p>\r
+\r
+<p class="whs7"><span style="font-weight: bold;"><B>Color Number</B></span> \r
+ (integer only, ranging from 0 to 9999) - allows to assign to the group \r
+ a certain index, for example, defining boundary conditions. This feature \r
+ introduces a useful element of preprocessing in Mesh module. Note that \r
+ <span style="font-weight: bold;"><B>Color number</B></span> attribute has nothing \r
+ to do with the colors used for the display of the elements of the group.</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
@@ -192,7 +199,7 @@ else
 \r
 <tr valign="top" class="whs12">\r
 <td width="33.382%" class="whs13">\r
-<p class="whs1"><img src="../pics/creategroup.png" x-maintain-ratio="TRUE" width="312px" height="565px" border="0" class="img_whs14"></td>\r
+<p class="whs1"><img src="../pics/creategroup.png" x-maintain-ratio="TRUE" width="312px" height="621px" border="0" class="img_whs14"></td>\r
 <td width="66.618%" class="whs15">\r
 <p class="whs16"><img src="../image130.gif" width="145px" height="150px" align="left" border="0" class="img_whs17"> &nbsp;&nbsp;</p>\r
 <p class="whs16">&nbsp;</p>\r
@@ -225,8 +232,8 @@ Taper &gt; 0. </p>
  of a certain type belonging to the selected<span style="font-weight: bold;"> \r
  <B></B></span>geometrical object. To define a group select in the Objet Browser \r
  or in the 3D viewer a geometrical object from which the elements will \r
- be taken. After confirmation of the operation MESH will create a new group \r
of mesh elements.</p>\r
+ be taken. After confirmation of the operation a new group of mesh elements \r
will be created.</p>\r
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
@@ -234,11 +241,11 @@ Taper &gt; 0. </p>
 <col class="whs19">\r
 <col class="whs20">\r
 \r
-<tr valign="top" class="whs12">\r
-<td width="33.48%" class="whs21">\r
-<p><img src="../pics/a-creategroup.png" x-maintain-ratio="TRUE" width="312px" height="312px" border="0" class="img_whs22"></td>\r
-<td width="66.52%" class="whs23">\r
-<p><img src="../image132.gif" width="135px" height="150px" border="0" class="img_whs24"> In this picture the cells which belong to a certain face \r
+<tr valign="top" class="whs21">\r
+<td width="33.48%" class="whs22">\r
+<p><img src="../pics/a-creategroup.png" x-maintain-ratio="TRUE" width="312px" height="312px" border="0" class="img_whs23"></td>\r
+<td width="66.52%" class="whs24">\r
+<p><img src="../image132.gif" width="135px" height="150px" border="0" class="img_whs25"> In this picture the cells which belong to a certain face \r
  are selected in green. </td></tr>\r
 </table>\r
 \r
@@ -255,7 +262,7 @@ Taper &gt; 0. </p>
 \r
 <p class="whs16">&nbsp;</p>\r
 \r
-<p class="whs25">&nbsp;</p>\r
+<p class="whs26">&nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
index d9b1e31e676afa65dbf71b24c0486c28544479e8..da840e301657e2622e58b200d8b43bc668052306 100755 (executable)
@@ -21,20 +21,22 @@ img_whs4 { border:none; width:306px; height:525px; float:none; border-style:none
 ul.whs5 { list-style:disc; }\r
 p.whs6 { margin-left:40px; font-weight:normal; }\r
 p.whs7 { margin-left:40px; font-weight:bold; }\r
-table.whs8 { x-cell-content-align:top; width:100%; 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:none; width:353px; height:300px; border-style:none; }\r
-td.whs13 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-p.whs14 { margin-left:0px; }\r
+p.whs8 { font-weight:bold; margin-left:0px; }\r
+p.whs9 { margin-left:0px; }\r
+table.whs10 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
+col.whs11 { width:50%; }\r
+tr.whs12 { x-cell-content-align:top; }\r
+td.whs13 { 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_whs14 { border:none; width:353px; height:300px; border-style:none; }\r
+td.whs15 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs14 {margin-left:1pt; }";\r
+  strNSS += "p.whs8 {margin-left:1pt; }";\r
+  strNSS += "p.whs9 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -122,39 +124,46 @@ else
 \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>F</B></span><span \r
- style="font-weight: bold;"><B>ilter </B></span>button allows to apply a definite \r
- filter to selection of quadrangles.</p></li>\r
+       <li class=kadov-p><p class="whs6">The \r
+ main list<span style="font-weight: bold;"> <B></B></span>contains the list of \r
+ quadrangles. You can click on an quadrangle in the 3D viewer and it will \r
+ be highlighted (lock Shift keyboard button to select several quadrangles). \r
+ <span style="margin-left: 0px; font-weight: bold;"><B>Click Add </B></span><span \r
+ style="margin-left: 0px;">button and the ID of this quadrangle will be \r
+ added to the list. To remove a selected element or elements from the list \r
+ click </span><span style="margin-left: 0px; font-weight: bold;"><B>Remove \r
+ </B></span><span style="margin-left: 0px;">button. </span><span style="margin-left: 0px; font-weight: bold;"><B>Sort \r
+ list </B></span><span style="margin-left: 0px;">button allows to sort the \r
+ list of IDs. </span><span style="margin-left: 0px; font-weight: bold;"><B>Filter \r
+ </B></span><span style="margin-left: 0px;">button allows to apply a definite \r
+ filter to the selection of quadrangles.</span></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="whs7">Preview \r
+ - <span style="font-weight: normal;">provides a preview of cutting in \r
+ the viewer.</span> </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs8">Criterion</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
+ style="font-weight: bold;"><B>Use diagonal 1-3 </B></span>and<span style="font-weight: bold;"><B> \r
+ Use diagonal 2-4 </B></span>&nbsp;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="whs7">Preview \r
- </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Criterion</B></span> menu allows to apply the operation \r
- only to those object which meet the chosen criterion (from the list of \r
- Quality Controls, i.e. Skew, Warping, Minimum Angle, etc.)</p></li>\r
+       <li class=kadov-p><p class="whs7">Use \r
+ numeric factor - <span style="margin-left: 40px; font-weight: normal;">&nbsp;allows \r
+ to apply the operation only to those objects which meet the chosen criterion \r
+ (from the list of Quality Controls, i.e. Skew, Warping, Minimum Angle, \r
+ etc.)</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
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Select \r
+ from -</B></span> allows to choose a submesh or an existing group whose quadrangle \r
+ elements will be automatically added to the list.</p></li>\r
 </ul>\r
 \r
 <p class="whs2">&nbsp;</p>\r
@@ -165,18 +174,18 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
-<col class="whs9">\r
-<col class="whs9">\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs10">\r
+<col class="whs11">\r
+<col class="whs11">\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
+<tr valign="top" class="whs12">\r
 <td width="50%" class="whs13">\r
-<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs12"></td></tr>\r
+<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs14"></td>\r
+<td width="50%" class="whs15">\r
+<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs14"></td></tr>\r
 </table>\r
 \r
-<p class="whs14">&nbsp;</p>\r
+<p class="whs9">&nbsp;</p>\r
 \r
 <p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
  Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark7">Cutting \r
index 505cdd9b52cce88d13200c208672e36ce39c83d7..5a3556c3603f6be88e4ef40019e1ba5adf144de1 100755 (executable)
@@ -16,7 +16,7 @@ if (navigator.appName !="Netscape")
 <!--\r
 p.whs1 { margin-left:40px; }\r
 img_whs2 { border:none; width:21px; height:22px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:312px; height:565px; float:none; }\r
+img_whs3 { border:none; width:400px; height:622px; float:none; }\r
 p.whs4 { font-weight:normal; }\r
 p.whs5 { margin-left:0px; }\r
 -->\r
@@ -98,16 +98,14 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
-<p class="whs1"><img src="../pics/editgroup.png" x-maintain-ratio="TRUE" width="312px" height="565px" border="0" class="img_whs3"></p>\r
+<p class="whs1"><img src="../pics/editgroup.png" x-maintain-ratio="TRUE" width="400px" height="622px" 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
+ Creating Groups </a><span style="margin-left: 40px;">page.</span></p>\r
 \r
 <p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
  </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
index 6b3ecf015646a13b767ebc4b9b9c2870beaa8e54..761765ed427c47767534efb741d11ff24c2054cd 100755 (executable)
@@ -16,8 +16,8 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
 p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:513px; height:269px; float:none; border-style:none; }\r
-img_whs4 { border:none; width:447px; height:266px; float:none; border-style:none; }\r
+img_whs3 { border:none; border-style:none; width:437px; height:283px; float:none; }\r
+img_whs4 { border:none; border-style:none; width:436px; height:307px; float:none; }\r
 p.whs5 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
@@ -110,7 +110,7 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"><img src="../pics/importmesh.png" x-maintain-ratio="TRUE" width="513px" height="269px" border="0" class="img_whs3"> </p>\r
+<p class="whs2"><img src="../pics/meshimportmesh.png" x-maintain-ratio="TRUE" width="437px" height="283px" border="0" class="img_whs3"> </p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
@@ -134,7 +134,7 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"><img src="../pics/a-exportmesh.png" x-maintain-ratio="TRUE" width="447px" height="266px" border="0" class="img_whs4"></p>\r
+<p class="whs2"><img src="../pics/meshexportmesh.png" x-maintain-ratio="TRUE" width="436px" height="307px" border="0" class="img_whs4"></p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
index 4bdc3254583fe1555dcf09399bc2509a13fa859e..25f68c95788500acdfc2c64540d973d5fd5cbd50 100755 (executable)
@@ -17,11 +17,23 @@ if (navigator.appName !="Netscape")
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
 ul.whs2 { list-style:disc; }\r
 ul.whs3 { list-style:circle; }\r
-p.whs4 { margin-left:40px; }\r
-img_whs5 { border:none; width:472px; height:355px; float:right; }\r
-p.whs6 { margin-left:40px; font-weight:bold; }\r
+p.whs4 { background-color:Transparent; color:#000000; }\r
+p.whs5 { margin-left:40px; }\r
+img_whs6 { border:none; width:472px; height:355px; border-style:none; float:right; }\r
+p.whs7 { margin-left:40px; font-weight:bold; }\r
 -->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs4 {background-color:white; }";\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
@@ -84,100 +96,133 @@ else
 \r
 <ul type="disc" class="whs2">\r
        \r
-       <li class=kadov-p><p>import and export of meshes in MED format,</p></li>\r
+       <li class=kadov-p><p><a href="importing_and_exporting_meshes.htm">import \r
+ and export of meshes in MED format</a>,</p></li>\r
        \r
-       <li class=kadov-p><p>meshing geometrical models previously created \r
- or imported by the GEOM component. MESH module allows to apply 1D, 2D, \r
- 3D meshing algorithms and a set of hypotheses:</p></li>\r
+       <li class=kadov-p><p><a href="constructing_meshes.htm">meshing geometrical \r
+ models</a> previously created or imported by the GEOM component. MESH \r
module allows to apply 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>\r
        \r
        <ul type="circle" class="whs3">\r
                \r
-               <li class=kadov-p><p>Local length</p></li>\r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>\r
+               \r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#Average_length">Average Length</a></p></li>\r
                \r
-               <li class=kadov-p><p>Number of segments</p></li>\r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>\r
                \r
-               <li class=kadov-p><p>Max Element Area</p></li>\r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>\r
                \r
-               <li class=kadov-p><p>Max Element Volume</p></li>\r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>\r
+               \r
+               <li class=kadov-p><p><a href="arithmetic_1d.htm#automatic_length">Automatic \r
+ Length</a></p></li>\r
+               \r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="max._element_area_hypothesis.htm#max_element_area">Max Element Area</a></p></li>\r
+               \r
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+                       class=kadov-p><p class="whs4"><a href="max._element_area_hypothesis.htm#length_from_edges">Length from \r
+ Edges</a></p></li>\r
+               \r
+               <li class=kadov-p><p><a href="max._element_area_hypothesis.htm#quadrangle preference">Quadrangle \r
+ Preference</a></p></li>\r
+               \r
+               <li class=kadov-p><p><a href="max._element_volume_hypothsis.htm">Max \r
+ Element Volume</a></p></li>\r
        </ul>\r
        \r
        <li class=kadov-p><p>modification of locally generated meshes by</p></li>\r
        \r
        <ul type="circle" class="whs3">\r
                \r
-               <li class=kadov-p><p>Addition/deletion of nodes and elements</p></li>\r
+               <li class=kadov-p><p><a href="adding_nodes_and_elements.htm">Addition</a> \r
+ of nodes and elements</p></li>\r
                \r
-               <li class=kadov-p><p>Moving nodes and elements</p></li>\r
+               <li class=kadov-p><p><a href="removing_nodes_and_elements.htm">Removal</a> \r
+ of nodes and elements</p></li>\r
        </ul>\r
        \r
-       <li class=kadov-p><p>grouping mesh elements and performing operations \r
- on these groups </p></li>\r
+       <li class=kadov-p><p><a href="creating_groups.htm">grouping mesh elements</a> \r
+ and <a href="using_operations_on_groups.htm">performing operations on \r
+ these groups</a> </p></li>\r
        \r
-       <li class=kadov-p><p>quality control of meshes basing on a set of definite \r
- criteria -</p></li>\r
+       <li class=kadov-p><p><a href="about_quality_controls.htm">quality control</a> \r
of meshes basing on a set of definite criteria -</p></li>\r
 </ul>\r
 \r
-<p class="whs4"><img src="../image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs5"></p>\r
+<p class="whs5"><img src="../image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs6"></p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">for edges:</p>\r
+<p class="whs7">for edges:</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs2">\r
        \r
        <ul type="circle" class="whs3">\r
                \r
-               <li class=kadov-p><p>Length of edges </p></li>\r
+               <li class=kadov-p><p><a href="../length.htm">Length of edges</a> \r
+ </p></li>\r
                \r
-               <li class=kadov-p><p>Borders at multi-connections</p></li>\r
+               <li class=kadov-p><p><a href="../borders_at_multi-connection.htm">Borders \r
+ at multi-connection</a></p></li>\r
                \r
-               <li class=kadov-p><p>Free borders</p></li>\r
+               <li class=kadov-p><p><a href="../free_borders.htm">Free borders</a></p></li>\r
        </ul>\r
 </ul>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs6">for faces:</p>\r
+<p class="whs7">for faces:</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs2">\r
        \r
        <ul type="circle" class="whs3">\r
                \r
-               <li class=kadov-p><p>Area </p></li>\r
+               <li class=kadov-p><p><a href="area_of_elements.htm">Area</a> </p></li>\r
                \r
-               <li class=kadov-p><p>Free edges</p></li>\r
+               <li class=kadov-p><p><a href="../free_edges.htm">Free edges</a></p></li>\r
                \r
-               <li class=kadov-p><p>Borders at multi-connection 2D</p></li>\r
+               <li class=kadov-p><p><a href="../borders_at_multiconnection_2d.htm">Borders \r
+ at multi-connection 2D</a></p></li>\r
                \r
-               <li class=kadov-p><p>Length 2D</p></li>\r
+               <li class=kadov-p><p><a href="length_of_edges.htm">Length 2D</a></p></li>\r
                \r
-               <li class=kadov-p><p>Minimum angle</p></li>\r
+               <li class=kadov-p><p><a href="minimum_angle.htm">Minimum angle</a></p></li>\r
                \r
-               <li class=kadov-p><p>Taper</p></li>\r
+               <li class=kadov-p><p><a href="taper.htm">Taper</a></p></li>\r
                \r
-               <li class=kadov-p><p>Aspect Ratio</p></li>\r
+               <li class=kadov-p><p><a href="aspect_ratio.htm">Aspect Ratio</a></p></li>\r
                \r
-               <li class=kadov-p><p>Warping </p></li>\r
+               <li class=kadov-p><p><a href="warp.htm">Warping</a> </p></li>\r
                \r
-               <li class=kadov-p><p>Skew</p></li>\r
+               <li class=kadov-p><p><a href="skew.htm">Skew</a></p></li>\r
        </ul>\r
 </ul>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs6">for solids:</p>\r
+<p class="whs7">for solids:</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
 <ul type="disc" class="whs2">\r
        \r
        <ul type="circle" class="whs3">\r
                \r
-               <li class=kadov-p><p>Aspect ratio 3D</p></li>\r
+               <li class=kadov-p><p><a href="../aspect_ratio_3d.htm">Aspect ratio \r
+ 3D</a></p></li>\r
+               \r
+               <li class=kadov-p><p><a href="../volume.htm">Volume</a></p></li>\r
        </ul>\r
 </ul>\r
 \r
index 4238a5cf4cf97608fab60667bdd0cd20d5335a5c..019fdf60e904c3d911da5e917e0221b986c3b211 100755 (executable)
@@ -113,7 +113,7 @@ else
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../quality_controls.htm#bookmark5">&nbsp;Length \r
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark4">&nbsp;Length \r
  2D quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index e329aab17afb057a4044f15a4d3677863b3c8b41..c093456a59dcb7690ea465d1ff62ac4b4ed81427 100755 (executable)
@@ -14,19 +14,21 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:80px; }\r
-img_whs3 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
-p.whs4 { margin-left:0px; }\r
-p.whs5 { margin-left:40px; }\r
-img_whs6 { border:none; width:455px; height:385px; float:none; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { background-color:Transparent; color:#000000; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
+p.whs5 { margin-left:80px; }\r
+p.whs6 { margin-left:0px; }\r
+img_whs7 { border:none; width:455px; height:385px; float:none; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1pt; }";\r
+  strNSS += "p.whs2 {background-color:white; }";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -62,7 +64,7 @@ if (window.gbWhTopic)
 {\r
        if (window.addTocInfo)\r
        {\r
-       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nMax Element Area hypothesis");\r
+       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\n2D Meshing Hypotheses");\r
 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
 \r
        }\r
@@ -86,29 +88,74 @@ else
                document.location.reload();\r
 //-->\r
 </script>\r
-<h1>Max Element Area hypothesis</h1>\r
+<h1>2D Meshing Hypotheses</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> <span style="font-weight: bold;"><B>Max \r
- Element Area </B></span>hypothesis is applied for meshing of 2D faces composing \r
- your geometrical object. Definition of this hypothesis consists of setting \r
- the <span style="font-weight: bold;"><B>maximum area </B></span>of meshing elements \r
- (depending on the chosen meshing algorithm it can be <span style="font-weight: bold;"><B>triangles</B></span> \r
- or <span style="font-weight: bold;"><B>quadrangles</B></span>), which will compose \r
- the mesh of these 2D faces. </p>\r
+<ul type="disc" class="whs1">\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#max_element_area"><span \r
+ style="font-weight: bold;"><B>Max Element Area</B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#length_from_edges"><span \r
+ style="font-weight: bold;"><B>Length from Edges</B></span></a></p></li>\r
+       \r
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
+               class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#quadrangle preference" style="font-weight: bold;">Quadrangle \r
+ Preference</a></p></li>\r
+</ul>\r
+\r
+<h3><a name=max_element_area>Max Element Area </a></h3>\r
+\r
+<p><span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
+ is 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
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs2"><img src="../pics/a-maxelarea.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/a-maxelarea.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark4">Maximum \r
  Element Area hypothesis</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs5"><img src="../pics/max_el_area.png" x-maintain-ratio="TRUE" width="455px" height="385px" border="0" class="img_whs6"></p>\r
+<p class="whs3"><img src="../pics/max_el_area.png" x-maintain-ratio="TRUE" width="455px" height="385px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<h3><a name=length_from_edges>Length from Edges</a></h3>\r
+\r
+<p><span style="font-weight: bold;"><B>Length from edges</B></span> hypothesis \r
+ builds 1D mesh segments having a length calculated as an average edge \r
+ length for a given wire. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark6">Length \r
+ from Edges hypothesis</a> operation. &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<h3><a name="quadrangle preference">Quadrangle Preference</a></h3>\r
+\r
+<p>This algorithm can be used only together with Quadrangle (Mapping) algorithm. \r
+ It allows to build quadrangular meshes even if the number of nodes at \r
+ the opposite edges of a meshed face is not equal, otherwise this mesh \r
+ will contain some triangular elements.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 08e40aa0ab41581172d9dc462317ad35575121cc..508fbbe13c3c082d435587ffa85354e3d6fd76ba 100755 (executable)
@@ -15,16 +15,17 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:80px; }\r
-img_whs3 { border:none; border-style:none; width:332px; height:212px; float:none; }\r
-p.whs4 { margin-left:0px; }\r
+p.whs2 { margin-left:48px; }\r
+img_whs3 { border:none; width:332px; height:212px; float:none; border-style:none; }\r
+p.whs4 { margin-left:80px; }\r
+p.whs5 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1pt; }";\r
+  strNSS += "p.whs5 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -98,9 +99,9 @@ else
 \r
 <p class="whs2"><img src="../pics/a-maxelvolume.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs3"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark5">Maximum \r
  Element Volume hypothesis</a> operation. &nbsp;</p>\r
 \r
index fd010796ec18e85f647b4450cf9eeefefff03beb..4c63bbfc21c7df3a6c9bdaf41ecb65775e3c36c4 100755 (executable)
@@ -17,8 +17,8 @@ if (navigator.appName !="Netscape")
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
 p.whs2 { margin-left:40px; }\r
 img_whs3 { border:none; width:312px; height:488px; float:none; border-style:none; }\r
-img_whs4 { border:none; width:341px; height:375px; float:none; }\r
-img_whs5 { border:none; float:none; width:347px; height:376px; }\r
+img_whs4 { border:none; width:341px; height:375px; float:none; border-style:none; }\r
+img_whs5 { border:none; float:none; width:347px; height:376px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -111,7 +111,7 @@ else
 <p class="whs2">&nbsp;</p>\r
 \r
 <p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark3">Merging \r
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark3">Merge \r
  Nodes</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index 4704610d00e7e107215374231bd8cacc1a56027c..13c7f1b1d6cc9c4e3d3a390f38abad8ea362df44 100755 (executable)
@@ -95,45 +95,34 @@ else
  menu. These hypotheses are actually changes in the rules of mesh creation \r
  and as such don't possess adjustable values. </p>\r
 \r
-<h3>&nbsp;</h3>\r
-\r
 <h3>Non Conform mesh allowed hypothesis</h3>\r
 \r
 <p><span style="font-weight: bold;"><B>Non Conform mesh allowed</B></span> hypothesis \r
  allows to generate non-conform meshes (that is, meshes having some edges \r
  ending on an edge or face of adjacent elements). </p>\r
 \r
-<h3>&nbsp;</h3>\r
+<h3>Quadratic Mesh</h3>\r
+\r
+<p>Quadratic Mesh hypothesis allows to build a quadratic mesh (whose edges \r
+ are not straight but broken lines and can be defined by three points: \r
+ first, middle and last) instead of an ordinary one. &nbsp;</p>\r
 \r
 <h3>Propagation of 1D Hypothesis on opposite edges</h3>\r
 \r
-<p><span style="font-weight: bold;"><B>P</B></span><span style="font-weight: bold;"><B>ropagation \r
- of 1D Hypothesis on opposite edges </B></span>allows to propagate a set hypothesis \r
- onto an opposite edge. If a local hypothesis and propagation are set on \r
- one of edges of a quadrangular face, the opposite edge will have the same \r
- hypothesis, unless another hypothesis has been locally set on such opposite \r
- edge.</p>\r
+<p><span style="font-weight: bold;"><B>Propagation of 1D Hypothesis on opposite \r
+ edges </B></span>allows to propagate a hypothesis onto an opposite edge. If \r
+ a local hypothesis and propagation are defined on an edge of a quadrangular \r
+ face, the opposite edge will have the same hypothesis, unless another \r
+ hypothesis has been locally defined on the opposite edge.</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark6">Propagation \r
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark7">Propagation \r
  hypothesis</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<h3>Length from edges hypothesis </h3>\r
-\r
-<p><span style="font-weight: bold;"><B>Length from edges</B></span> hypothesis \r
- builds 1D mesh segments having a length calculated as an average edge \r
- length for a given wire. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark7">Length \r
- from Edges hypothesis</a> operation. &nbsp;</p>\r
-\r
 <p>&nbsp;</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
index 0de684dc999bdddc03c46e36518c5b74e6efde62..6f942a745b1b67d3978231dd1ad84018011ca410 100755 (executable)
@@ -14,20 +14,20 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; border-style:none; width:309px; height:296px; float:none; }\r
+img_whs1 { border:none; border-style:none; width:355px; height:296px; float:none; }\r
 img_whs2 { border:none; width:30px; height:29px; border-style:none; }\r
-img_whs3 { border:none; float:none; width:386px; height:336px; border-style:none; }\r
-img_whs4 { border:none; float:none; width:386px; height:338px; border-style:none; }\r
-p.whs5 { margin-left:0px; }\r
-p.whs6 { margin-left:0px; font-weight:bold; }\r
-img_whs7 { border:none; width:388px; height:341px; float:none; border-style:none; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; float:none; width:386px; height:336px; border-style:none; }\r
+img_whs5 { border:none; float:none; width:386px; height:338px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+p.whs7 { font-weight:bold; margin-left:40px; }\r
+img_whs8 { border:none; width:388px; height:341px; float:none; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs5 {margin-left:1pt; }";\r
   strNSS += "p.whs6 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
@@ -99,7 +99,8 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class=TODO><img src="../pics/c-editmesh.png" x-maintain-ratio="TRUE" width="309px" height="296px" border="0" class="img_whs1"></p>\r
+<p class=TODO\r
+       style="margin-left: 40px;"><img src="../pics/createmesh-inv3.png" x-maintain-ratio="TRUE" width="355px" height="296px" border="0" class="img_whs1"></p>\r
 \r
 <p>You can also change values for the current hypothesis by clicking the \r
  <img src="../image122.gif" width="30px" height="29px" border="0" class="img_whs2"> button. </p>\r
@@ -111,23 +112,23 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="../pics/edit_mesh1.png" x-maintain-ratio="TRUE" width="386px" height="336px" border="0" class="img_whs3"> &nbsp;<img src="../pics/edit_mesh_remove_hyp.png" x-maintain-ratio="TRUE" width="386px" height="338px" border="0" class="img_whs4"></p>\r
+<p class="whs3"><img src="../pics/edit_mesh1.png" x-maintain-ratio="TRUE" width="386px" height="336px" border="0" class="img_whs4"> &nbsp;<img src="../pics/edit_mesh_remove_hyp.png" x-maintain-ratio="TRUE" width="386px" height="338px" border="0" class="img_whs5"></p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs6"><img src="../pics/edit_mesh_change_value_hyp.png" x-maintain-ratio="TRUE" width="388px" height="341px" border="0" class="img_whs7"></p>\r
+<p class="whs7"><img src="../pics/edit_mesh_change_value_hyp.png" x-maintain-ratio="TRUE" width="388px" height="341px" border="0" class="img_whs8"></p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of an <a href="../constructing_meshes.htm#bookmark2">Edit \r
  Mesh</a> operation. &nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
index 2a5b82210c9adaddd06390ed1fd0c0bbddbd70e1..fd42f8784715cf48b8a95ad58e177b9770eac3bd 100755 (executable)
@@ -14,31 +14,35 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:27px; height:25px; border-style:none; }\r
-img_whs3 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
-p.whs4 { margin-left:0px; }\r
-img_whs5 { border:none; width:36px; height:38px; float:none; border-style:none; }\r
-table.whs6 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs7 { width:31.569%; }\r
-col.whs8 { width:68.431%; }\r
-tr.whs9 { x-cell-content-align:top; }\r
-td.whs10 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs11 { border:none; border-style:none; width:245px; height:289px; float:none; }\r
-td.whs12 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs13 { border:none; border-style:none; width:252px; height:288px; float:none; }\r
-table.whs14 { x-cell-content-align:top; border-spacing:0px; width:55.882%; }\r
-col.whs15 { width:47.72%; }\r
-col.whs16 { width:52.28%; }\r
-img_whs17 { border:none; border-style:none; width:219px; height:210px; float:none; }\r
-img_whs18 { border:none; border-style:none; float:none; width:240px; height:209px; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { margin-left:40px; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:27px; height:25px; border-style:none; }\r
+img_whs5 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+img_whs7 { border:none; width:36px; height:38px; float:none; border-style:none; }\r
+table.whs8 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
+col.whs9 { width:31.569%; }\r
+col.whs10 { width:68.431%; }\r
+tr.whs11 { x-cell-content-align:top; }\r
+td.whs12 { width:31.569%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs13 { border:none; width:245px; height:289px; float:none; border-style:none; }\r
+td.whs14 { width:68.431%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs15 { border:none; width:252px; height:288px; float:none; border-style:none; }\r
+table.whs16 { x-cell-content-align:top; width:55.882%; border-spacing:0px; }\r
+col.whs17 { width:47.72%; }\r
+col.whs18 { width:52.28%; }\r
+td.whs19 { width:47.72%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs20 { border:none; width:219px; height:210px; float:none; border-style:none; }\r
+td.whs21 { width:52.28%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs22 { border:none; float:none; width:240px; height:209px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs4 {margin-left:1pt; }";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -100,110 +104,124 @@ else
 </script>\r
 <h1>Removing nodes and elements</h1>\r
 \r
-<p>In SMESH you can remove nodes and all types of cells of your mesh. </p>\r
+<p>In MESH 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
+<ul type="disc" class="whs1">\r
+       \r
+       <li class=kadov-p><p class="whs2"><a \r
+ href="#remove_a_node"\r
+       style="font-weight: bold;"><span style="font-weight: bold;"><B>Nodes</a> \r
+ </B></span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a \r
+ href="#remove_an_element"\r
+       style="font-weight: bold;">Elements</a></p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO><a name=remove_a_node>To remove a node:</a></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
+<p class="whs3">1. Select your mesh in the Object Browser \r
  or in the 3D viewer.</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">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
+ nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs4"> icon in the toolbar. The \r
  following dialog box will appear:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs1"><img src="../pics/removenodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/removenodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">In this dialog box you can specify one or \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+<p class="whs3">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
+<p class="whs3">&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
+<p class="whs6"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
-<col class="whs7">\r
-<col class="whs8">\r
+<table x-use-null-cells cellspacing="0" width="100%" class="whs8">\r
+<col class="whs9">\r
+<col class="whs10">\r
 \r
-<tr valign="top" class="whs9">\r
-<td width="31.569%" class="whs10">\r
-<p><img src="../pics/remove_nodes1.png" x-maintain-ratio="TRUE" width="245px" height="289px" border="0" class="img_whs11"></td>\r
-<td width="68.431%" class="whs12">\r
-<p><img src="../pics/remove_nodes2.png" x-maintain-ratio="TRUE" width="252px" height="288px" border="0" class="img_whs13"></td></tr>\r
+<tr valign="top" class="whs11">\r
+<td width="31.569%" class="whs12">\r
+<p><img src="../pics/remove_nodes1.png" x-maintain-ratio="TRUE" width="245px" height="289px" border="0" class="img_whs13"></td>\r
+<td width="68.431%" class="whs14">\r
+<p><img src="../pics/remove_nodes2.png" x-maintain-ratio="TRUE" width="252px" height="288px" border="0" class="img_whs15"></td></tr>\r
 </table>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class=TODO>To remove an element:</p>\r
+<p class=TODO><a name=remove_an_element>To remove an element:</a></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
+<p class="whs3">1. Select your mesh in the Object Browser \r
  or in the 3D viewer.</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">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
+ elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs4"> icon in the toolbar. The \r
  following dialog box will appear:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs1"><img src="../pics/removeelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/removeelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">In this dialog box you can specify one or \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<table x-use-null-cells width="55.882%" cellspacing="0" class="whs14">\r
-<col class="whs15">\r
-<col class="whs16">\r
+<table x-use-null-cells cellspacing="0" width="55.882%" class="whs16">\r
+<col class="whs17">\r
+<col class="whs18">\r
 \r
-<tr valign="top" class="whs9">\r
-<td width="47.72%" class="whs10">\r
-<p><img src="../pics/remove_elements1.png" x-maintain-ratio="TRUE" width="219px" height="210px" border="0" class="img_whs17"></td>\r
-<td width="52.28%" class="whs12">\r
-<p><img src="../pics/remove_elements2.png" x-maintain-ratio="TRUE" width="240px" height="209px" border="0" class="img_whs18"></td></tr>\r
+<tr valign="top" class="whs11">\r
+<td width="47.72%" class="whs19">\r
+<p><img src="../pics/remove_elements1.png" x-maintain-ratio="TRUE" width="219px" height="210px" border="0" class="img_whs20"></td>\r
+<td width="52.28%" class="whs21">\r
+<p><img src="../pics/remove_elements2.png" x-maintain-ratio="TRUE" width="240px" height="209px" border="0" class="img_whs22"></td></tr>\r
 </table>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
index 49b0b03399994002a4d6e8ab8acf3be69e6e3f57..460da6f394c8f54eac0009696e434c80f428a880 100755 (executable)
@@ -14,10 +14,12 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:29px; height:23px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:332px; height:231px; float:none; }\r
-img_whs4 { border:none; width:26px; height:25px; border-style:none; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { margin-left:40px; font-weight:bold; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:29px; height:23px; border-style:none; }\r
+img_whs5 { border:none; width:332px; height:231px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:26px; height:25px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -75,67 +77,80 @@ else
 </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
+<p>In MESH 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
+<ul type="disc" class="whs1">\r
+       \r
+       <li class=kadov-p><p class="whs2"><a \r
+ href="#renumber_nodes">Nodes</a> </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a \r
+ href="#renumber_elements"\r
+       style="font-weight: bold;">Elements</a></p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO><a name=renumber_nodes>To renumber the nodes of your mesh:</a></p>\r
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">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
+ <img src="../image63.gif" width="29px" height="23px" 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
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1"><img src="../pics/renumbernodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/renumbernodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class=TODO>To renumber the elements of your mesh:</p>\r
+<p class=TODO><a name=renumber_elements>To renumber the elements of your \r
+ mesh:</a></p>\r
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
+<p class="whs3">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
+ click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs6"> button in the toolbar. The following dialog box will \r
  appear: </p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1"><img src="../pics/renumberelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="../pics/renumberelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
+<p class="whs3">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
+<p class="whs3">&nbsp;</p>\r
 \r
 <p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
  Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark2">Renumbering \r
@@ -144,7 +159,7 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index f6280e38ad043fb29199abf44d832b60cc15754f..32718fdd9afa6d7744e73a43972b46a80de4cee6 100755 (executable)
@@ -15,20 +15,18 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:0px; text-indent:48px; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:453px; height:411px; border-style:none; }\r
-img_whs5 { border:none; width:24px; height:23px; border-style:none; }\r
-img_whs6 { border:none; width:448px; height:323px; border-style:none; }\r
-p.whs7 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:453px; height:411px; border-style:none; }\r
+img_whs4 { border:none; width:24px; height:23px; border-style:none; }\r
+img_whs5 { border:none; width:448px; height:323px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs2 {margin-left:1pt; }";\r
-  strNSS += "p.whs7 {margin-left:1pt; }";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -93,38 +91,36 @@ else
 <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>Skew</B></span> mesh quality \r
  criterion reflects the angle between the lines that join opposite sides \r
  of the element. SKEW &nbsp;is \r
- a maximum value of all skew angles. </p>\r
-\r
-<p class="whs2">This mesh quality criterion \r
- can be applied to elements composed of 4 and 3 nodes (quadrangles and \r
- triangles)</p>\r
+ a maximum value of all skew angles. <span style="margin-left: 0px; text-indent: 48px;">This \r
+ mesh quality criterion can be applied to elements composed of 4 and 3 \r
+ nodes (quadrangles and triangles)</span></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs4"></p>\r
+<p class="whs2"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs3"></p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
 <p class=TODO>To apply the Skew quality criterion to your mesh:</p>\r
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs3">1. Display your mesh in the viewer.</p>\r
+<p class="whs2">1. Display your mesh in the viewer.</p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Skew </B></span>or click <img src="../image40.gif" width="24px" height="23px" border="0" class="img_whs5"> button of the toolbar. Your mesh \r
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ &gt; Skew </B></span>or click <img src="../image40.gif" width="24px" height="23px" border="0" class="img_whs4"> button of the toolbar. Your mesh \r
  will be displayed in the viewer with its elements colored according to \r
  the applied mesh quality control criterion:</p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../image93.jpg" width="448px" height="323px" border="0" class="img_whs6"></p>\r
+<p class="whs2"><img src="../image93.jpg" width="448px" height="323px" border="0" class="img_whs5"></p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs7"><span style="font-weight: bold;"><B>See Also</B></span> \r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
  a sample TUI Script of a <a href="../quality_controls.htm#bookmark12">Skew \r
  quality control</a> operation. &nbsp;</p>\r
 \r
index 6cab53dbdcb3f953fef184325f0271141478c2bf..b05b06933eff58e7a3c486ad35526fea765f3884 100755 (executable)
@@ -23,8 +23,8 @@ p.whs6 { margin-left:40px; font-weight:normal; }
 p.whs7 { font-weight:bold; }\r
 p.whs8 { margin-left:80px; }\r
 img_whs9 { border:none; width:527px; height:281px; border-style:none; }\r
-img_whs10 { border:none; float:none; width:353px; height:235px; }\r
-img_whs11 { border:none; width:351px; height:235px; float:none; }\r
+img_whs10 { border:none; float:none; width:353px; height:235px; border-style:none; }\r
+img_whs11 { border:none; width:351px; height:235px; float:none; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -106,15 +106,16 @@ else
 <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
+ style="font-weight: bold;"><B>Id Elements </B></span>field allows to specify \r
+ the elements which should be smoothed by selecting them in the 3D viewer \r
+ (lock <span style="font-weight: bold;"><B>Shift </B></span>button to select several \r
elements).</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
+               <li class=kadov-p><p class="whs7">Select whole mesh, \r
+ submesh or group - <span style="font-weight: normal;">smoothing is applied \r
+ to the whole mesh or its part.</span></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
@@ -124,7 +125,7 @@ else
  fixed.</p></li>\r
                \r
                <li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing \r
method</B></span>:</p></li>\r
Method</B></span>:</p></li>\r
                \r
                <ul type="disc" class="whs5">\r
                        \r
index 9b296b2e8f0e439efd97eb9e96cf02feab7cbe62..bd733a97736392e69fec237a3f0ce71a2ec46354 100755 (executable)
@@ -93,6 +93,8 @@ else
  by a diagonal. So it can be calculated only for elements consisting of \r
  4 nodes.</p>\r
 \r
+<p>&nbsp;</p>\r
+\r
 <p><img src="../image25.gif" width="791px" height="170px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
@@ -119,7 +121,7 @@ else
 <p class="whs3">&nbsp;</p>\r
 \r
 <p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../quality_controls.htm#bookmark8">Taper \r
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark7">Taper \r
  quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index d625b7eccbb4d1866c18e91838004e7f38a99ca3..cb6054d98642054ffe58841cab8d7a0bde143d91 100755 (executable)
@@ -16,13 +16,13 @@ if (navigator.appName !="Netscape")
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
 p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:306px; height:450px; border-style:none; float:left; }\r
+img_whs3 { border:none; width:306px; height:450px; border-style:none; float:none; }\r
 img_whs4 { border:none; width:23px; height:24px; border-style:none; }\r
 ul.whs5 { list-style:disc; }\r
 p.whs6 { margin-left:40px; font-weight:normal; }\r
 p.whs7 { margin-left:0px; }\r
-img_whs8 { border:none; width:286px; height:242px; float:none; }\r
-img_whs9 { border:none; float:none; width:286px; height:242px; }\r
+img_whs8 { border:none; width:286px; height:242px; float:none; border-style:none; }\r
+img_whs9 { border:none; float:none; width:286px; height:242px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -101,7 +101,9 @@ else
 \r
 <p class=TODO>&nbsp;</p>\r
 \r
-<p class="whs2"><img src="../pics/a-unionoftriangles.png" x-maintain-ratio="TRUE" width="306px" height="450px" align="left" border="0" class="img_whs3"></p>\r
+<p class="whs2"><img src="../pics/a-unionoftriangles.png" x-maintain-ratio="TRUE" width="306px" height="450px" border="0" class="img_whs3"></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
@@ -154,12 +156,6 @@ else
  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
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
 <p>&nbsp;</p>\r
 \r
 <p><img src="../pics/uniting_a_set_of_triangles1.png" x-maintain-ratio="TRUE" width="286px" height="242px" border="0" class="img_whs8"> &nbsp;&nbsp;&nbsp;<img src="../pics/uniting_a_set_of_triangles2.png" x-maintain-ratio="TRUE" width="286px" height="242px" border="0" class="img_whs9"></p>\r
index a2beb2ab51181d0dfe72e9ec7460a6ecd95c747e..9c6806a7e239f704bf2ccc03d8d0b0a8833a5bb0 100755 (executable)
@@ -14,22 +14,24 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-p.whs1 { font-style:normal; font-weight:normal; }\r
-img_whs2 { border:none; width:20px; height:26px; border-style:none; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:271px; height:269px; float:none; border-style:none; }\r
-img_whs5 { border:none; width:22px; height:27px; border-style:none; }\r
-img_whs6 { border:none; width:260px; height:485px; float:none; border-style:none; }\r
-img_whs7 { border:none; width:866px; height:287px; float:none; }\r
-p.whs8 { margin-left:0px; }\r
-p.whs9 { margin-left:80px; }\r
+ul.whs1 { list-style:disc; }\r
+p.whs2 { font-weight:bold; margin-left:40px; }\r
+p.whs3 { font-style:normal; font-weight:normal; }\r
+img_whs4 { border:none; width:20px; height:26px; border-style:none; }\r
+p.whs5 { margin-left:40px; }\r
+img_whs6 { border:none; width:271px; height:269px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:22px; height:27px; border-style:none; }\r
+img_whs8 { border:none; border-style:none; width:451px; height:506px; float:none; }\r
+img_whs9 { border:none; width:866px; height:287px; float:none; border-style:none; }\r
+p.whs10 { margin-left:0px; }\r
+p.whs11 { margin-left:80px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs8 {margin-left:1pt; }";\r
+  strNSS += "p.whs10 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -97,25 +99,40 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs1">The <span style="font-weight: bold;"><B>Standard \r
- Mesh Infos</B></span> box gives only the information on the number of 2D elements \r
- of mesh and the number of nodes. However, from this Info you can learn \r
- about groups selected on this mesh. </p>\r
+<ul type="disc" class="whs1">\r
+       \r
+       <li class=kadov-p><p class="whs2"><a \r
+ href="#standard_infos">Standard</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs2"><a \r
+ href="#advanced_infos">Advanced</a></p></li>\r
+</ul>\r
 \r
-<p class="whs1">To view the <span style="font-weight: bold;"><B>Standard \r
+<p class="whs2">&nbsp;</p>\r
+\r
+<h3><a name=standard_infos>Standard Mesh Infos</a></h3>\r
+\r
+<p class="whs3">The <span style="font-weight: bold;"><B>Standard \r
+ Mesh Infos</B></span> box gives only the information on the number of elements \r
+ of maximum dimension and the number of nodes in the mesh. However, from \r
+ this Info you can learn about groups selected on this mesh. </p>\r
+\r
+<p class="whs3">To view the <span style="font-weight: bold;"><B>Standard \r
  Mesh Infos, </B></span>select your mesh or submesh in the <span style="font-weight: bold;"><B>Object \r
  Browser</B></span> and<span style="font-weight: bold;"> <B></B></span>select <span \r
  style="font-weight: bold;"><B>Standard Mesh Infos </B></span>from<span style="font-weight: bold;"> \r
  <B></B></span>the <span style="font-weight: bold;"><B>Mesh </B></span>menu or click \r
- <img src="../image49.gif" width="20px" height="26px" border="0" class="img_whs2"> button in the toolbar. The following information will \r
+ <img src="../image49.gif" width="20px" height="26px" border="0" class="img_whs4"> button in the toolbar. The following information will \r
  be displayed:</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../pics/a-standmeshinfo.png" x-maintain-ratio="TRUE" width="271px" height="269px" border="0" class="img_whs4"></p>\r
+<p class="whs5"><img src="../pics/a-standmeshinfo.png" x-maintain-ratio="TRUE" width="271px" height="269px" border="0" class="img_whs6"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
+<h3><a name="advanced infos">Advanced Mesh Infos</a></h3>\r
+\r
 <p>The<span style="font-weight: bold;"><B> Advanced</B></span> <span style="font-weight: bold;"><B>Mesh \r
  Infos </B></span>gives more information about the mesh, including the total \r
  number of faces and volumes and their geometrical types.</p>\r
@@ -124,35 +141,33 @@ else
  your mesh or submesh in the <span style="font-weight: bold;"><B>Object Browser</B></span> \r
  and<span style="font-weight: bold;"> <B></B></span>select <span style="font-weight: bold;"><B>Advanced \r
  Mesh Infos </B></span>from<span style="font-weight: bold;"> <B></B></span>the <span \r
- style="font-weight: bold;"><B>Mesh </B></span>menu or click <img src="../image50.gif" width="22px" height="27px" border="0" class="img_whs5"> button \r
+ style="font-weight: bold;"><B>Mesh </B></span>menu or click <img src="../image50.gif" width="22px" height="27px" border="0" class="img_whs7"> button \r
  in the toolbar. The following information will be displayed:</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../pics/a-advmeshinfo.png" x-maintain-ratio="TRUE" width="260px" height="485px" border="0" class="img_whs6"></p>\r
+<p class="whs5"><img src="../pics/advanced_mesh_infos.png" x-maintain-ratio="TRUE" width="451px" height="506px" border="0" class="img_whs8"></p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs3">In case you get Mesh Infos via a TUI script, \r
- the information is displayed in Python Console.</p>\r
+<p class="whs5">In case you get Mesh Infos via a <a href="../viewing_meshes.htm">TUI \r
script</a>, the information is displayed in Python Console.</p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs3"><img src="../pics/b-mesh_infos.png" x-maintain-ratio="TRUE" width="866px" height="287px" border="0" class="img_whs7"></p>\r
+<p class="whs5"><img src="../pics/b-mesh_infos.png" x-maintain-ratio="TRUE" width="866px" height="287px" border="0" class="img_whs9"></p>\r
 \r
-<p>&nbsp;</p>\r
+<p class="whs10">&nbsp;</p>\r
 \r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
+<p>&nbsp;</p>\r
 \r
-<p class="whs9">&nbsp;</p>\r
+<p class="whs11">&nbsp;</p>\r
 \r
-<p class="whs9">&nbsp;</p>\r
+<p class="whs11">&nbsp;</p>\r
 \r
-<p class="whs9">&nbsp;</p>\r
+<p class="whs11">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
diff --git a/doc/salome/gui/SMESH/files/vtk_3d_viewer.htm b/doc/salome/gui/SMESH/files/vtk_3d_viewer.htm
new file mode 100755 (executable)
index 0000000..dec1eee
--- /dev/null
@@ -0,0 +1,224 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>VTK 3D Viewer</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+p.whs1 { margin-top:0pt; margin-bottom:0pt; }\r
+p.whs2 { margin-top:0pt; margin-bottom:0pt; margin-left:48px; }\r
+img_whs3 { border:none; width:249px; height:29px; float:none; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:26px; height:25px; float:none; border-style:none; }\r
+img_whs6 { border:none; width:27px; height:25px; float:none; border-style:none; }\r
+img_whs7 { border:none; width:24px; height:23px; float:none; border-style:none; }\r
+img_whs8 { border:none; width:24px; height:24px; float:none; border-style:none; }\r
+img_whs9 { border:none; width:25px; height:24px; float:none; border-style:none; }\r
+img_whs10 { border:none; width:23px; height:23px; float:none; border-style:none; }\r
+img_whs11 { border:none; width:26px; height:26px; float:none; border-style:none; }\r
+img_whs12 { border:none; width:78px; height:147px; float:none; border-style:none; }\r
+img_whs13 { border:none; width:28px; height:25px; float:none; border-style:none; }\r
+img_whs14 { border:none; width:27px; height:27px; float:none; border-style:none; }\r
+p.whs15 { font-weight:bold; margin-left:80px; margin-top:0pt; margin-bottom:0pt; }\r
+img_whs16 { border:none; width:350px; height:453px; float:none; border-style:none; }\r
+p.whs17 { font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs18 { font-weight:bold; margin-left:36px; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs19 { font-weight:bold; margin-left:0px; margin-top:0pt; margin-bottom:0pt; }\r
+p.whs20 { margin-left:0px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs15 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs17 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs18 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs19 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs20 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("MESH module\nViewing meshes\nVTK 3D Viewer");\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(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1>VTK 3D Viewer</h1>\r
+\r
+<p class="whs1"><span style="font-weight: bold;"><B>VTK \r
+ 3D viewer</B></span> is the default viewer for Mesh Module, allowing to visualize \r
+ meshes. It is also used in Post-Pro module for all 3D presentations except \r
+ for Gauss Points.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">The functionalities of \r
+ VTK viewer are available via its Viewer Toolbar. Buttons marked with small \r
+ downward triangles have extended functionality which can be accessed by \r
+ locking on them with left mouse button. &nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../pics/image107.gif" x-maintain-ratio="TRUE" width="249px" height="29px" border="0" class="img_whs3"></p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image77.gif" x-maintain-ratio="TRUE" width="26px" height="25px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Dump View</B></span> - exports \r
+ an object from the viewer in bmp, png, jpg or jpeg image format. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image78.gif" x-maintain-ratio="TRUE" width="27px" height="25px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Show/Hide Trihedron</B></span> \r
+ - shows or hides coordinate axes. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image96.gif" x-maintain-ratio="TRUE" width="24px" height="23px" border="0" class="img_whs7"> &nbsp;<span style="font-weight: bold;"><B>Fit \r
+ all - </B></span>allows to select a point to be the center of a scene representing \r
+ all displayed objects in the visible area.<span style="font-weight: bold;"> \r
+ <B></B></span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">&nbsp;<img src="../pics/image97.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Fit area</B></span> - resizes \r
+ the view to place in the visible area only the contents of a frame drawn \r
+ with pressed left mouse button.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image98.gif" x-maintain-ratio="TRUE" width="25px" height="24px" border="0" class="img_whs9"> <span style="font-weight: bold;"><B>Zoom</B></span> - &nbsp;allows \r
+ to zoom in and out. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image99.gif" x-maintain-ratio="TRUE" width="23px" height="23px" border="0" class="img_whs10"> <span style="font-weight: bold;"><B>Panning</B></span> - if the \r
+ represented objects are greater that the visible area and you don't wish \r
+ to use <span style="font-weight: bold;"><B>Fit all</B></span> functionality, \r
+ click on this button and you'll be able to drag the scene to see its remote \r
+ parts. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image100.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Global panning</B></span> - \r
+ represents all displayed objects in the visible area. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image89.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Rotation</B></span> - allows \r
+ to rotate the selected object using the mouse. </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image102.gif" x-maintain-ratio="TRUE" width="78px" height="147px" border="0" class="img_whs12"> These buttons orientate the scene strictly about coordinate \r
+ axes.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image91.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Reset</B></span> - restores \r
+ the default position (isometric) of objects in the scene.</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><img src="../pics/image108.gif" x-maintain-ratio="TRUE" width="28px" height="25px" border="0" class="img_whs13"> <span style="font-weight: bold;"><B>Scaling</B></span> - represents \r
+ objects deformed (stretched or stuffed) along the axes of coordinates</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">&nbsp;<span \r
+ style="font-weight: bold;\r
+               margin-top: 0pt;\r
+               margin-bottom: 0pt;"><B><img src="../pics/image109.gif" x-maintain-ratio="TRUE" width="27px" height="27px" border="0" class="img_whs14">Graduated axes - </B></span><span style="margin-top: 0pt;\r
+                                                                                                       margin-bottom: 0pt;\r
+                                                                                                       font-weight: normal;">allows \r
+ to define parameters of axes and graduate them.</span></p></li>\r
+</ul>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs15"><img src="../pics/graduatedaxes1.png" x-maintain-ratio="TRUE" width="350px" height="453px" border="0" class="img_whs16"></p>\r
+\r
+<ul type="disc" class="whs4">\r
+       \r
+       <li class=kadov-p><p class="whs17">Axis name </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the axis name is displayed in \r
+ the viewer.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Name<span style="font-weight: normal;"> \r
+ - allows to redefine the name of the axis.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
+ - allows to define color and properties of the font of axis name. </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs19">Labels<span style="font-weight: normal;"> \r
+ </span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the labels are displayed in the \r
+ viewer.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Number<span style="font-weight: normal;"> \r
+ - allows to define the number of labels.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Offset<span style="font-weight: normal;"> \r
+ - allows to define the distance between labels.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
+ - allows to define color and properties of the font of labels names.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs20">Tick marks </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Is visible - <span \r
+ style="font-weight: normal;">if checked the tick marks are displayed in \r
+ the viewer.</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs18">Length<span style="font-weight: normal;"> \r
+ - allows to define the length of tick marks</span></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs20">Is visible <span style="font-weight: normal;">if \r
+ checked the axis is displayed in the viewer.</span></p></li>\r
+</ul>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index ebfcb53d438f039befa52c98fdc60a100772e25b..6330ba3819783993b91fdd2f70f5245d6e976a66 100755 (executable)
@@ -15,15 +15,16 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; border-style:none; width:278px; height:231px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:278px; height:231px; float:none; border-style:none; }\r
+p.whs4 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1pt; }";\r
+  strNSS += "p.whs4 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -90,7 +91,7 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs2"> &nbsp;</p>\r
+<p class="whs2"><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs3"> &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -98,8 +99,8 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Free \r
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark">Free \r
  Borders quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index fa4374670d312d81590fd0be9b32956651f4a2cc..33822dfdf702e2ec5f25e3e9c82e83f3d8589818 100755 (executable)
@@ -102,7 +102,7 @@ else
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark4">Free \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark3">Free \r
  Edges quality control</a> operation. &nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
index b3f7985c80bc50d92f8c6f9ef5040c6725490fae..1b561a87ec1db514348c7ff21f995da8e5aec2a2 100755 (executable)
@@ -174,7 +174,7 @@ else
 \r
 <p class="whs2"><img src="pics/create_group.png" x-maintain-ratio="TRUE" width="430px" height="391px" border="0" class="img_whs3"></p>\r
 \r
-<h4><a name=bookmark5>Create a Group on Geometry</a></h4>\r
+<h3><a name=bookmark5>Create a Group on Geometry</a></h3>\r
 \r
 <p class="whs1">import salome</p>\r
 \r
@@ -182,6 +182,8 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
+<p class="whs1">import SMESH</p>\r
+\r
 <p class="whs1">import StdMeshers</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
@@ -189,12 +191,6 @@ else
 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
  &quot;SMESH&quot;)</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>\r
-\r
-<p class="whs1">smeshgui.Init(salome.myStudyId);</p>\r
-\r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs2"># create a box</p>\r
@@ -229,122 +225,24 @@ else
 \r
 <p class="whs2"># create a hypothesis</p>\r
 \r
-<p class="whs1">print &quot;-------------------------- \r
- create Hypothesis&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- NumberOfSegments&quot;</p>\r
-\r
 <p class="whs1">numberOfSegments \r
  = 7</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
-\r
 <p class="whs1">hypNbSeg = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
  &quot;libStdMeshersEngine.so&quot;)</p>\r
 \r
 <p class="whs1">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print hypNbSeg.GetName()</p>\r
-\r
-<p class="whs1">print hypNbSeg.GetId()</p>\r
-\r
-<p class="whs1">print hypNbSeg.GetNumberOfSegments()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypNbSeg), \r
- &quot;NumberOfSegments_10&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- MaxElementArea&quot;</p>\r
-\r
-<p class="whs1">maxElementArea = \r
- 800</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">hypArea = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hypArea.SetMaxElementArea(maxElementArea)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print hypArea.GetName()</p>\r
-\r
-<p class="whs1">print hypArea.GetId()</p>\r
-\r
-<p class="whs1">print hypArea.GetMaxElementArea()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypArea), \r
- &quot;MaxElementArea_500&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- MaxElementVolume&quot;</p>\r
-\r
-<p class="whs1">maxElementVolume \r
- = 900</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">hypVolume = smesh.CreateHypothesis(&quot;MaxElementVolume&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hypVolume.SetMaxElementVolume(maxElementVolume)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">print hypVolume.GetName()</p>\r
-\r
-<p class="whs1">print hypVolume.GetId()</p>\r
-\r
-<p class="whs1">print hypVolume.GetMaxElementVolume()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypVolume), \r
- &quot;MaxElementVolume_500&quot;)</p>\r
-\r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs2"># create algorithms</p>\r
 \r
-<p class="whs1">print &quot;-------------------------- \r
- create Algorithms&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- Regular_1D&quot;</p>\r
-\r
 <p class="whs1">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
  &quot;libStdMeshersEngine.so&quot;)</p>\r
 \r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(regular1D), \r
- &quot;Wire Discretisation&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- Quadrangle_2D&quot;</p>\r
-\r
 <p class="whs1">quad2D = smesh.CreateHypothesis(&quot;Quadrangle_2D&quot;, \r
  &quot;libStdMeshersEngine.so&quot;)</p>\r
 \r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(quad2D), \r
- &quot;Quadrangle_2D&quot;)</p>\r
-\r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs2"># initialize a mesh with \r
@@ -352,23 +250,13 @@ else
 \r
 <p class="whs1">mesh = smesh.CreateMesh(box)</p>\r
 \r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(mesh), \r
- &quot;MeshBox&quot;)</p>\r
-\r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"># add a hypothesis to the \r
- box</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- add hypothesis to the box&quot;</p>\r
+<p class="whs2"># add hypotheses and algorithms \r
+ to the box</p>\r
 \r
 <p class="whs1">mesh.AddHypothesis(box,hypNbSeg)</p>\r
 \r
-<p class="whs1">mesh.AddHypothesis(box,hypArea)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,hypVolume)</p>\r
-\r
 <p class="whs1">mesh.AddHypothesis(box,regular1D)</p>\r
 \r
 <p class="whs1">mesh.AddHypothesis(box,quad2D)</p>\r
@@ -377,35 +265,33 @@ else
 \r
 <p class="whs2"># compute the mesh</p>\r
 \r
-<p class="whs1">print &quot;-------------------------- \r
- compute the mesh of the box&quot;</p>\r
-\r
 <p class="whs1">ret = smesh.Compute(mesh,box)</p>\r
 \r
-<p class="whs1">print ret</p>\r
-\r
 <p class="whs1">if ret == 0:</p>\r
 \r
 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
  &quot;probleme when computing the mesh&quot;</p>\r
 \r
+<p class="whs1">else:</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
+ &quot;Computation succeded&quot;</p>\r
+\r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs2"># create geometry groups \r
- on the plane:</p>\r
+ on the face</p>\r
 \r
-<p class="whs1">aGeomGroup1 = geompy.CreateGroup(face \r
geompy.ShapeType[&quot;FACE&quot;])</p>\r
+<p class="whs1">aGeomGroup1 = geompy.CreateGroup(face, \r
+ geompy.ShapeType[&quot;FACE&quot;])</p>\r
 \r
 <p class="whs1">geompy.AddObject(aGeomGroup1, \r
  1)</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
-<p class="whs1">aGeomGroup2 = geompy.CreateGroup(face \r
- , geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs1">aGeomGroup2 = geompy.CreateGroup(face, \r
+ geompy.ShapeType[&quot;EDGE&quot;])</p>\r
 \r
 <p class="whs1">geompy.AddObject(aGeomGroup2, \r
  3)</p>\r
@@ -427,10 +313,14 @@ else
 <p class="whs1">geompy.addToStudy(aGeomGroup2, \r
  &quot;Group on Edges&quot;)</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"># create SMESH groups</p>\r
 \r
 <p class="whs1">aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE, \r
- &quot;SMESHGroup1&quot;, aGeomGroup1)</p>\r
+ &quot;SMESHGroup1&quot;,</p>\r
+\r
+<p class="whs1">aGeomGroup1)</p>\r
 \r
 <p class="whs1">aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE, \r
  &quot;SMESHGroup2&quot;, aGeomGroup2)</p>\r
@@ -438,7 +328,7 @@ else
 <p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
&nbsp;</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
diff --git a/doc/salome/gui/SMESH/image129.gif b/doc/salome/gui/SMESH/image129.gif
deleted file mode 100755 (executable)
index c3d2c60..0000000
Binary files a/doc/salome/gui/SMESH/image129.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image138.gif b/doc/salome/gui/SMESH/image138.gif
deleted file mode 100644 (file)
index 1659aab..0000000
Binary files a/doc/salome/gui/SMESH/image138.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image139.gif b/doc/salome/gui/SMESH/image139.gif
deleted file mode 100644 (file)
index 0394383..0000000
Binary files a/doc/salome/gui/SMESH/image139.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image142.gif b/doc/salome/gui/SMESH/image142.gif
new file mode 100755 (executable)
index 0000000..2f411e5
Binary files /dev/null and b/doc/salome/gui/SMESH/image142.gif differ
diff --git a/doc/salome/gui/SMESH/image143.gif b/doc/salome/gui/SMESH/image143.gif
new file mode 100755 (executable)
index 0000000..de9df14
Binary files /dev/null and b/doc/salome/gui/SMESH/image143.gif differ
diff --git a/doc/salome/gui/SMESH/image144.gif b/doc/salome/gui/SMESH/image144.gif
new file mode 100755 (executable)
index 0000000..3dffd53
Binary files /dev/null and b/doc/salome/gui/SMESH/image144.gif differ
diff --git a/doc/salome/gui/SMESH/image145.gif b/doc/salome/gui/SMESH/image145.gif
new file mode 100755 (executable)
index 0000000..8005557
Binary files /dev/null and b/doc/salome/gui/SMESH/image145.gif differ
diff --git a/doc/salome/gui/SMESH/image146.gif b/doc/salome/gui/SMESH/image146.gif
new file mode 100755 (executable)
index 0000000..18f2224
Binary files /dev/null and b/doc/salome/gui/SMESH/image146.gif differ
diff --git a/doc/salome/gui/SMESH/image147.gif b/doc/salome/gui/SMESH/image147.gif
new file mode 100755 (executable)
index 0000000..7b9a354
Binary files /dev/null and b/doc/salome/gui/SMESH/image147.gif differ
diff --git a/doc/salome/gui/SMESH/image148.gif b/doc/salome/gui/SMESH/image148.gif
new file mode 100755 (executable)
index 0000000..0ef4147
Binary files /dev/null and b/doc/salome/gui/SMESH/image148.gif differ
diff --git a/doc/salome/gui/SMESH/image15.jpg b/doc/salome/gui/SMESH/image15.jpg
new file mode 100755 (executable)
index 0000000..15edee5
Binary files /dev/null and b/doc/salome/gui/SMESH/image15.jpg differ
diff --git a/doc/salome/gui/SMESH/image151.gif b/doc/salome/gui/SMESH/image151.gif
new file mode 100755 (executable)
index 0000000..5c4a20e
Binary files /dev/null and b/doc/salome/gui/SMESH/image151.gif differ
diff --git a/doc/salome/gui/SMESH/image152.gif b/doc/salome/gui/SMESH/image152.gif
new file mode 100755 (executable)
index 0000000..2005d3f
Binary files /dev/null and b/doc/salome/gui/SMESH/image152.gif differ
diff --git a/doc/salome/gui/SMESH/image19.jpg b/doc/salome/gui/SMESH/image19.jpg
deleted file mode 100755 (executable)
index f5c6395..0000000
Binary files a/doc/salome/gui/SMESH/image19.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image21.gif b/doc/salome/gui/SMESH/image21.gif
deleted file mode 100755 (executable)
index 5dbd121..0000000
Binary files a/doc/salome/gui/SMESH/image21.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image22.gif b/doc/salome/gui/SMESH/image22.gif
deleted file mode 100755 (executable)
index 18b53bf..0000000
Binary files a/doc/salome/gui/SMESH/image22.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image23.gif b/doc/salome/gui/SMESH/image23.gif
deleted file mode 100755 (executable)
index 5a1216d..0000000
Binary files a/doc/salome/gui/SMESH/image23.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image26.jpg b/doc/salome/gui/SMESH/image26.jpg
deleted file mode 100755 (executable)
index 3a02cb9..0000000
Binary files a/doc/salome/gui/SMESH/image26.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image27.gif b/doc/salome/gui/SMESH/image27.gif
deleted file mode 100755 (executable)
index 6c8485c..0000000
Binary files a/doc/salome/gui/SMESH/image27.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/image73.gif b/doc/salome/gui/SMESH/image73.gif
deleted file mode 100755 (executable)
index 504816a..0000000
Binary files a/doc/salome/gui/SMESH/image73.gif and /dev/null differ
index ea7c013107798bc9a80e35a8db6da9a36fc5d58e..3f2d3206e6e00328b7323afd007f7d3f7889d215 100755 (executable)
@@ -15,15 +15,16 @@ if (navigator.appName !="Netscape")
 <style type="text/css">\r
 <!--\r
 img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; width:355px; height:329px; float:none; }\r
-p.whs3 { margin-left:0px; }\r
+p.whs2 { margin-left:40px; }\r
+img_whs3 { border:none; width:165px; height:239px; float:none; border-style:none; }\r
+p.whs4 { margin-left:0px; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
 {\r
   var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {margin-left:1pt; }";\r
+  strNSS += "p.whs4 {margin-left:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -90,14 +91,14 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><img src="pics/length1.png" x-maintain-ratio="TRUE" width="355px" height="329px" border="0" class="img_whs2"></p>\r
+<p class="whs2"><img src="pics/length-crit.png" x-maintain-ratio="TRUE" width="165px" height="239px" border="0" class="img_whs3"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p class="whs3">&nbsp;</p>\r
+<p class="whs4">&nbsp;</p>\r
 \r
-<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark4">&nbsp;Length \r
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark2">&nbsp;Length \r
  quality control</a> operation. &nbsp;</p>\r
 \r
 <p>.</p>\r
diff --git a/doc/salome/gui/SMESH/merge_elements.htm b/doc/salome/gui/SMESH/merge_elements.htm
new file mode 100755 (executable)
index 0000000..f5ee626
--- /dev/null
@@ -0,0 +1,96 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Merge Elements</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }\r
+img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging 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(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Merging Elements</h1>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows to merge coincident elements \r
+ of a mesh selectable in the dialog box. </p>\r
+\r
+<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>\r
+\r
+<p>In this picture you see a triangle which coincides with one of the elements \r
+ of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span> \r
+ functionality, the triangle will be completely merged with the mesh. </p>\r
+\r
+<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>\r
+\r
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge \r
+ Elements</a> operation. &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index 8ba2b742c99f79460c5c5bda9c56738cd83ba7c3..2bf6951c3cb4017f851c5744dad41af22fb91cdb 100755 (executable)
@@ -14,11 +14,13 @@ LI.kadov-P {  }
 <!--\r
 p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
 p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-h4.whs3 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs4 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
-p.whs5 { margin-top:0.5pt; margin-bottom:0pt; }\r
-p.whs6 { font-family:'Lucida Console' , monospace; }\r
-p.whs7 { font-family:'Times New Roman' , serif; }\r
+p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
+h4.whs4 { margin-top:0pt; margin-bottom:0pt; }\r
+p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
+p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }\r
+p.whs7 { font-family:'Lucida Console' , monospace; }\r
+p.whs8 { font-family:'Times New Roman' , serif; }\r
+p.whs9 { margin-left:40px; font-family:'Lucida Console' , monospace; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript">\r
 <!--\r
@@ -27,9 +29,10 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
   var strNSS = "<style type='text/css'>";\r
   strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
   strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "h4.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
   strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
+  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
   strNSS +="</style>";\r
   document.write(strNSS);\r
 }\r
@@ -480,9 +483,290 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
+<h4>Add Polygon</h4>\r
+\r
+<p class="whs1">import salome</p>\r
+\r
+<p class="whs1">import geompy</p>\r
+\r
+<p class="whs1">import math</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">import StdMeshers</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># GEOM module </p>\r
+\r
+<p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, \r
+ 77)</p>\r
+\r
+<p class="whs1">geompy.addToStudy(shape_mesh, \r
+ &quot;cylinder&quot;)</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># SMESH module</p>\r
+\r
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
+ &quot;SMESH&quot;)</p>\r
+\r
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>\r
+\r
+<p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>\r
+\r
+<p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># a method to build a polygonal \r
+ mesh element with nb_vert angles:</p>\r
+\r
+<p class="whs1">def MakePolygon \r
+ (a_mesh, x0, y0, z0, radius, nb_vert):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_start_id \r
+ = a_mesh.NbNodes() + 1</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;al \r
+ = 2.0 * math.pi / nb_vert</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_ids \r
+ = []</p>\r
+\r
+<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+\r
+<p class="whs2"># Create nodes for a polyhedron</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;for \r
+ ii in range(nb_vert):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(x0 \r
+ + radius * math.cos(ii*al),</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0 \r
+ + radius * math.sin(ii*al),</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z0)</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node_ids.append(node_start_id \r
+ + ii)</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>\r
+\r
+<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+\r
+<p class="whs2"># Create a polygon</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddPolygonalFace(node_ids)</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;return \r
+ 0</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># Create three polygons</p>\r
+\r
+<p class="whs1">MakePolygon(mesh, \r
+ 0, 0, &nbsp;0, \r
+ 30, 13)</p>\r
+\r
+<p class="whs1">MakePolygon(mesh, \r
+ 0, 0, 10, 21, &nbsp;9)</p>\r
+\r
+<p class="whs1">MakePolygon(mesh, \r
+ 0, 0, 20, 13, &nbsp;6)</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">salome.sg.updateObjBrowser(1) \r
+ &nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<h4>Add polyhedron</h4>\r
+\r
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
+ salome</span></p>\r
+\r
+<p class="whs1">import geompy</p>\r
+\r
+<p class="whs1">import math</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">#import SMESH</p>\r
+\r
+<p class="whs1">import StdMeshers</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs3"># GEOM</p>\r
+\r
+<p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, \r
+ 77)</p>\r
+\r
+<p class="whs1">geompy.addToStudy(shape_mesh, \r
+ &quot;cylinder&quot;)</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs3"># SMESH</p>\r
+\r
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
+ &quot;SMESH&quot;)</p>\r
+\r
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>\r
+\r
+<p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>\r
+\r
+<p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs3"># Now we are going \r
+ to create a 12-hedron:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"># Create nodes for \r
+ polyhedron</p>\r
+\r
+<p class="whs1">al = 2 * math.pi \r
+ / 5.0</p>\r
+\r
+<p class="whs1">cosal = math.cos(al)</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">aa = 13</p>\r
+\r
+<p class="whs1">rr = aa / (2.0 * \r
+ math.sin(al/2.0))</p>\r
+\r
+<p class="whs1">dr = 2.0 * rr * \r
+ cosal</p>\r
+\r
+<p class="whs1">r1 = rr + dr</p>\r
+\r
+<p class="whs1">dh = rr * math.sqrt(2.0 \r
+ * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>\r
+\r
+<p class="whs1">hh = 2.0 * dh - \r
+ dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">for i in range(5):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(rr*math.cos(i*al), \r
+ rr*math.sin(i*al), &nbsp;0) \r
+ <span style="font-family: 'Times New Roman', serif;"># 1,3,5,7, 9 # bottom</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(r1*math.cos(i*al), \r
+ r1*math.sin(i*al), dh) <span style="font-family: 'Times New Roman', serif;"># \r
+ 2,4,6,8,10 # above bottom</span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">for i in range(5):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(rr*math.cos(i*al \r
+ + al/2.0),</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr*math.sin(i*al \r
+ + al/2.0), hh) # 11,13,15,17,19 <span style="font-family: 'Times New Roman', serif;"># \r
+ top</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(r1*math.cos(i*al \r
+ + al/2.0),</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r1*math.sin(i*al \r
+ + al/2.0), hh - dh) # 12,14,16,18,20 <span style="font-family: 'Times New Roman', serif;"># \r
+ below top</span></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs3"># Create a polyhedral \r
+ volume</p>\r
+\r
+<p class="whs1">MeshEditor.AddPolyhedralVolume([ \r
+ 1, &nbsp;3, &nbsp;5, \r
+ &nbsp;7, &nbsp;9, \r
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ bottom</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, \r
+ &nbsp;2, 12, \r
+ &nbsp;4, &nbsp;3, \r
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3, \r
+ &nbsp;4, 14, \r
+ &nbsp;6, &nbsp;5, \r
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5, \r
+ &nbsp;6, 16, \r
+ &nbsp;8, &nbsp;7, \r
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ . above bottom</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7, \r
+ &nbsp;8, 18, \r
+ 10, &nbsp;9, \r
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9, \r
+ 10, 20, &nbsp;2, \r
+ &nbsp;1, &nbsp;<span \r
+ style="font-family: 'Times New Roman', serif;"># \r
+ .</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11, \r
+ 12, &nbsp;4, \r
+ 14, 13, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13, \r
+ 14, &nbsp;6, \r
+ 16, 15, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15, \r
+ 16, &nbsp;8, \r
+ 18, 17, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ - below top</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17, \r
+ 18, 10, 20, 19, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;19, \r
+ 20, &nbsp;2, \r
+ 12, 11, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
+ -</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11, \r
+ 13, 15, 17, 19], <span style="font-family: 'Times New Roman', serif;"># \r
+ top</span></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5,5,5,5,5,5,5,5,5,5,5,5])</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">salome.sg.updateObjBrowser(1) \r
+ &nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
 <h3><a name=bookmark1>Removing Nodes and Elements</a></h3>\r
 \r
-<h4 class="whs3">Removing Nodes</h4>\r
+<h4 class="whs4">Removing Nodes</h4>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
@@ -556,29 +840,29 @@ else
 \r
 <h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>\r
 \r
-<p class="whs4">import SMESH</p>\r
+<p class="whs5">import SMESH</p>\r
 \r
-<p class="whs4">import SMESH_mechanic</p>\r
+<p class="whs5">import SMESH_mechanic</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs4">mesh &nbsp;&nbsp;= \r
+<p class="whs5">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
 \r
-<p class="whs4">salome = SMESH_mechanic.salome</p>\r
+<p class="whs5">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs4">anEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs5">anEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs4">anEditor.RenumberNodes()</p>\r
+<p class="whs5">anEditor.RenumberNodes()</p>\r
 \r
-<p class="whs4">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs5"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
 \r
-<p class="whs5">&nbsp;</p>\r
+<p class="whs6">&nbsp;</p>\r
 \r
 <p>&nbsp;</p>\r
 \r
@@ -648,30 +932,30 @@ else
 \r
 <h3><a name=bookmark5>Uniting two Triangles</a></h3>\r
 \r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
 \r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">smesh &nbsp;= \r
+<p class="whs7">smesh &nbsp;= \r
  SMESH_mechanic.smesh</p>\r
 \r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
+<p class="whs7">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
 \r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
 <p># delete diagonal</p>\r
 \r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs6">aMeshEditor.DeleteDiag(700, \r
+<p class="whs7">aMeshEditor.DeleteDiag(700, \r
  642)</p>\r
 \r
-<p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+<p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
 \r
 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
@@ -680,399 +964,601 @@ else
 \r
 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>\r
 \r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
 \r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">smesh &nbsp;= \r
+<p class="whs7">smesh &nbsp;= \r
  SMESH_mechanic.smesh</p>\r
 \r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
+<p class="whs7">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
 \r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
 <p># unite a set of triangles</p>\r
 \r
-<p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
+<p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>\r
 \r
-<p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
+<p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs6">aMeshEditor.TriToQuad([1145, \r
+<p class="whs7">aMeshEditor.TriToQuad([1145, \r
  1147, 1159, 1135], aFunctor, 60)</p>\r
 \r
-<p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+<p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
 \r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
  </p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<h3><a name=bookmark12>Orientation</a></h3>\r
+\r
+<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">import \r
+ salome</span></p>\r
+\r
+<p class="whs7">import geompy</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">import StdMeshers</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs8"># GEOM module</p>\r
+\r
+<p class="whs7">shape_mesh = geompy.MakeCylinderRH(13, \r
+ 77)</p>\r
+\r
+<p class="whs7">geompy.addToStudy(shape_mesh, \r
+ &quot;cylinder&quot;)</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs8"># SMESH module</p>\r
+\r
+<p class="whs7">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
+ &quot;SMESH&quot;)</p>\r
+\r
+<p class="whs7">smesh.SetCurrentStudy(salome.myStudy)</p>\r
+\r
+<p class="whs7">mesh = smesh.CreateMesh(shape_mesh)</p>\r
+\r
+<p class="whs7">MeshEditor = mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs8"># build five quadrangles:</p>\r
+\r
+<p class="whs7">node_start_id = mesh.NbNodes() \r
+ + 1</p>\r
+\r
+<p class="whs7">dx = 10</p>\r
+\r
+<p class="whs7">dy = 20</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(0.0 \r
+ * dx, 0, 0) # 1</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(1.0 \r
+ * dx, 0, 0) # 2</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(2.0 \r
+ * dx, 0, 0) # 3</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(3.0 \r
+ * dx, 0, 0) # 4</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(4.0 \r
+ * dx, 0, 0) # 5</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(5.0 \r
+ * dx, 0, 0) # 6</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(0.0 \r
+ * dx, dy, 0) # 7</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(1.0 \r
+ * dx, dy, 0) # 8</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(2.0 \r
+ * dx, dy, 0) # 9</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(3.0 \r
+ * dx, dy, 0) # 10</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(4.0 \r
+ * dx, dy, 0) # 11</p>\r
+\r
+<p class="whs7">MeshEditor.AddNode(5.0 \r
+ * dx, dy, 0) # 12</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([1, \r
+ 2, &nbsp;8, &nbsp;7])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([2, \r
+ 3, &nbsp;9, &nbsp;8])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([3, \r
+ 4, 10, &nbsp;9])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([4, \r
+ 5, 11, 10])</p>\r
+\r
+<p class="whs7">MeshEditor.AddFace([5, \r
+ 6, 12, 11])</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs8"># Change orientation \r
+ of the second and the fourth faces.</p>\r
+\r
+<p class="whs7">MeshEditor.Reorient([2, \r
+ 4])</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
+ &nbsp;</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
 \r
 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>\r
 \r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
 \r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">smesh &nbsp;= \r
+<p class="whs7">smesh &nbsp;= \r
  SMESH_mechanic.smesh</p>\r
 \r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
+<p class="whs7">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
 \r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># unite a set of triangles</p>\r
+<p class="whs8"># unite a set of triangles</p>\r
 \r
-<p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
+<p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>\r
 \r
-<p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
+<p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs6">aMeshEditor.QuadToTri([405, \r
+<p class="whs7">aMeshEditor.QuadToTri([405, \r
  406], aFunctor)</p>\r
 \r
-<p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+<p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
 \r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
  </p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
 <h3><a name=bookmark8>Smoothing</a></h3>\r
 \r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
 \r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">import SMESH_mechanic</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">smesh &nbsp;= \r
+<p class="whs7">smesh &nbsp;= \r
  SMESH_mechanic.smesh</p>\r
 \r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
+<p class="whs7">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
 \r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># smooth</p>\r
+<p class="whs8"># smooth</p>\r
 \r
-<p class="whs6">FacesSmooth = [911, \r
+<p class="whs7">FacesSmooth = [911, \r
  931, 950, 864, 932]</p>\r
 \r
-<p class="whs6">GroupSmooth = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
+<p class="whs7">GroupSmooth = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
  of faces (smooth)&quot;)</p>\r
 \r
-<p class="whs6">GroupSmooth.Add(FacesSmooth)</p>\r
+<p class="whs7">GroupSmooth.Add(FacesSmooth)</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs6">aMeshEditor.SmoothObject(GroupSmooth, \r
+<p class="whs7">aMeshEditor.SmoothObject(GroupSmooth, \r
  [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
+<p class="whs7">salome.sg.updateObjBrowser(1) \r
  </p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
 <h3><a name=bookmark9>Extrusion</a></h3>\r
 \r
-<p class="whs7">import SMESH</p>\r
+<p class="whs8">import SMESH</p>\r
 \r
-<p class="whs7">import SMESH_mechanic</p>\r
+<p class="whs8">import SMESH_mechanic</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p class="whs7">smesh &nbsp;= \r
+<p class="whs8">smesh &nbsp;= \r
  SMESH_mechanic.smesh</p>\r
 \r
-<p class="whs7">mesh &nbsp;&nbsp;= \r
+<p class="whs8">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
 \r
-<p class="whs7">salome = SMESH_mechanic.salome</p>\r
+<p class="whs8">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># extrusion of the group</p>\r
+<p class="whs8"># extrusion of the group</p>\r
 \r
-<p class="whs7">point = SMESH.PointStruct(0, \r
+<p class="whs8">point = SMESH.PointStruct(0, \r
  0, 5)</p>\r
 \r
-<p class="whs7">vector = SMESH.DirStruct(point)</p>\r
+<p class="whs8">vector = SMESH.DirStruct(point)</p>\r
 \r
-<p class="whs7">FacesTriToQuad = [2381, \r
+<p class="whs8">FacesTriToQuad = [2381, \r
  2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, \r
  2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, \r
  2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, \r
  2418, 2419, 2420, 2421, 2422]</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p class="whs7">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
+<p class="whs8">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
  of faces (quad)&quot;)</p>\r
 \r
-<p class="whs7">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
+<p class="whs8">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs8">aMeshEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs7">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
+<p class="whs8">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
  vector, 5)</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p class="whs7">salome.sg.updateObjBrowser(1) \r
+<p class="whs8">salome.sg.updateObjBrowser(1) \r
  </p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
 <h3><a name=bookmark10>Extrusion along a Path</a></h3>\r
 \r
-<p class="whs6">import geompy</p>\r
+<p class="whs7">import geompy</p>\r
 \r
-<p class="whs6">import smesh</p>\r
+<p class="whs7">import smesh</p>\r
 \r
-<p class="whs6">import salome</p>\r
+<p class="whs7">import salome</p>\r
 \r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">import SMESH</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create a 2D mesh on \r
a face</p>\r
+<p class="whs8"># create a face to be \r
meshed</p>\r
 \r
-<p class="whs7"># create vertices</p>\r
+<p class="whs7">px = geompy.MakeVertex(100., \r
+ 0. &nbsp;, 0. \r
+ &nbsp;)</p>\r
 \r
-<p class="whs6">px &nbsp;&nbsp;= \r
geompy.MakeVertex(100., 0. &nbsp;\r
+<p class="whs7">py = geompy.MakeVertex(0. \r
&nbsp;, 100.\r
  0. &nbsp;)</p>\r
 \r
-<p class="whs6">py &nbsp;&nbsp;= \r
geompy.MakeVertex(0. &nbsp;, \r
- 100., 0. &nbsp;)</p>\r
+<p class="whs7">pz = geompy.MakeVertex(0. \r
&nbsp;, 0. &nbsp;, \r
+ 100.)</p>\r
 \r
-<p class="whs6">pz &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 0. &nbsp;, 100.)</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
+\r
+<p class="whs7">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
 \r
-<p class="whs7"># create a vector from \r
- two points</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">vxy = geompy.MakeVector(px, \r
- py)</p>\r
+<p class="whs7">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
+\r
+<p class="whs7">isPlanarFace = 1</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create an arc from \r
three points</p>\r
+<p class="whs7">face1 = geompy.MakeFace(wire, \r
isPlanarFace)</p>\r
 \r
-<p class="whs6">arc = geompy.MakeArc(py\r
pz, px)</p>\r
+<p class="whs7">id_face1 = geompy.addToStudy(face1\r
&quot;Face1&quot;)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create a wire</p>\r
+<p class="whs8"># create a 2D mesh on \r
+ the face</p>\r
 \r
-<p class="whs6">wire = geompy.MakeWire([vxy, \r
- arc])</p>\r
+<p class="whs7">trias = smesh.Mesh(face1, \r
+ &quot;Face : 2D mesh&quot;)</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">algo = trias.Segment()</p>\r
 \r
-<p class="whs6">isPlanarFace = 1</p>\r
+<p class="whs7">algo.NumberOfSegments(6)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create a face from \r
- the wire</p>\r
+<p class="whs7">algo = trias.Triangle()</p>\r
 \r
-<p class="whs6">face1 = geompy.MakeFace(wire, \r
- isPlanarFace)</p>\r
+<p class="whs7">algo.LengthFromEdges()</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># add objects in the \r
- study</p>\r
+<p class="whs7">trias.Compute()</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
+<p class="whs8"># create a path mesh</p>\r
+\r
+<p class="whs7">px1 = geompy.MakeVertex(100., \r
+ 100. &nbsp;, \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs7">py1 = geompy.MakeVertex(-100. \r
+ &nbsp;, -100., \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs7">pz1 = geompy.MakeVertex(0. \r
+ &nbsp;, 0. &nbsp;, \r
+ 50.)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create hexahedrical \r
- mesh</p>\r
+<p class="whs7">circle = geompy.MakeCircleThreePnt(py1, \r
+ pz1, px1)</p>\r
+\r
+<p class="whs7">id_circle = geompy.addToStudy(circle, \r
+ &quot;Path&quot;)</p>\r
 \r
-<p class="whs6">hexa = smesh.Mesh(face1, \r
- &quot;Face compound : hexahedrical mesh&quot;)</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">algo = hexa.Triangle()</p>\r
+<p class="whs7">circlemesh = smesh.Mesh(circle, \r
+ &quot;Path mesh&quot;)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># define &quot;MaxElementArea&quot; \r
- hypothesis to be applied to each triangle</p>\r
+<p class="whs7">algo = circlemesh.Segment()</p>\r
+\r
+<p class="whs7">algo.NumberOfSegments(10)</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">algo.MaxElementArea(30)</p>\r
+<p class="whs7">circlemesh.Compute()</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create a quadrangle \r
- 2D algorithm for faces</p>\r
+<p class="whs8"># extrusion of the mesh</p>\r
 \r
-<p class="whs6">hexa.Quadrangle()</p>\r
+<p class="whs8"># The mesh &quot;trias&quot; \r
+ will be extruded along another mesh, which is a sub-mesh of &quot;circlemesh&quot;,</p>\r
+\r
+<p class="whs8"><span style="font-family: 'Times New Roman', serif;"># \r
+ corresponding to geometry &quot;circle&quot;. In this particular case \r
+ the path mesh will be the whole &quot;circlemesh&quot;</span></p>\r
+\r
+<p class="whs8">&nbsp;</p>\r
+\r
+<p class="whs7">aMeshEditor = trias.GetMesh().GetMeshEditor()</p>\r
+\r
+<p class="whs7">aMeshEditor.ExtrusionAlongPathObject(trias.GetMesh(), \r
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create a local hypothesis</p>\r
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
 \r
-<p class="whs6">algo = hexa.Segment(wire)</p>\r
+<h3><a name=bookmark11>Revolution</a></h3>\r
+\r
+<p class="whs7">import SMESH</p>\r
+\r
+<p class="whs7">import SMESH_mechanic</p>\r
+\r
+<p class="whs7">import math</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
+<p class="whs7">smesh &nbsp;= \r
+ SMESH_mechanic.smesh</p>\r
+\r
+<p class="whs7">mesh &nbsp;&nbsp;= \r
+ SMESH_mechanic.mesh</p>\r
+\r
+<p class="whs7">salome = SMESH_mechanic.salome</p>\r
 \r
-<p class="whs6">algo.NumberOfSegments(6)</p>\r
+<p class="whs8">&nbsp;</p>\r
+\r
+<p class="whs8"># rotate a sweep object</p>\r
+\r
+<p class="whs7">FacesRotate = [492, \r
+ 493, 502, 503]</p>\r
+\r
+<p class="whs7">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
+ of faces (rotate)&quot;)</p>\r
+\r
+<p class="whs7">GroupRotate.Add(FacesRotate)</p>\r
+\r
+<p class="whs7">angle45 = &nbsp;45*math.pi/180</p>\r
+\r
+<p class="whs7">axisXYZ = SMESH.AxisStruct(-38.3128, \r
+ -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># compute the mesh</p>\r
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
 \r
-<p class="whs6">hexa.Compute()</p>\r
+<p class="whs7">aMeshEditor.RotationSweepObject(GroupRotate, \r
+ axisXYZ, angle45, 4, 1e-5)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create path mesh and \r
path shape</p>\r
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
 \r
-<p class="whs7"># create a circle from \r
- three points</p>\r
+<p class="whs8">&nbsp;</p>\r
 \r
-<p class="whs6">px1 &nbsp;&nbsp;= \r
- geompy.MakeVertex(100., 100. &nbsp;, \r
- 0. &nbsp;)</p>\r
+<h3><a name=bookmark13>Pattern Mapping</a></h3>\r
 \r
-<p class="whs6">py1 &nbsp;&nbsp;= \r
- geompy.MakeVertex(-100. &nbsp;, \r
- -100., 0. &nbsp;)</p>\r
+<p class="whs7">import salome</p>\r
 \r
-<p class="whs6">pz1 &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 0. &nbsp;, 50.)</p>\r
+<p class="whs7">import geompy</p>\r
 \r
-<p class="whs6">circle = geompy.MakeCircleThreePnt(py1, \r
- pz1, px1)</p>\r
+<p class="whs7">import SMESH, smesh</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># add objects in the \r
- study</p>\r
+<p class="whs7">geompy.init_geom(salome.myStudy)</p>\r
 \r
-<p class="whs6">id_circle = geompy.addToStudy(circle,&quot;Path&quot;)</p>\r
+<p class="whs7">smesh.smesh.SetCurrentStudy(salome.myStudy)</p>\r
 \r
-<p class="whs6">circlemesh = smesh.Mesh(circle, \r
- &quot;Path mesh&quot;)</p>\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs8"># define geometry</p>\r
+\r
+<p class="whs7">Box_1 = geompy.MakeBoxDXDYDZ(200, \r
+ 200, 200)</p>\r
+\r
+<p class="whs7">geompy.addToStudy(Box_1, \r
+ &quot;Box_1&quot;)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># create a local hypothesis</p>\r
+<p class="whs7">faces = geompy.SubShapeAll(Box_1, \r
+ geompy.ShapeType[&quot;FACE&quot;])</p>\r
+\r
+<p class="whs7">Face_1 = faces[0]</p>\r
 \r
-<p class="whs6">algo = circlemesh.Segment()</p>\r
+<p class="whs7">Face_2 = faces[1]</p>\r
 \r
-<p class="whs7"># define &quot;NumberOfSegments&quot; \r
hypothesis to cut an edge in a fixed number of segments</p>\r
+<p class="whs7">geompy.addToStudyInFather(Box_1, \r
Face_1, &quot;Face_1&quot;)</p>\r
 \r
-<p class="whs6">algo.NumberOfSegments(10)</p>\r
+<p class="whs7">geompy.addToStudyInFather(Box_1, \r
+ Face_2, &quot;Face_2&quot;)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># compute the mesh</p>\r
+<p class="whs8"># build quadrangle mesh \r
+ 3x3 on Face_1</p>\r
 \r
-<p class="whs6">circlemesh.Compute()</p>\r
+<p class="whs7">Mesh_1 = smesh.Mesh(Face_1)</p>\r
 \r
-<p class="whs7">&nbsp;</p>\r
+<p class="whs7">Wire_discretisation \r
+ = Mesh_1.Segment()</p>\r
 \r
-<p class="whs7"># extrusion of the mesh</p>\r
+<p class="whs7">Wire_discretisation.NumberOfSegments(3)</p>\r
 \r
-<p class="whs6">aMeshEditor = hexa.GetMesh().GetMeshEditor()</p>\r
+<p class="whs7">Mesh_1.Quadrangle()</p>\r
 \r
-<p class="whs6">aMeshEditor.ExtrusionAlongPathObject(hexa.GetMesh(), \r
- circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">isDone = Mesh_1.Compute()</p>\r
 \r
-<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
+<p class="whs7">if not isDone: print \r
'Mesh Mesh_1 : computation failed'</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<h3><a name=bookmark11>Revolution</a></h3>\r
+<p class="whs8"># pattern the mesh</p>\r
 \r
-<p class="whs6">import SMESH</p>\r
+<p class="whs7">Mesh_2 = smesh.Mesh(Face_2)</p>\r
 \r
-<p class="whs6">import SMESH_mechanic</p>\r
+<p class="whs7">Nb_Segments_1 = smesh.smesh.CreateHypothesis('NumberOfSegments', \r
+ 'libStdMeshersEngine.so')</p>\r
 \r
-<p class="whs6">import math</p>\r
+<p class="whs7">Nb_Segments_1.SetNumberOfSegments(1)</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, \r
+ Nb_Segments_1)</p>\r
 \r
-<p class="whs6">smesh &nbsp;= \r
SMESH_mechanic.smesh</p>\r
+<p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, \r
Wire_discretisation.GetAlgorithm())</p>\r
 \r
-<p class="whs6">mesh &nbsp;&nbsp;\r
SMESH_mechanic.mesh</p>\r
+<p class="whs7">Triangle_Mefisto \r
Mesh_2.Triangle()</p>\r
 \r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
+<p class="whs7">Max_Element_Area = \r
+ Triangle_Mefisto.MaxElementArea(240)</p>\r
 \r
 <p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"># rotate a sweep object</p>\r
+<p class="whs7">isDone = Mesh_2.Compute()</p>\r
 \r
-<p class="whs6">FacesRotate = [492, \r
493, 502, 503]</p>\r
+<p class="whs7">if not isDone: print \r
'Mesh Mesh_2 : computation failed'</p>\r
 \r
-<p class="whs6">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
- of faces (rotate)&quot;)</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">GroupRotate.Add(FacesRotate)</p>\r
+<p class="whs8"># create a pattern</p>\r
 \r
-<p class="whs6">angle45 = &nbsp;45*math.pi/180</p>\r
+<p class="whs7">pattern = smesh.smesh.GetPattern()</p>\r
 \r
-<p class="whs6">axisXYZ = SMESH.AxisStruct(-38.3128\r
-73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
+<p class="whs7">isDone = pattern.LoadFromFace(Mesh_2.GetMesh()\r
Face_2, 0)</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs7">if (isDone != 1):</p>\r
 \r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
+<p class="whs9">print \r
+ 'LoadFromFace :', pattern.GetErrorCode()</p>\r
 \r
-<p class="whs6">aMeshEditor.RotationSweepObject(GroupRotate, \r
- axisXYZ, angle45, 4, 1e-5)</p>\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs6">&nbsp;</p>\r
+<p class="whs8"># apply the pattern to \r
+ a face of the first mesh</p>\r
+\r
+<p class="whs7">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), \r
+ [17], 0, 0)</p>\r
+\r
+<p class="whs7">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), \r
+ 0, 0)</p>\r
+\r
+<p class="whs7">if (isDone != 1):</p>\r
+\r
+<p class="whs9">print \r
+ 'MakeMesh :', pattern.GetErrorCode()</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
 \r
-<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
index bc8b8a03b6ad511361bcaabf383c80316a975d8e..fcfef13013c88e6f77b853e14c87742bc834ac44 100755 (executable)
@@ -18,23 +18,23 @@ img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none;
 p.whs2 { margin-left:40px; }\r
 img_whs3 { border:none; width:626px; height:471px; border-style:none; }\r
 img_whs4 { border:none; width:22px; height:28px; border-style:none; }\r
-table.whs5 { x-cell-content-align:top; border-spacing:0px; width:64.066%; }\r
+table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; }\r
 col.whs6 { width:56.089%; }\r
 col.whs7 { width:43.911%; }\r
 tr.whs8 { x-cell-content-align:top; }\r
 td.whs9 { width:56.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
 p.whs10 { margin-right:0px; }\r
-img_whs11 { border:none; border-style:none; width:306px; height:632px; float:none; }\r
+img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; }\r
 td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs13 { border:none; border-style:none; width:306px; height:670px; float:none; }\r
+img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; }\r
 img_whs14 { border:none; width:34px; height:34px; border-style:none; }\r
-table.whs15 { x-cell-content-align:top; border-spacing:0px; width:68.686%; }\r
+table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; }\r
 col.whs16 { width:50.224%; }\r
 col.whs17 { width:49.776%; }\r
-td.whs18 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs19 { border:none; border-style:none; width:306px; height:428px; float:none; }\r
-td.whs20 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs21 { border:none; border-style:none; width:306px; height:248px; float:none; }\r
+td.whs18 { width:50.224%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
+img_whs19 { border:none; width:306px; height:428px; float:none; border-style:none; }\r
+td.whs20 { width:49.776%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
+img_whs21 { border:none; width:306px; height:248px; float:none; border-style:none; }\r
 p.whs22 { margin-left:0px; }\r
 img_whs23 { border:none; width:554px; height:279px; border-style:none; }\r
 img_whs24 { border:none; width:572px; height:233px; border-style:none; }\r
@@ -231,7 +231,7 @@ else
  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
-<table x-use-null-cells width="68.686%" cellspacing="0" class="whs15">\r
+<table x-use-null-cells cellspacing="0" width="68.686%" class="whs15">\r
 <col class="whs16">\r
 <col class="whs17">\r
 \r
@@ -288,6 +288,14 @@ else
 \r
 <p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></p>\r
 \r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p>&nbsp;<span style="font-weight: bold;"><B>See \r
+ Also</B></span> a sample TUI Script of a <a href="modifying_meshes.htm#bookmark13">Pattern \r
+ Mapping</a><a href="modifying_meshes.htm#bookmark11"> </a>operation. &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.writeIntopicBar)\r
diff --git a/doc/salome/gui/SMESH/pics/a-advmeshinfo.png b/doc/salome/gui/SMESH/pics/a-advmeshinfo.png
deleted file mode 100755 (executable)
index 41aa28b..0000000
Binary files a/doc/salome/gui/SMESH/pics/a-advmeshinfo.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/a-createmesh1.png b/doc/salome/gui/SMESH/pics/a-createmesh1.png
deleted file mode 100755 (executable)
index 026c88d..0000000
Binary files a/doc/salome/gui/SMESH/pics/a-createmesh1.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/a-editmesh.png b/doc/salome/gui/SMESH/pics/a-editmesh.png
deleted file mode 100755 (executable)
index f5da15a..0000000
Binary files a/doc/salome/gui/SMESH/pics/a-editmesh.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/a-exportmesh.png b/doc/salome/gui/SMESH/pics/a-exportmesh.png
deleted file mode 100755 (executable)
index 0c24b12..0000000
Binary files a/doc/salome/gui/SMESH/pics/a-exportmesh.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/a-nbsegments3.png b/doc/salome/gui/SMESH/pics/a-nbsegments3.png
deleted file mode 100755 (executable)
index a216482..0000000
Binary files a/doc/salome/gui/SMESH/pics/a-nbsegments3.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/a-nbsegments4.png b/doc/salome/gui/SMESH/pics/a-nbsegments4.png
deleted file mode 100755 (executable)
index ebad8cd..0000000
Binary files a/doc/salome/gui/SMESH/pics/a-nbsegments4.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png b/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png
new file mode 100755 (executable)
index 0000000..f8341e8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png differ
diff --git a/doc/salome/gui/SMESH/pics/aqt.png b/doc/salome/gui/SMESH/pics/aqt.png
new file mode 100755 (executable)
index 0000000..32e36bd
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/aqt.png differ
diff --git a/doc/salome/gui/SMESH/pics/automaticlength.png b/doc/salome/gui/SMESH/pics/automaticlength.png
new file mode 100755 (executable)
index 0000000..d96ffc8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/automaticlength.png differ
diff --git a/doc/salome/gui/SMESH/pics/b-create_group.png b/doc/salome/gui/SMESH/pics/b-create_group.png
deleted file mode 100755 (executable)
index 6fc2367..0000000
Binary files a/doc/salome/gui/SMESH/pics/b-create_group.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/borders_at_multi_connections1.png b/doc/salome/gui/SMESH/pics/borders_at_multi_connections1.png
deleted file mode 100755 (executable)
index 8a2d164..0000000
Binary files a/doc/salome/gui/SMESH/pics/borders_at_multi_connections1.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/c-createmesh.png b/doc/salome/gui/SMESH/pics/c-createmesh.png
deleted file mode 100755 (executable)
index 5ff3ffc..0000000
Binary files a/doc/salome/gui/SMESH/pics/c-createmesh.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/c-editmesh.png b/doc/salome/gui/SMESH/pics/c-editmesh.png
deleted file mode 100755 (executable)
index bbad968..0000000
Binary files a/doc/salome/gui/SMESH/pics/c-editmesh.png and /dev/null differ
index 12b7d4b14d381efdbd726870e0f33185853e6ed7..207e2099e3cc79d38f72851236837c53af44cc38 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/creategroup.png and b/doc/salome/gui/SMESH/pics/creategroup.png differ
diff --git a/doc/salome/gui/SMESH/pics/createmesh-inv.png b/doc/salome/gui/SMESH/pics/createmesh-inv.png
new file mode 100755 (executable)
index 0000000..9ed8a62
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/createmesh-inv.png differ
diff --git a/doc/salome/gui/SMESH/pics/createmesh-inv2.png b/doc/salome/gui/SMESH/pics/createmesh-inv2.png
new file mode 100755 (executable)
index 0000000..f73e1df
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/createmesh-inv2.png differ
diff --git a/doc/salome/gui/SMESH/pics/createmesh-inv3.png b/doc/salome/gui/SMESH/pics/createmesh-inv3.png
new file mode 100755 (executable)
index 0000000..6c9da9c
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/createmesh-inv3.png differ
diff --git a/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png b/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png
new file mode 100755 (executable)
index 0000000..87ebc5f
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png differ
diff --git a/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png b/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png
new file mode 100755 (executable)
index 0000000..9ea6cab
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png differ
index 384a303998bb002e585297e7f738857c0cb76b35..c0a50f36f06bc6f388faec3c99237d44cb888be1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/editgroup.png and b/doc/salome/gui/SMESH/pics/editgroup.png differ
diff --git a/doc/salome/gui/SMESH/pics/graduatedaxes1.png b/doc/salome/gui/SMESH/pics/graduatedaxes1.png
new file mode 100755 (executable)
index 0000000..cf021ba
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/graduatedaxes1.png differ
diff --git a/doc/salome/gui/SMESH/pics/image100.gif b/doc/salome/gui/SMESH/pics/image100.gif
new file mode 100755 (executable)
index 0000000..c44d68f
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image100.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image102.gif b/doc/salome/gui/SMESH/pics/image102.gif
new file mode 100755 (executable)
index 0000000..3507814
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image102.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image107.gif b/doc/salome/gui/SMESH/pics/image107.gif
new file mode 100755 (executable)
index 0000000..ae9d7f1
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image107.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image108.gif b/doc/salome/gui/SMESH/pics/image108.gif
new file mode 100755 (executable)
index 0000000..bec69e6
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image108.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image109.gif b/doc/salome/gui/SMESH/pics/image109.gif
new file mode 100755 (executable)
index 0000000..5dbba46
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image109.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image138.gif b/doc/salome/gui/SMESH/pics/image138.gif
new file mode 100755 (executable)
index 0000000..1659aab
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image138.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image139.gif b/doc/salome/gui/SMESH/pics/image139.gif
new file mode 100755 (executable)
index 0000000..0394383
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image139.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image21.gif b/doc/salome/gui/SMESH/pics/image21.gif
new file mode 100755 (executable)
index 0000000..5dbd121
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image21.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image23.gif b/doc/salome/gui/SMESH/pics/image23.gif
new file mode 100755 (executable)
index 0000000..5a1216d
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image23.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image27.gif b/doc/salome/gui/SMESH/pics/image27.gif
new file mode 100755 (executable)
index 0000000..6c8485c
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image27.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image77.gif b/doc/salome/gui/SMESH/pics/image77.gif
new file mode 100755 (executable)
index 0000000..ef7a62f
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image77.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image78.gif b/doc/salome/gui/SMESH/pics/image78.gif
new file mode 100755 (executable)
index 0000000..9466aa6
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image78.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image89.gif b/doc/salome/gui/SMESH/pics/image89.gif
new file mode 100755 (executable)
index 0000000..373a6c0
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image89.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image91.gif b/doc/salome/gui/SMESH/pics/image91.gif
new file mode 100755 (executable)
index 0000000..9e93c1c
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image91.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image96.gif b/doc/salome/gui/SMESH/pics/image96.gif
new file mode 100755 (executable)
index 0000000..4580d5b
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image96.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image97.gif b/doc/salome/gui/SMESH/pics/image97.gif
new file mode 100755 (executable)
index 0000000..1d78de1
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image97.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image98.gif b/doc/salome/gui/SMESH/pics/image98.gif
new file mode 100755 (executable)
index 0000000..6519dbb
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image98.gif differ
diff --git a/doc/salome/gui/SMESH/pics/image99.gif b/doc/salome/gui/SMESH/pics/image99.gif
new file mode 100755 (executable)
index 0000000..3711be8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/image99.gif differ
diff --git a/doc/salome/gui/SMESH/pics/importmesh.png b/doc/salome/gui/SMESH/pics/importmesh.png
deleted file mode 100755 (executable)
index fa858d7..0000000
Binary files a/doc/salome/gui/SMESH/pics/importmesh.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/length-crit.png b/doc/salome/gui/SMESH/pics/length-crit.png
new file mode 100755 (executable)
index 0000000..96836cd
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/length-crit.png differ
diff --git a/doc/salome/gui/SMESH/pics/length1.png b/doc/salome/gui/SMESH/pics/length1.png
deleted file mode 100755 (executable)
index 53f4f95..0000000
Binary files a/doc/salome/gui/SMESH/pics/length1.png and /dev/null differ
diff --git a/doc/salome/gui/SMESH/pics/mergeelems.png b/doc/salome/gui/SMESH/pics/mergeelems.png
new file mode 100755 (executable)
index 0000000..9314da8
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/mergeelems.png differ
diff --git a/doc/salome/gui/SMESH/pics/meshexportmesh.png b/doc/salome/gui/SMESH/pics/meshexportmesh.png
new file mode 100755 (executable)
index 0000000..a84b252
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/meshexportmesh.png differ
diff --git a/doc/salome/gui/SMESH/pics/meshimportmesh.png b/doc/salome/gui/SMESH/pics/meshimportmesh.png
new file mode 100755 (executable)
index 0000000..f87250b
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/meshimportmesh.png differ
diff --git a/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png b/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png
new file mode 100755 (executable)
index 0000000..0f9bd52
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png differ
diff --git a/doc/salome/gui/SMESH/pics/submeshconstruction.png b/doc/salome/gui/SMESH/pics/submeshconstruction.png
deleted file mode 100755 (executable)
index c2c12e5..0000000
Binary files a/doc/salome/gui/SMESH/pics/submeshconstruction.png and /dev/null differ
index c12e5bcfde75116d147db5eb7ee1f407cbfc2d8e..d98ef124a23aa97a660faada08ecbc50e1252184 100755 (executable)
@@ -14,12 +14,14 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; height:274px; width:260px; border-style:none; }\r
-p.whs2 { font-weight:bold; }\r
-img_whs3 { border:none; height:285px; width:261px; border-style:none; }\r
-img_whs4 { border:none; width:263px; height:277px; border-style:none; }\r
-p.whs5 { font-weight:normal; }\r
-img_whs6 { border:none; height:287px; width:259px; border-style:none; }\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; height:274px; width:260px; border-style:none; }\r
+p.whs3 { font-weight:bold; margin-left:40px; }\r
+img_whs4 { border:none; height:285px; width:261px; border-style:none; }\r
+p.whs5 { font-weight:bold; }\r
+img_whs6 { border:none; width:263px; height:277px; border-style:none; }\r
+p.whs7 { font-weight:normal; }\r
+img_whs8 { border:none; height:287px; width:259px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -86,38 +88,40 @@ else
 \r
 <p>&nbsp;</p>\r
 \r
-<p><span style="font-weight: bold;"><B>Wireframe, </B></span></p>\r
+<p class="whs1"><span style="font-weight: bold;"><B>Wireframe \r
+ </B></span></p>\r
 \r
-<p><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs1"></p>\r
+<p class="whs1"><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
-<p><span style="font-weight: bold;"><B>Shading</B></span></p>\r
+<p class="whs1"><span style="font-weight: bold;"><B>Shading</B></span></p>\r
 \r
-<p class="whs2"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs3"></p>\r
+<p class="whs3"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs4"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2"><span style="font-weight: normal;">or </span>Nodes.</p>\r
+<p class="whs3"><span style="font-weight: normal;">or \r
+ </span>Nodes.</p>\r
 \r
-<p class="whs2"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs4"></p>\r
+<p class="whs3"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs6"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2">Wireframe <span style="font-weight: normal;">can \r
+<p class="whs5">Wireframe <span style="font-weight: normal;">can \r
  combine with</span> Nodes<span style="font-weight: normal;"> and</span> \r
  Shading.</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
-<p class="whs2">Shading<span style="font-weight: normal;"> \r
+<p class="whs5">Shading<span style="font-weight: normal;"> \r
  and</span> Wireframe<span style="font-weight: normal;"> modes can combine \r
  with</span> Shrink, <span style="font-weight: normal;">however</span> \r
  Nodes <span style="font-weight: normal;">can't.</span></p>\r
 \r
-<p class="whs5"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs6"></p>\r
+<p class="whs7"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs8"></p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs5">&nbsp;</p>\r
 \r
 <script type="text/javascript" language="javascript1.2">\r
 <!--\r
index 9b7239010b58653a77c25cfe8b0c5202ce6868e4..0e7907bb7e48d20917fc13c442cc58063634643e 100755 (executable)
@@ -574,13 +574,11 @@ else
 \r
 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs2"># Criterion : AREA &gt; \r
  30</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
-\r
 <p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>\r
 \r
 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
@@ -589,7 +587,7 @@ else
  aFunctor )</p>\r
 \r
 <p class="whs1">aPredicate.SetMargin( \r
30 )</p>\r
95 )</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
@@ -609,44 +607,58 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"># Criterion : FREE EDGES</p>\r
+<p class="whs2"># Criterion : Free Edges</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs1">aPredicate = aFilterMgr.CreateFreeEdges()</p>\r
 \r
-<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>\r
+<p class="whs1">aPredicate.SetMesh( \r
+ mesh )</p>\r
 \r
-<p class="whs1">aFilter.SetPredicate( \r
- aPredicate )</p>\r
+<p class="whs1">aBorders = aPredicate.GetBorders()</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs1">anIds = aFilter.GetElementsId( \r
- mesh )</p>\r
+<p class="whs2"># create groups</p>\r
+\r
+<p class="whs1">aGroupF = mesh.CreateGroup( \r
+ SMESH.FACE, &quot;Faces with free edges&quot; )</p>\r
+\r
+<p class="whs1">aGroupN = mesh.CreateGroup( \r
+ SMESH.NODE, &quot;Nodes on free edges&quot; )</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"># print the result</p>\r
+<p class="whs2"># fill groups with elements, \r
+ corresponding to the criterion</p>\r
+\r
+<p class="whs1">print &quot;&quot;</p>\r
 \r
 <p class="whs1">print &quot;Criterion: \r
- Free edges Nb = &quot;, len( anIds )</p>\r
+ Free edges Nb = &quot;, len( aBorders )</p>\r
 \r
 <p class="whs1">for i in range( \r
- len( anIds ) ):</p>\r
+ len( aBorders ) ):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;aBorder \r
+ = aBorders[ i ]</p>\r
 \r
 <p class="whs1">&nbsp;&nbsp;print \r
anIds[ i ]</p>\r
&quot;Face # &quot;, aBorder.myElemId, &quot; : Edge between nodes (&quot;,</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs1">&nbsp;&nbsp;print \r
+ aBorder.myPnt1, &quot;, &quot;, aBorder.myPnt2, &quot;)&quot;</p>\r
 \r
-<p class="whs2"># create a group</p>\r
+<p class="whs1">&nbsp;&nbsp;</p>\r
 \r
-<p class="whs1">aGroup = mesh.CreateGroup\r
SMESH.EDGE, &quot;Free edges&quot; )</p>\r
+<p class="whs1">&nbsp;&nbsp;aGroupF.Add\r
[aBorder.myElemId] )</p>\r
 \r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
+<p class="whs1">&nbsp;&nbsp;aGroupN.Add( \r
+ [aBorder.myPnt1, aBorder.myPnt2] )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
@@ -1523,6 +1535,87 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<h3><a name=Volume>Volume</a></h3>\r
+\r
+<p class="whs1">import SMESH</p>\r
+\r
+<p class="whs1">import SMESH_mechanic_tetra</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">smesh &nbsp;= \r
+ SMESH_mechanic_tetra.smesh</p>\r
+\r
+<p class="whs1">mesh &nbsp;&nbsp;= \r
+ SMESH_mechanic_tetra.mesh</p>\r
+\r
+<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># Criterion : VOLUME &lt; \r
+ 7</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs1">aFunctor = aFilterMgr.CreateVolume3D()</p>\r
+\r
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>\r
+\r
+<p class="whs1">aPredicate.SetNumFunctor( \r
+ aFunctor )</p>\r
+\r
+<p class="whs1">aPredicate.SetMargin( \r
+ 7 )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>\r
+\r
+<p class="whs1">aFilter.SetPredicate( \r
+ aPredicate )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">anIds = aFilter.GetElementsId( \r
+ mesh )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># print the result</p>\r
+\r
+<p class="whs1">print &quot;&quot;</p>\r
+\r
+<p class="whs1">print &quot;Criterion: \r
+ Volume &lt; 7 Nb = &quot;, len( anIds )</p>\r
+\r
+<p class="whs1">for i in range( \r
+ len( anIds ) ):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;print \r
+ anIds[ i ]</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># create a group</p>\r
+\r
+<p class="whs1">aGroup = mesh.CreateGroup( \r
+ SMESH.VOLUME, &quot;Volume &lt; 7&quot; )</p>\r
+\r
+<p class="whs1">aGroup.Add( anIds \r
+ )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
 \r
index d409d47a6386dc9f92b014e70822e4fb18d5b86a..3b7d3bde03506274d012160dc98644514c41f902 100755 (executable)
@@ -16,10 +16,9 @@ if (navigator.appName !="Netscape")
 <!--\r
 p.whs1 { margin-left:40px; }\r
 img_whs2 { border:none; width:24px; height:25px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:390px; height:437px; float:none; }\r
-img_whs4 { border:none; width:390px; height:437px; float:none; border-style:none; }\r
-ul.whs5 { list-style:disc; }\r
-img_whs6 { border:none; width:350px; height:201px; border-style:none; }\r
+img_whs3 { border:none; width:390px; height:437px; float:none; border-style:none; }\r
+ul.whs4 { list-style:disc; }\r
+img_whs5 { border:none; width:350px; height:201px; border-style:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -95,13 +94,17 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
-<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs4"></p>\r
+<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" 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="whs5">\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
@@ -128,7 +131,7 @@ else
 <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_whs6"></p>\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
index f87769ff771c377995e572fd9c26118c3824b2fd..0fde441b83c427643db8710d39dac66155c3bcf6 100755 (executable)
@@ -132,6 +132,7 @@ smesh_hha.hhk
 smesh.hhc\r
 smesh.hhk\r
 about_viewing_meshes.htm\r
+adding_quadratic_nodes_and_elements.htm\r
 aspect_ratio_3d.htm\r
 borders_at_multi-connection.htm\r
 borders_at_multiconnection_2d.htm\r
@@ -183,11 +184,13 @@ files\uniting_a_set_of_triangles.htm
 files\uniting_two_triangles.htm\r
 files\using_operations_on_groups.htm\r
 files\viewing_mesh_info.htm\r
+files\vtk_3d_viewer.htm\r
 files\warp.htm\r
 free_borders.htm\r
 free_edges.htm\r
 grouping_elements.htm\r
 length.htm\r
+merge_elements.htm\r
 modifying_meshes.htm\r
 pattern_mapping.htm\r
 presentation.htm\r
@@ -197,6 +200,7 @@ selection_filter_library.htm
 transforming_meshes.htm\r
 transparency.htm\r
 viewing_meshes.htm\r
+volume.htm\r
 ehelp.xml\r
 texture_horiz_ltbluebubbles.jpg\r
 smesh.glo\r
@@ -209,7 +213,6 @@ pics\smoothing2.png
 pics\b-mberofsegments.png\r
 pics\b-flection1d.png\r
 pics\a-cuttingofquadrangles.png\r
-image129.gif\r
 pics\addquadrangle.png\r
 pics\intersectgroups.png\r
 pics\editgroup.png\r
@@ -218,6 +221,7 @@ pics\sewing1.png
 image92.gif\r
 image51.jpg\r
 image70.gif\r
+pics\image138.gif\r
 pics\create_group.png\r
 pics\edit_mesh_change_value_hyp.png\r
 pics\free_borders1.png\r
@@ -236,6 +240,8 @@ image52.jpg
 image82.gif\r
 image71.gif\r
 image30.jpg\r
+pics\distributionwithanalyticdensity.png\r
+pics\image139.gif\r
 pics\rotation1.png\r
 pics\a-createpolyhedralvolume.png\r
 pics\a-patterntype.png\r
@@ -249,6 +255,10 @@ image50.gif
 image94.gif\r
 image83.gif\r
 image31.jpg\r
+pics\graduatedaxes1.png\r
+pics\image107.gif\r
+pics\automaticlength.png\r
+pics\image27.gif\r
 pics\add_polyhedron.png\r
 pics\add_edge.png\r
 pics\rotation2.png\r
@@ -262,9 +272,11 @@ pics\sewing4.png
 image95.gif\r
 image76.jpg\r
 image84.gif\r
-image73.gif\r
 image32.jpg\r
 image40.gif\r
+pics\image108.gif\r
+pics\aqt.png\r
+pics\distributionwithtabledensity.png\r
 pics\smoothing.png\r
 image88.jpg\r
 image30.gif\r
@@ -274,6 +286,8 @@ image74.gif
 image63.gif\r
 image22.jpg\r
 image41.gif\r
+pics\image109.gif\r
+pics\meshimportmesh.png\r
 pics\deletegroups.png\r
 pics\editing_groups1.png\r
 pics\uniting_two_triangles1.png\r
@@ -290,18 +304,18 @@ image97.gif
 image78.jpg\r
 image64.gif\r
 image23.jpg\r
+image151.gif\r
 pics\cut_groups1.png\r
 pics\editing_groups2.png\r
 pics\uniting_two_triangles2.png\r
 pics\a-unionoftriangles.png\r
 pics\a-arithmetic1d.png\r
-pics\a-exportmesh.png\r
 pics\extrusionalongaline2.png\r
-pics\importmesh.png\r
 image79.jpg\r
-image21.gif\r
 image98.gif\r
 image32.gif\r
+pics\image91.gif\r
+image152.gif\r
 pics\cut_groups2.png\r
 image130.gif\r
 pics\max_el_area.png\r
@@ -314,12 +328,12 @@ image55.gif
 image88.gif\r
 image36.jpg\r
 image33.gif\r
-image22.gif\r
 image25.jpg\r
 i_blue.jpg\r
+image15.jpg\r
+image142.gif\r
 pics\cut_groups3.png\r
 image131.gif\r
-pics\c-editmesh.png\r
 pics\add_quadrangle.png\r
 pics\uniting_a_set_of_triangles1.png\r
 pics\a-deflection1d.png\r
@@ -329,10 +343,9 @@ pics\addnode.png
 image120.gif\r
 image56.gif\r
 image37.jpg\r
-image23.gif\r
 image67.gif\r
 image34.gif\r
-image26.jpg\r
+image143.gif\r
 image132.gif\r
 pics\edit_mesh1.png\r
 pics\remove_elements1.png\r
@@ -346,10 +359,10 @@ image46.gif
 image35.gif\r
 image27.jpg\r
 image24.gif\r
+pics\createmesh-inv2.png\r
+image144.gif\r
 pics\intersect_groups1.png\r
 image133.gif\r
-pics\length1.png\r
-pics\borders_at_multi_connections1.png\r
 pics\add_polygone.png\r
 pics\remove_elements2.png\r
 pics\a-maxelvolume.png\r
@@ -359,6 +372,8 @@ image58.gif
 image36.gif\r
 image25.gif\r
 note1.gif\r
+pics\createmesh-inv3.png\r
+image145.gif\r
 pics\intersect_groups2.png\r
 image134.gif\r
 pics\b-mesh_infos.png\r
@@ -367,6 +382,8 @@ pics\addedge.png
 image123.gif\r
 image101.gif\r
 image37.gif\r
+pics\image96.gif\r
+image146.gif\r
 pics\intersect_groups3.png\r
 image135.gif\r
 pics\b-erage_length.png\r
@@ -376,12 +393,13 @@ pics\patternmapping1.png
 image90.jpg\r
 image124.gif\r
 image102.gif\r
-image19.jpg\r
 image49.gif\r
-image27.gif\r
 image38.gif\r
+pics\image100.gif\r
+pics\image97.gif\r
+pics\length-crit.png\r
+image147.gif\r
 image136.gif\r
-pics\c-createmesh.png\r
 pics\a-nbsegments2.png\r
 pics\a-startendlength.png\r
 pics\patternmapping2.png\r
@@ -393,27 +411,37 @@ image103.gif
 pics\exemple.gif\r
 image39.gif\r
 image28.gif\r
+pics\advanced_mesh_infos.png\r
+pics\image98.gif\r
+image148.gif\r
+pics\meshexportmesh.png\r
+pics\image21.gif\r
 pics\union_groups1.png\r
 image137.gif\r
 pics\free_edges.png\r
-pics\a-nbsegments3.png\r
 pics\creategroup.png\r
 image92.jpg\r
-pics\submeshconstruction.png\r
 image126.gif\r
 image104.gif\r
 image18.gif\r
 image70.jpg\r
+pics\createmesh-inv.png\r
+pics\image102.gif\r
+pics\image99.gif\r
+pics\image77.gif\r
+pics\meshtrianglemergeelem1.png\r
+pics\mergeelems.png\r
 pics\union_groups2.png\r
 pics\length2d.png\r
-pics\a-advmeshinfo.png\r
-pics\a-nbsegments4.png\r
 pics\renumbernodes.png\r
 image127.gif\r
 image93.jpg\r
 image105.gif\r
 image19.gif\r
 image71.jpg\r
+pics\image89.gif\r
+pics\image78.gif\r
+pics\image23.gif\r
 pics\selectionfilterlibrary.png\r
 pics\union_groups3.png\r
 pics\edit_mesh_remove_hyp.png\r
@@ -489,6 +517,7 @@ whgdata\whlstf9.htm
 whgdata\whlstf10.htm\r
 whgdata\whlstf11.htm\r
 whgdata\whlstf12.htm\r
+whgdata\whlstf13.htm\r
 whgdata\whlstg0.htm\r
 smesh.htm\r
 smesh_csh.htm\r
index 6d2ada4f1d772a5f4f8ed17eceaebb9f5cbb6a9e..1020cdf63682e6766e47a56b631dbec87a2e6f11 100755 (executable)
@@ -134,7 +134,7 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs3">mport math</p>\r
+<p class="whs3">import math</p>\r
 \r
 <p class="whs3">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
@@ -239,6 +239,203 @@ else
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
+<h4><a name=bookmark8>Merging Elements</a></h4>\r
+\r
+<p class="whs5">import geompy</p>\r
+\r
+<p class="whs5">import smesh</p>\r
+\r
+<p class="whs5">import salome</p>\r
+\r
+<p class="whs5">import SMESH</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># create a face to be meshed</p>\r
+\r
+<p class="whs5">px = geompy.MakeVertex(100., \r
+ 0. &nbsp;, 0. \r
+ &nbsp;)</p>\r
+\r
+<p class="whs5">py = geompy.MakeVertex(0. \r
+ &nbsp;, 100., \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs5">pz = geompy.MakeVertex(0. \r
+ &nbsp;, 0. &nbsp;, \r
+ 100.)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
+\r
+<p class="whs5">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
+\r
+<p class="whs5">isPlanarFace = 1</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">face1 = geompy.MakeFace(wire, \r
+ isPlanarFace)</p>\r
+\r
+<p class="whs5">id_face1 = geompy.addToStudy(face1, \r
+ &quot;Face1&quot;)</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># create a 2D mesh on the \r
+ face</p>\r
+\r
+<p class="whs5">trias = smesh.Mesh(face1, \r
+ &quot;Face : 2D mesh&quot;)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">algo = trias.Segment()</p>\r
+\r
+<p class="whs5">algo.NumberOfSegments(6)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">algo = trias.Triangle()</p>\r
+\r
+<p class="whs5">algo.LengthFromEdges()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">trias.Compute()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">tri_mesh = trias.GetMesh()</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># create a path mesh</p>\r
+\r
+<p class="whs5">px1 = geompy.MakeVertex(100., \r
+ 100. &nbsp;, \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs5">py1 = geompy.MakeVertex(-100. \r
+ &nbsp;, -100., \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs5">pz1 = geompy.MakeVertex(0. \r
+ &nbsp;, 0. &nbsp;, \r
+ 50.)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">circle = geompy.MakeCircleThreePnt(py1, \r
+ pz1, px1)</p>\r
+\r
+<p class="whs5">id_circle = geompy.addToStudy(circle, \r
+ &quot;Path&quot;)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">circlemesh = smesh.Mesh(circle, \r
+ &quot;Path mesh&quot;)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">algo = circlemesh.Segment()</p>\r
+\r
+<p class="whs5">algo.NumberOfSegments(10)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">circlemesh.Compute()</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># extrusion of the mesh</p>\r
+\r
+<p class="whs5">aMeshEditor = tri_mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs5">aMeshEditor.ExtrusionAlongPathObject(tri_mesh, \r
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># merge nodes</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of nodes before MergeNodes:&quot;, tri_mesh.NbNodes()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">tolerance = 0.001</p>\r
+\r
+<p class="whs5">array_of_nodes_groups \r
+ = aMeshEditor.FindCoincidentNodes(tolerance)</p>\r
+\r
+<p class="whs5">aMeshEditor.MergeNodes(array_of_nodes_groups)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of nodes after MergeNodes:&quot;, tri_mesh.NbNodes()</p>\r
+\r
+<p class="whs5">print &quot;&quot;</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of elements before MergeEqualElements:&quot;</p>\r
+\r
+<p class="whs5">print &quot;Edges \r
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbEdges()</p>\r
+\r
+<p class="whs5">print &quot;Triangles \r
+ &nbsp;: &quot;, \r
+ tri_mesh.NbTriangles()</p>\r
+\r
+<p class="whs5">print &quot;Quadrangles: \r
+ &quot;, tri_mesh.NbQuadrangles()</p>\r
+\r
+<p class="whs5">print &quot;Volumes \r
+ &nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbVolumes()</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># merge elements</p>\r
+\r
+<p class="whs5">aMeshEditor.MergeEqualElements()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of elements after MergeEqualElements:&quot;</p>\r
+\r
+<p class="whs5">print &quot;Edges \r
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbEdges()</p>\r
+\r
+<p class="whs5">print &quot;Triangles \r
+ &nbsp;: &quot;, \r
+ tri_mesh.NbTriangles()</p>\r
+\r
+<p class="whs5">print &quot;Quadrangles: \r
+ &quot;, tri_mesh.NbQuadrangles()</p>\r
+\r
+<p class="whs5">print &quot;Volumes \r
+ &nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbVolumes()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
+\r
 <h3>Sewing Meshes</h3>\r
 \r
 <h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>\r
index 701b47a01c97c0e9ae6f73d3384f8a4ae509f62d..923a1394866067585ee7622d4cc1cd626c0bc1ba 100755 (executable)
@@ -14,7 +14,8 @@ if (navigator.appName !="Netscape")
 </script>\r
 <style type="text/css">\r
 <!--\r
-img_whs1 { border:none; border-style:none; width:354px; height:173px; float:none; }\r
+p.whs1 { margin-left:40px; }\r
+img_whs2 { border:none; border-style:none; width:354px; height:173px; float:none; }\r
 -->\r
 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
 <!--\r
@@ -72,7 +73,7 @@ else
 </script>\r
 <h1>Transparency</h1>\r
 \r
-<p><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs1"></p>\r
+<p class="whs1"><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs2"></p>\r
 \r
 <p>&nbsp;</p>\r
 \r
diff --git a/doc/salome/gui/SMESH/volume.htm b/doc/salome/gui/SMESH/volume.htm
new file mode 100755 (executable)
index 0000000..ffc1175
--- /dev/null
@@ -0,0 +1,118 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<head>\r
+<title>Volume</title>\r
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
+<!--\r
+h1.whs1 { font-size:24pt; }\r
+img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
+p.whs3 { margin-left:40px; }\r
+img_whs4 { border:none; width:164px; height:199px; border-style:none; }\r
+img_whs5 { border:none; width:23px; height:25px; border-style:none; }\r
+p.whs6 { margin-left:0px; }\r
+-->\r
+</style><script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs6 {margin-left:1pt; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+-->\r
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("MESH module\nQuality controls\nVolume");\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(1);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       if (window.gbIE4)\r
+               document.location.reload();\r
+//-->\r
+</script>\r
+<h1 class="whs1">Volume</h1>\r
+\r
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Volume</B></span> mesh quality \r
+ criterion reflects the volume of meshes of a 3D object. </p>\r
+\r
+<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>\r
+\r
+<p class=TODO\r
+       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
+ apply the Volume quality criterion to your mesh:</p>\r
+\r
+<p class="whs3">1. Display your mesh in the viewer.</p>\r
+\r
+<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
+ &gt; Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your \r
+ mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
+\r
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span \r
+ style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation. \r
+ &nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
index 3ecd68c6c4673f13d3d163e42c700059f2d5008b..16b2b1b7d4ae2dc892aa6f5305c72e09a38b5822 100755 (executable)
@@ -13,6 +13,7 @@
 <script language="javascript">\r
 <!--\r
 aTE("About viewing meshes","about_viewing_meshes.htm");\r
+aTE("Adding Quadratic Nodes and Elements","adding_quadratic_nodes_and_elements.htm");\r
 aTE("Aspect ratio 3D","aspect_ratio_3d.htm");\r
 aTE("Borders at multi-connection","borders_at_multi-connection.htm");\r
 aTE("Borders at multiconnection 2D","borders_at_multiconnection_2d.htm");\r
@@ -64,11 +65,13 @@ aTE("Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");
 aTE("Uniting two triangles","files/uniting_two_triangles.htm");\r
 aTE("Using operations on groups","files/using_operations_on_groups.htm");\r
 aTE("Viewing mesh info","files/viewing_mesh_info.htm");\r
+aTE("VTK 3D Viewer","files/vtk_3d_viewer.htm");\r
 aTE("Warp","files/warp.htm");\r
 aTE("Free borders","free_borders.htm");\r
 aTE("Free_edges","free_edges.htm");\r
 aTE("Grouping Elements","grouping_elements.htm");\r
 aTE("Length","length.htm");\r
+aTE("Merge Elements","merge_elements.htm");\r
 aTE("Modifying Meshes","modifying_meshes.htm");\r
 aTE("Pattern mapping","pattern_mapping.htm");\r
 aTE("Presentation","presentation.htm");\r
@@ -78,6 +81,7 @@ aTE("Selection filter library","selection_filter_library.htm");
 aTE("Transforming Meshes","transforming_meshes.htm");\r
 aTE("Transparency","transparency.htm");\r
 aTE("Viewing Meshes","viewing_meshes.htm");\r
+aTE("Volume","volume.htm");\r
 \r
 //-->\r
 </script>\r
index 1b6176ed03f3d16e5d47ca5d4f23fe469711db47..15e5cf4898ed9228de1c2eeec83f14496f2afb9f 100755 (executable)
@@ -8,9 +8,9 @@
 <script language="javascript" src="whfts.js"></script>\r
 <script language="javascript">\r
 <!--\r
-iWM("0","zero","whfwdata0.htm");\r
+iWM("0","zoom","whfwdata0.htm");\r
 \r
-iTM(0,65,"whftdata0.htm");\r
+iTM(0,69,"whftdata0.htm");\r
 \r
 //-->\r
 </script>\r
index dfe30b81710ea4a844c883b0b4de2f9b02b9e3d6..96f981b31f468ea91ea1b9d9ff7944a4ae7912df 100755 (executable)
 </script>\r
 <script language="javascript">\r
 <!--\r
-aWE("0",12,4,5,23,6,55,57,60,42,63,65);\r
-aWE("0d",12);\r
-aWE("1",15,16,17,18,19,21,5,24,6,25,26,27,28,9,10,55,29,31,34,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52);\r
-aWE("10",5,6,55,57,63,65);\r
-aWE("100",5,6,55,57,60);\r
-aWE("109",63);\r
-aWE("113",63);\r
-aWE("1135",57);\r
-aWE("1145",57);\r
-aWE("1147",57);\r
-aWE("1159",57);\r
-aWE("12",57,63);\r
-aWE("13",57);\r
-aWE("15",60,63);\r
-aWE("150",63);\r
-aWE("18",60);\r
-aWE("180",57);\r
-aWE("1d",11,12,13,14,17,21,6,9,10,30,36,60,61);\r
-aWE("1e",57,60);\r
-aWE("2",15,16,18,1,19,21,5,24,6,25,26,27,28,9,10,29,31,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52);\r
-aWE("20",5,6,55,57,60,63,65);\r
-aWE("200",5,6);\r
-aWE("21",63);\r
-aWE("23",57,63);\r
-aWE("2381",57);\r
-aWE("2382",57);\r
-aWE("2383",57);\r
-aWE("2384",57);\r
-aWE("2385",57);\r
-aWE("2386",57);\r
-aWE("2387",57);\r
-aWE("2388",57);\r
-aWE("2389",57);\r
-aWE("2390",57);\r
-aWE("2391",57);\r
-aWE("2392",57);\r
-aWE("2393",57);\r
-aWE("2394",57);\r
-aWE("2395",57);\r
-aWE("2396",57);\r
-aWE("2397",57);\r
-aWE("2398",57);\r
-aWE("2399",57);\r
-aWE("24",63);\r
-aWE("2400",57);\r
-aWE("2401",57);\r
-aWE("2402",57);\r
-aWE("2403",57);\r
-aWE("2404",57);\r
-aWE("2405",57);\r
-aWE("2406",57);\r
-aWE("2407",57);\r
-aWE("2408",57);\r
-aWE("2409",57);\r
-aWE("2410",57);\r
-aWE("2411",57);\r
-aWE("2412",57);\r
-aWE("2413",57);\r
-aWE("2414",57);\r
-aWE("2415",57);\r
-aWE("2416",57);\r
-aWE("2417",57);\r
-aWE("2418",57);\r
-aWE("2419",57);\r
-aWE("2420",57);\r
-aWE("2421",57);\r
-aWE("2422",57);\r
-aWE("245",57);\r
-aWE("246",57);\r
-aWE("25",63);\r
-aWE("255",57);\r
-aWE("2d",11,12,13,14,16,18,1,3,21,5,6,9,10,30,32,31,35,57,58,60,61,42,63,51,52);\r
-aWE("3",12,16,18,1,19,21,5,24,25,26,9,10,55,29,58,60,38,39,61,42,43,44,63,48,49,65,52);\r
-aWE("30",6,55,57,60,63);\r
-aWE("300",5,6);\r
-aWE("3128",57);\r
-aWE("321",57);\r
-aWE("3265",57);\r
-aWE("3402",57);\r
-aWE("3658",57);\r
-aWE("38",57,63);\r
-aWE("39",57);\r
-aWE("3d",11,12,13,14,15,1,19,21,23,24,6,7,25,26,27,9,10,30,33,60,38,39,61,42,44,48,49);\r
-aWE("3e",60);\r
-aWE("3rd",12);\r
-aWE("4",12,16,18,21,5,24,6,26,10,29,57,58,60,42,43,46,63,52);\r
-aWE("40",57);\r
-aWE("405",57);\r
-aWE("406",57);\r
-aWE("45",57,63);\r
-aWE("47",57);\r
-aWE("492",57);\r
-aWE("493",57);\r
-aWE("5",4,57,60,63);\r
-aWE("50",6,57);\r
-aWE("502",57);\r
-aWE("503",57);\r
-aWE("58",63);\r
-aWE("5th",12);\r
-aWE("6",5,6,55,57,63,65);\r
-aWE("60",55,57);\r
-aWE("642",57);\r
-aWE("66632",57);\r
-aWE("69",63);\r
-aWE("7",5,6,55);\r
-aWE("70",6,60,63);\r
-aWE("700",57);\r
-aWE("71",63);\r
-aWE("72",63);\r
-aWE("73",57);\r
-aWE("8",55,63);\r
-aWE("800",5,6,55);\r
-aWE("814",57);\r
-aWE("850",57);\r
-aWE("859",57);\r
-aWE("864",57);\r
-aWE("89",63);\r
-aWE("9",63);\r
-aWE("90",63);\r
-aWE("900",5,6,55);\r
-aWE("91",63);\r
-aWE("911",57);\r
-aWE("92",63);\r
-aWE("931",57);\r
-aWE("932",57);\r
-aWE("950",57);\r
-aWE("abl",15);\r
-aWE("abov",10,44);\r
-aWE("abox",60);\r
-aWE("absent",50);\r
-aWE("absolute",64);\r
-aWE("abut",17);\r
-aWE("acces",0,62);\r
-aWE("accord",14,16,17,18,31,35,58,43,44,46,52);\r
-aWE("account",11,58);\r
-aWE("acomp",60,63);\r
-aWE("acompobj",63);\r
-aWE("actual",36);\r
-aWE("ad",15,19,23,24,55,57,48,50);\r
-aWE("add",15,19,21,5,23,24,6,28,10,55,57,60,62,48);\r
-aWE("addedg",57);\r
-aWE("addfac",57);\r
-aWE("addhypothesi",5,6,55,60,65);\r
-aWE("addition",24,30,57);\r
-aWE("additional",11,12,21,6,36,58,41,62,44);\r
-aWE("addnod",57);\r
-aWE("addobject",55);\r
-aWE("addtostudy",5,6,55,57,60,63,65);\r
-aWE("addtostudyinfath",5,55,65);\r
-aWE("addvolum",57);\r
-aWE("adjacent",26,35,36,38,42,48);\r
-aWE("adjust",44);\r
-aWE("adjustabl",36);\r
-aWE("advanc",0,51);\r
-aWE("afilt",55,60);\r
-aWE("afiltermgr",55,57,60);\r
-aWE("afunctor",55,57,60);\r
-aWE("ageomgroup1",55);\r
-aWE("ageomgroup2",55);\r
-aWE("agroup",55,60);\r
-aWE("agroup1",55);\r
-aWE("agroup2",55);\r
-aWE("agroup3",55);\r
-aWE("agroup4",55);\r
-aWE("agroup5",55);\r
-aWE("agroupelemid",55);\r
-aWE("agroupmain",55);\r
-aWE("agroupr",55);\r
-aWE("agrouptool",55);\r
-aWE("ai",17);\r
-aWE("algo",5,6,57,63);\r
-aWE("algo1",5,60,65);\r
-aWE("algo2",5,60,65);\r
-aWE("algorithm",11,12,13,14,16,21,5,22,6,10,55,30,32,57,33,58,37,42,63);\r
-aWE("allow",11,17,19,23,24,29,30,34,36,58,40,42,44,45,47,48,50);\r
-aWE("along",9,10,57,58,44);\r
-aWE("alternativ",21);\r
-aWE("alway",44);\r
-aWE("amesheditor",57,63);\r
-aWE("amount",2);\r
-aWE("analytic",17);\r
-aWE("aneditor",57,60,63);\r
-aWE("angl",14,4,24,10,30,35,60,61,40,43,48,52);\r
-aWE("angle180",63);\r
-aWE("angle45",57);\r
-aWE("angular",10);\r
-aWE("angularity",10);\r
-aWE("anid",55,60);\r
-aWE("anodeid1",57);\r
-aWE("anodeid2",57);\r
-aWE("anodeid3",57);\r
-aWE("anodeid4",57);\r
-aWE("anoth",36);\r
-aWE("any",12,21,23,26,10,55,58,44);\r
-aWE("ap",13,15,16,18,19,4,21,23,24,7,25,26,28,9,10,30,31,35,58,37,38,39,61,42,43,44,45,46,48,49,50,52);\r
-aWE("apparent",21);\r
-aWE("appear",0,15,19,21,22,23,24,25,26,28,9,10,34,58,38,39,61,40,45,47,48,49,50);\r
-aWE("append",60);\r
-aWE("appli",16,17,18,1,21,22,6,32,31,35,57,33,36,37,62,43,44,46,52);\r
-aWE("applicabl",62);\r
-aWE("application",14,58);\r
-aWE("apply",11,0,21,22,23);\r
-aWE("appropriat",21);\r
-aWE("approximate",17);\r
-aWE("apredicat",55,60);\r
-aWE("arc",6,57);\r
-aWE("arcsin",52);\r
-aWE("area",11,14,16,1,6,55,30,32,33,60,44,46);\r
-aWE("arithmetic",11,17,5,6,63);\r
-aWE("arithmetic1d",5,6,63,65);\r
-aWE("around",4,10,61);\r
-aWE("asmeshgroup1",55);\r
-aWE("asmeshgroup2",55);\r
-aWE("aspect",14,18,1,30,60,44);\r
-aWE("assign",21,37,52);\r
-aWE("associat",15,27,38);\r
-aWE("auto",4);\r
-aWE("automatic",21,58);\r
-aWE("automatical",19,21,24,26,48);\r
-aWE("availabl",42);\r
-aWE("averag",11,17,6,36,58,52);\r
-aWE("axi",9,61,40,45,52);\r
-aWE("axisstruct",57,63);\r
-aWE("axisxyz",57,63);\r
+aWE("0",13,18,5,6,24,7,57,60,63,43,66,68);\r
+aWE("001",66);\r
+aWE("0d",13);\r
+aWE("1",16,1,17,18,19,2,20,22,6,25,7,26,27,28,29,10,11,57,30,32,35,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54);\r
+aWE("10",6,7,57,60,66,68);\r
+aWE("100",6,7,57,60,63,66);\r
+aWE("109",66);\r
+aWE("11",60);\r
+aWE("113",66);\r
+aWE("1135",60);\r
+aWE("1145",60);\r
+aWE("1147",60);\r
+aWE("1159",60);\r
+aWE("12",60,66);\r
+aWE("13",60);\r
+aWE("14",60);\r
+aWE("15",60,63,66);\r
+aWE("150",66);\r
+aWE("16",60);\r
+aWE("17",60);\r
+aWE("18",60,63);\r
+aWE("180",60);\r
+aWE("19",60);\r
+aWE("1d",12,13,14,15,18,22,7,10,11,31,33,37,63,64);\r
+aWE("1e",60,63);\r
+aWE("2",16,1,17,19,2,20,22,6,25,7,26,27,28,29,10,11,30,32,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54);\r
+aWE("20",6,7,57,60,63,66,68);\r
+aWE("200",6,7,60);\r
+aWE("21",60,66);\r
+aWE("23",60,66);\r
+aWE("2381",60);\r
+aWE("2382",60);\r
+aWE("2383",60);\r
+aWE("2384",60);\r
+aWE("2385",60);\r
+aWE("2386",60);\r
+aWE("2387",60);\r
+aWE("2388",60);\r
+aWE("2389",60);\r
+aWE("2390",60);\r
+aWE("2391",60);\r
+aWE("2392",60);\r
+aWE("2393",60);\r
+aWE("2394",60);\r
+aWE("2395",60);\r
+aWE("2396",60);\r
+aWE("2397",60);\r
+aWE("2398",60);\r
+aWE("2399",60);\r
+aWE("24",66);\r
+aWE("240",60);\r
+aWE("2400",60);\r
+aWE("2401",60);\r
+aWE("2402",60);\r
+aWE("2403",60);\r
+aWE("2404",60);\r
+aWE("2405",60);\r
+aWE("2406",60);\r
+aWE("2407",60);\r
+aWE("2408",60);\r
+aWE("2409",60);\r
+aWE("2410",60);\r
+aWE("2411",60);\r
+aWE("2412",60);\r
+aWE("2413",60);\r
+aWE("2414",60);\r
+aWE("2415",60);\r
+aWE("2416",60);\r
+aWE("2417",60);\r
+aWE("2418",60);\r
+aWE("2419",60);\r
+aWE("2420",60);\r
+aWE("2421",60);\r
+aWE("2422",60);\r
+aWE("245",60);\r
+aWE("246",60);\r
+aWE("25",66);\r
+aWE("255",60);\r
+aWE("2d",12,13,14,15,17,19,4,22,6,7,10,11,31,33,32,36,60,61,63,64,43,66,54);\r
+aWE("3",13,17,19,20,22,6,25,26,27,10,11,57,30,60,61,63,39,40,64,43,44,45,66,49,50,68,54);\r
+aWE("30",7,57,60,63,66);\r
+aWE("300",6,7);\r
+aWE("3128",60);\r
+aWE("321",60);\r
+aWE("3265",60);\r
+aWE("3402",60);\r
+aWE("3658",60);\r
+aWE("38",60,66);\r
+aWE("39",60);\r
+aWE("3d",12,13,14,15,0,16,1,19,2,20,22,24,25,7,8,26,27,28,10,11,31,34,63,39,40,64,43,45,49,50,69,53);\r
+aWE("3e",63);\r
+aWE("3rd",13);\r
+aWE("3x3",60);\r
+aWE("4",13,17,19,22,6,25,7,27,11,30,60,61,63,43,44,47,66,54);\r
+aWE("40",60);\r
+aWE("405",60);\r
+aWE("406",60);\r
+aWE("45",60,66);\r
+aWE("47",60);\r
+aWE("492",60);\r
+aWE("493",60);\r
+aWE("5",5,60,63,66);\r
+aWE("50",7,60,66);\r
+aWE("502",60);\r
+aWE("503",60);\r
+aWE("58",66);\r
+aWE("5th",13);\r
+aWE("6",2,6,7,57,60,66,68);\r
+aWE("60",57,60);\r
+aWE("642",60);\r
+aWE("66632",60);\r
+aWE("69",66);\r
+aWE("7",6,7,57,60,63);\r
+aWE("70",7,63,66);\r
+aWE("700",60);\r
+aWE("71",66);\r
+aWE("72",66);\r
+aWE("73",60);\r
+aWE("77",60);\r
+aWE("8",57,60,66);\r
+aWE("800",6,7);\r
+aWE("814",60);\r
+aWE("850",60);\r
+aWE("859",60);\r
+aWE("864",60);\r
+aWE("89",66);\r
+aWE("9",60,66);\r
+aWE("90",66);\r
+aWE("900",6,7);\r
+aWE("91",66);\r
+aWE("911",60);\r
+aWE("92",66);\r
+aWE("931",60);\r
+aWE("932",60);\r
+aWE("95",63);\r
+aWE("950",60);\r
+aWE("9999",24);\r
+aWE("a_mesh",60);\r
+aWE("aa",60);\r
+aWE("abl",16,1,53);\r
+aWE("abord",63);\r
+aWE("aborder",63);\r
+aWE("abov",11,60,45);\r
+aWE("abox",63);\r
+aWE("absent",51);\r
+aWE("absolute",67);\r
+aWE("abut",18);\r
+aWE("acces",0,65,53);\r
+aWE("accord",15,17,18,19,2,32,36,61,44,45,47,69,54);\r
+aWE("account",12,61);\r
+aWE("acomp",63,66);\r
+aWE("acompobj",66);\r
+aWE("actual",37);\r
+aWE("ad",16,1,20,24,25,57,60,49,51);\r
+aWE("add",16,1,20,22,6,24,25,7,29,11,57,60,63,65,49);\r
+aWE("addedg",60);\r
+aWE("addfac",60);\r
+aWE("addhypothesi",6,7,57,60,63,68);\r
+aWE("addition",25,31,60);\r
+aWE("additional",12,13,22,7,37,61,42,65,45);\r
+aWE("addnod",60);\r
+aWE("addobject",57);\r
+aWE("addpolygonalfac",60);\r
+aWE("addpolyhedralvolum",60);\r
+aWE("addtostudy",6,7,57,60,63,66,68);\r
+aWE("addtostudyinfath",6,7,57,60,68);\r
+aWE("addvolum",60);\r
+aWE("adjacent",27,36,37,39,43,49);\r
+aWE("adjust",45);\r
+aWE("adjustabl",37);\r
+aWE("advanc",0,52);\r
+aWE("afilt",57,63);\r
+aWE("afiltermgr",57,60,63);\r
+aWE("afunctor",57,60,63);\r
+aWE("ageomgroup1",57);\r
+aWE("ageomgroup2",57);\r
+aWE("agroup",57,63);\r
+aWE("agroup1",57);\r
+aWE("agroup2",57);\r
+aWE("agroup3",57);\r
+aWE("agroup4",57);\r
+aWE("agroup5",57);\r
+aWE("agroupelemid",57);\r
+aWE("agroupf",63);\r
+aWE("agroupmain",57);\r
+aWE("agroupn",63);\r
+aWE("agroupr",57);\r
+aWE("agrouptool",57);\r
+aWE("ai",18);\r
+aWE("al",60);\r
+aWE("algo",6,7,60,66);\r
+aWE("algo1",6,63,68);\r
+aWE("algo2",6,63,68);\r
+aWE("algorithm",12,13,14,15,0,17,22,6,23,7,11,57,31,33,34,61,38,43,66);\r
+aWE("allow",12,0,1,18,20,23,24,25,30,31,33,59,35,37,61,41,43,45,46,48,49,51,53);\r
+aWE("along",10,11,60,61,45,53);\r
+aWE("alternativ",22);\r
+aWE("alternative",0,1);\r
+aWE("alway",45);\r
+aWE("amesheditor",60,66);\r
+aWE("amount",3);\r
+aWE("analytic",18);\r
+aWE("aneditor",60,63,66);\r
+aWE("angl",15,5,25,11,31,36,60,63,64,41,44,49,54);\r
+aWE("angle180",66);\r
+aWE("angle45",60);\r
+aWE("angular",11);\r
+aWE("angularity",11);\r
+aWE("anid",57,63);\r
+aWE("anodeid1",60);\r
+aWE("anodeid2",60);\r
+aWE("anodeid3",60);\r
+aWE("anodeid4",60);\r
+aWE("anoth",60,37);\r
+aWE("any",13,1,22,24,27,11,57,61,45);\r
+aWE("ap",14,16,1,17,19,2,20,5,22,24,25,7,8,26,27,29,10,11,31,32,59,36,60,61,38,39,40,64,43,44,45,46,47,49,50,51,69,54);\r
+aWE("apparent",22);\r
+aWE("appear",0,16,1,20,22,23,25,26,27,29,10,11,35,61,39,40,64,41,46,48,49,50,51);\r
+aWE("append",60,63);\r
+aWE("appli",17,18,19,2,22,23,33,32,36,34,37,38,65,44,45,47,69,54);\r
+aWE("applicabl",19,65);\r
+aWE("application",15,61);\r
+aWE("apply",12,0,22,23,24);\r
+aWE("applytomeshfac",60);\r
+aWE("appropriat",22);\r
+aWE("approximate",18);\r
+aWE("apredicat",57,63);\r
+aWE("arc",7,60,66);\r
+aWE("arcsin",54);\r
+aWE("area",12,15,17,7,57,31,33,34,63,45,47,53);\r
+aWE("arithmetic",12,18,6,7,31,66);\r
+aWE("arithmetic1d",6,7,66,68);\r
+aWE("around",5,11,64);\r
+aWE("array_of_nodes_group",66);\r
+aWE("asmeshgroup1",57);\r
+aWE("asmeshgroup2",57);\r
+aWE("aspect",15,19,2,31,63,45);\r
+aWE("assign",18,22,24,7,38,54);\r
+aWE("associat",16,28,39);\r
+aWE("attribut",24);\r
+aWE("auto",5);\r
+aWE("automatic",12,18,22,31,61);\r
+aWE("automatical",0,18,20,22,25,27,49);\r
+aWE("availabl",43,53);\r
+aWE("averag",12,18,7,31,33,61,54);\r
+aWE("ax",53);\r
+aWE("axi",10,64,41,46,53,54);\r
+aWE("axisstruct",60,66);\r
+aWE("axisxyz",60,66);\r
 aWE("background",0);\r
-aWE("bar",14);\r
-aWE("bas",11,16,6,10,30,52);\r
-aWE("basi",12,21,22);\r
-aWE("basic",11);\r
-aWE("becom",58);\r
-aWE("befor",62);\r
-aWE("begin",17,42);\r
-aWE("belong",2,3,23,53,54,42,50);\r
-aWE("berder",42);\r
-aWE("binary",62);\r
-aWE("bisect",52);\r
-aWE("bisector",52);\r
-aWE("bit",62);\r
+aWE("bar",15);\r
+aWE("bas",12,17,7,11,31,54);\r
+aWE("basi",13,22,23);\r
+aWE("basic",12,0);\r
+aWE("becom",61);\r
+aWE("befor",65,66);\r
+aWE("begin",18,43);\r
+aWE("belong",3,4,24,55,56,43,51);\r
+aWE("below",60);\r
+aWE("berder",43);\r
+aWE("bet",19);\r
+aWE("binary",65);\r
+aWE("bisect",54);\r
+aWE("bisector",54);\r
+aWE("bit",65);\r
 aWE("black",0);\r
-aWE("block",5,6);\r
-aWE("bog",17);\r
-aWE("boolean",50);\r
-aWE("bord",42,63);\r
-aWE("border",14,2,3,53,54,30,60,42,63);\r
-aWE("both",8,10,44,50);\r
-aWE("bottom",41);\r
-aWE("bound",12,58);\r
-aWE("boundari",58);\r
-aWE("boundary",11,58,42,44);\r
-aWE("box",13,15,19,21,5,22,23,24,6,25,26,28,9,10,55,29,34,58,60,38,39,61,40,41,62,42,44,45,63,47,48,49,50,51,65);\r
-aWE("box_id",5,6);\r
-aWE("box1",63);\r
-aWE("box2",63);\r
-aWE("brown",23);\r
-aWE("brows",0,15,20,21,22,23,7,28,59,38,39,62,51);\r
-aWE("build",6,9,36,58,61);\r
-aWE("built",58,44);\r
-aWE("button",0,15,16,18,19,4,21,22,23,24,7,25,26,28,9,10,29,31,35,58,37,38,39,61,40,62,42,43,44,45,46,47,48,49,50,51,52);\r
-aWE("cad",12);\r
-aWE("cal",58);\r
-aWE("calculat",14,18,1,36,46);\r
-aWE("calculation",11,16,31,35);\r
-aWE("careful",38);\r
-aWE("cas",15,21,5,6,26,58,63,51);\r
-aWE("cel",23,38,49);\r
-aWE("cent",10,44);\r
-aWE("centroid",44);\r
-aWE("centroidal",44);\r
-aWE("centroidal_smooth",57);\r
-aWE("certain",23,58);\r
-aWE("chang",0,17,19,5,26,36,37,65);\r
-aWE("chapt",0);\r
-aWE("characteristic",14);\r
-aWE("characteriz",12);\r
-aWE("check",23,42);\r
-aWE("checkbox",15,62,47);\r
-aWE("choic",11,21,58);\r
-aWE("choos",15,16,18,19,20,23,24,7,25,26,8,27,9,10,29,31,34,35,58,38,39,61,40,41,62,42,43,45,46,47,48,49,52);\r
-aWE("chosen",24,32,33,48);\r
-aWE("circl",10,57);\r
-aWE("circlemesh",57);\r
-aWE("clear",62);\r
-aWE("click",0,15,16,18,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,31,35,58,59,37,38,39,61,41,62,42,43,44,46,48,49,50,51,52);\r
-aWE("clip",0,4);\r
-aWE("clos",12,7,42);\r
-aWE("co",42);\r
-aWE("coincident",34);\r
-aWE("color",14,0,16,18,31,35,43,46,52);\r
-aWE("combin",31,59,62);\r
-aWE("common",25,62,49);\r
-aWE("compar",42);\r
-aWE("component",30,41);\r
-aWE("compos",11,12,13,14,0,17,1,27,32,33,43);\r
-aWE("compound",5,6,57);\r
-aWE("comput",17,21,5,6,55,57,58,60,42,63,65);\r
-aWE("computation",21,22);\r
-aWE("concept",36);\r
-aWE("condition",11);\r
-aWE("confirm",19,24,28,38,44,48,50);\r
-aWE("confirmation",23);\r
-aWE("conform",11,36,42,63);\r
-aWE("connect",17,24,44);\r
-aWE("connection",12,14,2,3,30,60);\r
-aWE("connectivity",58);\r
-aWE("consid",21);\r
-aWE("consider",12,42);\r
-aWE("consist",14,16,17,18,2,3,20,21,22,23,53,54,55,32,31,35,33,46);\r
-aWE("consol",51);\r
-aWE("constant",17);\r
-aWE("construct",17,20,21,5,22,37);\r
-aWE("construction",17,21,5,22);\r
-aWE("contain",12,13,19,21,22,23,24,29,58,44,48);\r
-aWE("content",7);\r
-aWE("continu",44);\r
-aWE("contour",12,42);\r
-aWE("contrast",48);\r
-aWE("control",14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52);\r
-aWE("converg",44);\r
-aWE("coordinat",12,15,26,58);\r
-aWE("copy",40,62,45,63,47);\r
-aWE("corn",52);\r
-aWE("corner",24,44,52);\r
-aWE("correspond",12,14,29,58,62,42,47);\r
-aWE("could",12,15);\r
-aWE("count",42);\r
-aWE("counterclockwis",58);\r
-aWE("cours",21);\r
-aWE("creat",12,13,0,15,4,21,5,23,6,55,30,34,57,36,58,60,37,40,62,45,63,47,50,52);\r
-aWE("createanddisplaygo",6);\r
-aWE("createarea",55,60);\r
-aWE("createaspectratio",60);\r
-aWE("createaspectratio3d",60);\r
-aWE("createequalto",55,60);\r
-aWE("createfilt",55,60);\r
-aWE("createfiltermanag",55,57,60);\r
-aWE("createfreeborder",60);\r
-aWE("createfreeedg",60);\r
-aWE("creategroup",55,57,60);\r
-aWE("creategroupfromgeom",55);\r
-aWE("createhypothesi",5,6,55,60,65);\r
-aWE("createlength",60);\r
-aWE("createlength2d",60);\r
-aWE("createlessthan",55,60);\r
-aWE("createmesh",5,6,55,60,65);\r
-aWE("createminimumangl",57,60);\r
-aWE("createmorethan",55,60);\r
-aWE("createmulticonnection",60);\r
-aWE("createmulticonnection2d",60);\r
-aWE("createskew",60);\r
-aWE("createtap",60);\r
-aWE("createwarp",60);\r
-aWE("creation",12,23,36,58,37,50);\r
-aWE("criteria",30,62);\r
-aWE("criterion",16,18,1,23,24,55,56,31,35,60,62,43,46,48,52);\r
-aWE("cros",0,4,52);\r
-aWE("cubic",13);\r
-aWE("current",19,21,24,37,62,42,48);\r
-aWE("curv",12,10);\r
-aWE("curvilinear",17,10);\r
-aWE("cut",5,24,6,55,57,63,50);\r
-aWE("cutgroup",55);\r
-aWE("d",17);\r
-aWE("deal",12);\r
-aWE("default",0,21,23,10,59,62,64);\r
-aWE("defin",12,13,17,18,4,21,5,23,6,10,57,36,58,42,63);\r
-aWE("definit",12,14,17,19,20,23,24,30,37,38,48);\r
-aWE("definition",17,32,33);\r
-aWE("deflection",11,17,6);\r
-aWE("deflection1d",6);\r
-aWE("degre",4);\r
-aWE("delet",0,7,54,57,38,62);\r
-aWE("deletediag",57);\r
-aWE("deletion",30,38,49);\r
-aWE("density",17);\r
-aWE("depend",11,12,21,32,33);\r
-aWE("describ",12,0,58);\r
-aWE("description",58);\r
-aWE("desirabl",34);\r
-aWE("desktop",41);\r
-aWE("destin",12,14,30);\r
-aWE("detail",11);\r
-aWE("detect",34);\r
-aWE("diagonal",24,25,57,46);\r
-aWE("dialog",13,15,17,19,21,22,24,25,26,28,9,10,29,34,58,38,39,61,40,42,44,45,47,48,49,50);\r
-aWE("differ",17);\r
-aWE("differenc",10,42);\r
-aWE("different",11,15,23,37,62,42);\r
-aWE("dimension",12,1,21,9,61);\r
-aWE("direct",12,1,42,44);\r
-aWE("direction",58,52);\r
-aWE("dirstruct",57,63);\r
-aWE("discretisation",5,6,55);\r
-aWE("discretiz",9,61);\r
-aWE("discretization",12,13);\r
-aWE("displac",26);\r
-aWE("display",14,0,16,18,2,19,21,22,24,6,26,8,27,53,31,35,59,43,44,46,48,51,52);\r
-aWE("distanc",17,4,58,52);\r
-aWE("distinguish",23);\r
-aWE("distortion",44);\r
-aWE("distribution",17);\r
-aWE("divid",17);\r
-aWE("do",15);\r
-aWE("domain",58);\r
-aWE("don",12,21,36);\r
-aWE("e",21,24,58,42,48);\r
-aWE("easi",20);\r
-aWE("edg",11,12,13,14,15,17,18,2,3,20,21,5,23,24,6,25,26,8,10,53,54,55,30,56,31,57,36,58,60,62,42,44,63,48,49,65,52);\r
-aWE("edgeslist",63);\r
-aWE("edgex111",5,6);\r
-aWE("edgex112",5,6);\r
-aWE("edgex121",5,6);\r
-aWE("edgex122",5,6);\r
-aWE("edgey11",5,6);\r
-aWE("edgey12",5,6);\r
-aWE("edgey21",5,6);\r
-aWE("edgey22",5,6);\r
-aWE("edgez111",5,6);\r
-aWE("edgez121",5,6);\r
-aWE("edgez211",5,6);\r
-aWE("edgez221",5,6);\r
-aWE("edit",5,7,28,55,34,37);\r
-aWE("effect",48);\r
-aWE("eith",58,42);\r
-aWE("element",11,12,13,14,0,15,16,17,18,1,3,19,20,23,24,6,7,25,26,27,28,9,10,54,55,30,32,31,35,57,33,36,58,38,39,61,40,62,42,43,44,45,46,63,47,48,50,51,52);\r
-aWE("els",57,58);\r
-aWE("enabl",62);\r
-aWE("encapsulat",22);\r
-aWE("encounter",58);\r
-aWE("end",11,17,6,36,62,42,47);\r
-aWE("enough",42);\r
-aWE("ent",23,25,26,29,49);\r
-aWE("entiti",12,13);\r
-aWE("entity",12,0,8,62);\r
-aWE("equal",17,18,58,62,42,44);\r
-aWE("equidistant",17);\r
-aWE("equilateral",18);\r
+aWE("block",6,7);\r
+aWE("blu",3);\r
+aWE("bmp",0,53);\r
+aWE("bog",18);\r
+aWE("boolean",51);\r
+aWE("bord",43,66);\r
+aWE("border",15,3,4,55,56,31,63,43,66);\r
+aWE("both",0,11,45,51);\r
+aWE("bottom",60,42);\r
+aWE("bound",13,61);\r
+aWE("boundari",61);\r
+aWE("boundary",12,24,61,43,45);\r
+aWE("box",14,16,1,18,20,22,6,23,25,7,26,27,29,10,11,57,30,59,35,61,63,39,40,64,41,42,65,43,45,46,66,48,49,50,51,52,68);\r
+aWE("box_1",60);\r
+aWE("box_id",6,7);\r
+aWE("box1",66);\r
+aWE("box2",66);\r
+aWE("broken",1,37);\r
+aWE("brown",24);\r
+aWE("brows",0,16,1,21,22,23,24,8,29,62,39,40,65,52);\r
+aWE("build",7,10,33,60,37,61,64);\r
+aWE("built",19,23,61,45);\r
+aWE("button",16,1,17,19,2,20,5,22,23,24,25,8,26,27,29,10,11,30,32,36,61,38,39,40,64,41,65,43,44,45,46,47,48,49,50,51,52,69,53,54);\r
+aWE("cad",13);\r
+aWE("cal",61);\r
+aWE("calculat",15,19,2,33,47);\r
+aWE("calculation",12,17,32,36);\r
+aWE("careful",39);\r
+aWE("cas",16,22,6,7,27,60,61,66,52);\r
+aWE("cel",24,39,50);\r
+aWE("cent",11,45,53);\r
+aWE("centroid",45);\r
+aWE("centroidal",45);\r
+aWE("centroidal_smooth",60);\r
+aWE("certain",24,61);\r
+aWE("chang",0,18,20,6,27,60,37,38,68);\r
+aWE("characteristic",15);\r
+aWE("characteriz",13);\r
+aWE("check",24,43,53);\r
+aWE("checkbox",16,65,48);\r
+aWE("choic",12,22,61);\r
+aWE("choos",16,1,17,19,2,20,21,24,25,8,26,27,9,28,10,11,30,32,35,36,61,39,40,64,41,42,65,43,44,46,47,48,49,50,69,54);\r
+aWE("chosen",19,25,33,34,49);\r
+aWE("circl",11,60,66);\r
+aWE("circlemesh",60,66);\r
+aWE("clear",65);\r
+aWE("click",0,16,1,17,19,2,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,32,36,61,62,38,39,40,64,42,65,43,44,45,47,49,50,51,52,69,53,54);\r
+aWE("clip",0,5);\r
+aWE("clos",13,19,8,43);\r
+aWE("co",60,43);\r
+aWE("coars",18);\r
+aWE("coincid",59);\r
+aWE("coincident",59,35);\r
+aWE("color",15,0,17,19,2,24,32,36,44,47,69,53,54);\r
+aWE("combin",9,32,62,65);\r
+aWE("common",26,65,50);\r
+aWE("compar",18,43);\r
+aWE("complete",59);\r
+aWE("complex",1);\r
+aWE("component",31,42);\r
+aWE("compos",12,13,14,15,0,18,2,28,33,34,44);\r
+aWE("compound",6,7);\r
+aWE("comput",0,18,22,6,7,57,60,61,63,43,66,68);\r
+aWE("computation",22,23,7,57,60);\r
+aWE("concept",37);\r
+aWE("condition",12,24);\r
+aWE("confirm",20,25,29,39,45,49,51);\r
+aWE("confirmation",24);\r
+aWE("conform",12,37,43,66);\r
+aWE("conformity",19);\r
+aWE("connect",18,25,45);\r
+aWE("connection",13,15,3,4,31,63);\r
+aWE("connectivity",61);\r
+aWE("consid",19,22);\r
+aWE("consider",13,19,2,43);\r
+aWE("consist",15,1,17,18,19,3,4,21,22,23,24,55,56,57,33,32,36,34,47);\r
+aWE("consol",52);\r
+aWE("constant",18);\r
+aWE("construct",18,21,22,6,23,38);\r
+aWE("construction",18,22,6,23);\r
+aWE("contain",13,14,20,22,23,24,25,30,33,61,45,49);\r
+aWE("content",8,53);\r
+aWE("continu",45);\r
+aWE("contour",13,43);\r
+aWE("contrast",49);\r
+aWE("control",15,0,17,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54);\r
+aWE("converg",45);\r
+aWE("conversion",18);\r
+aWE("coordinat",13,16,27,61,53);\r
+aWE("copy",41,65,46,66,48);\r
+aWE("corn",1,54);\r
+aWE("corner",25,45,54);\r
+aWE("correspond",13,15,30,60,61,63,65,43,48);\r
+aWE("cosal",60);\r
+aWE("could",13,16);\r
+aWE("count",43);\r
+aWE("counterclockwis",61);\r
+aWE("cours",22);\r
+aWE("creat",13,14,0,16,1,18,5,22,6,23,24,7,29,57,31,35,60,37,61,63,38,41,65,46,66,48,51,54);\r
+aWE("createanddisplaygo",7);\r
+aWE("createarea",57,63);\r
+aWE("createaspectratio",63);\r
+aWE("createaspectratio3d",63);\r
+aWE("createequalto",57,63);\r
+aWE("createfilt",57,63);\r
+aWE("createfiltermanag",57,60,63);\r
+aWE("createfreeborder",63);\r
+aWE("createfreeedg",63);\r
+aWE("creategroup",57,60,63);\r
+aWE("creategroupfromgeom",57);\r
+aWE("createhypothesi",6,7,57,60,63,68);\r
+aWE("createlength",63);\r
+aWE("createlength2d",63);\r
+aWE("createlessthan",57,63);\r
+aWE("createmesh",6,7,57,60,63,68);\r
+aWE("createminimumangl",60,63);\r
+aWE("createmorethan",57,63);\r
+aWE("createmulticonnection",63);\r
+aWE("createmulticonnection2d",63);\r
+aWE("createskew",63);\r
+aWE("createtap",63);\r
+aWE("createvolume3d",63);\r
+aWE("createwarp",63);\r
+aWE("creation",13,37,61,38,51);\r
+aWE("criteria",31,65);\r
+aWE("criterion",17,19,2,24,25,57,58,32,36,63,65,44,47,49,69,54);\r
+aWE("cros",0,5,54);\r
+aWE("cubic",14);\r
+aWE("current",20,22,25,38,65,43,49);\r
+aWE("curv",13,18,11);\r
+aWE("curvilinear",18,11);\r
+aWE("cut",18,6,25,7,57,60,66,51);\r
+aWE("cutgroup",57);\r
+aWE("cylind",60);\r
+aWE("d",18);\r
+aWE("deal",13);\r
+aWE("def",60);\r
+aWE("default",0,22,11,62,65,67,53);\r
+aWE("defin",13,14,1,18,19,5,22,6,23,24,7,11,60,37,61,43,66,53);\r
+aWE("definit",13,15,18,20,21,24,25,31,38,39,49);\r
+aWE("definition",0,18,33,34);\r
+aWE("deflection",12,18,7,31);\r
+aWE("deflection1d",7);\r
+aWE("deform",53);\r
+aWE("degre",19,5);\r
+aWE("delet",8,56,60,39,65);\r
+aWE("deletediag",60);\r
+aWE("deletion",39,50);\r
+aWE("density",18);\r
+aWE("depend",12,13,22,33,34);\r
+aWE("describ",13,61);\r
+aWE("description",61);\r
+aWE("desirabl",35);\r
+aWE("desktop",42);\r
+aWE("destin",13,15,31);\r
+aWE("detail",12,0);\r
+aWE("detect",35);\r
+aWE("dh",60);\r
+aWE("diagonal",25,26,60,47);\r
+aWE("dialog",14,16,1,18,20,22,23,25,26,27,29,10,11,30,59,35,61,39,40,64,41,43,45,46,48,49,50,51);\r
+aWE("diamet",19);\r
+aWE("dif",1);\r
+aWE("differ",18);\r
+aWE("differenc",11,43);\r
+aWE("different",12,16,24,38,65,43);\r
+aWE("dimension",13,2,22,10,64,52);\r
+aWE("direct",13,43,45);\r
+aWE("direction",61,54);\r
+aWE("dirstruct",60,66);\r
+aWE("discretisation",6,7);\r
+aWE("discretiz",10,64);\r
+aWE("discretization",13,14);\r
+aWE("displac",27);\r
+aWE("display",15,0,1,17,19,2,3,20,22,23,24,25,7,27,9,28,55,32,36,62,44,45,47,49,52,69,53,54);\r
+aWE("distanc",18,5,61,53,54);\r
+aWE("distinguish",24);\r
+aWE("distortion",45);\r
+aWE("distribution",18);\r
+aWE("divid",18);\r
+aWE("do",16);\r
+aWE("domain",61);\r
+aWE("don",13,22,37,53);\r
+aWE("doubl",1);\r
+aWE("downward",53);\r
+aWE("dr",60);\r
+aWE("drag",53);\r
+aWE("drawn",53);\r
+aWE("dump",0,53);\r
+aWE("dx",60);\r
+aWE("dy",60);\r
+aWE("e",19,22,23,25,61,43,49);\r
+aWE("easi",21);\r
+aWE("edg",12,13,14,15,0,16,1,18,19,3,4,21,22,6,24,25,7,26,27,9,11,55,56,57,31,58,33,32,60,37,61,63,65,43,45,66,49,50,68,54);\r
+aWE("edgeslist",66);\r
+aWE("edgex111",6,7);\r
+aWE("edgex112",6,7);\r
+aWE("edgex121",6,7);\r
+aWE("edgex122",6,7);\r
+aWE("edgey11",6,7);\r
+aWE("edgey12",6,7);\r
+aWE("edgey21",6,7);\r
+aWE("edgey22",6,7);\r
+aWE("edgez111",6,7);\r
+aWE("edgez121",6,7);\r
+aWE("edgez211",6,7);\r
+aWE("edgez221",6,7);\r
+aWE("edit",6,8,29,57,35,38);\r
+aWE("effect",49);\r
+aWE("eith",61,43);\r
+aWE("element",12,13,14,15,0,16,1,17,18,19,2,4,20,21,24,25,7,8,26,27,28,29,10,11,56,57,31,33,32,59,36,60,34,37,61,63,39,40,64,41,65,43,44,45,46,47,66,48,49,51,52,69,54);\r
+aWE("els",7,57,60,61);\r
+aWE("enabl",65);\r
+aWE("encapsulat",23);\r
+aWE("encounter",61);\r
+aWE("end",12,18,7,31,37,65,43,48);\r
+aWE("enough",43);\r
+aWE("ent",24,26,27,30,50);\r
+aWE("entiti",13,14);\r
+aWE("entity",13,0,9,65);\r
+aWE("equal",18,33,61,65,43,45);\r
+aWE("equidistant",18);\r
+aWE("equilateral",19);\r
 aWE("eras",0);\r
-aWE("etc",14,1,24,48);\r
-aWE("evaluat",1);\r
-aWE("even",21);\r
-aWE("eventual",58);\r
-aWE("every",52);\r
-aWE("everyth",21);\r
-aWE("exampl",12,21,58,50);\r
-aWE("exce",17);\r
-aWE("exceed",44);\r
-aWE("except",42);\r
-aWE("exist",11,19,23,24,28,58,62,48);\r
-aWE("existenc",21);\r
-aWE("export",5,29,30);\r
-aWE("exportation",29);\r
-aWE("exportm",5);\r
-aWE("extend",52);\r
-aWE("extremiti",4);\r
-aWE("extrud",9,10,61);\r
-aWE("extrusion",9,10,57);\r
-aWE("extrusionalongpathobject",57);\r
-aWE("extrusionsweepobject",57);\r
-aWE("f",17,6);\r
-aWE("fac",11,12,13,15,17,1,2,20,21,5,23,6,8,53,55,30,32,57,36,58,60,62,42,63,51,65,52);\r
-aWE("face1",6,57);\r
-aWE("facelist",60);\r
-aWE("facesrotat",57);\r
-aWE("facessmooth",57);\r
-aWE("facestritoquad",57);\r
-aWE("facex11",5,6);\r
-aWE("facex21",5,6);\r
-aWE("facey111",5,6);\r
-aWE("facey121",5,6);\r
-aWE("facez11",5,6);\r
-aWE("facez12",5,6);\r
-aWE("factor",17);\r
-aWE("factoryserv",5,6,55,60,65);\r
-aWE("far",42);\r
-aWE("fashion",10);\r
-aWE("fast",44);\r
-aWE("field",15,19,23,24,25,26,39,62,42,44,48,49);\r
-aWE("fifth",42);\r
-aWE("fil",29,58,62);\r
-aWE("fill",39,42);\r
-aWE("filt",19,23,24,62,48);\r
-aWE("filter",23,62);\r
-aWE("find",29,58,42);\r
-aWE("findcoincidentnod",63);\r
-aWE("findorloadcomponent",5,6,55,60,65);\r
-aWE("first",17,21,55,58,42);\r
-aWE("fix",12,5,6,57,44,63);\r
-aWE("flag",58);\r
-aWE("fold",21,22);\r
-aWE("follow",11,12,13,0,15,18,1,19,21,22,23,24,25,26,27,28,9,10,34,58,38,39,61,40,42,44,45,47,48,49,50,51);\r
-aWE("form",25,28,58,42);\r
-aWE("format",29,30);\r
-aWE("formula",17,1);\r
-aWE("four",12,52);\r
-aWE("fre",12,14,53,54,30,60,42,44,63);\r
-aWE("function",12);\r
-aWE("functionaliti",0);\r
-aWE("functionality",21,29,34,42);\r
-aWE("generat",11,12,14,17,21,30,36,58);\r
-aWE("generation",9,58,61);\r
-aWE("geom",12,6,30);\r
-aWE("geometric",12,14,6);\r
-aWE("geometrical",11,12,13,17,21,22,23,30,32,33,58,37,40,44,45,47,51);\r
-aWE("geometry",23,55,44);\r
-aWE("geompy",5,6,55,57,60,63,65);\r
-aWE("get",0,4,21,10,58,51);\r
-aWE("getelementsid",55,60);\r
-aWE("getid",5,6,55);\r
-aWE("getlistofid",55);\r
-aWE("getmaxelementarea",5,6,55);\r
-aWE("getmaxelementvolum",5,6,55);\r
-aWE("getmesh",57,63);\r
-aWE("getmesheditor",57,60,63);\r
-aWE("getnam",5,6,55);\r
-aWE("getnumberofsegment",5,6,55);\r
-aWE("gg",6);\r
-aWE("giv",62,51);\r
-aWE("given",17,1,36,42);\r
-aWE("good",44);\r
-aWE("got",58);\r
-aWE("green",23);\r
-aWE("group",19,20,23,24,7,28,10,55,30,34,57,60,62,47,48,50,51);\r
-aWE("group1",50);\r
-aWE("group12",50);\r
-aWE("group12a",50);\r
-aWE("group12b",50);\r
-aWE("group2",50);\r
-aWE("grouprotat",57);\r
-aWE("groupsmooth",57);\r
-aWE("groupsofnod",63);\r
-aWE("grouptritoquad",57);\r
-aWE("h",52);\r
-aWE("h1",18);\r
-aWE("h2",18);\r
-aWE("half",52);\r
-aWE("halv",4);\r
-aWE("hav",36,58);\r
-aWE("height",18,52);\r
-aWE("helical",10);\r
-aWE("help",14);\r
-aWE("henc",58);\r
-aWE("her",28,58);\r
-aWE("hexa",5,6,57);\r
-aWE("hexa_3d",6);\r
-aWE("hexa3d",6);\r
-aWE("hexagon",10);\r
-aWE("hexahedral",13,5,6);\r
-aWE("hexahedralization",21);\r
-aWE("hexahedrical",5,6,57);\r
-aWE("hexahedron",12,13,15,1,6,57,33,65);\r
-aWE("hid",0);\r
-aWE("high",12);\r
-aWE("highlight",2,3,19,23,24,53,54,48);\r
-aWE("hol",54);\r
-aWE("hold",58);\r
-aWE("how",10,37);\r
-aWE("hyp",22);\r
-aWE("hyp1",5,60,65);\r
-aWE("hyp2",5,60,65);\r
-aWE("hyp3",5,65);\r
-aWE("hyp4",5,65);\r
-aWE("hyparea",5,6,55);\r
-aWE("hypnbseg",5,6,55);\r
-aWE("hypothes",11,17,21,22,6,30,36,37);\r
-aWE("hypothesi",11,17,21,5,6,55,32,57,33,36,37,63,65);\r
-aWE("hypvolum",5,6,55);\r
-aWE("i",21,24,55,58,60,42,48);\r
-aWE("icon",28,38,41);\r
-aWE("id",0,17,19,23,24,25,26,27,9,10,61,42,44,48,49);\r
-aWE("id_circl",57);\r
-aWE("id_face1",6,57);\r
-aWE("idbox",5,6,55,60,65);\r
-aWE("idcomp",63);\r
-aWE("idea",10);\r
-aWE("idedg",5,65);\r
-aWE("idfac",55);\r
-aWE("idtoobject",5,60,63,65);\r
-aWE("if",12,15,4,21,5,6,9,10,55,57,36,58,37,38,61,62,42,44,48);\r
-aWE("imag",10);\r
-aWE("imp",12);\r
-aWE("import",5,6,55,29,30,57,60,63,65);\r
-aWE("importation",29);\r
-aWE("importcomponentgui",5,6,55,60);\r
-aWE("includ",12,51);\r
-aWE("increas",5,6,63);\r
-aWE("index",58);\r
-aWE("indic",58);\r
-aWE("indicat",52);\r
-aWE("info",0,51,65);\r
-aWE("information",12,0,28,51,65);\r
-aWE("init",5,6,55,60);\r
-aWE("initial",10,62,45,50);\r
-aWE("initializ",5,6,55);\r
-aWE("input",17);\r
-aWE("insert",62,42);\r
-aWE("instead",58);\r
-aWE("intact",7);\r
-aWE("intend",42);\r
-aWE("interest",12);\r
-aWE("intermediat",42);\r
-aWE("internal",58);\r
-aWE("intersect",58,50);\r
-aWE("intersectgroup",55);\r
-aWE("intersection",55,58,50);\r
-aWE("introduc",11,36);\r
-aWE("introduction",30);\r
-aWE("invers",12,25,57);\r
-aWE("inversediag",57);\r
-aWE("inversion",25,57);\r
-aWE("invisibl",64);\r
-aWE("iso",58);\r
-aWE("isolin",58);\r
-aWE("isplanarfac",6,57);\r
-aWE("item",15,19,20,24,25,26,28,9,10,29,34,58,39,61,40,42,44,45,47,48,49,50);\r
-aWE("iteration",10,44);\r
-aWE("iterativ",44);\r
-aWE("join",43);\r
-aWE("just",58,38);\r
-aWE("k",17);\r
-aWE("keep",10,44,45);\r
-aWE("key",58);\r
-aWE("know",58);\r
-aWE("ko",57);\r
-aWE("l",52);\r
-aWE("laplacian",44);\r
-aWE("largest",18);\r
-aWE("last",17,42);\r
-aWE("lastnodeid",57);\r
-aWE("lay",9,58,61);\r
-aWE("lcc",5,6,55,60,65);\r
-aWE("learn",0,51);\r
-aWE("least",58,44);\r
-aWE("leav",21,7);\r
-aWE("left",10,58);\r
-aWE("legth",60);\r
-aWE("len",55,60);\r
-aWE("length",11,14,17,18,5,6,30,56,31,36,60,42,63,52);\r
-aWE("lengthfromedg",6);\r
-aWE("les",62,42,44);\r
-aWE("let",10);\r
-aWE("level",11,15);\r
-aWE("libnetgenengin",6);\r
-aWE("library",23,62);\r
-aWE("libstdmeshersengin",5,6,55,60,65);\r
-aWE("lik",15,1,21,27,42);\r
-aWE("limit",58,42,44);\r
-aWE("lin",12,17,9,58,61,43);\r
-aWE("link",42);\r
-aWE("list",15,19,23,24,7,10,62,48);\r
-aWE("lk",17);\r
-aWE("ll",21);\r
-aWE("load",58,62);\r
-aWE("local",5,22,6,30,57,36,63);\r
-aWE("locallength",6);\r
-aWE("locat",58,42);\r
-aWE("location",17,26,29,44);\r
-aWE("longest",18);\r
-aWE("look",27,58,62);\r
-aWE("low",12);\r
-aWE("ly",58);\r
-aWE("main",19,24,7,10,36,58,62,48,50);\r
-aWE("makearc",6,57);\r
-aWE("makebox",5,6,55,60,63,65);\r
-aWE("makecirclethreepnt",57);\r
-aWE("makecompound",5,6,60,63);\r
-aWE("makecylinderrh",6);\r
-aWE("makeedg",5,6);\r
-aWE("makefac",6,57);\r
-aWE("makehexa",5,6);\r
-aWE("makequad",5,6);\r
-aWE("makesketch",6);\r
-aWE("makevector",6,57);\r
-aWE("makevertex",5,6,57);\r
-aWE("makewir",6,57);\r
-aWE("manag",11,15);\r
-aWE("manual",23,58);\r
-aWE("map",58);\r
-aWE("mas",10);\r
-aWE("math",57,63);\r
-aWE("max",11,30,32,33,44);\r
-aWE("maxelementarea",5,6,55,57,60,65);\r
-aWE("maxelementarea_500",5,55);\r
-aWE("maxelementarea_800",6);\r
-aWE("maxelementvolum",5,6,55);\r
-aWE("maxelementvolume_500",5,55);\r
-aWE("maxelementvolume_900",6);\r
-aWE("maximum",17,6,32,33,43,44);\r
-aWE("mean",12);\r
-aWE("meaningful",12);\r
-aWE("measur",52);\r
-aWE("meet",24,48);\r
-aWE("mefisto_2d",5,6,60,65);\r
-aWE("mefisto2d",5,6);\r
-aWE("menu",0,15,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,34,36,58,38,39,61,40,41,62,42,44,45,47,48,49,50,51);\r
-aWE("merg",34,42,63);\r
-aWE("mergenod",63);\r
-aWE("mesh",11,12,13,14,0,15,16,17,18,1,2,3,19,4,20,21,5,22,23,24,6,7,25,26,27,28,9,10,53,54,55,29,30,32,31,34,35,57,33,36,58,59,60,37,38,39,61,40,41,62,42,43,44,45,46,63,47,48,49,50,51,65,52);\r
-aWE("mesh_1",21);\r
-aWE("mesh_borders_at_multi",60);\r
-aWE("mesh_freebord",60);\r
-aWE("meshbox",5,6,55);\r
-aWE("meshm",5);\r
-aWE("method",44);\r
-aWE("minimum",14,24,30,35,60,42,48);\r
-aWE("mirror",63);\r
-aWE("mirrorobject",63);\r
-aWE("mod",0,59);\r
-aWE("model",12,30);\r
-aWE("modification",12,15,19,24,25,26,28,9,10,30,34,58,38,39,61,40,42,44,45,47,48,49);\r
-aWE("modify",19,24,28,57,48);\r
-aWE("modul",12,13,30,41);\r
-aWE("mous",23);\r
-aWE("mov",26,30,57);\r
-aWE("movenod",57);\r
-aWE("mport",63);\r
-aWE("multi",14,2,3,30,60);\r
-aWE("multiconnection",60);\r
-aWE("multipli",18);\r
-aWE("must",21,10,58,62,42);\r
-aWE("mystudy",5,60,65);\r
-aWE("mystudyid",5,6,55,60);\r
-aWE("n",58,42);\r
-aWE("nam",21,5,23,28,55,29,62,50,65);\r
-aWE("nb",55,60);\r
-aWE("nbedg",65);\r
-aWE("nbfac",65);\r
-aWE("nbhexa",65);\r
-aWE("nbnod",57,65);\r
-aWE("nbpolygon",65);\r
-aWE("nbpolyhedron",65);\r
-aWE("nbprism",65);\r
-aWE("nbpyramid",65);\r
-aWE("nbquadrangl",65);\r
-aWE("nbtetra",65);\r
-aWE("nbtriangl",65);\r
-aWE("nbvolum",65);\r
-aWE("ne",21);\r
-aWE("necessary",15);\r
-aWE("need",1);\r
-aWE("neighbor",25,49);\r
-aWE("netgen",13);\r
-aWE("netgen_3d",6);\r
-aWE("netgen3d",6);\r
-aWE("netgenplugin",6);\r
-aWE("new",4,21,22,23,26,58,37,62,50);\r
-aWE("next",0,17,58);\r
-aWE("nod",12,0,15,16,17,18,19,20,23,26,27,9,30,34,57,58,59,38,39,61,62,42,43,44,46,63,51,65,52);\r
-aWE("nodal",58,44);\r
-aWE("non",21);\r
-aWE("normal",45,52);\r
-aWE("not",15,21,7,44);\r
-aWE("notic",12);\r
-aWE("now",4,21,10);\r
-aWE("numb",11,12,17,5,6,9,30,57,58,61,42,44,63,51,65);\r
-aWE("number",0,27);\r
-aWE("numberofsegment",5,6,55,57,60,63,65);\r
-aWE("numberofsegments_10",5,6,55);\r
-aWE("numerical",11);\r
-aWE("obey",42);\r
-aWE("object",11,13,0,15,17,4,20,21,22,23,24,6,7,28,29,32,57,33,58,59,37,38,39,40,47,48,51);\r
-aWE("objecttoid",5,6,55,60);\r
-aWE("objet",23);\r
-aWE("obliqu",10);\r
-aWE("obtain",15,21);\r
-aWE("ok",15,19,4,24,7,25,26,28,9,10,29,57,38,39,61,42,44,48,49,50);\r
-aWE("on",12,17,21,22,24,7,25,9,53,54,36,58,60,37,38,61,62,42,44,45,47,48,50,65);\r
-aWE("onc",48);\r
-aWE("onto",36,58);\r
-aWE("opaqu",64);\r
-aWE("operat",11);\r
-aWE("operation",13,0,15,16,17,18,1,2,3,19,22,23,24,7,25,26,28,9,10,53,54,29,30,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52);\r
-aWE("opposit",11,4,5,24,6,36,42,43,63);\r
-aWE("option",12,45,47);\r
-aWE("optional",21,10);\r
-aWE("ord",12,19,58);\r
-aWE("orientation",19,4,24,48);\r
-aWE("origin",52);\r
-aWE("other",48);\r
-aWE("otherwis",21);\r
-aWE("our",21);\r
-aWE("outlin",54);\r
-aWE("outsid",58);\r
-aWE("own",12);\r
-aWE("pag",23);\r
-aWE("pair",17);\r
-aWE("paramet",12,17,62,42);\r
-aWE("parameter",11,0,4,10,40,42);\r
-aWE("parametric",12,58);\r
-aWE("part",42,44);\r
-aWE("particularity",12);\r
-aWE("path",10,57,62);\r
-aWE("pattern",58);\r
-aWE("pattern_nam",58);\r
-aWE("pentahedron",1);\r
-aWE("perfect",18);\r
-aWE("perform",30,39,42,45,50);\r
-aWE("pi",57,63);\r
-aWE("pictur",2,23,10,53,54);\r
-aWE("plac",42);\r
-aWE("plan",4,55,60,45,52);\r
-aWE("planar",52);\r
-aWE("platform",23,41);\r
-aWE("pleas",7);\r
-aWE("plu",9,61);\r
-aWE("point",12,17,6,10,57,58,61,40,42,45,63,47,52);\r
-aWE("point111",5,6);\r
-aWE("point112",5,6);\r
-aWE("point121",5,6);\r
-aWE("point122",5,6);\r
-aWE("point211",5,6);\r
-aWE("point212",5,6);\r
-aWE("point221",5,6);\r
-aWE("point222",5,6);\r
-aWE("pointstruct",57,63);\r
-aWE("polygon",15,65);\r
-aWE("polyhedral",15);\r
-aWE("polyhedron",15,65);\r
-aWE("pop",0,7,27);\r
-aWE("position",12,58);\r
-aWE("posses",36);\r
-aWE("possibility",62);\r
-aWE("possibl",11,1,23,58);\r
-aWE("powerful",62);\r
-aWE("precision",15);\r
-aWE("preferenc",59);\r
-aWE("prefix",62);\r
-aWE("pres",15,10,38,44);\r
-aWE("present",12,50);\r
-aWE("presentation",14,0);\r
-aWE("preserv",58);\r
-aWE("preset",11);\r
-aWE("preview",15,4,24,58,62);\r
-aWE("previou",17,48);\r
-aWE("previous",22,23,30,58);\r
-aWE("principl",10);\r
-aWE("print",5,6,55,57,60,65);\r
-aWE("prism",65);\r
-aWE("problem",5,6,55);\r
-aWE("proce",21,7);\r
-aWE("procedur",18,44);\r
-aWE("proceed",37);\r
-aWE("proces",44);\r
-aWE("produc",12,9,61,44);\r
-aWE("product",52);\r
-aWE("program",17,21);\r
-aWE("progression",17);\r
-aWE("project",58);\r
-aWE("projection",58,52);\r
-aWE("propagat",5,6,36,63);\r
-aWE("propagatea",6);\r
-aWE("propagation",11,5,6,36,63,65);\r
-aWE("provid",15);\r
-aWE("pseudo",25);\r
-aWE("pul",44);\r
-aWE("px",6,57);\r
-aWE("px1",57);\r
-aWE("py",6,57);\r
-aWE("py1",57);\r
-aWE("pyramid",65);\r
-aWE("pyramidal",13);\r
-aWE("python",51);\r
-aWE("pz",6,57);\r
-aWE("pz1",57);\r
-aWE("qi",1);\r
-aWE("qk",1);\r
-aWE("quad",57,52);\r
-aWE("quad2d",6,55);\r
-aWE("quadrangl",12,13,15,16,18,1,5,24,6,25,9,32,31,35,57,61,43,63,65);\r
-aWE("quadrangle_2d",6,55);\r
-aWE("quadrangular",13,5,6,36,63);\r
-aWE("quadtotri",57);\r
-aWE("quality",14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52);\r
-aWE("quantity",11);\r
-aWE("radio",19,23,24,40,42,45,48);\r
-aWE("rang",55,60);\r
-aWE("ratio",14,18,1,30,60,44,46,52);\r
-aWE("ready",21);\r
+aWE("etc",15,2,25,49);\r
+aWE("even",22,33);\r
+aWE("eventual",61);\r
+aWE("every",54);\r
+aWE("everyth",22);\r
+aWE("exampl",13,2,22,24,61,51);\r
+aWE("exce",18);\r
+aWE("exceed",45);\r
+aWE("except",43,53);\r
+aWE("exist",12,20,24,25,29,61,65,49);\r
+aWE("existenc",22);\r
+aWE("exponent",18);\r
+aWE("export",0,6,30,31,53);\r
+aWE("exportation",30);\r
+aWE("exportm",6);\r
+aWE("extend",53,54);\r
+aWE("extreme",18);\r
+aWE("extremiti",5);\r
+aWE("extrud",10,11,60,64);\r
+aWE("extrusion",10,11,60,66);\r
+aWE("extrusionalongpathobject",60,66);\r
+aWE("extrusionsweepobject",60);\r
+aWE("f",18,7);\r
+aWE("fac",12,13,14,0,16,18,2,3,21,22,6,23,24,7,9,55,57,31,33,60,37,61,63,65,43,66,52,68,54);\r
+aWE("face_1",60);\r
+aWE("face_2",60);\r
+aWE("face1",7,60,66);\r
+aWE("facelist",63);\r
+aWE("facesrotat",60);\r
+aWE("facessmooth",60);\r
+aWE("facestritoquad",60);\r
+aWE("facex11",6,7);\r
+aWE("facex21",6,7);\r
+aWE("facey111",6,7);\r
+aWE("facey121",6,7);\r
+aWE("facez11",6,7);\r
+aWE("facez12",6,7);\r
+aWE("factor",18,25);\r
+aWE("factoryserv",6,7,57,60,63,68);\r
+aWE("fail",60);\r
+aWE("far",43);\r
+aWE("fashion",11);\r
+aWE("fast",45);\r
+aWE("featur",24);\r
+aWE("field",16,1,20,24,26,27,40,65,43,45,49,50);\r
+aWE("fifth",43);\r
+aWE("fil",30,61,65);\r
+aWE("fill",63,40,43);\r
+aWE("filt",20,24,25,65,49);\r
+aWE("filter",24,65);\r
+aWE("fin",18);\r
+aWE("find",30,61,43);\r
+aWE("findcoincidentnod",66);\r
+aWE("findorloadcomponent",6,7,57,60,63,68);\r
+aWE("finenes",18);\r
+aWE("first",1,18,22,57,60,37,61,43);\r
+aWE("fit",53);\r
+aWE("fiv",60);\r
+aWE("fix",13,6,7,45,66);\r
+aWE("flag",61);\r
+aWE("fold",22,23);\r
+aWE("follow",12,13,14,16,1,2,20,22,23,24,25,26,27,28,29,10,11,35,61,39,40,64,41,43,45,46,48,49,50,51,52);\r
+aWE("font",53);\r
+aWE("form",1,26,29,61,43);\r
+aWE("format",0,30,31,53);\r
+aWE("formula",18,19,2);\r
+aWE("four",13,19,54);\r
+aWE("fourth",60);\r
+aWE("fram",53);\r
+aWE("fre",13,15,55,56,31,63,43,45,66);\r
+aWE("function",13);\r
+aWE("functionaliti",53);\r
+aWE("functionality",22,30,59,35,43,53);\r
+aWE("futur",18);\r
+aWE("g",23);\r
+aWE("gaus",53);\r
+aWE("generat",12,13,15,18,22,31,37,61);\r
+aWE("generation",10,61,64);\r
+aWE("geom",13,7,31,60);\r
+aWE("geometric",13,15,7);\r
+aWE("geometrical",12,13,14,18,22,23,24,31,33,34,61,38,41,45,46,48,52);\r
+aWE("geometry",23,24,57,60,45);\r
+aWE("geompy",6,7,57,60,63,66,68);\r
+aWE("get",0,5,22,7,11,61,52);\r
+aWE("getalgorithm",60);\r
+aWE("getborder",63);\r
+aWE("getelementsid",57,63);\r
+aWE("geterrorcod",60);\r
+aWE("getid",6);\r
+aWE("getlistofid",57);\r
+aWE("getmaxelementarea",6,7);\r
+aWE("getmaxelementvolum",6,7);\r
+aWE("getmesh",60,66);\r
+aWE("getmesheditor",60,63,66);\r
+aWE("getnam",6,7);\r
+aWE("getnumberofsegment",6,7);\r
+aWE("getpattern",60);\r
+aWE("gg",7);\r
+aWE("giv",65,52);\r
+aWE("given",18,33,43);\r
+aWE("global",53);\r
+aWE("go",60);\r
+aWE("good",45);\r
+aWE("got",61);\r
+aWE("graduat",53);\r
+aWE("graphical",0);\r
+aWE("great",18,53);\r
+aWE("greatest",19,2);\r
+aWE("green",24);\r
+aWE("group",20,21,24,25,8,29,11,57,31,35,60,63,65,45,48,49,51,52);\r
+aWE("group1",51);\r
+aWE("group12",51);\r
+aWE("group12a",51);\r
+aWE("group12b",51);\r
+aWE("group2",51);\r
+aWE("grouprotat",60);\r
+aWE("groupsmooth",60);\r
+aWE("groupsofnod",66);\r
+aWE("grouptritoquad",60);\r
+aWE("h",54);\r
+aWE("half",19,54);\r
+aWE("halv",5);\r
+aWE("hav",19,33,37,61);\r
+aWE("hedron",60);\r
+aWE("height",54);\r
+aWE("helical",11);\r
+aWE("help",15);\r
+aWE("henc",61);\r
+aWE("her",61);\r
+aWE("hexa",6,7);\r
+aWE("hexa_3d",7);\r
+aWE("hexa3d",7);\r
+aWE("hexagon",11);\r
+aWE("hexahedral",14,6,7);\r
+aWE("hexahedralization",22);\r
+aWE("hexahedrical",6,7);\r
+aWE("hexahedron",13,14,16,2,7,60,34,68);\r
+aWE("hh",60);\r
+aWE("hid",0,53);\r
+aWE("high",13);\r
+aWE("highlight",3,4,20,24,25,55,56,49);\r
+aWE("hmax",19);\r
+aWE("hol",56);\r
+aWE("hold",61);\r
+aWE("how",11,38);\r
+aWE("hyp",23);\r
+aWE("hyp1",6,63,68);\r
+aWE("hyp2",6,63,68);\r
+aWE("hyp3",6,68);\r
+aWE("hyp4",6,68);\r
+aWE("hyparea",6,7);\r
+aWE("hypnbseg",6,7,57);\r
+aWE("hypothes",12,0,18,22,23,7,57,31,33,37,38);\r
+aWE("hypothesi",12,18,22,6,7,57,33,34,37,38,66,68);\r
+aWE("hypvolum",6,7);\r
+aWE("i",19,22,25,57,60,61,63,43,49);\r
+aWE("icon",29,39,42);\r
+aWE("id",0,18,20,24,25,26,27,28,10,11,64,43,45,49,50);\r
+aWE("id_arc",7);\r
+aWE("id_circl",60,66);\r
+aWE("id_fac",7);\r
+aWE("id_face1",7,60,66);\r
+aWE("idbox",6,7,57,63,68);\r
+aWE("idcomp",66);\r
+aWE("idea",11);\r
+aWE("idedg",6,68);\r
+aWE("idfac",57);\r
+aWE("idtoobject",6,63,66,68);\r
+aWE("if",13,16,5,22,6,23,7,10,11,57,33,60,37,61,38,39,64,65,43,45,49,53);\r
+aWE("ii",60);\r
+aWE("imag",0,11,53);\r
+aWE("imp",13);\r
+aWE("import",6,7,57,30,31,60,63,66,68);\r
+aWE("importation",30);\r
+aWE("importcomponentgui",6,7,63);\r
+aWE("includ",13,52);\r
+aWE("increas",6,7,66);\r
+aWE("index",24,61);\r
+aWE("indic",61);\r
+aWE("indicat",54);\r
+aWE("info",0,52,68);\r
+aWE("information",13,0,29,52,68);\r
+aWE("init",6,7,63);\r
+aWE("init_geom",60);\r
+aWE("initial",11,65,46,51);\r
+aWE("initializ",6,7,57);\r
+aWE("input",1,18);\r
+aWE("inscrib",19);\r
+aWE("insert",65,43);\r
+aWE("instead",37,61);\r
+aWE("intact",8);\r
+aWE("integ",24);\r
+aWE("intend",43);\r
+aWE("interest",13);\r
+aWE("intermediat",43);\r
+aWE("internal",61);\r
+aWE("intersect",61,51);\r
+aWE("intersectgroup",57);\r
+aWE("intersection",57,61,51);\r
+aWE("introduc",12,24,37);\r
+aWE("introduction",31);\r
+aWE("invers",13,26,60);\r
+aWE("inversediag",60);\r
+aWE("inversion",26,60);\r
+aWE("invisibl",67);\r
+aWE("isdon",60);\r
+aWE("iso",61);\r
+aWE("isolin",61);\r
+aWE("isometric",53);\r
+aWE("isplanarfac",7,60,66);\r
+aWE("item",16,1,20,21,25,26,27,29,10,11,30,35,61,40,64,41,43,45,46,48,49,50,51);\r
+aWE("iteration",11,45);\r
+aWE("iterativ",45);\r
+aWE("join",44);\r
+aWE("jpeg",0,53);\r
+aWE("jpg",0,53);\r
+aWE("just",1,61,39);\r
+aWE("k",18,19);\r
+aWE("keep",11,45,46);\r
+aWE("key",61);\r
+aWE("keyboard",25);\r
+aWE("know",61);\r
+aWE("ko",60);\r
+aWE("l",54);\r
+aWE("label",53);\r
+aWE("laplacian",45);\r
+aWE("last",1,18,37,43);\r
+aWE("lastnodeid",60);\r
+aWE("lay",10,61,64);\r
+aWE("lcc",6,7,57,60,63,68);\r
+aWE("learn",52);\r
+aWE("least",61,45);\r
+aWE("leav",22,8);\r
+aWE("left",0,11,61,53);\r
+aWE("legth",63);\r
+aWE("len",57,63);\r
+aWE("length",12,15,18,19,6,7,31,58,33,32,63,43,66,53,54);\r
+aWE("lengthfromedg",7,60,66);\r
+aWE("les",65,43,45);\r
+aWE("let",11);\r
+aWE("level",12,16);\r
+aWE("libnetgenengin",7);\r
+aWE("library",24,65);\r
+aWE("libstdmeshersengin",6,7,57,60,63,68);\r
+aWE("lik",16,2,28,43);\r
+aWE("limit",61,43,45);\r
+aWE("lin",13,1,18,10,37,61,64,44);\r
+aWE("link",43);\r
+aWE("list",0,16,20,24,25,8,11,65,49);\r
+aWE("lk",18);\r
+aWE("ll",53);\r
+aWE("load",61,65);\r
+aWE("loadfromfac",60);\r
+aWE("local",6,23,7,31,37,66);\r
+aWE("locallength",7);\r
+aWE("locat",61,43);\r
+aWE("location",18,27,30,45);\r
+aWE("lock",25,45,53);\r
+aWE("longest",19);\r
+aWE("look",28,61,65);\r
+aWE("low",13,18);\r
+aWE("ly",61);\r
+aWE("main",20,25,8,11,37,61,65,49,51);\r
+aWE("makearc",7,60,66);\r
+aWE("makebox",6,7,57,63,66,68);\r
+aWE("makeboxdxdydz",60);\r
+aWE("makecirclethreepnt",60,66);\r
+aWE("makecompound",6,7,63,66);\r
+aWE("makecylinderrh",7,60);\r
+aWE("makeedg",6,7);\r
+aWE("makefac",7,60,66);\r
+aWE("makehexa",6,7);\r
+aWE("makemesh",60);\r
+aWE("makepolygon",60);\r
+aWE("makequad",6,7);\r
+aWE("makesketch",7);\r
+aWE("makevector",7,60,66);\r
+aWE("makevertex",6,7,60,66);\r
+aWE("makewir",7,60,66);\r
+aWE("manag",12,16);\r
+aWE("manual",24,61);\r
+aWE("map",33,60,61);\r
+aWE("mark",53);\r
+aWE("mas",11);\r
+aWE("math",60,66);\r
+aWE("max",12,7,31,33,34,45);\r
+aWE("max_element_area",60);\r
+aWE("maxelementarea",6,7,60,63,68);\r
+aWE("maxelementarea_500",6);\r
+aWE("maxelementarea_800",7);\r
+aWE("maxelementvolum",6,7);\r
+aWE("maxelementvolume_500",6);\r
+aWE("maxelementvolume_900",7);\r
+aWE("maximum",18,7,33,34,44,45,52);\r
+aWE("mean",13);\r
+aWE("meaningful",13);\r
+aWE("measur",54);\r
+aWE("meet",25,49);\r
+aWE("mefisto_2d",6,7,63,68);\r
+aWE("mefisto2d",6,7);\r
+aWE("menu",16,1,18,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,35,37,61,39,40,64,41,42,65,43,45,46,48,49,50,51,52);\r
+aWE("merg",59,35,43,66);\r
+aWE("mergeequalelement",66);\r
+aWE("mergenod",66);\r
+aWE("mesh",12,13,14,15,0,16,1,17,18,19,2,3,4,20,5,21,22,6,23,24,25,7,8,26,27,28,29,10,11,55,56,57,30,31,33,32,59,35,36,60,34,37,61,62,63,38,39,40,64,41,42,65,43,44,45,46,47,66,48,49,50,51,52,68,69,53,54);\r
+aWE("mesh_1",22,60);\r
+aWE("mesh_2",60);\r
+aWE("mesh_borders_at_multi",63);\r
+aWE("mesh_freebord",63);\r
+aWE("meshbox",6,7);\r
+aWE("mesheditor",60);\r
+aWE("meshm",6);\r
+aWE("method",60,45);\r
+aWE("middl",1,37);\r
+aWE("minimum",15,18,25,31,36,63,43,49);\r
+aWE("mirror",66);\r
+aWE("mirrorobject",66);\r
+aWE("mod",0,18,62);\r
+aWE("model",13,31);\r
+aWE("modification",13,16,1,20,25,26,27,29,10,11,31,35,61,39,40,64,41,43,45,46,48,49,50);\r
+aWE("modify",20,25,29,60,49);\r
+aWE("modul",13,14,1,18,24,31,60,42,53);\r
+aWE("mous",0,24,53);\r
+aWE("mov",27,60);\r
+aWE("movenod",60);\r
+aWE("multi",15,3,4,31,63);\r
+aWE("multiconnection",63);\r
+aWE("must",22,11,61,65,43);\r
+aWE("myelemid",63);\r
+aWE("mypnt1",63);\r
+aWE("mypnt2",63);\r
+aWE("mystudy",6,60,63,68);\r
+aWE("mystudyid",6,7,63);\r
+aWE("n",61,43);\r
+aWE("nam",22,6,23,24,29,57,30,65,51,68,53);\r
+aWE("nb",57,63);\r
+aWE("nb_segments_1",60);\r
+aWE("nb_vert",60);\r
+aWE("nbedg",66,68);\r
+aWE("nbfac",68);\r
+aWE("nbhexa",68);\r
+aWE("nbnod",60,66,68);\r
+aWE("nbpolygon",68);\r
+aWE("nbpolyhedron",68);\r
+aWE("nbprism",68);\r
+aWE("nbpyramid",68);\r
+aWE("nbquadrangl",66,68);\r
+aWE("nbtetra",68);\r
+aWE("nbtriangl",66,68);\r
+aWE("nbvolum",66,68);\r
+aWE("ne",22);\r
+aWE("necessary",16);\r
+aWE("negativ",18);\r
+aWE("neighbor",26,50);\r
+aWE("netgen",14);\r
+aWE("netgen_3d",7);\r
+aWE("netgen3d",7);\r
+aWE("netgenplugin",7);\r
+aWE("new",0,5,22,23,24,27,61,38,65,51);\r
+aWE("next",18,61);\r
+aWE("nod",13,0,16,1,17,18,19,20,21,24,27,28,10,31,33,35,60,61,62,63,39,40,64,65,43,44,45,47,66,52,68,54);\r
+aWE("nodal",61,45);\r
+aWE("node_id",60);\r
+aWE("node_start_id",60);\r
+aWE("non",22);\r
+aWE("normal",46,54);\r
+aWE("normalisation",19);\r
+aWE("not",16,19,22,24,8);\r
+aWE("noth",24);\r
+aWE("notic",13);\r
+aWE("now",5,22,11,60);\r
+aWE("numb",12,13,1,18,6,24,7,10,31,33,61,64,43,45,66,52,68,53);\r
+aWE("number",0,1,28);\r
+aWE("numberofsegment",6,7,57,60,63,66,68);\r
+aWE("numberofsegments_10",6);\r
+aWE("numberofsegments_7",7);\r
+aWE("numeric",25);\r
+aWE("numerical",12);\r
+aWE("obey",43);\r
+aWE("object",12,14,0,16,1,18,5,21,22,23,24,25,7,8,29,30,33,60,34,61,62,38,39,40,41,48,49,52,69,53);\r
+aWE("objecttoid",6,7,63);\r
+aWE("objet",24);\r
+aWE("obliqu",11);\r
+aWE("obtain",16);\r
+aWE("offset",53);\r
+aWE("ok",16,1,20,5,25,8,26,27,29,10,11,30,60,39,40,64,43,45,49,50,51);\r
+aWE("on",13,1,18,22,23,25,8,26,10,55,56,59,37,61,63,38,39,64,65,43,45,46,48,49,51,68);\r
+aWE("onc",49);\r
+aWE("onto",37,61);\r
+aWE("oo",19);\r
+aWE("opaqu",67);\r
+aWE("operat",12);\r
+aWE("operation",14,16,17,18,19,2,3,4,20,23,24,25,8,26,27,29,10,11,55,56,30,31,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54);\r
+aWE("opposit",12,5,6,25,7,33,37,43,44,66);\r
+aWE("option",13,0,18,46,48);\r
+aWE("optional",22,11);\r
+aWE("ord",13,20,61);\r
+aWE("ordinary",1,37);\r
+aWE("orientat",53);\r
+aWE("orientation",20,5,25,60,49);\r
+aWE("origin",54);\r
+aWE("other",49);\r
+aWE("otherwis",22,33);\r
+aWE("our",22);\r
+aWE("out",53);\r
+aWE("outlin",56);\r
+aWE("outsid",61);\r
+aWE("own",13);\r
+aWE("pag",24,29);\r
+aWE("pair",18);\r
+aWE("pan",53);\r
+aWE("paramet",13,18,2,65,43);\r
+aWE("parameter",12,0,5,11,41,43,53);\r
+aWE("parametric",13,61);\r
+aWE("parent",23);\r
+aWE("part",43,45,53);\r
+aWE("particular",60);\r
+aWE("particularity",13);\r
+aWE("pas",60);\r
+aWE("path",11,60,65,66);\r
+aWE("pattern",60,61);\r
+aWE("pattern_nam",61);\r
+aWE("pentahedron",2);\r
+aWE("perform",31,40,43,46,51);\r
+aWE("perimet",19);\r
+aWE("pi",60,66);\r
+aWE("pictur",3,24,11,55,56,59);\r
+aWE("plac",43,53);\r
+aWE("plan",5,63,46,54);\r
+aWE("planar",54);\r
+aWE("platform",24,42);\r
+aWE("pleas",8);\r
+aWE("plot",18);\r
+aWE("plu",10,64);\r
+aWE("png",0,53);\r
+aWE("point",13,1,18,7,11,60,37,61,64,41,43,46,66,48,53,54);\r
+aWE("point111",6,7);\r
+aWE("point112",6,7);\r
+aWE("point121",6,7);\r
+aWE("point122",6,7);\r
+aWE("point211",6,7);\r
+aWE("point212",6,7);\r
+aWE("point221",6,7);\r
+aWE("point222",6,7);\r
+aWE("pointstruct",60,66);\r
+aWE("polygon",16,60,68);\r
+aWE("polygonal",60);\r
+aWE("polyhedral",16,60);\r
+aWE("polyhedron",16,60,68);\r
+aWE("pop",8,28);\r
+aWE("position",13,61,53);\r
+aWE("posses",37);\r
+aWE("possibility",65);\r
+aWE("possibl",12,2,24,61);\r
+aWE("post",53);\r
+aWE("powerful",65);\r
+aWE("precision",16);\r
+aWE("preferenc",12,31,33,62);\r
+aWE("prefix",65);\r
+aWE("preproces",24);\r
+aWE("pres",16,1,11,39,53);\r
+aWE("present",13,0,51);\r
+aWE("presentation",15,0,53);\r
+aWE("preserv",61);\r
+aWE("preset",12);\r
+aWE("preview",16,5,25,61,65);\r
+aWE("previou",18,49);\r
+aWE("previous",23,24,31,61);\r
+aWE("principl",11);\r
+aWE("print",6,7,57,60,63,66,68);\r
+aWE("prism",68);\r
+aWE("pro",53);\r
+aWE("problem",6,7,57);\r
+aWE("proce",22,8);\r
+aWE("procedur",45);\r
+aWE("proceed",38);\r
+aWE("proces",45);\r
+aWE("produc",13,10,64,45);\r
+aWE("product",54);\r
+aWE("program",22);\r
+aWE("progression",18);\r
+aWE("project",61);\r
+aWE("projection",61,54);\r
+aWE("prompt",18);\r
+aWE("propagat",6,7,37,66);\r
+aWE("propagation",12,6,7,37,66,68);\r
+aWE("properti",53);\r
+aWE("provid",0,16,25);\r
+aWE("pseudo",26);\r
+aWE("pul",45);\r
+aWE("px",7,60,66);\r
+aWE("px1",60,66);\r
+aWE("py",7,60,66);\r
+aWE("py1",60,66);\r
+aWE("pyramid",68);\r
+aWE("pyramidal",14);\r
+aWE("python",52);\r
+aWE("pz",7,60,66);\r
+aWE("pz1",60,66);\r
+aWE("qi",2);\r
+aWE("qk",19,2);\r
+aWE("quad",60,54);\r
+aWE("quad2d",7,57);\r
+aWE("quadrangl",12,13,14,16,17,19,2,6,25,7,26,10,31,33,32,36,60,64,44,66,68);\r
+aWE("quadrangle_2d",7,57);\r
+aWE("quadrangular",14,6,7,33,37,66);\r
+aWE("quadratic",12,1,37);\r
+aWE("quadtotri",60);\r
+aWE("quality",15,0,17,18,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54);\r
+aWE("quantity",12);\r
+aWE("r1",60);\r
+aWE("radio",20,24,25,41,43,46,49);\r
+aWE("radiu",19,60);\r
+aWE("rang",18,24,57,60,63);\r
+aWE("ratio",15,19,2,31,63,45,47,54);\r
+aWE("ready",22);\r
 aWE("recent",0);\r
-aWE("red",54);\r
-aWE("reduc",44);\r
-aWE("reevaluat",44);\r
-aWE("refer",58);\r
-aWE("referenc",12,14,21,22);\r
-aWE("refin",11);\r
-aWE("reflect",58,43);\r
+aWE("red",56);\r
+aWE("redefin",0,53);\r
+aWE("reduc",45);\r
+aWE("reevaluat",45);\r
+aWE("refer",61);\r
+aWE("referenc",13,15,22,23);\r
+aWE("refin",12);\r
+aWE("reflect",61,44,69);\r
 aWE("refresh",0);\r
-aWE("regular_1d",5,6,55,60,65);\r
-aWE("regular1d",5,6,55);\r
-aWE("relat",41);\r
-aWE("relation",12);\r
-aWE("relationship",12);\r
-aWE("remain",18);\r
-aWE("remov",19,5,23,24,7,28,10,55,57,38,62,48,65);\r
-aWE("removeelement",57,60);\r
-aWE("removehypothesi",5,65);\r
-aWE("removenod",57);\r
-aWE("renumb",39);\r
-aWE("renumber",57,39);\r
-aWE("renumbernod",57);\r
-aWE("reorient",19);\r
-aWE("repeat",18);\r
-aWE("replac",42);\r
-aWE("represent",11,12,17,59,46);\r
-aWE("representation",12);\r
-aWE("requir",25,26,49);\r
-aWE("resembl",1);\r
-aWE("respect",10);\r
-aWE("rest",58,42);\r
-aWE("restrict",12);\r
-aWE("result",11,15,10,55,60,44,50);\r
-aWE("ret",5,6,55);\r
-aWE("retain",18);\r
-aWE("retriev",12);\r
-aWE("return",56);\r
-aWE("revers",58);\r
-aWE("revert",19);\r
-aWE("revolution",9,57,61);\r
-aWE("revolv",61);\r
-aWE("right",0,20,21,7,26,27,10,59);\r
-aWE("rotat",9,10,57,61,40,63);\r
-aWE("rotateobject",63);\r
-aWE("rotation",4,10,61,40,63);\r
-aWE("rotationsweepobject",57);\r
-aWE("rough",11);\r
-aWE("rul",17,36,42);\r
-aWE("run",41);\r
-aWE("s",18,10);\r
-aWE("salom",5,23,6,55,30,57,60,41,63,65);\r
-aWE("sam",12,17,1,21,6,10,36,37,62,42,50);\r
-aWE("sampl",13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52);\r
-aWE("sav",62);\r
-aWE("scal",17);\r
-aWE("scalar",14);\r
-aWE("script",13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52);\r
-aWE("se",13,0,15,16,17,18,1,2,3,4,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52);\r
-aWE("seam",58);\r
-aWE("search",29,62);\r
-aWE("second",15,42);\r
-aWE("section",0,4,21,58);\r
-aWE("segment",11,17,5,6,30,57,36,63);\r
-aWE("select",11,13,0,15,19,20,21,22,23,24,7,25,26,28,9,10,29,34,36,58,59,38,39,61,40,41,62,42,44,45,47,48,49,50,51);\r
-aWE("selection",15,19,23,24,7,62,48);\r
-aWE("sens",12);\r
-aWE("separat",46);\r
-aWE("sequenc",42);\r
-aWE("session",0);\r
-aWE("set",12,13,0,15,17,19,4,21,23,24,26,10,30,32,57,33,36,58,59,62,42,44,64,48);\r
-aWE("setcurrentstudy",5,60,65);\r
-aWE("setdisplaymod",6);\r
-aWE("setlength",5,65);\r
-aWE("setmargin",55,60);\r
-aWE("setmaxelementarea",5,6,55,60,65);\r
-aWE("setmaxelementvolum",5,6,55);\r
-aWE("setnam",5,6,55,60);\r
-aWE("setnumberofsegment",5,6,55,60,65);\r
-aWE("setnumfunctor",55,60);\r
-aWE("setpredicat",55,60);\r
-aWE("setting",21);\r
-aWE("settransparency",6);\r
-aWE("sew",60,42,63);\r
-aWE("sewbordertosid",63);\r
-aWE("sewconformfreeborder",63);\r
-aWE("sewfreeborder",63);\r
-aWE("sewsideelement",63);\r
-aWE("sg",5,6,55,57,60,63,65);\r
-aWE("shad",59,64);\r
-aWE("shall",19,24,25,26,34,58,61,40,45,47,48,49);\r
-aWE("shap",11,12,18,10,57,58,44);\r
-aWE("shapetyp",5,55,60,63,65);\r
-aWE("shift",15,38,44);\r
-aWE("shortest",18,52);\r
-aWE("should",17,23,9,10,58,61,40,62,42,44,50);\r
-aWE("show",4,10,62);\r
-aWE("shown",14,44);\r
-aWE("shrink",59);\r
-aWE("sid",18,5,6,35,42,43,63);\r
-aWE("simp",21,36);\r
-aWE("simpl",12,15,1,58);\r
-aWE("simplex",1);\r
-aWE("siz",0,44);\r
-aWE("sk",1);\r
-aWE("sketch",6);\r
-aWE("sketcher",6);\r
-aWE("sketcher1",6);\r
-aWE("sketcher2",6);\r
-aWE("skew",14,24,30,60,43,48);\r
-aWE("slid",64);\r
-aWE("smesh",15,5,6,55,57,60,38,39,42,63,65);\r
-aWE("smesh_mechanic",55,57,60,63);\r
-aWE("smesh_mechanic_tetra",60);\r
-aWE("smesh_mesheditor",57,63);\r
-aWE("smeshgroup1",55);\r
-aWE("smeshgroup2",55);\r
-aWE("smeshgui",5,6,55,60);\r
-aWE("smooth",57,44);\r
-aWE("smoothobject",57);\r
-aWE("smp",58);\r
-aWE("so",11,17,18,5,6,55,58,60,42,46,65);\r
-aWE("solid",5,6,30);\r
-aWE("someth",21);\r
-aWE("somewhat",15);\r
-aWE("sort",19,23,24,48);\r
-aWE("sourc",62);\r
-aWE("spac",12,58,40,47);\r
-aWE("specifi",17,2,58,38,42,44);\r
-aWE("specific",20,62);\r
-aWE("specify",15,24,9,10,58,38,61,40,62,44,45,47,50);\r
-aWE("spher",21);\r
-aWE("split",13,17,4,42);\r
-aWE("standalon",23,55,62);\r
-aWE("standard",0,29,51);\r
-aWE("start",11,17,4,6,10,41,42,47);\r
-aWE("startendlength",6);\r
-aWE("stdmesher",5,6,55,60,65);\r
-aWE("step",9,61);\r
-aWE("stor",58,62);\r
-aWE("structur",21,22);\r
-aWE("study",5,6,55,57,62);\r
-aWE("sub",29,34,58,40,42,45,47);\r
-aWE("submenu",15,8,38,39);\r
-aWE("submesh",11,19,20,5,22,23,24,9,10,37,61,44,47,48,51);\r
-aWE("subshapeall",5,55,60,63,65);\r
-aWE("subshapelist",5,55,60,65);\r
-aWE("subshapelist1",63);\r
-aWE("subshapelist2",63);\r
-aWE("subshapenam",5,55,65);\r
-aWE("sum",1);\r
-aWE("supplement",36);\r
-aWE("supplementary",24);\r
-aWE("surfac",12,9,58,61,42);\r
-aWE("surround",12,44);\r
-aWE("sweep",57);\r
-aWE("swept",9,61);\r
-aWE("symmetrical",45,63);\r
-aWE("symmetry",45,63);\r
-aWE("syntax",62);\r
-aWE("t",12,17,21,36,58,59);\r
-aWE("tabl",17);\r
-aWE("tak",48);\r
-aWE("taken",11,20,23,6,58);\r
-aWE("tap",14,23,30,60,46);\r
-aWE("techniqu",44);\r
-aWE("tetrahedral",13);\r
-aWE("tetrahedralization",21);\r
-aWE("tetrahedron",12,13,15,1,6,57,33,65);\r
-aWE("th",58,42);\r
-aWE("them",11,15,17,23,7,9,10,34,38,61,42,44);\r
-aWE("thos",24,48);\r
-aWE("thre",12,6,57,42,45);\r
-aWE("threshold",62);\r
-aWE("tmp",5);\r
-aWE("toggl",15,62,47);\r
-aWE("toleranc",34,61,62,63);\r
-aWE("tool",62,50);\r
-aWE("toolbar",18,19,21,22,24,25,26,28,9,10,31,58,38,39,61,41,43,44,46,48,49,51,52);\r
-aWE("topological",12,42);\r
-aWE("topology",12);\r
-aWE("total",51);\r
-aWE("toward",44);\r
-aWE("transform",26,63);\r
-aWE("transformation",34,40,42,45,47);\r
-aWE("translat",63,47);\r
-aWE("translateobject",63);\r
-aWE("translation",63,47);\r
-aWE("transparency",0,64);\r
-aWE("transparent",64);\r
-aWE("triangl",12,13,15,16,18,1,6,25,9,32,31,35,57,61,43,46,48,49,65);\r
-aWE("triangular",13);\r
-aWE("tritoquad",57);\r
-aWE("try",21);\r
-aWE("tt",6);\r
-aWE("tui",13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52);\r
-aWE("two",12,15,18,4,23,24,6,25,10,55,35,57,58,42,46,63,47,49,50,51);\r
-aWE("typ",12,15,17,1,20,21,23,9,10,38,61,62,42,51);\r
-aWE("typical",44);\r
-aWE("u",12,42);\r
-aWE("unary",62);\r
-aWE("unassign",37);\r
-aWE("uniform",44);\r
-aWE("union",55,48,49,50);\r
-aWE("uniongroup",55);\r
-aWE("unit",57,42,48,49,50);\r
-aWE("unles",36);\r
-aWE("unv",29);\r
-aWE("up",0,17,7,27);\r
-aWE("updat",0,41,44);\r
-aWE("updateobjbrows",5,6,55,57,60,63,65);\r
-aWE("upload",62);\r
-aWE("us",12,13,0,17,2,4,21,22,9,34,58,61,62,42,44,64,50);\r
-aWE("usag",14);\r
-aWE("useful",0,15,10);\r
-aWE("usual",42,44);\r
-aWE("v",12);\r
-aWE("valu",11,14,17,18,1,21,5,10,56,35,36,37,62,43,65);\r
-aWE("ve",15,21);\r
-aWE("vector",6,9,10,57,61,40,45,63,47,52);\r
-aWE("vertex",12,58);\r
-aWE("vertic",5,6,57,58);\r
-aWE("very",15,10);\r
-aWE("via",0,62,51);\r
-aWE("view",0,15,16,18,19,4,23,24,7,25,26,27,9,10,31,35,38,39,61,62,42,43,44,46,48,49,51,65,52);\r
-aWE("visual",14);\r
-aWE("volum",11,12,13,15,20,23,6,30,33,60,62,51,65);\r
-aWE("vxy",6,57);\r
-aWE("walk",58);\r
-aWE("warp",14,24,30,60,48,52);\r
-aWE("way",12,0,15,21,23,10,58,37,50);\r
-aWE("weight",44);\r
-aWE("well",58);\r
-aWE("wheth",62);\r
-aWE("whil",38);\r
-aWE("whit",2,53);\r
-aWE("whol",9,10,61,62,44,47);\r
-aWE("whos",19,23,24,48);\r
-aWE("will",11,12,15,16,17,18,19,20,21,22,23,24,7,26,27,28,9,10,29,32,31,35,33,36,58,38,39,61,41,62,42,43,44,46,64,48,50,51,52);\r
-aWE("window",4);\r
-aWE("wir",13,5,6,10,55,57,36);\r
-aWE("wirefram",10,59);\r
-aWE("wish",21,7,29);\r
-aWE("within",17,58,42);\r
-aWE("without",60);\r
-aWE("word",17);\r
-aWE("work",10);\r
-aWE("would",15,42);\r
-aWE("ww",6);\r
-aWE("x",12,4,52);\r
-aWE("y",12,4);\r
-aWE("your",11,12,14,0,15,16,17,18,19,4,20,21,22,23,26,27,28,29,32,31,34,35,33,58,59,37,38,39,40,62,43,44,45,46,47,51,52);\r
-aWE("z",12,4);\r
-aWE("zero",58);\r
+aWE("regular",19);\r
+aWE("regular_1d",6,7,57,63,68);\r
+aWE("regular1d",6,7,57);\r
+aWE("relat",42);\r
+aWE("relation",13);\r
+aWE("relationship",13);\r
+aWE("remot",53);\r
+aWE("remov",20,6,24,25,8,29,11,57,60,39,65,49,68);\r
+aWE("removal",31);\r
+aWE("removeelement",60,63);\r
+aWE("removehypothesi",6,68);\r
+aWE("removenod",60);\r
+aWE("renumb",40);\r
+aWE("renumber",60,40);\r
+aWE("renumbernod",60);\r
+aWE("reorient",20,60);\r
+aWE("replac",43);\r
+aWE("represent",12,13,18,2,62,47,53);\r
+aWE("representation",13);\r
+aWE("requir",26,27,50);\r
+aWE("reset",53);\r
+aWE("resiz",53);\r
+aWE("respect",11);\r
+aWE("respectiv",1);\r
+aWE("rest",61,43);\r
+aWE("restor",53);\r
+aWE("restrict",13);\r
+aWE("result",12,16,11,57,63,45,51);\r
+aWE("ret",6,7,57);\r
+aWE("retriev",13);\r
+aWE("return",58,60);\r
+aWE("reveal",19);\r
+aWE("revers",1,61);\r
+aWE("revert",20);\r
+aWE("revolution",10,60,64);\r
+aWE("revolv",64);\r
+aWE("right",0,21,8,27,28,11,62);\r
+aWE("rotat",10,11,60,64,41,66,53);\r
+aWE("rotateobject",66);\r
+aWE("rotation",5,11,64,41,66,53);\r
+aWE("rotationsweepobject",60);\r
+aWE("rough",12);\r
+aWE("rr",60);\r
+aWE("rul",18,37,43);\r
+aWE("run",42);\r
+aWE("s",11);\r
+aWE("salom",6,24,7,57,31,60,63,42,66,68);\r
+aWE("sam",13,0,18,19,2,22,23,7,11,37,38,65,43,51);\r
+aWE("sampl",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54);\r
+aWE("sav",65);\r
+aWE("scal",18,53);\r
+aWE("scalar",15);\r
+aWE("scen",53);\r
+aWE("script",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54);\r
+aWE("se",14,16,17,18,19,2,3,4,20,5,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,53,54);\r
+aWE("seam",61);\r
+aWE("search",30,65);\r
+aWE("second",16,60,43);\r
+aWE("section",0,5,22,61);\r
+aWE("segment",12,18,6,7,31,33,60,66);\r
+aWE("select",12,14,0,16,1,18,20,21,22,23,24,25,8,26,27,29,10,11,30,35,37,61,62,39,40,64,41,42,65,43,45,46,48,49,50,51,52,53);\r
+aWE("selectabl",59);\r
+aWE("selection",16,1,20,24,25,8,65,49);\r
+aWE("sens",13);\r
+aWE("separat",47);\r
+aWE("sequenc",43);\r
+aWE("set",13,14,16,18,20,5,22,24,7,27,11,31,33,60,34,61,62,65,43,45,67,49);\r
+aWE("setcurrentstudy",6,60,63,68);\r
+aWE("setdisplaymod",7);\r
+aWE("setlength",6,68);\r
+aWE("setmargin",57,63);\r
+aWE("setmaxelementarea",6,7,63,68);\r
+aWE("setmaxelementvolum",6,7);\r
+aWE("setmesh",63);\r
+aWE("setnam",6,7,63);\r
+aWE("setnumberofsegment",6,7,57,60,63,68);\r
+aWE("setnumfunctor",57,63);\r
+aWE("setpredicat",57,63);\r
+aWE("setting",22);\r
+aWE("settransparency",7);\r
+aWE("sew",63,43,66);\r
+aWE("sewbordertosid",66);\r
+aWE("sewconformfreeborder",66);\r
+aWE("sewfreeborder",66);\r
+aWE("sewsideelement",66);\r
+aWE("sg",6,7,57,60,63,66,68);\r
+aWE("shad",0,62,67);\r
+aWE("shall",20,26,27,35,61,64,41,46,48,49,50);\r
+aWE("shap",12,13,11,61,45);\r
+aWE("shape_mesh",60);\r
+aWE("shapetyp",6,7,57,60,63,66,68);\r
+aWE("shift",16,1,25,39,45);\r
+aWE("shortest",54);\r
+aWE("should",18,24,10,11,61,64,41,65,43,45,51);\r
+aWE("show",18,5,11,65,53);\r
+aWE("shown",15,45);\r
+aWE("shrink",62);\r
+aWE("sid",6,7,36,43,44,66);\r
+aWE("simp",22,37);\r
+aWE("simpl",13,16,61);\r
+aWE("simplex",19,2);\r
+aWE("sin",60);\r
+aWE("siz",0,45);\r
+aWE("sk",19,2);\r
+aWE("sketch",7);\r
+aWE("sketcher",7);\r
+aWE("sketcher1",7);\r
+aWE("sketcher2",7);\r
+aWE("skew",15,25,31,63,44,49);\r
+aWE("slid",67);\r
+aWE("small",53);\r
+aWE("smesh",6,7,57,60,63,43,66,68);\r
+aWE("smesh_mechanic",57,60,63,66);\r
+aWE("smesh_mechanic_tetra",63);\r
+aWE("smesh_mesheditor",60,66);\r
+aWE("smeshgroup1",57);\r
+aWE("smeshgroup2",57);\r
+aWE("smeshgui",6,7,63);\r
+aWE("smooth",60,45);\r
+aWE("smoothobject",60);\r
+aWE("smp",61);\r
+aWE("so",12,18,19,6,7,57,60,61,63,43,47,68);\r
+aWE("solid",6,7,31);\r
+aWE("somewhat",16);\r
+aWE("sort",20,24,25,49);\r
+aWE("sourc",65);\r
+aWE("spac",13,61,41,48);\r
+aWE("specifi",18,3,61,39,43,45);\r
+aWE("specific",21,65);\r
+aWE("specify",16,1,25,10,11,61,39,64,41,65,45,46,48,51);\r
+aWE("spher",18,19,22);\r
+aWE("split",14,18,2,5,43);\r
+aWE("sqrt",60);\r
+aWE("standalon",24,57,65);\r
+aWE("standard",0,30,52);\r
+aWE("start",12,18,5,7,11,31,42,43,48);\r
+aWE("startendlength",7);\r
+aWE("statu",60);\r
+aWE("stdmesher",6,7,57,60,63,68);\r
+aWE("step",10,64);\r
+aWE("stor",61,65);\r
+aWE("straight",1,7,37);\r
+aWE("stretch",53);\r
+aWE("strict",53);\r
+aWE("structur",22,23);\r
+aWE("study",6,7,57,65);\r
+aWE("stuf",53);\r
+aWE("sub",30,35,60,61,41,43,46,48);\r
+aWE("submenu",16,9,39,40);\r
+aWE("submesh",12,20,21,6,23,24,25,10,11,38,64,45,48,49,52);\r
+aWE("subshapeall",6,7,57,60,63,66,68);\r
+aWE("subshapelist",6,57,63,68);\r
+aWE("subshapelist1",66);\r
+aWE("subshapelist2",66);\r
+aWE("subshapenam",6,57,68);\r
+aWE("succed",7,57);\r
+aWE("sum",2);\r
+aWE("supplement",37);\r
+aWE("supplementary",25);\r
+aWE("surfac",13,19,2,10,61,64,43);\r
+aWE("surround",13,45);\r
+aWE("sweep",60);\r
+aWE("swept",10,64);\r
+aWE("switch",1);\r
+aWE("symmetrical",46,66);\r
+aWE("symmetry",46,66);\r
+aWE("syntax",65);\r
+aWE("t",13,18,2,22,37,61,62,53);\r
+aWE("tabl",1,18);\r
+aWE("tak",19,49);\r
+aWE("taken",12,21,24,7,61);\r
+aWE("tap",15,24,31,63,47);\r
+aWE("techniqu",45);\r
+aWE("tetra3d",7);\r
+aWE("tetrahedral",14);\r
+aWE("tetrahedralization",22);\r
+aWE("tetrahedron",13,14,16,2,7,60,34,68);\r
+aWE("th",61,43);\r
+aWE("them",12,16,1,18,2,24,8,9,10,11,35,39,64,43,45,53);\r
+aWE("thos",25,49);\r
+aWE("thre",13,1,19,7,60,37,43,46);\r
+aWE("threshold",65);\r
+aWE("tick",53);\r
+aWE("tim",0);\r
+aWE("tmp",6);\r
+aWE("togeth",33);\r
+aWE("toggl",16,65,48);\r
+aWE("toleranc",35,64,65,66);\r
+aWE("tool",65,51);\r
+aWE("toolbar",19,2,20,22,23,25,26,27,29,10,11,32,61,39,40,64,42,44,45,47,49,50,52,69,53,54);\r
+aWE("top",60);\r
+aWE("topological",13,43);\r
+aWE("topology",13);\r
+aWE("total",52);\r
+aWE("toward",45);\r
+aWE("transform",27,66);\r
+aWE("transformation",35,41,43,46,48);\r
+aWE("translat",66,48);\r
+aWE("translateobject",66);\r
+aWE("translation",66,48);\r
+aWE("transparency",0,67);\r
+aWE("transparent",67);\r
+aWE("tri_mesh",66);\r
+aWE("tria",7,60,66);\r
+aWE("tria_mesh",7);\r
+aWE("triangl",13,14,16,1,17,19,7,26,10,33,32,59,36,60,64,44,47,66,49,50,68,53);\r
+aWE("triangle_mefisto",60);\r
+aWE("triangular",14,33);\r
+aWE("triangulation",7);\r
+aWE("trihedron",53);\r
+aWE("tritoquad",60);\r
+aWE("try",22);\r
+aWE("tt",7);\r
+aWE("tui",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54);\r
+aWE("two",13,16,5,24,25,7,26,11,57,36,60,61,43,47,66,48,50,51,52);\r
+aWE("typ",13,16,18,19,2,21,22,24,10,11,39,64,65,43,52);\r
+aWE("typical",45);\r
+aWE("u",13,43);\r
+aWE("unary",65);\r
+aWE("unassign",38);\r
+aWE("uniform",45);\r
+aWE("union",57,49,50,51);\r
+aWE("uniongroup",57);\r
+aWE("unit",60,43,49,50,51);\r
+aWE("unles",37);\r
+aWE("unv",30);\r
+aWE("up",18,8,28);\r
+aWE("updat",0,42,45);\r
+aWE("updateobjbrows",6,7,57,60,63,66,68);\r
+aWE("upload",65);\r
+aWE("us",13,14,18,3,5,22,23,24,10,33,35,61,64,65,43,45,67,51,53);\r
+aWE("usag",15);\r
+aWE("useful",0,16,24,11);\r
+aWE("usual",43,45);\r
+aWE("v",13);\r
+aWE("valu",12,15,18,19,2,22,6,11,58,36,37,38,65,44,68);\r
+aWE("vari",19);\r
+aWE("variou",0);\r
+aWE("ve",16);\r
+aWE("vector",7,10,11,60,64,41,46,66,48,54);\r
+aWE("vertex",13,61);\r
+aWE("vertic",6,7,61);\r
+aWE("very",16,11);\r
+aWE("via",65,52,53);\r
+aWE("view",0,16,1,17,19,2,20,5,24,25,8,26,27,28,10,11,32,36,39,40,64,65,43,44,45,47,49,50,52,68,69,53,54);\r
+aWE("visibl",53);\r
+aWE("visual",15);\r
+aWE("visualiz",53);\r
+aWE("vk",2);\r
+aWE("volum",12,13,14,15,16,2,21,24,7,9,31,60,34,63,65,66,52,68,69);\r
+aWE("vtk",0,53);\r
+aWE("vxy",7,60,66);\r
+aWE("walk",61);\r
+aWE("warp",15,25,31,63,49,54);\r
+aWE("way",13,16,22,23,24,11,61,38,51);\r
+aWE("weight",45);\r
+aWE("well",61);\r
+aWE("wheth",65);\r
+aWE("whil",39);\r
+aWE("whit",55);\r
+aWE("whol",2,10,11,60,64,65,45,48);\r
+aWE("whos",20,24,25,37,49);\r
+aWE("will",12,13,0,16,1,17,18,19,2,20,21,22,23,24,25,8,27,28,29,10,11,30,33,32,59,36,60,34,37,61,39,40,64,42,65,43,44,45,47,67,49,51,52,69,54);\r
+aWE("window",5);\r
+aWE("wir",14,6,7,11,33,60,66);\r
+aWE("wire_discretisation",60);\r
+aWE("wirefram",0,11,62);\r
+aWE("wish",22,8,30,53);\r
+aWE("within",18,61,43);\r
+aWE("without",1,63);\r
+aWE("word",18);\r
+aWE("work",1,11);\r
+aWE("worst",19);\r
+aWE("would",16,43);\r
+aWE("ww",7);\r
+aWE("x",13,5,54);\r
+aWE("x0",60);\r
+aWE("y",13,5);\r
+aWE("y0",60);\r
+aWE("your",12,13,15,0,16,1,17,18,19,2,20,5,21,22,23,24,27,28,29,30,33,32,35,36,34,61,62,38,39,40,41,65,44,45,46,47,48,52,69,54);\r
+aWE("z",13,5);\r
+aWE("z0",60);\r
+aWE("zero",61);\r
+aWE("zoom",53);\r
 \r
 //-->\r
 </script>\r
index 19d460aeef1c24ffb585f6072c042a045b7051f7..f1da36132ab63c89da5dd1335a06a88fe16e957a 100755 (executable)
@@ -8,7 +8,7 @@
 <script language="javascript" src="whtdata.js"></script>\r
 <script language="javascript">\r
 <!--\r
- aTE(1,74,"MESH module");\r
+ aTE(1,78,"MESH module");\r
    aTE(2,0,"Introduction to MESH","files/introduction_to_smesh.htm");\r
    aTE(2,0,"Running MESH module","files/running_smesh_module.htm");\r
    aTE(1,12,"Creating meshes");\r
      aTE(1,5,"Defining hypotheses");\r
        aTE(2,0,"About Hypotheses","files/about_hypotheses.htm");\r
        aTE(2,0,"1D Meshing Hypotheses","files/arithmetic_1d.htm");\r
-       aTE(2,0,"Max Element Area hypothesis","files/max._element_area_hypothesis.htm");\r
+       aTE(2,0,"2D Meshing Hypotheses","files/max._element_area_hypothesis.htm");\r
        aTE(2,0,"Max Element Volume hypothesis","files/max._element_volume_hypothsis.htm");\r
        aTE(2,0,"Additional Hypotheses","files/non_conform_mesh_allowed_hypothesis.htm");\r
      aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");\r
      aTE(2,0,"Editing Meshes","files/reassigning_hypotheses_and_algorithms.htm");\r
-   aTE(1,7,"Viewing meshes");\r
-     aTE(2,0,"About viewing meshes","about_viewing_meshes.htm");\r
+   aTE(1,8,"Viewing meshes");\r
+     aTE(2,0,"Viewing meshes","about_viewing_meshes.htm");\r
+     aTE(2,0,"VTK 3D Viewer","files/vtk_3d_viewer.htm");\r
      aTE(2,0,"Mesh infos","files/viewing_mesh_info.htm");\r
      aTE(2,0,"Numbering","files/displaying_nodes_numbers.htm");\r
      aTE(2,0,"Display Mode","presentation.htm");\r
      aTE(2,0,"Display Entity","display_entity.htm");\r
      aTE(2,0,"Transparency","transparency.htm");\r
      aTE(2,0,"Clipping","clipping.htm");\r
-   aTE(1,14,"Quality controls");\r
+   aTE(1,15,"Quality controls");\r
      aTE(2,0,"About quality controls","files/about_quality_controls.htm");\r
      aTE(2,0,"Free borders","free_borders.htm");\r
      aTE(2,0,"Borders at multi-connection","borders_at_multi-connection.htm");\r
@@ -47,6 +48,7 @@
      aTE(2,0,"Warping","files/warp.htm");\r
      aTE(2,0,"Skew","files/skew.htm");\r
      aTE(2,0,"Aspect ratio 3D","aspect_ratio_3d.htm");\r
+     aTE(2,0,"Volume","volume.htm");\r
    aTE(1,6,"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,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
      aTE(2,0,"Deleting Groups","deleting_groups.htm");\r
      aTE(2,0,"Selection filter library","selection_filter_library.htm");\r
-   aTE(1,20,"Modifying meshes");\r
+   aTE(1,22,"Modifying meshes");\r
      aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
+     aTE(2,0,"Adding quadratic elements","adding_quadratic_nodes_and_elements.htm");\r
      aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
      aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
-     aTE(1,5,"Transforming meshes");\r
+     aTE(1,6,"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,"Merging Elements","merge_elements.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
index aa2e343b1768c2bd71168aa4ade7b2c936e4da16..d2c834234189aacddf5d5c3fefe0d882e55089fc 100755 (executable)
@@ -34,9 +34,9 @@ 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/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="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/arithmetic_1d.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> <a href="../quality_controls.htm"><b>13</b></a> </nobr><br><nobr><a name="bms_{E"></a><a name="subkey_{E"></a>1e <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_{D"></a><a name="subkey_{D"></a>2d <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="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../constructing_meshes.htm"><b>8</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>9</b></a> <a href="../aspect_ratio_3d.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/aspect_ratio.htm"><b>14</b></a> <a href="../files/area_of_elements.htm"><b>15</b></a> <a href="../files/sewing_meshes.htm"><b>16</b></a> <a href="../files/minimum_angle.htm"><b>17</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>18</b></a> <a href="../transforming_meshes.htm"><b>19</b></a> <a href="../revolution.htm"><b>20</b></a> <a href="../quality_controls.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../modifying_meshes.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> <a href="../files/viewing_mesh_info.htm"><b>25</b></a> </nobr><br><nobr>3d <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="../extrusion_along_a_path.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../deleting_groups.htm"><b>8</b></a> <a href="../defining_hypotheses_tui.htm"><b>9</b></a> <a href="../aspect_ratio_3d.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>14</b></a> <a href="../files/cutting_quadrangles.htm"><b>15</b></a> <a href="../files/creating_groups.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/sewing_meshes.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/max._element_volume_hypothsis.htm"><b>23</b></a> <a href="../revolution.htm"><b>24</b></a> <a href="../quality_controls.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> </nobr><br><a name="bms_{E"></a><a name="subkey_{E"></a><a href="../quality_controls.htm"><b>3e</b></a> <br><a name="bms_{R"></a><a name="subkey_{R"></a><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a name="bms_{T"></a><a name="subkey_{T"></a><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/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="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/arithmetic_1d.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../quality_controls.htm"><b>13</b></a> <a href="../revolution.htm"><b>14</b></a> </nobr><br><nobr><a name="bms_{E"></a><a name="subkey_{E"></a>1e <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_{D"></a><a name="subkey_{D"></a>2d <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="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../constructing_meshes.htm"><b>8</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/aspect_ratio.htm"><b>12</b></a> <a href="../files/area_of_elements.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/minimum_angle.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../files/length_of_edges.htm"><b>17</b></a> <a href="../quality_controls.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../modifying_meshes.htm"><b>20</b></a> <a href="../files/warp.htm"><b>21</b></a> <a href="../transforming_meshes.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><nobr>3d <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="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../deleting_groups.htm"><b>7</b></a> <a href="../defining_hypotheses_tui.htm"><b>8</b></a> <a href="../aspect_ratio_3d.htm"><b>9</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>10</b></a> <a href="../about_viewing_meshes.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.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/constructing_meshes.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/sewing_meshes.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/max._element_volume_hypothsis.htm"><b>26</b></a> <a href="../quality_controls.htm"><b>27</b></a> <a href="../files/vtk_3d_viewer.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="../volume.htm"><b>31</b></a> <a href="../revolution.htm"><b>32</b></a> </nobr><br><a name="bms_{E"></a><a name="subkey_{E"></a><a href="../quality_controls.htm"><b>3e</b></a> <br><a name="bms_{R"></a><a name="subkey_{R"></a><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a name="bms_{X"></a><a name="subkey_{X"></a><a href="../modifying_meshes.htm"><b>3x3</b></a> <br><a name="bms_{T"></a><a name="subkey_{T"></a><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
 <br><br>\r
-<a name="bm_A"></a><a name="subkey_AB"></a><a href="../files/adding_nodes_and_elements.htm"><b>able</b></a> <br><nobr>above <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>abox</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><a href="../transparency.htm"><b>absolutely</b></a> <br><a href="../files/arithmetic_1d.htm"><b>abutting</b></a> <br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>access <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>according <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/length_of_edges.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/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="../files/minimum_angle.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</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>acomp <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>acompobj</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>actually</b></a> <br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/editing_groups.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/constructing_meshes.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> </nobr><br><nobr>added <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.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="../modifying_meshes.htm"><b>addedge</b></a> <br><a href="../modifying_meshes.htm"><b>addface</b></a> <br><nobr>addhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>adding <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</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><a href="../modifying_meshes.htm"><b>addnode</b></a> <br><a href="../grouping_elements.htm"><b>addobject</b></a> <br><nobr>addtostudy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr>addtostudyinfather <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addvolume</b></a> <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/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>adjustable</b></a> <br><nobr>advanced <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AF"></a><a name="subkey_AF"></a>afilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>afiltermgr <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>afunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../grouping_elements.htm"><b>ageomgroup1</b></a> <br><a href="../grouping_elements.htm"><b>ageomgroup2</b></a> <br><nobr>agroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>agroup1</b></a> <br><a href="../grouping_elements.htm"><b>agroup2</b></a> <br><a href="../grouping_elements.htm"><b>agroup3</b></a> <br><a href="../grouping_elements.htm"><b>agroup4</b></a> <br><a href="../grouping_elements.htm"><b>agroup5</b></a> <br><a href="../grouping_elements.htm"><b>agroupelemids</b></a> <br><a href="../grouping_elements.htm"><b>agroupmain</b></a> <br><a href="../grouping_elements.htm"><b>agroupres</b></a> <br><a href="../grouping_elements.htm"><b>agrouptool</b></a> <br><a name="bms_AI"></a><a name="subkey_AI"></a><a href="../files/arithmetic_1d.htm"><b>ai</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algo <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>algo1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algo2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algorithm <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_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/sewing_meshes.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="../transforming_meshes.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> <a href="../modifying_meshes.htm"><b>14</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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.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/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</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="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><nobr>allows <a href="../files/introduction_to_smesh.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/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../files/symmetry.htm"><b>7</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/merging_nodes.htm"><b>12</b></a> <a href="../files/using_operations_on_groups.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> </nobr><br><nobr>along <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>alternative</b></a> <br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AM"></a><a name="subkey_AM"></a>amesheditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../borders_at_multi-connection.htm"><b>amount</b></a> <br><a name="bms_AN"></a><a name="subkey_AN"></a><a href="../files/arithmetic_1d.htm"><b>analytic</b></a> <br><nobr>aneditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../clipping.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/skew.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>angle180</b></a> <br><a href="../modifying_meshes.htm"><b>angle45</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angled</b></a> <br><nobr>angles <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>angular</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angularity</b></a> <br><nobr>anids <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>anodeid1</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid2</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid3</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid4</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>another</b></a> <br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> </nobr><br><a name="bms_AP"></a><a name="subkey_AP"></a><a href="../files/constructing_meshes.htm"><b>apparent</b></a> <br><nobr>appear <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/editing_groups.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/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/translation.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/rotation.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/merging_nodes.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.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> </nobr><br><nobr>appears <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>append</b></a> <br><a href="../selection_filter_library.htm"><b>applicable</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="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../aspect_ratio_3d.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/aspect_ratio.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/taper.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/skew.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/minimum_angle.htm"><b>14</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../selection_filter_library.htm"><b>17</b></a> <a href="../modifying_meshes.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> </nobr><br><nobr>apply <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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../clipping.htm"><b>6</b></a> <a href="../files/length_of_edges.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/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_meshes.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/area_of_elements.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/symmetry.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="../files/sewing_meshes.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/minimum_angle.htm"><b>26</b></a> <a href="../revolution.htm"><b>27</b></a> <a href="../pattern_mapping.htm"><b>28</b></a> <a href="../files/warp.htm"><b>29</b></a> <a href="../files/using_operations_on_groups.htm"><b>30</b></a> <a href="../files/uniting_two_triangles.htm"><b>31</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>32</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../about_viewing_meshes.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> </nobr><br><a href="../files/constructing_meshes.htm"><b>appropriate</b></a> <br><a href="../files/arithmetic_1d.htm"><b>approximately</b></a> <br><nobr>apredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</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
+<a name="bm_A"></a><a name="subkey_A{"></a><a href="../modifying_meshes.htm"><b>a_mesh</b></a> <br><a name="bms_AA"></a><a name="subkey_AA"></a><a href="../modifying_meshes.htm"><b>aa</b></a> <br><nobr><a name="bms_AB"></a><a name="subkey_AB"></a>able <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>aborder</b></a> <br><a href="../quality_controls.htm"><b>aborders</b></a> <br><nobr>above <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>abox</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>absent</b></a> <br><a href="../transparency.htm"><b>absolutely</b></a> <br><a href="../files/arithmetic_1d.htm"><b>abutting</b></a> <br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>access <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>accessed</b></a> <br><nobr>according <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.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/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="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../pattern_mapping.htm"><b>11</b></a> <a href="../files/warp.htm"><b>12</b></a> <a href="../volume.htm"><b>13</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>acomp <a href="../quality_controls.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>acompobj</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>actually</b></a> <br><nobr><a name="bms_AD"></a><a name="subkey_AD"></a>add <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/editing_groups.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/constructing_meshes.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> <a href="../selection_filter_library.htm"><b>15</b></a> </nobr><br><nobr>added <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.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="../modifying_meshes.htm"><b>addedge</b></a> <br><a href="../modifying_meshes.htm"><b>addface</b></a> <br><nobr>addhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>adding <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><nobr>addition <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</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><a href="../modifying_meshes.htm"><b>addnode</b></a> <br><a href="../grouping_elements.htm"><b>addobject</b></a> <br><a href="../modifying_meshes.htm"><b>addpolygonalface</b></a> <br><a href="../modifying_meshes.htm"><b>addpolyhedralvolume</b></a> <br><nobr>addtostudy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>addtostudyinfather <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>addvolume</b></a> <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/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a href="../files/smoothing.htm"><b>adjust</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>adjustable</b></a> <br><nobr>advanced <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AF"></a><a name="subkey_AF"></a>afilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>afiltermgr <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>afunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AG"></a><a name="subkey_AG"></a><a href="../grouping_elements.htm"><b>ageomgroup1</b></a> <br><a href="../grouping_elements.htm"><b>ageomgroup2</b></a> <br><nobr>agroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>agroup1</b></a> <br><a href="../grouping_elements.htm"><b>agroup2</b></a> <br><a href="../grouping_elements.htm"><b>agroup3</b></a> <br><a href="../grouping_elements.htm"><b>agroup4</b></a> <br><a href="../grouping_elements.htm"><b>agroup5</b></a> <br><a href="../grouping_elements.htm"><b>agroupelemids</b></a> <br><a href="../quality_controls.htm"><b>agroupf</b></a> <br><a href="../grouping_elements.htm"><b>agroupmain</b></a> <br><a href="../quality_controls.htm"><b>agroupn</b></a> <br><a href="../grouping_elements.htm"><b>agroupres</b></a> <br><a href="../grouping_elements.htm"><b>agrouptool</b></a> <br><a name="bms_AI"></a><a name="subkey_AI"></a><a href="../files/arithmetic_1d.htm"><b>ai</b></a> <br><a name="bms_AL"></a><a name="subkey_AL"></a><a href="../modifying_meshes.htm"><b>al</b></a> <br><nobr>algo <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>algo1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algo2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>algorithm <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_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/sewing_meshes.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="../pattern_mapping.htm"><b>12</b></a> <a href="../transforming_meshes.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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.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/reassigning_hypotheses_and_algorithms.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</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="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>allowing <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr>allows <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.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/constructing_submeshes.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/symmetry.htm"><b>9</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/merging_nodes.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../merge_elements.htm"><b>16</b></a> <a href="../files/vtk_3d_viewer.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> </nobr><br><nobr>along <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../files/vtk_3d_viewer.htm"><b>6</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>alternative</b></a> <br><nobr>alternatively <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>always</b></a> <br><nobr><a name="bms_AM"></a><a name="subkey_AM"></a>amesheditor <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../borders_at_multi-connection.htm"><b>amount</b></a> <br><a name="bms_AN"></a><a name="subkey_AN"></a><a href="../files/arithmetic_1d.htm"><b>analytic</b></a> <br><nobr>aneditor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../clipping.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/skew.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>angle180</b></a> <br><a href="../modifying_meshes.htm"><b>angle45</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angled</b></a> <br><nobr>angles <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>angular</b></a> <br><a href="../extrusion_along_a_path.htm"><b>angularity</b></a> <br><nobr>anids <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>anodeid1</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid2</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid3</b></a> <br><a href="../modifying_meshes.htm"><b>anodeid4</b></a> <br><nobr>another <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>any <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> </nobr><br><a name="bms_AP"></a><a name="subkey_AP"></a><a href="../files/constructing_meshes.htm"><b>apparent</b></a> <br><nobr>appear <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/editing_groups.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/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/rotation.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/merging_nodes.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_two_triangles.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>appeared</b></a> <br><nobr>append <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>applicable <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><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="../aspect_ratio_3d.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/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>11</b></a> <a href="../files/minimum_angle.htm"><b>12</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>13</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../files/warp.htm"><b>16</b></a> <a href="../volume.htm"><b>17</b></a> <a href="../selection_filter_library.htm"><b>18</b></a> </nobr><br><nobr>apply <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../clipping.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.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/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.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/minimum_angle.htm"><b>28</b></a> <a href="../files/length_of_edges.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../modifying_meshes.htm"><b>31</b></a> <a href="../merge_elements.htm"><b>32</b></a> <a href="../files/warp.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="../volume.htm"><b>37</b></a> <a href="../revolution.htm"><b>38</b></a> </nobr><br><nobr>applying <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../about_viewing_meshes.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> </nobr><br><a href="../modifying_meshes.htm"><b>applytomeshfaces</b></a> <br><a href="../files/constructing_meshes.htm"><b>appropriate</b></a> <br><a href="../files/arithmetic_1d.htm"><b>approximately</b></a> <br><nobr>apredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</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 517741c6e172bd0cbbbf0aafed1a7c4c16e3c07b..dd8bd498110d6885f4d05b01256a127c68458f96 100755 (executable)
@@ -33,11 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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_AR"></a><a name="subkey_AR"></a>arc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/smoothing.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="../quality_controls.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><nobr>arithmetic1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>around <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a name="bms_AS"></a><a name="subkey_AS"></a><a href="../grouping_elements.htm"><b>asmeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>asmeshgroup2</b></a> <br><nobr>aspect <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> </nobr><br><a href="../files/constructing_meshes.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/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../clipping.htm"><b>auto</b></a> <br><nobr>automatic <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>automatically <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><a name="bms_AV"></a><a name="subkey_AV"></a><a href="../files/sewing_meshes.htm"><b>available</b></a> <br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.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><a name="bms_AX"></a><a name="subkey_AX"></a>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><nobr>axisstruct <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>axisxyz <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br>\r
+<nobr><a name="bms_AR"></a><a name="subkey_AR"></a>arc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../files/vtk_3d_viewer.htm"><b>11</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr>arithmetic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><nobr>arithmetic1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>around <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>array_of_nodes_groups</b></a> <br><a name="bms_AS"></a><a name="subkey_AS"></a><a href="../grouping_elements.htm"><b>asmeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>asmeshgroup2</b></a> <br><nobr>aspect <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> </nobr><br><nobr>assign <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><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/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> </nobr><br><a name="bms_AT"></a><a name="subkey_AT"></a><a href="../files/creating_groups.htm"><b>attribute</b></a> <br><a name="bms_AU"></a><a name="subkey_AU"></a><a href="../clipping.htm"><b>auto</b></a> <br><nobr>automatic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>automatically <a href="../about_viewing_meshes.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/constructing_meshes.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</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/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr>average <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.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><a name="bms_AX"></a><a name="subkey_AX"></a><a href="../files/vtk_3d_viewer.htm"><b>axes</b></a> <br><nobr>axis <a href="../extrusion.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><nobr>axisstruct <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>axisxyz <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_B"></a><a name="subkey_BA"></a><a href="../about_viewing_meshes.htm"><b>background</b></a> <br><a href="../files/about_quality_controls.htm"><b>bar</b></a> <br><a href="../extrusion_along_a_path.htm"><b>base</b></a> <br><nobr>based <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</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="../selection_filter_library.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><nobr>belong <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>belonging <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../free_edges.htm"><b>4</b></a> <a href="../free_borders.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../selection_filter_library.htm"><b>binary</b></a> <br><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a href="../selection_filter_library.htm"><b>bit</b></a> <br><a name="bms_BL"></a><a name="subkey_BL"></a><a href="../about_viewing_meshes.htm"><b>black</b></a> <br><nobr>block <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/arithmetic_1d.htm"><b>bog</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><nobr>border <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>borders <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.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="../transforming_meshes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><nobr>both <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</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/smoothing.htm"><b>2</b></a> <a href="../files/sewing_meshes.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/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> <a href="../files/rotation.htm"><b>21</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>22</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>23</b></a> <a href="../files/merging_nodes.htm"><b>24</b></a> <a href="../transforming_meshes.htm"><b>25</b></a> <a href="../selection_filter_library.htm"><b>26</b></a> <a href="../revolution.htm"><b>27</b></a> <a href="../quality_controls.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../grouping_elements.htm"><b>30</b></a> <a href="../files/viewing_mesh_info.htm"><b>31</b></a> <a href="../files/using_operations_on_groups.htm"><b>32</b></a> <a href="../files/uniting_two_triangles.htm"><b>33</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>34</b></a> <a href="../viewing_meshes.htm"><b>35</b></a> </nobr><br><nobr>box_id <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>box1</b></a> <br><a href="../transforming_meshes.htm"><b>box2</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>boxes</b></a> <br><a name="bms_BR"></a><a name="subkey_BR"></a><a href="../files/creating_groups.htm"><b>brown</b></a> <br><a href="../selection_filter_library.htm"><b>browse</b></a> <br><nobr>browser <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.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/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>9</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>10</b></a> <a href="../presentation.htm"><b>11</b></a> <a href="../files/viewing_mesh_info.htm"><b>12</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="../defining_hypotheses_tui.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/non_conform_mesh_allowed_hypothesis.htm"><b>builds</b></a> <br><nobr>built <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>button <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/translation.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/minimum_angle.htm"><b>29</b></a> <a href="../selection_filter_library.htm"><b>30</b></a> <a href="../revolution.htm"><b>31</b></a> <a href="../pattern_mapping.htm"><b>32</b></a> <a href="../files/warp.htm"><b>33</b></a> <a href="../files/viewing_mesh_info.htm"><b>34</b></a> <a href="../files/using_operations_on_groups.htm"><b>35</b></a> <a href="../files/uniting_two_triangles.htm"><b>36</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>37</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
+<a name="bm_B"></a><a name="subkey_BA"></a><a href="../about_viewing_meshes.htm"><b>background</b></a> <br><a href="../files/about_quality_controls.htm"><b>bar</b></a> <br><a href="../extrusion_along_a_path.htm"><b>base</b></a> <br><nobr>based <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>basic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><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><nobr>before <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><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><nobr>belong <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>belonging <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../free_edges.htm"><b>4</b></a> <a href="../free_borders.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>below</b></a> <br><a href="../files/sewing_meshes.htm"><b>berders</b></a> <br><a href="../files/aspect_ratio.htm"><b>better</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../selection_filter_library.htm"><b>binary</b></a> <br><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a href="../selection_filter_library.htm"><b>bit</b></a> <br><a name="bms_BL"></a><a name="subkey_BL"></a><a href="../about_viewing_meshes.htm"><b>black</b></a> <br><nobr>block <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../borders_at_multi-connection.htm"><b>blue</b></a> <br><nobr><a name="bms_BM"></a><a name="subkey_BM"></a>bmp <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/arithmetic_1d.htm"><b>bog</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>boolean</b></a> <br><nobr>border <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>borders <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.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="../quality_controls.htm"><b>6</b></a> <a href="../free_edges.htm"><b>7</b></a> <a href="../free_borders.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><nobr>both <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><nobr>bottom <a href="../files/running_smesh_module.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><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/creating_groups.htm"><b>2</b></a> <a href="../files/smoothing.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><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/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/constructing_submeshes.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/arithmetic_1d.htm"><b>15</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> <a href="../files/rotation.htm"><b>21</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>22</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>23</b></a> <a href="../files/merging_nodes.htm"><b>24</b></a> <a href="../quality_controls.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../merge_elements.htm"><b>27</b></a> <a href="../grouping_elements.htm"><b>28</b></a> <a href="../files/viewing_mesh_info.htm"><b>29</b></a> <a href="../files/using_operations_on_groups.htm"><b>30</b></a> <a href="../files/uniting_two_triangles.htm"><b>31</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>32</b></a> <a href="../files/translation.htm"><b>33</b></a> <a href="../viewing_meshes.htm"><b>34</b></a> <a href="../transforming_meshes.htm"><b>35</b></a> <a href="../selection_filter_library.htm"><b>36</b></a> <a href="../revolution.htm"><b>37</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>box_1</b></a> <br><nobr>box_id <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>box1</b></a> <br><a href="../transforming_meshes.htm"><b>box2</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>boxes</b></a> <br><nobr><a name="bms_BR"></a><a name="subkey_BR"></a>broken <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>brown</b></a> <br><a href="../selection_filter_library.htm"><b>browse</b></a> <br><nobr>browser <a href="../deleting_groups.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.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/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>10</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>11</b></a> <a href="../presentation.htm"><b>12</b></a> <a href="../files/viewing_mesh_info.htm"><b>13</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="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> </nobr><br><a href="../files/max._element_area_hypothesis.htm"><b>builds</b></a> <br><nobr>built <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.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><nobr>button <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/area_of_elements.htm"><b>17</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>18</b></a> <a href="../files/taper.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="../files/skew.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/minimum_angle.htm"><b>28</b></a> <a href="../files/length_of_edges.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../files/warp.htm"><b>31</b></a> <a href="../files/vtk_3d_viewer.htm"><b>32</b></a> <a href="../files/viewing_mesh_info.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="../volume.htm"><b>38</b></a> <a href="../selection_filter_library.htm"><b>39</b></a> <a href="../revolution.htm"><b>40</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> <a href="../files/vtk_3d_viewer.htm"><b>3</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><a href="../aspect_ratio_3d.htm"><b>calculate</b></a> <br><nobr>calculated <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/length_of_edges.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> </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/removing_nodes_and_elements.htm"><b>careful</b></a> <br><nobr>case <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> </nobr><br><nobr>cases <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/creating_groups.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>center <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../modifying_meshes.htm"><b>centroidal_smooth</b></a> <br><nobr>certain <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../about_viewing_meshes.htm"><b>chapter</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><nobr>check <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>checkbox <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>choose <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../display_entity.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/displaying_nodes_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/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/aspect_ratio.htm"><b>15</b></a> <a href="../files/area_of_elements.htm"><b>16</b></a> <a href="../files/translation.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/skew.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/minimum_angle.htm"><b>26</b></a> <a href="../files/merging_nodes.htm"><b>27</b></a> <a href="../selection_filter_library.htm"><b>28</b></a> <a href="../revolution.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../files/warp.htm"><b>31</b></a> <a href="../files/uniting_two_triangles.htm"><b>32</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>33</b></a> </nobr><br><nobr>choosing <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>chosen <a href="../files/cutting_quadrangles.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/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_CI"></a><a name="subkey_CI"></a>circle <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>circlemesh</b></a> <br><a name="bms_CL"></a><a name="subkey_CL"></a><a href="../selection_filter_library.htm"><b>clear</b></a> <br><nobr>click <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displaying_nodes_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/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> <a href="../files/sewing_meshes.htm"><b>23</b></a> <a href="../files/running_smesh_module.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/minimum_angle.htm"><b>27</b></a> <a href="../selection_filter_library.htm"><b>28</b></a> <a href="../revolution.htm"><b>29</b></a> <a href="../pattern_mapping.htm"><b>30</b></a> <a href="../files/warp.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_two_triangles.htm"><b>34</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>35</b></a> </nobr><br><nobr>clicking <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.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> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../presentation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>clipping <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>close <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><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><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/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> </nobr><br><nobr>calculates <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> </nobr><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/removing_nodes_and_elements.htm"><b>careful</b></a> <br><nobr>case <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../files/viewing_mesh_info.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>cases <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CE"></a><a name="subkey_CE"></a>cells <a href="../files/creating_groups.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>center <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>centroid</b></a> <br><a href="../files/smoothing.htm"><b>centroidal</b></a> <br><a href="../modifying_meshes.htm"><b>centroidal_smooth</b></a> <br><nobr>certain <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CH"></a><a name="subkey_CH"></a>change <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> </nobr><br><a href="../files/changing_orientation_of_elements.htm"><b>changed</b></a> <br><nobr>changes <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</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><nobr>check <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>checkbox <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>checked</b></a> <br><nobr>choice <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>choose <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../display_entity.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/displaying_nodes_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/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/aspect_ratio.htm"><b>15</b></a> <a href="../files/area_of_elements.htm"><b>16</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/skew.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/minimum_angle.htm"><b>26</b></a> <a href="../files/merging_nodes.htm"><b>27</b></a> <a href="../files/length_of_edges.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> <a href="../files/uniting_two_triangles.htm"><b>31</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>32</b></a> <a href="../files/translation.htm"><b>33</b></a> <a href="../volume.htm"><b>34</b></a> <a href="../selection_filter_library.htm"><b>35</b></a> <a href="../revolution.htm"><b>36</b></a> </nobr><br><nobr>choosing <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr>chosen <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/aspect_ratio.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/uniting_a_set_of_triangles.htm"><b>5</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
 \r
 </body>\r
 \r
index 4da6489cc26a68d251c7125aea4c2529a29f2b97..e81ed7ee3895e7e67764e4b016d20965a9cc641b 100755 (executable)
@@ -33,9 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><nobr>sides <a href="../files/skew.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> </nobr><br><nobr>simple <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>simpler</b></a> <br><a href="../aspect_ratio_3d.htm"><b>simplex</b></a> <br><nobr>simply <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>size</b></a> <br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><a name="bms_SK"></a><a name="subkey_SK"></a><a href="../aspect_ratio_3d.htm"><b>sk</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher1</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher2</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketchers</b></a> <br><nobr>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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a name="bms_SL"></a><a name="subkey_SL"></a><a href="../transparency.htm"><b>slider</b></a> <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="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> </nobr><br><nobr>smesh_mechanic <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../quality_controls.htm"><b>smesh_mechanic_tetra</b></a> <br><nobr>smesh_mesheditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>smeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>smeshgroup2</b></a> <br><nobr>smeshgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smooth</b></a> <br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><nobr>smoothing <a href="../files/smoothing.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smoothobject</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/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> </nobr><br><nobr>solid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>solids <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>something</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>somewhat</b></a> <br><nobr>sort <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>source</b></a> <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/translation.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><nobr>specific <a href="../files/constructing_groups_of_specific_elements.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>specified <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.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> </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_along_a_path.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/smoothing.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/using_operations_on_groups.htm"><b>11</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><a href="../files/constructing_meshes.htm"><b>sphere</b></a> <br><nobr>split <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standalone <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>standard <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr>start <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>startendlength</b></a> <br><nobr>starting <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>stdmeshers <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr>stored <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><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="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</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/translation.htm"><b>2</b></a> <a href="../files/symmetry.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/merging_nodes.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="../display_entity.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> </nobr><br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../constructing_meshes.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_submeshes.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>15</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>subshapeall <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>subshapelist <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>subshapelist1</b></a> <br><a href="../transforming_meshes.htm"><b>subshapelist2</b></a> <br><nobr>subshapename <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>sum</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>supplement</b></a> <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="../revolution.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</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><a name="bms_SW"></a><a name="subkey_SW"></a><a href="../modifying_meshes.htm"><b>sweep</b></a> <br><nobr>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SY"></a><a name="subkey_SY"></a>symmetrical <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><nobr>symmetry <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>syntax</b></a> <br>\r
+<nobr><a name="bms_RI"></a><a name="subkey_RI"></a>right <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../presentation.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_RO"></a><a name="subkey_RO"></a>rotate <a href="../files/rotation.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>rotated <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>rotateobject</b></a> <br><nobr>rotation <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>rotationsweepobject</b></a> <br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RR"></a><a name="subkey_RR"></a><a href="../modifying_meshes.htm"><b>rr</b></a> <br><nobr><a name="bms_RU"></a><a name="subkey_RU"></a>rule <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/non_conform_mesh_allowed_hypothesis.htm"><b>rules</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</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="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../presentation.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/arithmetic_1d.htm"><b>table</b></a> <br><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="../defining_hypotheses_tui.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="../pattern_mapping.htm"><b>5</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/creating_groups.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>tetrahedral</b></a> <br><a href="../files/constructing_meshes.htm"><b>tetrahedralization</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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>tetrahedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</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="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/smoothing.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/merging_nodes.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>those <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>threshold</b></a> <br><a name="bms_TM"></a><a name="subkey_TM"></a><a href="../constructing_meshes.htm"><b>tmp</b></a> <br><nobr><a name="bms_TO"></a><a name="subkey_TO"></a>toggle <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>toggling</b></a> <br><nobr>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>tool <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> </nobr><br><nobr>toolbar <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/editing_groups.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/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.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/running_smesh_module.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/warp.htm"><b>20</b></a> <a href="../files/viewing_mesh_info.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> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><a href="../selection_filter_library.htm"><b>tools</b></a> <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/viewing_mesh_info.htm"><b>total</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/translation.htm"><b>1</b></a> <a href="../files/symmetry.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/merging_nodes.htm"><b>5</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../transforming_meshes.htm"><b>transforming</b></a> <br><nobr>translate <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../transforming_meshes.htm"><b>translateobject</b></a> <br><nobr>translation <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>transparency <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../transparency.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>transparent</b></a> <br><nobr>triangle <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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><nobr>triangles <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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/area_of_elements.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/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../files/uniting_two_triangles.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> <a href="../viewing_meshes.htm"><b>15</b></a> </nobr><br><a href="../files/about_meshing_algorithms.htm"><b>triangular</b></a> <br><a href="../modifying_meshes.htm"><b>tritoquad</b></a> <br><a href="../files/constructing_meshes.htm"><b>trying</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_S"></a><a name="subkey_S{"></a><a href="../extrusion_along_a_path.htm"><b>s</b></a> <br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../about_viewing_meshes.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/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.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/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../files/using_operations_on_groups.htm"><b>13</b></a> <a href="../selection_filter_library.htm"><b>14</b></a> </nobr><br><nobr>sample <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../merge_elements.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> <a href="../files/translation.htm"><b>44</b></a> <a href="../volume.htm"><b>45</b></a> <a href="../revolution.htm"><b>46</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>save</b></a> <br><a name="bms_SC"></a><a name="subkey_SC"></a><a href="../files/about_quality_controls.htm"><b>scalar</b></a> <br><a href="../files/arithmetic_1d.htm"><b>scale</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>scaling</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>scene</b></a> <br><nobr>script <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/taper.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="../files/skew.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/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.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/length_of_edges.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../merge_elements.htm"><b>35</b></a> <a href="../length.htm"><b>36</b></a> <a href="../free_edges.htm"><b>37</b></a> <a href="../free_borders.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> <a href="../files/viewing_mesh_info.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> <a href="../files/translation.htm"><b>44</b></a> <a href="../volume.htm"><b>45</b></a> <a href="../revolution.htm"><b>46</b></a> </nobr><br><nobr>scripts <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.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><nobr>search <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>second <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>section <a href="../clipping.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>sections <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>see <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../merge_elements.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/vtk_3d_viewer.htm"><b>41</b></a> <a href="../files/using_operations_on_groups.htm"><b>42</b></a> <a href="../files/uniting_two_triangles.htm"><b>43</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>44</b></a> <a href="../files/translation.htm"><b>45</b></a> <a href="../volume.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> </nobr><br><nobr>segment <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><nobr>segments <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>select <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>26</b></a> <a href="../files/merging_nodes.htm"><b>27</b></a> <a href="../pattern_mapping.htm"><b>28</b></a> <a href="../files/vtk_3d_viewer.htm"><b>29</b></a> <a href="../files/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/using_operations_on_groups.htm"><b>31</b></a> <a href="../files/uniting_two_triangles.htm"><b>32</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>33</b></a> <a href="../files/translation.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> </nobr><br><a href="../merge_elements.htm"><b>selectable</b></a> <br><nobr>selected <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.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/changing_orientation_of_elements.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> </nobr><br><nobr>selecting <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.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/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>8</b></a> <a href="../presentation.htm"><b>9</b></a> <a href="../revolution.htm"><b>10</b></a> </nobr><br><nobr>selection <a href="../deleting_groups.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.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/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</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/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../clipping.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/creating_groups.htm"><b>8</b></a> <a href="../files/constructing_meshes.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../presentation.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../transparency.htm"><b>19</b></a> <a href="../selection_filter_library.htm"><b>20</b></a> </nobr><br><nobr>setcurrentstudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>setdisplaymode</b></a> <br><nobr>setlength <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>setmargin <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>setmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>setmesh</b></a> <br><nobr>setname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><nobr>setnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>setnumfunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setpredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <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="../selection_filter_library.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>settings</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>settransparency</b></a> <br><nobr>sew <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewbordertoside</b></a> <br><a href="../transforming_meshes.htm"><b>sewconformfreeborders</b></a> <br><a href="../transforming_meshes.htm"><b>sewfreeborders</b></a> <br><nobr>sewing <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewsideelements</b></a> <br><nobr><a name="bms_SG"></a><a name="subkey_SG"></a>sg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_SH"></a><a name="subkey_SH"></a>shading <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> <a href="../transparency.htm"><b>3</b></a> </nobr><br><nobr>shall <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/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../files/merging_nodes.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/uniting_two_triangles.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../files/translation.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>shape <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.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="../modifying_meshes.htm"><b>shape_mesh</b></a> <br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shapetype <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>shift <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> </nobr><br><a href="../files/warp.htm"><b>shortest</b></a> <br><nobr>should <a href="../extrusion_along_a_path.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/arithmetic_1d.htm"><b>4</b></a> <a href="../files/smoothing.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="../pattern_mapping.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>show <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>showing</b></a> <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><nobr>shows <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../presentation.htm"><b>shrink</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 4b436debfdb0ed32d36e8bddbbef469abef02e33..434d1b60e6d8777a0167ca5e2031130275756eb1 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" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<a name="bms_TT"></a><a name="subkey_TT"></a><a href="../defining_hypotheses_tui.htm"><b>tt</b></a> <br><nobr><a name="bms_TU"></a><a name="subkey_TU"></a>tui <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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/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/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.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="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/viewing_mesh_info.htm"><b>41</b></a> <a href="../files/using_operations_on_groups.htm"><b>42</b></a> <a href="../files/uniting_two_triangles.htm"><b>43</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>44</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <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_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/aspect_ratio.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="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../transforming_meshes.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../modifying_meshes.htm"><b>16</b></a> <a href="../grouping_elements.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>types <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
+<nobr><a name="bms_SI"></a><a name="subkey_SI"></a>side <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>sides <a href="../files/skew.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> </nobr><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/adding_nodes_and_elements.htm"><b>simpler</b></a> <br><a href="../files/aspect_ratio.htm"><b>simplex</b></a> <br><a href="../aspect_ratio_3d.htm"><b>simplexes</b></a> <br><nobr>simply <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>sin</b></a> <br><a href="../about_viewing_meshes.htm"><b>size</b></a> <br><a href="../files/smoothing.htm"><b>sizes</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>sk <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>sketcher</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher1</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketcher2</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>sketchers</b></a> <br><nobr>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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><a name="bms_SL"></a><a name="subkey_SL"></a><a href="../transparency.htm"><b>slider</b></a> <br><a name="bms_SM"></a><a name="subkey_SM"></a><a href="../files/vtk_3d_viewer.htm"><b>small</b></a> <br><nobr>smesh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> <a href="../transforming_meshes.htm"><b>8</b></a> </nobr><br><nobr>smesh_mechanic <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><a href="../quality_controls.htm"><b>smesh_mechanic_tetra</b></a> <br><nobr>smesh_mesheditor <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>smeshgroup1</b></a> <br><a href="../grouping_elements.htm"><b>smeshgroup2</b></a> <br><nobr>smeshgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smooth</b></a> <br><a href="../files/smoothing.htm"><b>smoothed</b></a> <br><nobr>smoothing <a href="../files/smoothing.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>smoothobject</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/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> <a href="../viewing_meshes.htm"><b>12</b></a> </nobr><br><nobr>solid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>solids <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>somewhat</b></a> <br><nobr>sort <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>source</b></a> <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="../pattern_mapping.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> </nobr><br><nobr>specific <a href="../files/constructing_groups_of_specific_elements.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>specified <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.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> </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="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/rotation.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>specifying <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><nobr>sphere <a href="../files/constructing_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> </nobr><br><nobr>split <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> </nobr><br><a name="bms_SQ"></a><a name="subkey_SQ"></a><a href="../modifying_meshes.htm"><b>sqrt</b></a> <br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standalone <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>standard <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr>start <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/running_smesh_module.htm"><b>7</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>startendlength</b></a> <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="../modifying_meshes.htm"><b>status</b></a> <br><nobr>stdmeshers <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>steps <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><nobr>stored <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>straight <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>stretched</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>strictly</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="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>stuffed</b></a> <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/symmetry.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/merging_nodes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> </nobr><br><nobr>submenu <a href="../display_entity.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> </nobr><br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../constructing_meshes.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_submeshes.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>11</b></a> <a href="../files/viewing_mesh_info.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="../revolution.htm"><b>15</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>subshapeall <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>subshapelist <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>subshapelist1</b></a> <br><a href="../transforming_meshes.htm"><b>subshapelist2</b></a> <br><nobr>subshapename <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>succeded <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>sum</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>supplement</b></a> <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/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><nobr>surfaces <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>surrounding <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a name="bms_SW"></a><a name="subkey_SW"></a><a href="../modifying_meshes.htm"><b>sweep</b></a> <br><nobr>swept <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>switches</b></a> <br><nobr><a name="bms_SY"></a><a name="subkey_SY"></a>symmetrical <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/symmetry.htm"><b>symmetrically</b></a> <br><nobr>symmetry <a href="../files/symmetry.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>syntax</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="../selection_filter_library.htm"><b>unary</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="../grouping_elements.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../grouping_elements.htm"><b>uniongroups</b></a> <br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</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="../modifying_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><a href="../files/non_conform_mesh_allowed_hypothesis.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="../deleting_groups.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>update</b></a> <br><nobr>updated <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>updateobjbrowser <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>uploaded</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="../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/arithmetic_1d.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../selection_filter_library.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>useful <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>user <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>uses</b></a> <br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> <a href="../transparency.htm"><b>8</b></a> </nobr><br><nobr>usually <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.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/about_quality_controls.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> <a href="../length.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> </nobr><br><nobr>values <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_VE"></a><a name="subkey_VE"></a>ve <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>vector <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>vertices <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>very <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>via <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.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>view</b></a> <br><nobr>viewer <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/length_of_edges.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/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/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/aspect_ratio.htm"><b>13</b></a> <a href="../files/area_of_elements.htm"><b>14</b></a> <a href="../files/taper.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> <a href="../files/skew.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/minimum_angle.htm"><b>21</b></a> <a href="../selection_filter_library.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> <a href="../files/warp.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> </nobr><br><nobr>viewing <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../clipping.htm"><b>views</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> </nobr><br><nobr>volumes <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/about_hypotheses.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../files/viewing_mesh_info.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> </nobr><br><nobr><a name="bms_VX"></a><a name="subkey_VX"></a>vxy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><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><nobr>warp <a href="../quality_controls.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><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/cutting_quadrangles.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>way <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_along_a_path.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.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/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><nobr>ways <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</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><a name="bms_WH"></a><a name="subkey_WH"></a><a href="../selection_filter_library.htm"><b>whether</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>while</b></a> <br><nobr>white <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../free_borders.htm"><b>2</b></a> </nobr><br><nobr>whole <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/translation.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</b></a> </nobr><br><nobr>whose <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.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/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_along_a_path.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../deleting_groups.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/displacing_nodes.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/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.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/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.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="../selection_filter_library.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> <a href="../files/viewing_mesh_info.htm"><b>36</b></a> <a href="../files/using_operations_on_groups.htm"><b>37</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>38</b></a> <a href="../transparency.htm"><b>39</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> </nobr><br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>without</b></a> <br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\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="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../presentation.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_TA"></a><a name="subkey_TA"></a>table <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><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="../defining_hypotheses_tui.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="../pattern_mapping.htm"><b>5</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>taking</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/creating_groups.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a name="bms_TE"></a><a name="subkey_TE"></a><a href="../files/smoothing.htm"><b>techniques</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>tetra3d</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>tetrahedral</b></a> <br><a href="../files/constructing_meshes.htm"><b>tetrahedralization</b></a> <br><nobr>tetrahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>tetrahedrons <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</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/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../display_entity.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>13</b></a> <a href="../files/merging_nodes.htm"><b>14</b></a> <a href="../files/vtk_3d_viewer.htm"><b>15</b></a> <a href="../revolution.htm"><b>16</b></a> </nobr><br><nobr>those <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/symmetry.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>threshold</b></a> <br><a name="bms_TI"></a><a name="subkey_TI"></a><a href="../files/vtk_3d_viewer.htm"><b>tick</b></a> <br><a href="../about_viewing_meshes.htm"><b>time</b></a> <br><a name="bms_TM"></a><a name="subkey_TM"></a><a href="../constructing_meshes.htm"><b>tmp</b></a> <br><a name="bms_TO"></a><a name="subkey_TO"></a><a href="../files/max._element_area_hypothesis.htm"><b>together</b></a> <br><nobr>toggle <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>toggling</b></a> <br><nobr>tolerance <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>tool <a href="../files/using_operations_on_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>toolbar <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/editing_groups.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/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.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/running_smesh_module.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/length_of_edges.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/warp.htm"><b>20</b></a> <a href="../files/vtk_3d_viewer.htm"><b>21</b></a> <a href="../files/viewing_mesh_info.htm"><b>22</b></a> <a href="../files/uniting_two_triangles.htm"><b>23</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>24</b></a> <a href="../volume.htm"><b>25</b></a> <a href="../revolution.htm"><b>26</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><a href="../selection_filter_library.htm"><b>tools</b></a> <br><a href="../modifying_meshes.htm"><b>top</b></a> <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/viewing_mesh_info.htm"><b>total</b></a> <br><a href="../files/smoothing.htm"><b>toward</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index eba1f809af6c4537ab1b0f08c52a072ddbaf1a60..51a083a1e88e87f4aa5d28ad0e587a8a65d376e7 100755 (executable)
@@ -33,9 +33,14 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <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="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/displacing_nodes.htm"><b>11</b></a> <a href="../files/creating_groups.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/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/symmetry.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="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/minimum_angle.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="../selection_filter_library.htm"><b>33</b></a> <a href="../presentation.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../files/warp.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> </nobr><br>\r
+<nobr><a name="bms_TR"></a><a name="subkey_TR"></a>transformation <a href="../files/symmetry.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> </nobr><br><a href="../files/displacing_nodes.htm"><b>transformed</b></a> <br><a href="../transforming_meshes.htm"><b>transforming</b></a> <br><nobr>translate <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/translation.htm"><b>translated</b></a> <br><a href="../transforming_meshes.htm"><b>translateobject</b></a> <br><nobr>translation <a href="../files/translation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>transparency <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../transparency.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>transparent</b></a> <br><a href="../transforming_meshes.htm"><b>tri_mesh</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>tria</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>tria_mesh</b></a> <br><nobr>triangle <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../merge_elements.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>triangle_mefisto</b></a> <br><nobr>triangles <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/adding_nodes_and_elements.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/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../files/vtk_3d_viewer.htm"><b>13</b></a> <a href="../files/uniting_two_triangles.htm"><b>14</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>15</b></a> <a href="../viewing_meshes.htm"><b>16</b></a> <a href="../transforming_meshes.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> </nobr><br><nobr>triangular <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>triangulation</b></a> <br><nobr>trias <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>trihedron</b></a> <br><a href="../modifying_meshes.htm"><b>tritoquad</b></a> <br><a href="../files/constructing_meshes.htm"><b>trying</b></a> <br><a name="bms_TT"></a><a name="subkey_TT"></a><a href="../defining_hypotheses_tui.htm"><b>tt</b></a> <br><nobr><a name="bms_TU"></a><a name="subkey_TU"></a>tui <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/symmetry.htm"><b>21</b></a> <a href="../files/smoothing.htm"><b>22</b></a> <a href="../files/skew.htm"><b>23</b></a> <a href="../files/sewing_meshes.htm"><b>24</b></a> <a href="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../merge_elements.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/viewing_mesh_info.htm"><b>41</b></a> <a href="../files/using_operations_on_groups.htm"><b>42</b></a> <a href="../files/uniting_two_triangles.htm"><b>43</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>44</b></a> <a href="../files/translation.htm"><b>45</b></a> <a href="../volume.htm"><b>46</b></a> <a href="../revolution.htm"><b>47</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.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/adding_nodes_and_elements.htm"><b>8</b></a> <a href="../files/taper.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="../pattern_mapping.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../grouping_elements.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.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/translation.htm"><b>18</b></a> <a href="../transforming_meshes.htm"><b>19</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/aspect_ratio.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../selection_filter_library.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="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> </nobr><br><a href="../files/smoothing.htm"><b>typically</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_Z"></a><a name="subkey_Z{"></a>z <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><br><br></p>\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="../selection_filter_library.htm"><b>unary</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="../grouping_elements.htm"><b>1</b></a> <a href="../files/using_operations_on_groups.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../grouping_elements.htm"><b>uniongroups</b></a> <br><nobr>unite <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</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="../modifying_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><a href="../files/non_conform_mesh_allowed_hypothesis.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="../deleting_groups.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>update</b></a> <br><nobr>updated <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>updateobjbrowser <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>uploaded</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="../extrusion.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/arithmetic_1d.htm"><b>6</b></a> <a href="../files/smoothing.htm"><b>7</b></a> <a href="../files/sewing_meshes.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/vtk_3d_viewer.htm"><b>11</b></a> <a href="../selection_filter_library.htm"><b>12</b></a> <a href="../revolution.htm"><b>13</b></a> </nobr><br><nobr>useful <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> </nobr><br><nobr>user <a href="../borders_at_multi-connection.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/merging_nodes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>uses</b></a> <br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../transparency.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> </nobr><br><nobr>usually <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.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/about_quality_controls.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../length.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> </nobr><br><nobr>values <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>varies</b></a> <br><a href="../about_viewing_meshes.htm"><b>various</b></a> <br><a name="bms_VE"></a><a name="subkey_VE"></a><a href="../files/adding_nodes_and_elements.htm"><b>ve</b></a> <br><nobr>vector <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> <a href="../revolution.htm"><b>10</b></a> </nobr><br><nobr>vertex <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>vertices <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>very <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>via <a href="../files/vtk_3d_viewer.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>view <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> <a href="../files/viewing_mesh_info.htm"><b>3</b></a> </nobr><br><nobr>viewer <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../about_viewing_meshes.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/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/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/aspect_ratio.htm"><b>13</b></a> <a href="../files/area_of_elements.htm"><b>14</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>15</b></a> <a href="../files/taper.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../files/skew.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>20</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>21</b></a> <a href="../files/minimum_angle.htm"><b>22</b></a> <a href="../files/length_of_edges.htm"><b>23</b></a> <a href="../files/warp.htm"><b>24</b></a> <a href="../files/vtk_3d_viewer.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="../volume.htm"><b>28</b></a> <a href="../selection_filter_library.htm"><b>29</b></a> <a href="../revolution.htm"><b>30</b></a> </nobr><br><nobr>viewing <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../clipping.htm"><b>views</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>visible</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>visualize</b></a> <br><a name="bms_VK"></a><a name="subkey_VK"></a><a href="../aspect_ratio_3d.htm"><b>vk</b></a> <br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <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="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../volume.htm"><b>11</b></a> </nobr><br><nobr>volumes <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="../display_entity.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>7</b></a> <a href="../files/viewing_mesh_info.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_VT"></a><a name="subkey_VT"></a>vtk <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VX"></a><a name="subkey_VX"></a>vxy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><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><nobr>warp <a href="../quality_controls.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><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/cutting_quadrangles.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> </nobr><br><nobr>way <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.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/adding_nodes_and_elements.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/using_operations_on_groups.htm"><b>8</b></a> </nobr><br><nobr>ways <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</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><a name="bms_WH"></a><a name="subkey_WH"></a><a href="../selection_filter_library.htm"><b>whether</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>while</b></a> <br><a href="../free_borders.htm"><b>white</b></a> <br><nobr>whole <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../files/translation.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>whose <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf13.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/whlstf13.htm b/doc/salome/gui/SMESH/whgdata/whlstf13.htm
new file mode 100755 (executable)
index 0000000..ef6c529
--- /dev/null
@@ -0,0 +1,46 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name="description" content="WebHelp 5.50">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {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" bgproperties="fixed">\r
+<p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody" >\r
+<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/cutting_quadrangles.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_submeshes.htm"><b>15</b></a> <a href="../files/constructing_meshes.htm"><b>16</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>17</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>18</b></a> <a href="../files/aspect_ratio.htm"><b>19</b></a> <a href="../files/arithmetic_1d.htm"><b>20</b></a> <a href="../files/area_of_elements.htm"><b>21</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/running_smesh_module.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>30</b></a> <a href="../files/minimum_angle.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/length_of_edges.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../modifying_meshes.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> <a href="../files/viewing_mesh_info.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../volume.htm"><b>42</b></a> <a href="../transparency.htm"><b>43</b></a> <a href="../selection_filter_library.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>wire_discretisation</b></a> <br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>without <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>work</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><a href="../files/aspect_ratio.htm"><b>worst</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>x0</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>y0</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/displacing_nodes.htm"><b>11</b></a> <a href="../files/creating_groups.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/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/symmetry.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="../files/rotation.htm"><b>25</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>26</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>27</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>28</b></a> <a href="../files/minimum_angle.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/length_of_edges.htm"><b>33</b></a> <a href="../presentation.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../files/warp.htm"><b>36</b></a> <a href="../files/viewing_mesh_info.htm"><b>37</b></a> <a href="../files/translation.htm"><b>38</b></a> <a href="../volume.htm"><b>39</b></a> <a href="../selection_filter_library.htm"><b>40</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_Z"></a><a name="subkey_Z{"></a>z <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>z0</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><a name="bms_ZO"></a><a name="subkey_ZO"></a><a href="../files/vtk_3d_viewer.htm"><b>zoom</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
index 72a955e1f486b352e37adcccfd1a8c3b88c48888..81edb5cf4b7ce741aab9a76b6f81e0a677234b2e 100755 (executable)
@@ -33,9 +33,7 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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
-<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><a href="../about_viewing_meshes.htm"><b>color</b></a> <br><nobr>colored <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/length_of_edges.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/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/minimum_angle.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="../about_viewing_meshes.htm"><b>colors</b></a> <br><nobr>combine <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> </nobr><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="../selection_filter_library.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</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><nobr>compose <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.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> </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="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/arithmetic_1d.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>compound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>computation <a href="../files/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>compute <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> </nobr><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/arithmetic_1d.htm"><b>computes</b></a> <br><nobr>computing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>concepts</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>confirm <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/smoothing.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/uniting_a_set_of_triangles.htm"><b>7</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="../transforming_meshes.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><a href="../files/arithmetic_1d.htm"><b>connecting</b></a> <br><nobr>connection <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</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> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>connectivity</b></a> <br><a href="../files/constructing_meshes.htm"><b>consider</b></a> <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="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/length_of_edges.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/arithmetic_1d.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> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>console</b></a> <br><a href="../files/arithmetic_1d.htm"><b>constant</b></a> <br><nobr>construct <a href="../constructing_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/constructing_groups_of_specific_elements.htm"><b>4</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/arithmetic_1d.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</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="../constructing_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/arithmetic_1d.htm"><b>4</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> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.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> </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/smoothing.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../deleting_groups.htm"><b>contents</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/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.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/aspect_ratio.htm"><b>7</b></a> <a href="../files/area_of_elements.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="../files/minimum_angle.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../free_edges.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> </nobr><br><nobr>controls <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</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/translation.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</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/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> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>could <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><a href="../files/constructing_meshes.htm"><b>course</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_meshes.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/rotation.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../files/merging_nodes.htm"><b>13</b></a> <a href="../transforming_meshes.htm"><b>14</b></a> <a href="../selection_filter_library.htm"><b>15</b></a> <a href="../quality_controls.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>createanddisplaygo</b></a> <br><nobr>createarea <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createaspectratio</b></a> <br><a href="../quality_controls.htm"><b>createaspectratio3d</b></a> <br><nobr>created <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../selection_filter_library.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>createequalto <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfiltermanager <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createfreeborders</b></a> <br><a href="../quality_controls.htm"><b>createfreeedges</b></a> <br><nobr>creategroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../grouping_elements.htm"><b>creategroupfromgeom</b></a> <br><nobr>createhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../quality_controls.htm"><b>createlength</b></a> <br><a href="../quality_controls.htm"><b>createlength2d</b></a> <br><nobr>createlessthan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createmesh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>createminimumangle <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>createmorethan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createmulticonnection</b></a> <br><a href="../quality_controls.htm"><b>createmulticonnection2d</b></a> <br><nobr>creates <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createskew</b></a> <br><a href="../quality_controls.htm"><b>createtaper</b></a> <br><a href="../quality_controls.htm"><b>createwarping</b></a> <br><nobr>creating <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</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/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br><nobr>criteria <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>criterion <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/length_of_edges.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/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>15</b></a> </nobr><br><nobr>cross <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a name="bms_CU"></a><a name="subkey_CU"></a><a href="../files/about_meshing_algorithms.htm"><b>cubic</b></a> <br><nobr>current <a href="../files/constructing_meshes.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> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>currently <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>curve <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> </nobr><br><nobr>curvilinear <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>cut <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../files/using_operations_on_groups.htm"><b>7</b></a> </nobr><br><a href="../grouping_elements.htm"><b>cutgroups</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>cutted</b></a> <br><nobr>cutting <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../modifying_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><nobr>default <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../presentation.htm"><b>6</b></a> <a href="../transparency.htm"><b>7</b></a> </nobr><br><nobr>define <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/creating_groups.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/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> </nobr><br><nobr>defined <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/aspect_ratio.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>defining <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</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/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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/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> </nobr><br><nobr>deflection <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>deflection1d</b></a> <br><a href="../clipping.htm"><b>degrees</b></a> <br><nobr>delete <a href="../deleting_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>deleted <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../free_edges.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>deletediag</b></a> <br><nobr>deletes <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>deleting</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><a href="../files/arithmetic_1d.htm"><b>density</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> <a href="../files/constructing_meshes.htm"><b>3</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="../about_viewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</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><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="bms_CI"></a><a name="subkey_CI"></a>circle <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>circlemesh <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CL"></a><a name="subkey_CL"></a><a href="../selection_filter_library.htm"><b>clear</b></a> <br><nobr>click <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/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_submeshes.htm"><b>15</b></a> <a href="../files/constructing_meshes.htm"><b>16</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>17</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>18</b></a> <a href="../files/aspect_ratio.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/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="../files/sewing_meshes.htm"><b>25</b></a> <a href="../files/running_smesh_module.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/minimum_angle.htm"><b>29</b></a> <a href="../files/length_of_edges.htm"><b>30</b></a> <a href="../pattern_mapping.htm"><b>31</b></a> <a href="../files/warp.htm"><b>32</b></a> <a href="../files/vtk_3d_viewer.htm"><b>33</b></a> <a href="../files/viewing_mesh_info.htm"><b>34</b></a> <a href="../files/using_operations_on_groups.htm"><b>35</b></a> <a href="../files/uniting_two_triangles.htm"><b>36</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>37</b></a> <a href="../volume.htm"><b>38</b></a> <a href="../selection_filter_library.htm"><b>39</b></a> <a href="../revolution.htm"><b>40</b></a> </nobr><br><nobr>clicking <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../presentation.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>clipping <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>close <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><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 href="../files/aspect_ratio.htm"><b>closer</b></a> <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/arithmetic_1d.htm"><b>coarse</b></a> <br><nobr>coincident <a href="../files/merging_nodes.htm"><b>1</b></a> <a href="../merge_elements.htm"><b>2</b></a> </nobr><br><a href="../merge_elements.htm"><b>coincides</b></a> <br><nobr>color <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><nobr>colored <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.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/taper.htm"><b>5</b></a> <a href="../files/skew.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/warp.htm"><b>9</b></a> <a href="../volume.htm"><b>10</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><nobr>colors <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><nobr>combine <a href="../display_entity.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><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> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>compare <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../merge_elements.htm"><b>completely</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>complex</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="../aspect_ratio_3d.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> </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="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/arithmetic_1d.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>compound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>computation <a href="../defining_hypotheses_tui.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="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>compute <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><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/arithmetic_1d.htm"><b>computes</b></a> <br><nobr>computing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>concepts</b></a> <br><nobr>conditions <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><nobr>confirm <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/smoothing.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/uniting_a_set_of_triangles.htm"><b>7</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="../transforming_meshes.htm"><b>4</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>conformity</b></a> <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><a href="../files/arithmetic_1d.htm"><b>connecting</b></a> <br><nobr>connection <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>connectivity</b></a> <br><nobr>consider <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><nobr>considered <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>consist</b></a> <br><nobr>consisting <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><nobr>consists <a href="../files/about_quality_controls.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/arithmetic_1d.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>console</b></a> <br><a href="../files/arithmetic_1d.htm"><b>constant</b></a> <br><nobr>construct <a href="../constructing_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/constructing_groups_of_specific_elements.htm"><b>4</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/arithmetic_1d.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</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="../constructing_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/arithmetic_1d.htm"><b>4</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> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.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> </nobr><br><nobr>contains <a href="../files/about_meshing_algorithms.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/constructing_submeshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.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><nobr>contents <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><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/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/aspect_ratio.htm"><b>6</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../free_edges.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../volume.htm"><b>16</b></a> </nobr><br><nobr>controls <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/aspect_ratio.htm"><b>5</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../files/warp.htm"><b>12</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>13</b></a> <a href="../volume.htm"><b>14</b></a> </nobr><br><a href="../files/smoothing.htm"><b>converge</b></a> <br><a href="../files/arithmetic_1d.htm"><b>conversion</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>coordinate</b></a> <br><nobr>coordinates <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> </nobr><br><nobr>copy <a href="../files/symmetry.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="../transforming_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>corner <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><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/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> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>cos</b></a> <br><a href="../modifying_meshes.htm"><b>cosal</b></a> <br><nobr>could <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>counterclockwise</b></a> <br><a href="../files/sewing_meshes.htm"><b>counting</b></a> <br><a href="../files/constructing_meshes.htm"><b>course</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/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/arithmetic_1d.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/rotation.htm"><b>13</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>14</b></a> <a href="../files/merging_nodes.htm"><b>15</b></a> <a href="../quality_controls.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../transforming_meshes.htm"><b>21</b></a> <a href="../selection_filter_library.htm"><b>22</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>createanddisplaygo</b></a> <br><nobr>createarea <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createaspectratio</b></a> <br><a href="../quality_controls.htm"><b>createaspectratio3d</b></a> <br><nobr>created <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>createequalto <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfilter <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createfiltermanager <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createfreeborders</b></a> <br><a href="../quality_controls.htm"><b>createfreeedges</b></a> <br><nobr>creategroup <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../grouping_elements.htm"><b>creategroupfromgeom</b></a> <br><nobr>createhypothesis <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../quality_controls.htm"><b>createlength</b></a> <br><a href="../quality_controls.htm"><b>createlength2d</b></a> <br><nobr>createlessthan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>createmesh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>createminimumangle <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>createmorethan <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>createmulticonnection</b></a> <br><a href="../quality_controls.htm"><b>createmulticonnection2d</b></a> <br><nobr>creates <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>createskew</b></a> <br><a href="../quality_controls.htm"><b>createtaper</b></a> <br><a href="../quality_controls.htm"><b>createvolume3d</b></a> <br><a href="../quality_controls.htm"><b>createwarping</b></a> <br><nobr>creating <a href="../constructing_meshes.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="../pattern_mapping.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/using_operations_on_groups.htm"><b>5</b></a> </nobr><br><nobr>criteria <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>criterion <a href="../aspect_ratio_3d.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/aspect_ratio.htm"><b>4</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../length.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../files/warp.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> <a href="../volume.htm"><b>15</b></a> <a href="../selection_filter_library.htm"><b>16</b></a> </nobr><br><nobr>cross <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><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 1fbec6fd104ececc720368f919394376ff259d1f..5925666c231f49febf5b890e259faf6eab79f7f7 100755 (executable)
@@ -33,9 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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
-<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> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>dialog <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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.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_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.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> <a href="../files/sewing_meshes.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/merging_nodes.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> <a href="../pattern_mapping.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> </nobr><br><nobr>difference <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><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> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>differently</b></a> <br><a href="../files/arithmetic_1d.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="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</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><nobr>directly <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>dirstruct <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretisation <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</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="../display_entity.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../about_viewing_meshes.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/cutting_quadrangles.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/area_of_elements.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../presentation.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>16</b></a> </nobr><br><nobr>displayed <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../files/viewing_mesh_info.htm"><b>16</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>17</b></a> </nobr><br><a href="../files/displaying_nodes_numbers.htm"><b>displaying</b></a> <br><nobr>distance <a href="../clipping.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>distinguishes</b></a> <br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/arithmetic_1d.htm"><b>distribution</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divide</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/adding_nodes_and_elements.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><nobr>don <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>done</b></a> <br>\r
+<a name="bms_CU"></a><a name="subkey_CU"></a><a href="../files/about_meshing_algorithms.htm"><b>cubic</b></a> <br><nobr>current <a href="../files/constructing_meshes.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> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>currently <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>3</b></a> </nobr><br><nobr>curve <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> </nobr><br><nobr>curvilinear <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>cut <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../grouping_elements.htm"><b>cutgroups</b></a> <br><nobr>cutting <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_CY"></a><a name="subkey_CY"></a><a href="../modifying_meshes.htm"><b>cylinder</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</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/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../transforming_meshes.htm"><b>13</b></a> <a href="../quality_controls.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../modifying_meshes.htm"><b>16</b></a> <a href="../length.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> <a href="../files/uniting_two_triangles.htm"><b>20</b></a> <a href="../viewing_meshes.htm"><b>21</b></a> </nobr><br><nobr>edges <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="../display_entity.htm"><b>6</b></a> <a href="../defining_hypotheses_tui.htm"><b>7</b></a> <a href="../constructing_meshes.htm"><b>8</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>9</b></a> <a href="../borders_at_multi-connection.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/smoothing.htm"><b>19</b></a> <a href="../files/sewing_meshes.htm"><b>20</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>21</b></a> <a href="../transforming_meshes.htm"><b>22</b></a> <a href="../selection_filter_library.htm"><b>23</b></a> <a href="../quality_controls.htm"><b>24</b></a> <a href="../pattern_mapping.htm"><b>25</b></a> <a href="../grouping_elements.htm"><b>26</b></a> <a href="../free_edges.htm"><b>27</b></a> <a href="../free_borders.htm"><b>28</b></a> <a href="../files/warp.htm"><b>29</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>30</b></a> <a href="../viewing_meshes.htm"><b>31</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>edgeslist</b></a> <br><nobr>edgex111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey22 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edit <a href="../deleting_groups.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> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>editing <a href="../constructing_meshes.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> </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/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="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../aspect_ratio_3d.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.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/sewing_meshes.htm"><b>14</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>15</b></a> <a href="../files/minimum_angle.htm"><b>16</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>17</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> <a href="../free_edges.htm"><b>21</b></a> <a href="../files/warp.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> </nobr><br><nobr>elements <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_hypotheses.htm"><b>4</b></a> <a href="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../deleting_groups.htm"><b>7</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>8</b></a> <a href="../aspect_ratio_3d.htm"><b>9</b></a> <a href="../about_viewing_meshes.htm"><b>10</b></a> <a href="../files/length_of_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/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displacing_nodes.htm"><b>15</b></a> <a href="../files/diagonal_iversion_of_elements.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_groups_of_specific_elements.htm"><b>19</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>20</b></a> <a href="../files/aspect_ratio.htm"><b>21</b></a> <a href="../files/arithmetic_1d.htm"><b>22</b></a> <a href="../files/area_of_elements.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/smoothing.htm"><b>27</b></a> <a href="../files/skew.htm"><b>28</b></a> <a href="../files/sewing_meshes.htm"><b>29</b></a> <a href="../files/rotation.htm"><b>30</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>31</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>32</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>33</b></a> <a href="../files/minimum_angle.htm"><b>34</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>35</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>36</b></a> <a href="../transforming_meshes.htm"><b>37</b></a> <a href="../selection_filter_library.htm"><b>38</b></a> <a href="../revolution.htm"><b>39</b></a> <a href="../pattern_mapping.htm"><b>40</b></a> <a href="../modifying_meshes.htm"><b>41</b></a> <a href="../grouping_elements.htm"><b>42</b></a> <a href="../free_edges.htm"><b>43</b></a> <a href="../files/warp.htm"><b>44</b></a> <a href="../files/viewing_mesh_info.htm"><b>45</b></a> <a href="../files/using_operations_on_groups.htm"><b>46</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>47</b></a> </nobr><br><nobr>else <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../selection_filter_library.htm"><b>enables</b></a> <br><a href="../selection_filter_library.htm"><b>enabling</b></a> <br><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/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>ending <a href="../files/translation.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.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/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</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> </nobr><br><nobr>entity <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><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/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/arithmetic_1d.htm"><b>equidistant</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ER"></a><a name="subkey_ER"></a><a href="../about_viewing_meshes.htm"><b>erase</b></a> <br><nobr><a name="bms_ET"></a><a name="subkey_ET"></a>etc <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.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><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../aspect_ratio_3d.htm"><b>evaluate</b></a> <br><a href="../files/constructing_meshes.htm"><b>even</b></a> <br><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><a href="../files/constructing_meshes.htm"><b>everything</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/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>exceed</b></a> <br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><a href="../files/sewing_meshes.htm"><b>except</b></a> <br><a href="../files/about_hypotheses.htm"><b>exist</b></a> <br><a href="../files/constructing_meshes.htm"><b>existence</b></a> <br><nobr>existing <a href="../files/editing_groups.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/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr>export <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</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="../constructing_meshes.htm"><b>exportmed</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><a href="../clipping.htm"><b>extremities</b></a> <br><nobr>extruded <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>extrusion <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>extrusionalongpathobject</b></a> <br><a href="../modifying_meshes.htm"><b>extrusionsweepobject</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
+<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="../modifying_meshes.htm"><b>def</b></a> <br><nobr>default <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../presentation.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> <a href="../transparency.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>define <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.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/arithmetic_1d.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../files/vtk_3d_viewer.htm"><b>14</b></a> <a href="../transforming_meshes.htm"><b>15</b></a> </nobr><br><nobr>defined <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> </nobr><br><nobr>defining <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</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/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/creating_groups.htm"><b>5</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>9</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> </nobr><br><nobr>definition <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.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> </nobr><br><nobr>deflection <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>deflection1d</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>deformed</b></a> <br><a href="../files/aspect_ratio.htm"><b>degree</b></a> <br><a href="../clipping.htm"><b>degrees</b></a> <br><nobr>delete <a href="../deleting_groups.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><nobr>deleted <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../free_edges.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>deletediag</b></a> <br><a href="../selection_filter_library.htm"><b>deletes</b></a> <br><a href="../deleting_groups.htm"><b>deleting</b></a> <br><nobr>deletion <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/arithmetic_1d.htm"><b>density</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> <a href="../files/constructing_meshes.htm"><b>3</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="../about_viewing_meshes.htm"><b>detailed</b></a> <br><a href="../files/merging_nodes.htm"><b>detect</b></a> <br><a name="bms_DH"></a><a name="subkey_DH"></a><a href="../modifying_meshes.htm"><b>dh</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> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><nobr>dialog <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.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_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>14</b></a> <a href="../files/symmetry.htm"><b>15</b></a> <a href="../files/smoothing.htm"><b>16</b></a> <a href="../files/sewing_meshes.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/merging_nodes.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../merge_elements.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="../revolution.htm"><b>28</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>diameter</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>differ</b></a> <br><nobr>difference <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>different <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>5</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>differently</b></a> <br><a href="../files/arithmetic_1d.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="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> <a href="../revolution.htm"><b>6</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>dirstruct <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretisation <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</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="../display_entity.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.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/changing_orientation_of_elements.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../presentation.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>18</b></a> <a href="../volume.htm"><b>19</b></a> </nobr><br><nobr>displayed <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../aspect_ratio_3d.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/area_of_elements.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/minimum_angle.htm"><b>15</b></a> <a href="../files/length_of_edges.htm"><b>16</b></a> <a href="../free_borders.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> <a href="../files/vtk_3d_viewer.htm"><b>19</b></a> <a href="../files/viewing_mesh_info.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../volume.htm"><b>22</b></a> </nobr><br><a href="../files/displaying_nodes_numbers.htm"><b>displaying</b></a> <br><nobr>distance <a href="../clipping.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> <a href="../files/vtk_3d_viewer.htm"><b>5</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>distinguishes</b></a> <br><a href="../files/smoothing.htm"><b>distortion</b></a> <br><a href="../files/smoothing.htm"><b>distortions</b></a> <br><a href="../files/arithmetic_1d.htm"><b>distribution</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divide</b></a> <br><a href="../files/arithmetic_1d.htm"><b>divided</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/adding_nodes_and_elements.htm"><b>does</b></a> <br><a href="../pattern_mapping.htm"><b>domain</b></a> <br><nobr>don <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>double</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>downward</b></a> <br><a name="bms_DR"></a><a name="subkey_DR"></a><a href="../modifying_meshes.htm"><b>dr</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>drag</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>drawn</b></a> <br><nobr><a name="bms_DU"></a><a name="subkey_DU"></a>dump <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a name="bms_DX"></a><a name="subkey_DX"></a><a href="../modifying_meshes.htm"><b>dx</b></a> <br><a name="bms_DY"></a><a name="subkey_DY"></a><a href="../modifying_meshes.htm"><b>dy</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_E"></a><a name="subkey_E{"></a>e <a href="../files/cutting_quadrangles.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/aspect_ratio.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</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/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>14</b></a> <a href="../quality_controls.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../length.htm"><b>18</b></a> <a href="../grouping_elements.htm"><b>19</b></a> <a href="../files/warp.htm"><b>20</b></a> <a href="../files/uniting_two_triangles.htm"><b>21</b></a> <a href="../viewing_meshes.htm"><b>22</b></a> <a href="../transforming_meshes.htm"><b>23</b></a> </nobr><br><nobr>edges <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="../display_entity.htm"><b>5</b></a> <a href="../defining_hypotheses_tui.htm"><b>6</b></a> <a href="../constructing_meshes.htm"><b>7</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>8</b></a> <a href="../borders_at_multi-connection.htm"><b>9</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>10</b></a> <a href="../about_viewing_meshes.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/creating_groups.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>19</b></a> <a href="../files/smoothing.htm"><b>20</b></a> <a href="../files/sewing_meshes.htm"><b>21</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>22</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>23</b></a> <a href="../files/length_of_edges.htm"><b>24</b></a> <a href="../quality_controls.htm"><b>25</b></a> <a href="../pattern_mapping.htm"><b>26</b></a> <a href="../grouping_elements.htm"><b>27</b></a> <a href="../free_edges.htm"><b>28</b></a> <a href="../free_borders.htm"><b>29</b></a> <a href="../files/warp.htm"><b>30</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>31</b></a> <a href="../viewing_meshes.htm"><b>32</b></a> <a href="../transforming_meshes.htm"><b>33</b></a> <a href="../selection_filter_library.htm"><b>34</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>edgeslist</b></a> <br><nobr>edgex111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgex122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgey22 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edgez221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>edit <a href="../deleting_groups.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> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>editing <a href="../constructing_meshes.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> </nobr><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 17d2c171edafa00c5b176bf2843d215afb8bfef2..3385ceab0754b9684bbcc9582aa4c5b6b7d8288e 100755 (executable)
@@ -33,13 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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
-\r
-\r
-<nobr><a name="bm_F"></a><a name="subkey_F{"></a>f <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FA"></a><a name="subkey_FA"></a>face <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>7</b></a> <a href="../transforming_meshes.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../free_borders.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><nobr>face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>facelist</b></a> <br><nobr>faces <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/about_hypotheses.htm"><b>4</b></a> <a href="../display_entity.htm"><b>5</b></a> <a href="../defining_hypotheses_tui.htm"><b>6</b></a> <a href="../constructing_meshes.htm"><b>7</b></a> <a href="../borders_at_multi-connection.htm"><b>8</b></a> <a href="../aspect_ratio_3d.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../transforming_meshes.htm"><b>16</b></a> <a href="../selection_filter_library.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../modifying_meshes.htm"><b>19</b></a> <a href="../grouping_elements.htm"><b>20</b></a> <a href="../free_borders.htm"><b>21</b></a> <a href="../files/viewing_mesh_info.htm"><b>22</b></a> <a href="../viewing_meshes.htm"><b>23</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>facesrotate</b></a> <br><a href="../modifying_meshes.htm"><b>facessmooth</b></a> <br><a href="../modifying_meshes.htm"><b>facestritoquad</b></a> <br><nobr>facex11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facex21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>factor</b></a> <br><nobr>factoryserver <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../extrusion_along_a_path.htm"><b>fashion</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/smoothing.htm"><b>4</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> </nobr><br><nobr>fields <a href="../files/adding_nodes_and_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/creating_groups.htm"><b>4</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</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="../selection_filter_library.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</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><nobr>filter <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</b></a> </nobr><br><nobr>filters <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><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="../transforming_meshes.htm"><b>findcoincidentnodes</b></a> <br><nobr>findorloadcomponent <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><nobr>first <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</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/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>following <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_along_a_path.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../about_viewing_meshes.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/cutting_quadrangles.htm"><b>11</b></a> <a href="../files/creating_groups.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.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/merging_nodes.htm"><b>23</b></a> <a href="../revolution.htm"><b>24</b></a> <a href="../pattern_mapping.htm"><b>25</b></a> <a href="../files/viewing_mesh_info.htm"><b>26</b></a> <a href="../files/using_operations_on_groups.htm"><b>27</b></a> <a href="../files/uniting_two_triangles.htm"><b>28</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>29</b></a> </nobr><br><nobr>follows <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.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/aspect_ratio.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><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>formula <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>formulas</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_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/smoothing.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../free_edges.htm"><b>8</b></a> <a href="../free_borders.htm"><b>9</b></a> </nobr><br><a name="bms_FU"></a><a name="subkey_FU"></a><a href="../about_viewing_meshes.htm"><b>functionalities</b></a> <br><nobr>functionality <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_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
-<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/constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</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/arithmetic_1d.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>generation <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>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</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> <a href="../defining_hypotheses_tui.htm"><b>3</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/introduction_to_smesh.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/arithmetic_1d.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> <a href="../files/rotation.htm"><b>12</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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="../pattern_mapping.htm"><b>16</b></a> <a href="../files/viewing_mesh_info.htm"><b>17</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> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>geompy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr>get <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/viewing_mesh_info.htm"><b>5</b></a> </nobr><br><nobr>getelementsid <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>getid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../grouping_elements.htm"><b>getlistofid</b></a> <br><nobr>getmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>getmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>getmesh <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmesheditor <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>getname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>getnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GG"></a><a name="subkey_GG"></a><a href="../defining_hypotheses_tui.htm"><b>gg</b></a> <br><nobr><a name="bms_GI"></a><a name="subkey_GI"></a>given <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>gives <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><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><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/creating_groups.htm"><b>green</b></a> <br><nobr>group <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.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/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/translation.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../files/using_operations_on_groups.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>14</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>group1</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12a</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12b</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group2</b></a> <br><nobr>grouping <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>grouprotate</b></a> <br><nobr>groups <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/editing_groups.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/merging_nodes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../files/viewing_mesh_info.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>groupsmooth</b></a> <br><a href="../transforming_meshes.htm"><b>groupsofnodes</b></a> <br><a href="../modifying_meshes.htm"><b>grouptritoquad</b></a> <br>\r
+<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/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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/aspect_ratio.htm"><b>11</b></a> <a href="../files/adding_nodes_and_elements.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/sewing_meshes.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../files/minimum_angle.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="../pattern_mapping.htm"><b>20</b></a> <a href="../modifying_meshes.htm"><b>21</b></a> <a href="../free_edges.htm"><b>22</b></a> <a href="../files/warp.htm"><b>23</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>24</b></a> <a href="../revolution.htm"><b>25</b></a> </nobr><br><nobr>elements <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_hypotheses.htm"><b>3</b></a> <a href="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../extrusion.htm"><b>5</b></a> <a href="../deleting_groups.htm"><b>6</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>7</b></a> <a href="../aspect_ratio_3d.htm"><b>8</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>9</b></a> <a href="../about_viewing_meshes.htm"><b>10</b></a> <a href="../files/introduction_to_smesh.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/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/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/arithmetic_1d.htm"><b>21</b></a> <a href="../files/area_of_elements.htm"><b>22</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>23</b></a> <a href="../files/taper.htm"><b>24</b></a> <a href="../files/symmetry.htm"><b>25</b></a> <a href="../files/smoothing.htm"><b>26</b></a> <a href="../files/skew.htm"><b>27</b></a> <a href="../files/sewing_meshes.htm"><b>28</b></a> <a href="../files/rotation.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/non_conform_mesh_allowed_hypothesis.htm"><b>32</b></a> <a href="../files/minimum_angle.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/length_of_edges.htm"><b>36</b></a> <a href="../quality_controls.htm"><b>37</b></a> <a href="../pattern_mapping.htm"><b>38</b></a> <a href="../modifying_meshes.htm"><b>39</b></a> <a href="../merge_elements.htm"><b>40</b></a> <a href="../grouping_elements.htm"><b>41</b></a> <a href="../free_edges.htm"><b>42</b></a> <a href="../files/warp.htm"><b>43</b></a> <a href="../files/viewing_mesh_info.htm"><b>44</b></a> <a href="../files/using_operations_on_groups.htm"><b>45</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>46</b></a> <a href="../files/translation.htm"><b>47</b></a> <a href="../volume.htm"><b>48</b></a> <a href="../transforming_meshes.htm"><b>49</b></a> <a href="../selection_filter_library.htm"><b>50</b></a> <a href="../revolution.htm"><b>51</b></a> </nobr><br><nobr>else <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../selection_filter_library.htm"><b>enables</b></a> <br><a href="../selection_filter_library.htm"><b>enabling</b></a> <br><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/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> </nobr><br><nobr>ending <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../files/translation.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.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/displacing_nodes.htm"><b>2</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/uniting_two_triangles.htm"><b>5</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> </nobr><br><nobr>entity <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../display_entity.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_EQ"></a><a name="subkey_EQ"></a>equal <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/smoothing.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> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>equally</b></a> <br><a href="../files/arithmetic_1d.htm"><b>equidistant</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ER"></a><a name="subkey_ER"></a><a href="../about_viewing_meshes.htm"><b>erase</b></a> <br><nobr><a name="bms_ET"></a><a name="subkey_ET"></a>etc <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.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><a name="bms_EV"></a><a name="subkey_EV"></a>even <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>eventual</b></a> <br><a href="../files/warp.htm"><b>every</b></a> <br><a href="../files/constructing_meshes.htm"><b>everything</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="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/using_operations_on_groups.htm"><b>6</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>exceed</b></a> <br><a href="../files/smoothing.htm"><b>exceeded</b></a> <br><nobr>except <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>exist</b></a> <br><a href="../files/constructing_meshes.htm"><b>existence</b></a> <br><nobr>existing <a href="../files/editing_groups.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/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>exponent</b></a> <br><nobr>export <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</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="../constructing_meshes.htm"><b>exportmed</b></a> <br><nobr>exports <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>extended</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br><a href="../files/arithmetic_1d.htm"><b>extremely</b></a> <br><a href="../clipping.htm"><b>extremities</b></a> <br><nobr>extruded <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>extrusion <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>extrusionalongpathobject <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>extrusionsweepobject</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><a href="../clipping.htm"><b>halves</b></a> <br><nobr>having <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</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="../extrusion_along_a_path.htm"><b>helical</b></a> <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/editing_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>hexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>hexa_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>hexa3d</b></a> <br><a href="../extrusion_along_a_path.htm"><b>hexagon</b></a> <br><nobr>hexahedral <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>hexahedralization</b></a> <br><nobr>hexahedrical <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>hexahedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><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
+<nobr><a name="bm_F"></a><a name="subkey_F{"></a>f <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FA"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.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/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../quality_controls.htm"><b>10</b></a> <a href="../pattern_mapping.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../grouping_elements.htm"><b>13</b></a> <a href="../free_borders.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../transforming_meshes.htm"><b>16</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>face_1</b></a> <br><a href="../modifying_meshes.htm"><b>face_2</b></a> <br><nobr>face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../quality_controls.htm"><b>facelist</b></a> <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="../display_entity.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../borders_at_multi-connection.htm"><b>7</b></a> <a href="../aspect_ratio_3d.htm"><b>8</b></a> <a href="../about_viewing_meshes.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../quality_controls.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../modifying_meshes.htm"><b>19</b></a> <a href="../grouping_elements.htm"><b>20</b></a> <a href="../free_borders.htm"><b>21</b></a> <a href="../files/viewing_mesh_info.htm"><b>22</b></a> <a href="../viewing_meshes.htm"><b>23</b></a> <a href="../transforming_meshes.htm"><b>24</b></a> <a href="../selection_filter_library.htm"><b>25</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>facesrotate</b></a> <br><a href="../modifying_meshes.htm"><b>facessmooth</b></a> <br><a href="../modifying_meshes.htm"><b>facestritoquad</b></a> <br><nobr>facex11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facex21 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facey121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez11 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>facez12 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>factor <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>factoryserver <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>failed</b></a> <br><a href="../files/sewing_meshes.htm"><b>far</b></a> <br><a href="../extrusion_along_a_path.htm"><b>fashion</b></a> <br><a href="../files/smoothing.htm"><b>faster</b></a> <br><a name="bms_FE"></a><a name="subkey_FE"></a><a href="../files/creating_groups.htm"><b>feature</b></a> <br><nobr><a name="bms_FI"></a><a name="subkey_FI"></a>field <a href="../adding_quadratic_nodes_and_elements.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/creating_groups.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>6</b></a> <a href="../files/uniting_two_triangles.htm"><b>7</b></a> <a href="../selection_filter_library.htm"><b>8</b></a> </nobr><br><nobr>fields <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</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> <a href="../selection_filter_library.htm"><b>3</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> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><nobr>filter <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>filters <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><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="../transforming_meshes.htm"><b>findcoincidentnodes</b></a> <br><nobr>findorloadcomponent <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>finds</b></a> <br><a href="../files/arithmetic_1d.htm"><b>fine</b></a> <br><a href="../files/arithmetic_1d.htm"><b>fineness</b></a> <br><nobr>first <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>fit</b></a> <br><a href="../modifying_meshes.htm"><b>five</b></a> <br><nobr>fixed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</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/constructing_submeshes.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>following <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.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/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_submeshes.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>14</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>15</b></a> <a href="../files/symmetry.htm"><b>16</b></a> <a href="../files/smoothing.htm"><b>17</b></a> <a href="../files/sewing_meshes.htm"><b>18</b></a> <a href="../files/rotation.htm"><b>19</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>20</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>21</b></a> <a href="../files/merging_nodes.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> <a href="../files/viewing_mesh_info.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="../revolution.htm"><b>29</b></a> </nobr><br><nobr>follows <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.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/sewing_meshes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>font</b></a> <br><nobr>format <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>formed <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> </nobr><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>formula <a href="../aspect_ratio_3d.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> </nobr><br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>fourth</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
index 062e145bc0c3f60096976dd6c7aa914b82a42571..c1545bf055070748078bc2483501096b0c68da8d 100755 (executable)
@@ -33,15 +33,13 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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
-<a name="bms_HI"></a><a name="subkey_HI"></a><a href="../about_viewing_meshes.htm"><b>hide</b></a> <br><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>highlights <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../free_edges.htm"><b>3</b></a> <a href="../free_borders.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><a href="../free_edges.htm"><b>holes</b></a> <br><nobr>how <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a name="bms_HY"></a><a name="subkey_HY"></a><a href="../files/constructing_submeshes.htm"><b>hyp</b></a> <br><nobr>hyp1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp3 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyp4 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyparea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>hypnbseg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>hypotheses <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.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/arithmetic_1d.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> </nobr><br><nobr>hypothesis <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.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="../transforming_meshes.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../grouping_elements.htm"><b>12</b></a> <a href="../viewing_meshes.htm"><b>13</b></a> </nobr><br><nobr>hypvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br>\r
+<a name="bms_FR"></a><a name="subkey_FR"></a><a href="../files/vtk_3d_viewer.htm"><b>frame</b></a> <br><nobr>free <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/smoothing.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../free_edges.htm"><b>7</b></a> <a href="../free_borders.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><a name="bms_FU"></a><a name="subkey_FU"></a><a href="../files/vtk_3d_viewer.htm"><b>functionalities</b></a> <br><nobr>functionality <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/constructing_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> <a href="../merge_elements.htm"><b>5</b></a> <a href="../files/vtk_3d_viewer.htm"><b>6</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br><a href="../files/arithmetic_1d.htm"><b>future</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</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="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.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/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/uniting_two_triangles.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>id_circle</b></a> <br><nobr>id_face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>idbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>idcomp</b></a> <br><a href="../extrusion_along_a_path.htm"><b>idea</b></a> <br><nobr>idedge <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>idface</b></a> <br><nobr>ids <a href="../extrusion_along_a_path.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/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><nobr>idtoobject <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_IF"></a><a name="subkey_IF"></a>if <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_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../constructing_meshes.htm"><b>6</b></a> <a href="../clipping.htm"><b>7</b></a> <a href="../files/constructing_meshes.htm"><b>8</b></a> <a href="../files/smoothing.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/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>13</b></a> <a href="../selection_filter_library.htm"><b>14</b></a> <a href="../revolution.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> </nobr><br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../extrusion_along_a_path.htm"><b>image</b></a> <br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><nobr>importcomponentgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><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><nobr><a name="bms_IN"></a><a name="subkey_IN"></a>including <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr>increasing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><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="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/viewing_mesh_info.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>infos <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>init <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><nobr>initial <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><nobr>initialize <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>input</b></a> <br><a href="../selection_filter_library.htm"><b>insert</b></a> <br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><a href="../pattern_mapping.htm"><b>instead</b></a> <br><a href="../deleting_groups.htm"><b>intact</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><a href="../grouping_elements.htm"><b>intersectgroups</b></a> <br><nobr>intersection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/about_hypotheses.htm"><b>introduce</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>introducing</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> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>inversediag</b></a> <br><nobr>inversion <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>invisible</b></a> <br><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>isplanarface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.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_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_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/translation.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../files/using_operations_on_groups.htm"><b>20</b></a> <a href="../files/uniting_two_triangles.htm"><b>21</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>22</b></a> </nobr><br><nobr>iteration <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>iterations <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
+<a name="bm_G"></a><a name="subkey_G{"></a><a href="../files/constructing_submeshes.htm"><b>g</b></a> <br><a name="bms_GA"></a><a name="subkey_GA"></a><a href="../files/vtk_3d_viewer.htm"><b>gauss</b></a> <br><nobr><a name="bms_GE"></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/constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</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/arithmetic_1d.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>generation <a href="../extrusion.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</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> <a href="../defining_hypotheses_tui.htm"><b>3</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/introduction_to_smesh.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/arithmetic_1d.htm"><b>8</b></a> <a href="../files/symmetry.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/rotation.htm"><b>11</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>12</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>13</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>14</b></a> <a href="../pattern_mapping.htm"><b>15</b></a> <a href="../files/viewing_mesh_info.htm"><b>16</b></a> <a href="../files/translation.htm"><b>17</b></a> </nobr><br><nobr>geometry <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> </nobr><br><nobr>geompy <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><nobr>get <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../clipping.htm"><b>3</b></a> <a href="../about_viewing_meshes.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> </nobr><br><a href="../modifying_meshes.htm"><b>getalgorithm</b></a> <br><a href="../quality_controls.htm"><b>getborders</b></a> <br><nobr>getelementsid <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>geterrorcode</b></a> <br><a href="../constructing_meshes.htm"><b>getid</b></a> <br><a href="../grouping_elements.htm"><b>getlistofid</b></a> <br><nobr>getmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmesh <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>getmesheditor <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>getname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>getnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>getpattern</b></a> <br><a href="../pattern_mapping.htm"><b>getting</b></a> <br><a name="bms_GG"></a><a name="subkey_GG"></a><a href="../defining_hypotheses_tui.htm"><b>gg</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/sewing_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>gives <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/vtk_3d_viewer.htm"><b>global</b></a> <br><a name="bms_GO"></a><a name="subkey_GO"></a><a href="../modifying_meshes.htm"><b>going</b></a> <br><a href="../files/smoothing.htm"><b>good</b></a> <br><a href="../pattern_mapping.htm"><b>got</b></a> <br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/vtk_3d_viewer.htm"><b>graduate</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>graduated</b></a> <br><a href="../about_viewing_meshes.htm"><b>graphically</b></a> <br><a href="../files/arithmetic_1d.htm"><b>great</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>greater</b></a> <br><nobr>greatest <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>green</b></a> <br><nobr>group <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.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/constructing_groups_of_specific_elements.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../grouping_elements.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="../selection_filter_library.htm"><b>15</b></a> </nobr><br><a href="../files/using_operations_on_groups.htm"><b>group1</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12a</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group12b</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>group2</b></a> <br><nobr>grouping <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>grouprotate</b></a> <br><nobr>groups <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/editing_groups.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/merging_nodes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/using_operations_on_groups.htm"><b>10</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>groupsmooth</b></a> <br><a href="../transforming_meshes.htm"><b>groupsofnodes</b></a> <br><a href="../modifying_meshes.htm"><b>grouptritoquad</b></a> <br>\r
 <br><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
+<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><nobr><a name="bms_HA"></a><a name="subkey_HA"></a>half <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../clipping.htm"><b>halves</b></a> <br><nobr>having <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a name="bms_HE"></a><a name="subkey_HE"></a><a href="../modifying_meshes.htm"><b>hedron</b></a> <br><a href="../files/warp.htm"><b>height</b></a> <br><a href="../extrusion_along_a_path.htm"><b>helical</b></a> <br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><a href="../pattern_mapping.htm"><b>hence</b></a> <br><a href="../pattern_mapping.htm"><b>here</b></a> <br><nobr>hexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>hexa_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>hexa3d</b></a> <br><a href="../extrusion_along_a_path.htm"><b>hexagon</b></a> <br><nobr>hexahedral <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>hexahedralization</b></a> <br><nobr>hexahedrical <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><nobr>hexahedrons <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><a name="bms_HH"></a><a name="subkey_HH"></a><a href="../modifying_meshes.htm"><b>hh</b></a> <br><nobr><a name="bms_HI"></a><a name="subkey_HI"></a>hide <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>hides</b></a> <br><a href="../about_viewing_meshes.htm"><b>hiding</b></a> <br><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr>highlighted <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><nobr>highlights <a href="../borders_at_multiconnection_2d.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../free_edges.htm"><b>3</b></a> <a href="../free_borders.htm"><b>4</b></a> </nobr><br><a name="bms_HM"></a><a name="subkey_HM"></a><a href="../files/aspect_ratio.htm"><b>hmax</b></a> <br><a name="bms_HO"></a><a name="subkey_HO"></a><a href="../pattern_mapping.htm"><b>holds</b></a> <br><a href="../free_edges.htm"><b>holes</b></a> <br><nobr>how <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>2</b></a> </nobr><br><a name="bms_HY"></a><a name="subkey_HY"></a><a href="../files/constructing_submeshes.htm"><b>hyp</b></a> <br><nobr>hyp1 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp2 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>hyp3 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyp4 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hyparea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>hypnbseg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>hypotheses <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.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/arithmetic_1d.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../grouping_elements.htm"><b>11</b></a> </nobr><br><nobr>hypothesis <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.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="../grouping_elements.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> <a href="../transforming_meshes.htm"><b>12</b></a> </nobr><br><nobr>hypvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<a name="bm_K"></a><a name="subkey_K{"></a><a href="../files/arithmetic_1d.htm"><b>k</b></a> <br><nobr><a name="bms_KE"></a><a name="subkey_KE"></a>keep <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br><a name="bms_KO"></a><a name="subkey_KO"></a><a href="../modifying_meshes.htm"><b>ko</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/smoothing.htm"><b>laplacian</b></a> <br><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><nobr>last <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>lastnodeid</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_LC"></a><a name="subkey_LC"></a>lcc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>learn <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>leave <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>left <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../quality_controls.htm"><b>legth</b></a> <br><nobr>len <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>length <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/aspect_ratio.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>10</b></a> <a href="../transforming_meshes.htm"><b>11</b></a> <a href="../quality_controls.htm"><b>12</b></a> <a href="../length.htm"><b>13</b></a> <a href="../files/warp.htm"><b>14</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>lengthfromedges</b></a> <br><nobr>less <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>let</b></a> <br><nobr>level <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_LI"></a><a name="subkey_LI"></a><a href="../defining_hypotheses_tui.htm"><b>libnetgenengine</b></a> <br><nobr>library <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>libstdmeshersengine <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>like <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/constructing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</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="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</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/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.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/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../deleting_groups.htm"><b>listed</b></a> <br><a href="../selection_filter_library.htm"><b>lists</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
+<nobr><a name="bm_I"></a><a name="subkey_I{"></a>i <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../grouping_elements.htm"><b>8</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>9</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="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.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/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/arithmetic_1d.htm"><b>8</b></a> <a href="../files/smoothing.htm"><b>9</b></a> <a href="../files/sewing_meshes.htm"><b>10</b></a> <a href="../files/uniting_two_triangles.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>id_arc</b></a> <br><nobr>id_circle <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>id_face</b></a> <br><nobr>id_face1 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>idbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>idcomp</b></a> <br><a href="../extrusion_along_a_path.htm"><b>idea</b></a> <br><nobr>idedge <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../grouping_elements.htm"><b>idface</b></a> <br><nobr>ids <a href="../extrusion_along_a_path.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/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> </nobr><br><nobr>idtoobject <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><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
index 50564f77333b348bb7d0d10e0fa23f370263d810..71bda730f5500b6a936a1755ca9f5f8b85994829 100755 (executable)
@@ -33,11 +33,15 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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
-<a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><a name="bms_LL"></a><a name="subkey_LL"></a><a href="../files/constructing_meshes.htm"><b>ll</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>load <a href="../selection_filter_library.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>local <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/constructing_submeshes.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>locallength</b></a> <br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.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/arithmetic_1d.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr>locations <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><a href="../files/displaying_nodes_numbers.htm"><b>look</b></a> <br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../selection_filter_library.htm"><b>looks</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
+<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_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../clipping.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/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.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/non_conform_mesh_allowed_hypothesis.htm"><b>14</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>15</b></a> <a href="../pattern_mapping.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../grouping_elements.htm"><b>18</b></a> <a href="../files/vtk_3d_viewer.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../selection_filter_library.htm"><b>21</b></a> <a href="../revolution.htm"><b>22</b></a> </nobr><br><a name="bms_II"></a><a name="subkey_II"></a><a href="../modifying_meshes.htm"><b>ii</b></a> <br><nobr><a name="bms_IM"></a><a name="subkey_IM"></a>image <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../viewing_meshes.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><nobr>importcomponentgui <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><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><nobr><a name="bms_IN"></a><a name="subkey_IN"></a>including <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr>increasing <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>index <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><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="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/viewing_mesh_info.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>infos <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>init <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>init_geom</b></a> <br><nobr>initial <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>initialize <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>input <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>inscribed</b></a> <br><a href="../selection_filter_library.htm"><b>insert</b></a> <br><a href="../files/sewing_meshes.htm"><b>inserted</b></a> <br><nobr>instead <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>intact</b></a> <br><a href="../files/creating_groups.htm"><b>integer</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><a href="../grouping_elements.htm"><b>intersectgroups</b></a> <br><nobr>intersection <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>intersects</b></a> <br><a href="../files/about_hypotheses.htm"><b>introduce</b></a> <br><a href="../files/creating_groups.htm"><b>introduces</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>introducing</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> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>inversediag</b></a> <br><nobr>inversion <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../transparency.htm"><b>invisible</b></a> <br><a name="bms_IS"></a><a name="subkey_IS"></a><a href="../modifying_meshes.htm"><b>isdone</b></a> <br><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><a href="../files/vtk_3d_viewer.htm"><b>isometric</b></a> <br><nobr>isplanarface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_IT"></a><a name="subkey_IT"></a>item <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/importing_and_exporting_meshes.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_groups_of_specific_elements.htm"><b>9</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/merging_nodes.htm"><b>17</b></a> <a href="../pattern_mapping.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.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/translation.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><nobr>iteration <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>iterations <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>iterative</b></a> <br>\r
 <br><br>\r
-<nobr><a name="bm_M"></a><a name="subkey_MA"></a>main <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../pattern_mapping.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> </nobr><br><nobr>makearc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>makebox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>makecirclethreepnt</b></a> <br><nobr>makecompound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makecylinderrh</b></a> <br><nobr>makeedge <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>makeface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makefaces</b></a> <br><nobr>makehexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>makequad <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makesketcher</b></a> <br><nobr>makevector <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>makevertex <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>makewire <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>managed</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><a href="../extrusion_along_a_path.htm"><b>mass</b></a> <br><nobr>math <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><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> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> </nobr><br><nobr>maxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>maxelementarea_500 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>maxelementarea_800</b></a> <br><nobr>maxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>maxelementvolume_500 <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>maxelementvolume_900</b></a> <br><nobr>maximum <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/skew.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> </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><nobr>meet <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>mefisto_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>mefisto2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>menu <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/displaying_nodes_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/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/translation.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../selection_filter_library.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/viewing_mesh_info.htm"><b>30</b></a> <a href="../files/using_operations_on_groups.htm"><b>31</b></a> <a href="../files/uniting_two_triangles.htm"><b>32</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>33</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> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>merged</b></a> <br><a href="../transforming_meshes.htm"><b>mergenodes</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> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>mesh <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="../extrusion_along_a_path.htm"><b>6</b></a> <a href="../extrusion.htm"><b>7</b></a> <a href="../deleting_groups.htm"><b>8</b></a> <a href="../defining_hypotheses_tui.htm"><b>9</b></a> <a href="../constructing_meshes.htm"><b>10</b></a> <a href="../clipping.htm"><b>11</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>12</b></a> <a href="../borders_at_multi-connection.htm"><b>13</b></a> <a href="../aspect_ratio_3d.htm"><b>14</b></a> <a href="../about_viewing_meshes.htm"><b>15</b></a> <a href="../files/length_of_edges.htm"><b>16</b></a> <a href="../files/introduction_to_smesh.htm"><b>17</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>18</b></a> <a href="../files/editing_groups.htm"><b>19</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>20</b></a> <a href="../files/displacing_nodes.htm"><b>21</b></a> <a href="../files/diagonal_iversion_of_elements.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/changing_orientation_of_elements.htm"><b>28</b></a> <a href="../files/aspect_ratio.htm"><b>29</b></a> <a href="../files/arithmetic_1d.htm"><b>30</b></a> <a href="../files/area_of_elements.htm"><b>31</b></a> <a href="../files/translation.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="../files/sewing_meshes.htm"><b>37</b></a> <a href="../files/running_smesh_module.htm"><b>38</b></a> <a href="../files/rotation.htm"><b>39</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>40</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>41</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>42</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>43</b></a> <a href="../files/minimum_angle.htm"><b>44</b></a> <a href="../files/merging_nodes.htm"><b>45</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>46</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>47</b></a> <a href="../transforming_meshes.htm"><b>48</b></a> <a href="../selection_filter_library.htm"><b>49</b></a> <a href="../revolution.htm"><b>50</b></a> <a href="../quality_controls.htm"><b>51</b></a> <a href="../presentation.htm"><b>52</b></a> <a href="../pattern_mapping.htm"><b>53</b></a> <a href="../modifying_meshes.htm"><b>54</b></a> <a href="../grouping_elements.htm"><b>55</b></a> <a href="../free_edges.htm"><b>56</b></a> <a href="../free_borders.htm"><b>57</b></a> <a href="../files/warp.htm"><b>58</b></a> <a href="../files/viewing_mesh_info.htm"><b>59</b></a> <a href="../files/using_operations_on_groups.htm"><b>60</b></a> <a href="../files/uniting_two_triangles.htm"><b>61</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>62</b></a> <a href="../viewing_meshes.htm"><b>63</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>mesh_1</b></a> <br><a href="../quality_controls.htm"><b>mesh_borders_at_multi</b></a> <br><a href="../quality_controls.htm"><b>mesh_freebord</b></a> <br><nobr>meshbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</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> <a href="../extrusion_along_a_path.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../about_viewing_meshes.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/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../transforming_meshes.htm"><b>13</b></a> <a href="../selection_filter_library.htm"><b>14</b></a> <a href="../modifying_meshes.htm"><b>15</b></a> <a href="../viewing_meshes.htm"><b>16</b></a> </nobr><br><nobr>meshing <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_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/length_of_edges.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.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/arithmetic_1d.htm"><b>12</b></a> <a href="../files/area_of_elements.htm"><b>13</b></a> <a href="../files/minimum_angle.htm"><b>14</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>15</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>meshmed</b></a> <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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../files/minimum_angle.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>mirrored</b></a> <br><a href="../transforming_meshes.htm"><b>mirrorobject</b></a> <br><nobr><a name="bms_MO"></a><a name="subkey_MO"></a>mode <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../presentation.htm"><b>2</b></a> </nobr><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="../presentation.htm"><b>modes</b></a> <br><nobr>modification <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_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/translation.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/merging_nodes.htm"><b>18</b></a> <a href="../revolution.htm"><b>19</b></a> <a href="../pattern_mapping.htm"><b>20</b></a> <a href="../files/uniting_two_triangles.htm"><b>21</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>22</b></a> </nobr><br><nobr>modify <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>modifying</b></a> <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/creating_groups.htm"><b>mouse</b></a> <br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>movenode</b></a> <br><nobr>moving <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/displacing_nodes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a name="bms_MP"></a><a name="subkey_MP"></a><a href="../transforming_meshes.htm"><b>mport</b></a> <br><nobr><a name="bms_MU"></a><a name="subkey_MU"></a>multi <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a href="../quality_controls.htm"><b>multiconnection</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br><nobr>must <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr><a name="bms_MY"></a><a name="subkey_MY"></a>mystudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>mystudyid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</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_JP"></a><a name="subkey_JP"></a>jpeg <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr>jpg <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_JU"></a><a name="subkey_JU"></a>just <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</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><br><br></p><p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_K"></a><a name="subkey_K{"></a>k <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_KE"></a><a name="subkey_KE"></a>keep <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>key</b></a> <br><a href="../files/cutting_quadrangles.htm"><b>keyboard</b></a> <br><a name="bms_KN"></a><a name="subkey_KN"></a><a href="../pattern_mapping.htm"><b>knowing</b></a> <br><a name="bms_KO"></a><a name="subkey_KO"></a><a href="../modifying_meshes.htm"><b>ko</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/vtk_3d_viewer.htm"><b>labels</b></a> <br><a href="../files/smoothing.htm"><b>laplacian</b></a> <br><nobr>last <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>lastnodeid</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="../pattern_mapping.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_LC"></a><a name="subkey_LC"></a>lcc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a name="bms_LE"></a><a name="subkey_LE"></a><a href="../files/viewing_mesh_info.htm"><b>learn</b></a> <br><nobr>least <a href="../files/smoothing.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>leave <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>left <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><a href="../quality_controls.htm"><b>legth</b></a> <br><nobr>len <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>length <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/aspect_ratio.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/sewing_meshes.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="../quality_controls.htm"><b>11</b></a> <a href="../length.htm"><b>12</b></a> <a href="../files/warp.htm"><b>13</b></a> <a href="../files/vtk_3d_viewer.htm"><b>14</b></a> <a href="../transforming_meshes.htm"><b>15</b></a> </nobr><br><nobr>lengthfromedges <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>less <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../selection_filter_library.htm"><b>3</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>let</b></a> <br><nobr>level <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> </nobr><br><a name="bms_LI"></a><a name="subkey_LI"></a><a href="../defining_hypotheses_tui.htm"><b>libnetgenengine</b></a> <br><nobr>library <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>libstdmeshersengine <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><nobr>like <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</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="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</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="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</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="../extrusion_along_a_path.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/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> </nobr><br><nobr>listed <a href="../deleting_groups.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>lists</b></a> <br><a name="bms_LK"></a><a name="subkey_LK"></a><a href="../files/arithmetic_1d.htm"><b>lk</b></a> <br><a name="bms_LL"></a><a name="subkey_LL"></a><a href="../files/vtk_3d_viewer.htm"><b>ll</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>load <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>loadfromface</b></a> <br><nobr>local <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>locallength</b></a> <br><nobr>locally <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.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/arithmetic_1d.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><nobr>locations <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>lock <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>locking</b></a> <br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><a href="../files/displaying_nodes_numbers.htm"><b>look</b></a> <br><a href="../pattern_mapping.htm"><b>looking</b></a> <br><a href="../selection_filter_library.htm"><b>looks</b></a> <br><a href="../files/arithmetic_1d.htm"><b>low</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="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>4</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>5</b></a> <a href="../pattern_mapping.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="../selection_filter_library.htm"><b>9</b></a> </nobr><br><nobr>makearc <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>makebox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>makeboxdxdydz</b></a> <br><nobr>makecirclethreepnt <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>makecompound <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>makecylinderrh <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>makeedge <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>makeface <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makefaces</b></a> <br><nobr>makehexa <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>makemesh</b></a> <br><a href="../modifying_meshes.htm"><b>makepolygon</b></a> <br><nobr>makequad <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>makesketcher</b></a> <br><nobr>makevector <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>makevertex <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>makewire <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>managed</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><nobr>mapping <a href="../files/max._element_area_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>marked</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>marks</b></a> <br><a href="../extrusion_along_a_path.htm"><b>mass</b></a> <br><nobr>math <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.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> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>max_element_area</b></a> <br><nobr>maxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>maxelementarea_500</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>maxelementarea_800</b></a> <br><nobr>maxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>maxelementvolume_500</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>maxelementvolume_900</b></a> <br><nobr>maximum <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/smoothing.htm"><b>3</b></a> <a href="../files/skew.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/viewing_mesh_info.htm"><b>7</b></a> </nobr><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
index fd6f6ffcf294cce24fc79b4eff820fed21fb8f54..b1ce0853edbf63870ab062a03dbf5e8b652fb643 100755 (executable)
@@ -33,11 +33,9 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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_NA"></a><a name="subkey_NA"></a>name <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../grouping_elements.htm"><b>7</b></a> <a href="../files/using_operations_on_groups.htm"><b>8</b></a> <a href="../viewing_meshes.htm"><b>9</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>names</b></a> <br><nobr><a name="bms_NB"></a><a name="subkey_NB"></a>nb <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbedges</b></a> <br><a href="../viewing_meshes.htm"><b>nbfaces</b></a> <br><a href="../viewing_meshes.htm"><b>nbhexas</b></a> <br><nobr>nbnodes <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbpolygons</b></a> <br><a href="../viewing_meshes.htm"><b>nbpolyhedrons</b></a> <br><a href="../viewing_meshes.htm"><b>nbprisms</b></a> <br><a href="../viewing_meshes.htm"><b>nbpyramids</b></a> <br><a href="../viewing_meshes.htm"><b>nbquadrangles</b></a> <br><a href="../viewing_meshes.htm"><b>nbtetras</b></a> <br><a href="../viewing_meshes.htm"><b>nbtriangles</b></a> <br><a href="../viewing_meshes.htm"><b>nbvolumes</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/adding_nodes_and_elements.htm"><b>necessary</b></a> <br><a href="../files/constructing_meshes.htm"><b>need</b></a> <br><a href="../aspect_ratio_3d.htm"><b>needed</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><a href="../files/about_meshing_algorithms.htm"><b>netgen</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgenplugin</b></a> <br><nobr>new <a href="../clipping.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/reassigning_hypotheses_and_algorithms.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> </nobr><br><nobr>next <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><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/smoothing.htm"><b>5</b></a> <a href="../files/sewing_meshes.htm"><b>6</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../pattern_mapping.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> </nobr><br><nobr>nodes <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/aspect_ratio.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/taper.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="../files/sewing_meshes.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/merging_nodes.htm"><b>19</b></a> <a href="../transforming_meshes.htm"><b>20</b></a> <a href="../selection_filter_library.htm"><b>21</b></a> <a href="../presentation.htm"><b>22</b></a> <a href="../pattern_mapping.htm"><b>23</b></a> <a href="../modifying_meshes.htm"><b>24</b></a> <a href="../files/warp.htm"><b>25</b></a> <a href="../files/viewing_mesh_info.htm"><b>26</b></a> <a href="../viewing_meshes.htm"><b>27</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>none</b></a> <br><nobr>normal <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>note <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr>now <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> </nobr><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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/smoothing.htm"><b>8</b></a> <a href="../files/sewing_meshes.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../files/viewing_mesh_info.htm"><b>14</b></a> <a href="../viewing_meshes.htm"><b>15</b></a> </nobr><br><nobr>numbering <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><nobr>numberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr>numberofsegments_10 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>numbers <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>numerical</b></a> <br>\r
+<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><nobr>meet <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>2</b></a> </nobr><br><nobr>mefisto_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>mefisto2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>menu <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.htm"><b>7</b></a> <a href="../files/displaying_nodes_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_submeshes.htm"><b>13</b></a> <a href="../files/constructing_meshes.htm"><b>14</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>15</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>18</b></a> <a href="../files/symmetry.htm"><b>19</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>25</b></a> <a href="../files/merging_nodes.htm"><b>26</b></a> <a href="../pattern_mapping.htm"><b>27</b></a> <a href="../files/viewing_mesh_info.htm"><b>28</b></a> <a href="../files/using_operations_on_groups.htm"><b>29</b></a> <a href="../files/uniting_two_triangles.htm"><b>30</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>31</b></a> <a href="../files/translation.htm"><b>32</b></a> <a href="../selection_filter_library.htm"><b>33</b></a> <a href="../revolution.htm"><b>34</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> <a href="../merge_elements.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>merged <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../merge_elements.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>mergeequalelements</b></a> <br><a href="../transforming_meshes.htm"><b>mergenodes</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> <a href="../merge_elements.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> </nobr><br><nobr>mesh <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="../extrusion_along_a_path.htm"><b>5</b></a> <a href="../extrusion.htm"><b>6</b></a> <a href="../deleting_groups.htm"><b>7</b></a> <a href="../defining_hypotheses_tui.htm"><b>8</b></a> <a href="../constructing_meshes.htm"><b>9</b></a> <a href="../clipping.htm"><b>10</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>11</b></a> <a href="../borders_at_multi-connection.htm"><b>12</b></a> <a href="../aspect_ratio_3d.htm"><b>13</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>14</b></a> <a href="../about_viewing_meshes.htm"><b>15</b></a> <a href="../files/introduction_to_smesh.htm"><b>16</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>17</b></a> <a href="../files/editing_groups.htm"><b>18</b></a> <a href="../files/displaying_nodes_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/cutting_quadrangles.htm"><b>22</b></a> <a href="../files/creating_groups.htm"><b>23</b></a> <a href="../files/constructing_submeshes.htm"><b>24</b></a> <a href="../files/constructing_meshes.htm"><b>25</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>26</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>27</b></a> <a href="../files/aspect_ratio.htm"><b>28</b></a> <a href="../files/arithmetic_1d.htm"><b>29</b></a> <a href="../files/area_of_elements.htm"><b>30</b></a> <a href="../files/adding_nodes_and_elements.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/smoothing.htm"><b>34</b></a> <a href="../files/skew.htm"><b>35</b></a> <a href="../files/sewing_meshes.htm"><b>36</b></a> <a href="../files/running_smesh_module.htm"><b>37</b></a> <a href="../files/rotation.htm"><b>38</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>39</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>40</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>41</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>42</b></a> <a href="../files/minimum_angle.htm"><b>43</b></a> <a href="../files/merging_nodes.htm"><b>44</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>45</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>46</b></a> <a href="../files/length_of_edges.htm"><b>47</b></a> <a href="../quality_controls.htm"><b>48</b></a> <a href="../presentation.htm"><b>49</b></a> <a href="../pattern_mapping.htm"><b>50</b></a> <a href="../modifying_meshes.htm"><b>51</b></a> <a href="../merge_elements.htm"><b>52</b></a> <a href="../grouping_elements.htm"><b>53</b></a> <a href="../free_edges.htm"><b>54</b></a> <a href="../free_borders.htm"><b>55</b></a> <a href="../files/warp.htm"><b>56</b></a> <a href="../files/vtk_3d_viewer.htm"><b>57</b></a> <a href="../files/viewing_mesh_info.htm"><b>58</b></a> <a href="../files/using_operations_on_groups.htm"><b>59</b></a> <a href="../files/uniting_two_triangles.htm"><b>60</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>61</b></a> <a href="../files/translation.htm"><b>62</b></a> <a href="../volume.htm"><b>63</b></a> <a href="../viewing_meshes.htm"><b>64</b></a> <a href="../transforming_meshes.htm"><b>65</b></a> <a href="../selection_filter_library.htm"><b>66</b></a> <a href="../revolution.htm"><b>67</b></a> </nobr><br><nobr>mesh_1 <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>mesh_2</b></a> <br><a href="../quality_controls.htm"><b>mesh_borders_at_multi</b></a> <br><a href="../quality_controls.htm"><b>mesh_freebord</b></a> <br><nobr>meshbox <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</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> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../transforming_meshes.htm"><b>8</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>mesheditor</b></a> <br><a href="../pattern_mapping.htm"><b>mesher</b></a> <br><nobr>meshes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../about_viewing_meshes.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/constructing_meshes.htm"><b>7</b></a> <a href="../files/area_of_elements.htm"><b>8</b></a> <a href="../files/smoothing.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/non_conform_mesh_allowed_hypothesis.htm"><b>12</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>13</b></a> <a href="../modifying_meshes.htm"><b>14</b></a> <a href="../files/vtk_3d_viewer.htm"><b>15</b></a> <a href="../volume.htm"><b>16</b></a> <a href="../viewing_meshes.htm"><b>17</b></a> <a href="../transforming_meshes.htm"><b>18</b></a> <a href="../selection_filter_library.htm"><b>19</b></a> </nobr><br><nobr>meshing <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_hypotheses.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../defining_hypotheses_tui.htm"><b>5</b></a> <a href="../about_viewing_meshes.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/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/minimum_angle.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/length_of_edges.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>meshmed</b></a> <br><nobr>method <a href="../files/smoothing.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/smoothing.htm"><b>methods</b></a> <br><nobr><a name="bms_MI"></a><a name="subkey_MI"></a>middle <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><nobr>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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/minimum_angle.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>8</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>mirrored</b></a> <br><a href="../transforming_meshes.htm"><b>mirrorobject</b></a> <br><nobr><a name="bms_MO"></a><a name="subkey_MO"></a>mode <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><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="../presentation.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.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/changing_orientation_of_elements.htm"><b>10</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>11</b></a> <a href="../files/symmetry.htm"><b>12</b></a> <a href="../files/smoothing.htm"><b>13</b></a> <a href="../files/sewing_meshes.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/merging_nodes.htm"><b>18</b></a> <a href="../pattern_mapping.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/translation.htm"><b>22</b></a> <a href="../revolution.htm"><b>23</b></a> </nobr><br><nobr>modify <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>modifying</b></a> <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/creating_groups.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>modules</b></a> <br><nobr>mouse <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><nobr>move <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>movenode</b></a> <br><nobr>moving <a href="../files/displacing_nodes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_MU"></a><a name="subkey_MU"></a>multi <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> </nobr><br><a href="../quality_controls.htm"><b>multiconnection</b></a> <br><nobr>must <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><a name="bms_MY"></a><a name="subkey_MY"></a><a href="../quality_controls.htm"><b>myelemid</b></a> <br><a href="../quality_controls.htm"><b>mypnt1</b></a> <br><a href="../quality_controls.htm"><b>mypnt2</b></a> <br><nobr>mystudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> <a href="../viewing_meshes.htm"><b>4</b></a> </nobr><br><nobr>mystudyid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</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/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/editing_groups.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/constructing_submeshes.htm"><b>10</b></a> <a href="../files/constructing_meshes.htm"><b>11</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/translation.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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="../presentation.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../modifying_meshes.htm"><b>23</b></a> <a href="../files/viewing_mesh_info.htm"><b>24</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>25</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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../presentation.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> </nobr><br><nobr>objecttoid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><a href="../extrusion_along_a_path.htm"><b>oblique</b></a> <br><nobr>obtain <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.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/changing_orientation_of_elements.htm"><b>11</b></a> <a href="../files/smoothing.htm"><b>12</b></a> <a href="../files/sewing_meshes.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="../revolution.htm"><b>16</b></a> <a href="../modifying_meshes.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_two_triangles.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> </nobr><br><a name="bms_ON"></a><a name="subkey_ON"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>once</b></a> <br><nobr>one <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.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/arithmetic_1d.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> <a href="../files/sewing_meshes.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/non_conform_mesh_allowed_hypothesis.htm"><b>15</b></a> <a href="../selection_filter_library.htm"><b>16</b></a> <a href="../revolution.htm"><b>17</b></a> <a href="../quality_controls.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../free_edges.htm"><b>20</b></a> <a href="../free_borders.htm"><b>21</b></a> <a href="../files/using_operations_on_groups.htm"><b>22</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>23</b></a> <a href="../viewing_meshes.htm"><b>24</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/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../transparency.htm"><b>opaque</b></a> <br><a href="../files/about_hypotheses.htm"><b>operate</b></a> <br><nobr>operation <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/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/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.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="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><nobr>operations <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> <a href="../transforming_meshes.htm"><b>9</b></a> </nobr><br><nobr>optional <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</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/about_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>orientation <a href="../clipping.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>4</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 href="../files/constructing_meshes.htm"><b>otherwise</b></a> <br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../files/constructing_meshes.htm"><b>our</b></a> <br><a href="../free_edges.htm"><b>outlined</b></a> <br><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
-<a name="bm_P"></a><a name="subkey_PA"></a><a href="../files/creating_groups.htm"><b>page</b></a> <br><a href="../files/arithmetic_1d.htm"><b>pairs</b></a> <br><nobr>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../clipping.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</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/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><nobr>path <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><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="../aspect_ratio_3d.htm"><b>pentahedron</b></a> <br><a href="../aspect_ratio_3d.htm"><b>pentahedrons</b></a> <br><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><nobr>perform <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><nobr><a name="bms_PI"></a><a name="subkey_PI"></a>pi <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>picture <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../free_edges.htm"><b>4</b></a> <a href="../free_borders.htm"><b>5</b></a> </nobr><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="../clipping.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> </nobr><br><a href="../clipping.htm"><b>planes</b></a> <br><nobr>platform <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>please</b></a> <br><nobr>plus <a href="../extrusion.htm"><b>1</b></a> <a href="../revolution.htm"><b>2</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\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="../constructing_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/editing_groups.htm"><b>3</b></a> <a href="../files/creating_groups.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="../grouping_elements.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> <a href="../selection_filter_library.htm"><b>11</b></a> </nobr><br><nobr>names <a href="../files/vtk_3d_viewer.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_NB"></a><a name="subkey_NB"></a>nb <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>nb_segments_1</b></a> <br><a href="../modifying_meshes.htm"><b>nb_vert</b></a> <br><nobr>nbedges <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbfaces</b></a> <br><a href="../viewing_meshes.htm"><b>nbhexas</b></a> <br><nobr>nbnodes <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbpolygons</b></a> <br><a href="../viewing_meshes.htm"><b>nbpolyhedrons</b></a> <br><a href="../viewing_meshes.htm"><b>nbprisms</b></a> <br><a href="../viewing_meshes.htm"><b>nbpyramids</b></a> <br><nobr>nbquadrangles <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>nbtetras</b></a> <br><nobr>nbtriangles <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>nbvolumes <a href="../viewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/adding_nodes_and_elements.htm"><b>necessary</b></a> <br><a href="../files/constructing_meshes.htm"><b>need</b></a> <br><a href="../files/arithmetic_1d.htm"><b>negative</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><a href="../files/about_meshing_algorithms.htm"><b>netgen</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen_3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgen3d</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>netgenplugin</b></a> <br><nobr>new <a href="../clipping.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displacing_nodes.htm"><b>3</b></a> <a href="../files/creating_groups.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="../pattern_mapping.htm"><b>8</b></a> <a href="../files/using_operations_on_groups.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> </nobr><br><nobr>next <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><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/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/displacing_nodes.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../quality_controls.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>node_ids</b></a> <br><a href="../modifying_meshes.htm"><b>node_start_id</b></a> <br><nobr>nodes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/creating_groups.htm"><b>7</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>8</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/aspect_ratio.htm"><b>10</b></a> <a href="../files/arithmetic_1d.htm"><b>11</b></a> <a href="../files/area_of_elements.htm"><b>12</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>13</b></a> <a href="../files/taper.htm"><b>14</b></a> <a href="../files/smoothing.htm"><b>15</b></a> <a href="../files/skew.htm"><b>16</b></a> <a href="../files/sewing_meshes.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/merging_nodes.htm"><b>20</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>21</b></a> <a href="../quality_controls.htm"><b>22</b></a> <a href="../presentation.htm"><b>23</b></a> <a href="../pattern_mapping.htm"><b>24</b></a> <a href="../modifying_meshes.htm"><b>25</b></a> <a href="../files/warp.htm"><b>26</b></a> <a href="../files/viewing_mesh_info.htm"><b>27</b></a> <a href="../viewing_meshes.htm"><b>28</b></a> <a href="../transforming_meshes.htm"><b>29</b></a> <a href="../selection_filter_library.htm"><b>30</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>none</b></a> <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/aspect_ratio.htm"><b>normalisation</b></a> <br><nobr>note <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>nothing</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr>now <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> </nobr><br><br><br></p><p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 84e5db9240d08ab529766f5c5bc6280d499a5987..b07d041bd3789b0ee07d72ed89a5490c02af488e 100755 (executable)
@@ -33,11 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
 <p class="ftsbody" >\r
-<nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../revolution.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>point111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point212 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point222 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> </nobr><br><nobr>pointstruct <a href="../transforming_meshes.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>polygon</b></a> <br><nobr>polygons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>polyhedral</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>polyhedron</b></a> <br><nobr>polyhedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>pop <a href="../deleting_groups.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</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><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>possess</b></a> <br><a href="../selection_filter_library.htm"><b>possibility</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>powerful</b></a> <br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/adding_nodes_and_elements.htm"><b>precision</b></a> <br><a href="../presentation.htm"><b>preferences</b></a> <br><a href="../selection_filter_library.htm"><b>prefixed</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><nobr>presentation <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><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><a href="../extrusion_along_a_path.htm"><b>pressing</b></a> <br><nobr>preview <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/cutting_quadrangles.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> </nobr><br><nobr>previous <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.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="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>principle</b></a> <br><nobr>print <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>prisms</b></a> <br><nobr>probleme <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</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><nobr>proceed <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>proceeds</b></a> <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><nobr>program <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><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><nobr>propagate <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>propagatea</b></a> <br><nobr>propagates <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/adding_nodes_and_elements.htm"><b>provide</b></a> <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><nobr><a name="bms_PX"></a><a name="subkey_PX"></a>px <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>px1</b></a> <br><nobr><a name="bms_PY"></a><a name="subkey_PY"></a>py <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>py1</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>pyramidal</b></a> <br><a href="../viewing_meshes.htm"><b>pyramids</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>python</b></a> <br><nobr><a name="bms_PZ"></a><a name="subkey_PZ"></a>pz <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>pz1</b></a> <br>\r
+<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="../defining_hypotheses_tui.htm"><b>4</b></a> <a href="../constructing_meshes.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/creating_groups.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/smoothing.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> <a href="../files/vtk_3d_viewer.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../viewing_meshes.htm"><b>16</b></a> <a href="../transforming_meshes.htm"><b>17</b></a> <a href="../revolution.htm"><b>18</b></a> </nobr><br><nobr>numbering <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>2</b></a> </nobr><br><nobr>numberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../constructing_meshes.htm"><b>numberofsegments_10</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>numberofsegments_7</b></a> <br><nobr>numbers <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> </nobr><br><a href="../files/cutting_quadrangles.htm"><b>numeric</b></a> <br><a href="../files/about_hypotheses.htm"><b>numerical</b></a> <br>\r
 <br><br>\r
-<a name="bm_Q"></a><a name="subkey_QI"></a><a href="../aspect_ratio_3d.htm"><b>qi</b></a> <br><a name="bms_QK"></a><a name="subkey_QK"></a><a href="../aspect_ratio_3d.htm"><b>qk</b></a> <br><nobr><a name="bms_QU"></a><a name="subkey_QU"></a>quad <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>quad2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangle <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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../modifying_meshes.htm"><b>11</b></a> </nobr><br><nobr>quadrangle_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangles <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/length_of_edges.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/area_of_elements.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../modifying_meshes.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> </nobr><br><nobr>quadrangular <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../transforming_meshes.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>quadtotri</b></a> <br><nobr>quality <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/length_of_edges.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/aspect_ratio.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../quality_controls.htm"><b>14</b></a> <a href="../length.htm"><b>15</b></a> <a href="../free_edges.htm"><b>16</b></a> <a href="../free_borders.htm"><b>17</b></a> <a href="../files/warp.htm"><b>18</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>19</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <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/about_hypotheses.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>7</b></a> <a href="../files/editing_groups.htm"><b>8</b></a> <a href="../files/creating_groups.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/constructing_groups_of_specific_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>14</b></a> <a href="../files/rotation.htm"><b>15</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>16</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>17</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.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="../presentation.htm"><b>21</b></a> <a href="../pattern_mapping.htm"><b>22</b></a> <a href="../modifying_meshes.htm"><b>23</b></a> <a href="../files/vtk_3d_viewer.htm"><b>24</b></a> <a href="../files/viewing_mesh_info.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="../volume.htm"><b>28</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="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../presentation.htm"><b>8</b></a> <a href="../files/vtk_3d_viewer.htm"><b>9</b></a> </nobr><br><nobr>objecttoid <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../files/creating_groups.htm"><b>objet</b></a> <br><a href="../extrusion_along_a_path.htm"><b>oblique</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>obtain</b></a> <br><a name="bms_OF"></a><a name="subkey_OF"></a><a href="../files/vtk_3d_viewer.htm"><b>offset</b></a> <br><nobr><a name="bms_OK"></a><a name="subkey_OK"></a>ok <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.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/changing_orientation_of_elements.htm"><b>11</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>12</b></a> <a href="../files/smoothing.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="../modifying_meshes.htm"><b>17</b></a> <a href="../files/using_operations_on_groups.htm"><b>18</b></a> <a href="../files/uniting_two_triangles.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../revolution.htm"><b>21</b></a> </nobr><br><a name="bms_ON"></a><a name="subkey_ON"></a><a href="../files/uniting_a_set_of_triangles.htm"><b>once</b></a> <br><nobr>one <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../deleting_groups.htm"><b>3</b></a> <a href="../adding_quadratic_nodes_and_elements.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/arithmetic_1d.htm"><b>9</b></a> <a href="../files/symmetry.htm"><b>10</b></a> <a href="../files/smoothing.htm"><b>11</b></a> <a href="../files/sewing_meshes.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/non_conform_mesh_allowed_hypothesis.htm"><b>15</b></a> <a href="../quality_controls.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../merge_elements.htm"><b>18</b></a> <a href="../free_edges.htm"><b>19</b></a> <a href="../free_borders.htm"><b>20</b></a> <a href="../files/using_operations_on_groups.htm"><b>21</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>22</b></a> <a href="../files/translation.htm"><b>23</b></a> <a href="../viewing_meshes.htm"><b>24</b></a> <a href="../selection_filter_library.htm"><b>25</b></a> <a href="../revolution.htm"><b>26</b></a> </nobr><br><nobr>ones <a href="../extrusion.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/sewing_meshes.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><nobr>onto <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a name="bms_OO"></a><a name="subkey_OO"></a><a href="../files/aspect_ratio.htm"><b>oo</b></a> <br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../transparency.htm"><b>opaque</b></a> <br><a href="../files/about_hypotheses.htm"><b>operate</b></a> <br><nobr>operation <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../deleting_groups.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/aspect_ratio.htm"><b>16</b></a> <a href="../files/arithmetic_1d.htm"><b>17</b></a> <a href="../files/area_of_elements.htm"><b>18</b></a> <a href="../files/taper.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="../files/skew.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/non_conform_mesh_allowed_hypothesis.htm"><b>28</b></a> <a href="../files/minimum_angle.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/length_of_edges.htm"><b>33</b></a> <a href="../pattern_mapping.htm"><b>34</b></a> <a href="../merge_elements.htm"><b>35</b></a> <a href="../length.htm"><b>36</b></a> <a href="../free_edges.htm"><b>37</b></a> <a href="../free_borders.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_two_triangles.htm"><b>41</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>42</b></a> <a href="../files/translation.htm"><b>43</b></a> <a href="../volume.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><nobr>operations <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>opposite <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>option</b></a> <br><nobr>optional <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>options <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../files/symmetry.htm"><b>3</b></a> <a href="../files/translation.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_OR"></a><a name="subkey_OR"></a>order <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>ordinary <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>orientate</b></a> <br><nobr>orientation <a href="../clipping.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>5</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><nobr>otherwise <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><a name="bms_OU"></a><a name="subkey_OU"></a><a href="../files/constructing_meshes.htm"><b>our</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>out</b></a> <br><a href="../free_edges.htm"><b>outlined</b></a> <br><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_R"></a><a name="subkey_RA"></a>radio <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr>range <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>ratio <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/constructing_meshes.htm"><b>ready</b></a> <br><a href="../about_viewing_meshes.htm"><b>recent</b></a> <br><a href="../free_edges.htm"><b>red</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="../about_viewing_meshes.htm"><b>refreshes</b></a> <br><nobr>regular_1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>regular1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><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="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.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/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../selection_filter_library.htm"><b>9</b></a> <a href="../grouping_elements.htm"><b>10</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>11</b></a> <a href="../viewing_meshes.htm"><b>12</b></a> </nobr><br><nobr>removeelements <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>removehypothesis <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>removenodes</b></a> <br><a href="../deleting_groups.htm"><b>removes</b></a> <br><nobr>removing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><nobr>renumbering <a href="../files/renumbering_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>renumbernodes</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/arithmetic_1d.htm"><b>2</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><a href="../presentation.htm"><b>represented</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/displacing_nodes.htm"><b>1</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>2</b></a> <a href="../files/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><a href="../aspect_ratio_3d.htm"><b>resembles</b></a> <br><a href="../extrusion_along_a_path.htm"><b>respect</b></a> <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>result <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../files/using_operations_on_groups.htm"><b>5</b></a> </nobr><br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>results <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>ret <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><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="../length.htm"><b>returns</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> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<nobr><a name="bm_P"></a><a name="subkey_PA"></a>page <a href="../files/editing_groups.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>pairs</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>panning</b></a> <br><nobr>parameter <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>parameters <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../clipping.htm"><b>3</b></a> <a href="../about_viewing_meshes.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/vtk_3d_viewer.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><a href="../files/constructing_submeshes.htm"><b>parent</b></a> <br><nobr>part <a href="../files/smoothing.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>particular</b></a> <br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>parts</b></a> <br><a href="../modifying_meshes.htm"><b>pass</b></a> <br><nobr>path <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../selection_filter_library.htm"><b>4</b></a> </nobr><br><nobr>pattern <a href="../pattern_mapping.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><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="../aspect_ratio_3d.htm"><b>pentahedron</b></a> <br><a href="../aspect_ratio_3d.htm"><b>pentahedrons</b></a> <br><nobr>perform <a href="../files/symmetry.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>3</b></a> <a href="../files/using_operations_on_groups.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a href="../files/aspect_ratio.htm"><b>perimeter</b></a> <br><nobr><a name="bms_PI"></a><a name="subkey_PI"></a>pi <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>picture <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../borders_at_multi-connection.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../merge_elements.htm"><b>4</b></a> <a href="../free_edges.htm"><b>5</b></a> <a href="../free_borders.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_PL"></a><a name="subkey_PL"></a>place <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><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="../clipping.htm"><b>1</b></a> <a href="../files/symmetry.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> </nobr><br><a href="../clipping.htm"><b>planes</b></a> <br><nobr>platform <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../deleting_groups.htm"><b>please</b></a> <br><a href="../files/arithmetic_1d.htm"><b>plot</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_PN"></a><a name="subkey_PN"></a>png <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.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="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/rotation.htm"><b>5</b></a> <a href="../pattern_mapping.htm"><b>6</b></a> <a href="../modifying_meshes.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> <a href="../files/vtk_3d_viewer.htm"><b>9</b></a> <a href="../transforming_meshes.htm"><b>10</b></a> <a href="../revolution.htm"><b>11</b></a> </nobr><br><nobr>point111 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point112 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point121 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point122 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point211 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point212 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point221 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>point222 <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../pattern_mapping.htm"><b>7</b></a> <a href="../files/vtk_3d_viewer.htm"><b>8</b></a> <a href="../files/translation.htm"><b>9</b></a> </nobr><br><nobr>pointstruct <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>polygon <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>polygonal</b></a> <br><nobr>polygons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><nobr>polyhedral <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>polyhedron <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>polyhedrons <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>pop <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/displaying_nodes_numbers.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> <a href="../files/vtk_3d_viewer.htm"><b>3</b></a> </nobr><br><a href="../pattern_mapping.htm"><b>positions</b></a> <br><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>possess</b></a> <br><a href="../selection_filter_library.htm"><b>possibility</b></a> <br><nobr>possible <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>post</b></a> <br><a href="../selection_filter_library.htm"><b>powerful</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 5287461a808ebbc0ca06af07dfee92f6bb2aab0a..435bee5d493760d742e0d1ff57bedd34b95b65f6 100755 (executable)
@@ -33,9 +33,11 @@ A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; }
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 <p class="ftsbody" align="center"><a href="whlstf8.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="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.htm"><b>3</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../presentation.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_RO"></a><a name="subkey_RO"></a>rotate <a href="../files/rotation.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../modifying_meshes.htm"><b>3</b></a> </nobr><br><nobr>rotated <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../extrusion.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../revolution.htm"><b>4</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>rotateobject</b></a> <br><nobr>rotation <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/rotation.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../revolution.htm"><b>5</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>rotationsweepobject</b></a> <br><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><nobr><a name="bms_RU"></a><a name="subkey_RU"></a>rule <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/non_conform_mesh_allowed_hypothesis.htm"><b>rules</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
+<a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/adding_nodes_and_elements.htm"><b>precision</b></a> <br><nobr>preference <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../presentation.htm"><b>preferences</b></a> <br><a href="../selection_filter_library.htm"><b>prefixed</b></a> <br><a href="../files/creating_groups.htm"><b>preprocessing</b></a> <br><a href="../files/using_operations_on_groups.htm"><b>present</b></a> <br><nobr>presentation <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>presentations</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../about_viewing_meshes.htm"><b>presents</b></a> <br><a href="../pattern_mapping.htm"><b>preserved</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><nobr>pressed <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>pressing</b></a> <br><nobr>preview <a href="../clipping.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../selection_filter_library.htm"><b>5</b></a> </nobr><br><nobr>previous <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/uniting_a_set_of_triangles.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="../pattern_mapping.htm"><b>4</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>principle</b></a> <br><nobr>print <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../modifying_meshes.htm"><b>4</b></a> <a href="../grouping_elements.htm"><b>5</b></a> <a href="../viewing_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../viewing_meshes.htm"><b>prisms</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>pro</b></a> <br><nobr>probleme <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/smoothing.htm"><b>procedure</b></a> <br><nobr>proceed <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>proceeds</b></a> <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/constructing_meshes.htm"><b>program</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/arithmetic_1d.htm"><b>prompts</b></a> <br><nobr>propagate <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr>propagates <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>propagation <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>properties</b></a> <br><a href="../files/adding_nodes_and_elements.htm"><b>provide</b></a> <br><nobr>provides <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/cutting_quadrangles.htm"><b>2</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><nobr><a name="bms_PX"></a><a name="subkey_PX"></a>px <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>px1 <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_PY"></a><a name="subkey_PY"></a>py <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>py1 <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshing_algorithms.htm"><b>pyramidal</b></a> <br><a href="../viewing_meshes.htm"><b>pyramids</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>python</b></a> <br><nobr><a name="bms_PZ"></a><a name="subkey_PZ"></a>pz <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> </nobr><br><nobr>pz1 <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br>\r
 <br><br>\r
-<nobr><a name="bm_S"></a><a name="subkey_S{"></a>s <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../files/constructing_meshes.htm"><b>5</b></a> <a href="../files/arithmetic_1d.htm"><b>6</b></a> <a href="../files/sewing_meshes.htm"><b>7</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>8</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>9</b></a> <a href="../selection_filter_library.htm"><b>10</b></a> <a href="../files/using_operations_on_groups.htm"><b>11</b></a> </nobr><br><nobr>sample <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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>5</b></a> <a href="../borders_at_multi-connection.htm"><b>6</b></a> <a href="../aspect_ratio_3d.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/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/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.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="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><a href="../selection_filter_library.htm"><b>save</b></a> <br><a name="bms_SC"></a><a name="subkey_SC"></a><a href="../files/about_quality_controls.htm"><b>scalar</b></a> <br><a href="../files/arithmetic_1d.htm"><b>scale</b></a> <br><nobr>script <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.htm"><b>3</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>4</b></a> <a href="../borders_at_multi-connection.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/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_submeshes.htm"><b>15</b></a> <a href="../files/constructing_meshes.htm"><b>16</b></a> <a href="../files/aspect_ratio.htm"><b>17</b></a> <a href="../files/arithmetic_1d.htm"><b>18</b></a> <a href="../files/area_of_elements.htm"><b>19</b></a> <a href="../files/translation.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/symmetry.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="../files/sewing_meshes.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/non_conform_mesh_allowed_hypothesis.htm"><b>30</b></a> <a href="../files/minimum_angle.htm"><b>31</b></a> <a href="../files/merging_nodes.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../revolution.htm"><b>35</b></a> <a href="../length.htm"><b>36</b></a> <a href="../free_edges.htm"><b>37</b></a> <a href="../free_borders.htm"><b>38</b></a> <a href="../files/warp.htm"><b>39</b></a> <a href="../files/viewing_mesh_info.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><nobr>scripts <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/constructing_meshes.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><nobr>search <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../selection_filter_library.htm"><b>2</b></a> </nobr><br><nobr>second <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>section <a href="../clipping.htm"><b>1</b></a> <a href="../files/constructing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>sections <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><nobr>see <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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>6</b></a> <a href="../borders_at_multi-connection.htm"><b>7</b></a> <a href="../aspect_ratio_3d.htm"><b>8</b></a> <a href="../about_viewing_meshes.htm"><b>9</b></a> <a href="../files/length_of_edges.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/editing_groups.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>14</b></a> <a href="../files/cutting_quadrangles.htm"><b>15</b></a> <a href="../files/creating_groups.htm"><b>16</b></a> <a href="../files/constructing_submeshes.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/translation.htm"><b>21</b></a> <a href="../files/taper.htm"><b>22</b></a> <a href="../files/symmetry.htm"><b>23</b></a> <a href="../files/smoothing.htm"><b>24</b></a> <a href="../files/skew.htm"><b>25</b></a> <a href="../files/sewing_meshes.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.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="../revolution.htm"><b>36</b></a> <a href="../length.htm"><b>37</b></a> <a href="../free_edges.htm"><b>38</b></a> <a href="../free_borders.htm"><b>39</b></a> <a href="../files/warp.htm"><b>40</b></a> <a href="../files/using_operations_on_groups.htm"><b>41</b></a> <a href="../files/uniting_two_triangles.htm"><b>42</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>43</b></a> </nobr><br><nobr>segment <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../transforming_meshes.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> </nobr><br><nobr>segments <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/arithmetic_1d.htm"><b>5</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> <a href="../modifying_meshes.htm"><b>8</b></a> </nobr><br><nobr>select <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="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.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/creating_groups.htm"><b>11</b></a> <a href="../files/constructing_submeshes.htm"><b>12</b></a> <a href="../files/constructing_meshes.htm"><b>13</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>14</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>15</b></a> <a href="../files/translation.htm"><b>16</b></a> <a href="../files/symmetry.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/sewing_meshes.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> <a href="../files/rotation.htm"><b>21</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>22</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>23</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>24</b></a> <a href="../files/merging_nodes.htm"><b>25</b></a> <a href="../revolution.htm"><b>26</b></a> <a href="../pattern_mapping.htm"><b>27</b></a> <a href="../files/viewing_mesh_info.htm"><b>28</b></a> <a href="../files/using_operations_on_groups.htm"><b>29</b></a> <a href="../files/uniting_two_triangles.htm"><b>30</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>31</b></a> </nobr><br><nobr>selected <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../about_viewing_meshes.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/changing_orientation_of_elements.htm"><b>6</b></a> <a href="../selection_filter_library.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> </nobr><br><nobr>selecting <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../extrusion.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/smoothing.htm"><b>6</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>7</b></a> <a href="../revolution.htm"><b>8</b></a> <a href="../presentation.htm"><b>9</b></a> </nobr><br><nobr>selection <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../deleting_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/changing_orientation_of_elements.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</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><a href="../about_viewing_meshes.htm"><b>session</b></a> <br><nobr>set <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="../extrusion_along_a_path.htm"><b>4</b></a> <a href="../clipping.htm"><b>5</b></a> <a href="../about_viewing_meshes.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/displacing_nodes.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/constructing_meshes.htm"><b>11</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>12</b></a> <a href="../files/arithmetic_1d.htm"><b>13</b></a> <a href="../files/smoothing.htm"><b>14</b></a> <a href="../files/sewing_meshes.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>16</b></a> <a href="../selection_filter_library.htm"><b>17</b></a> <a href="../presentation.htm"><b>18</b></a> <a href="../pattern_mapping.htm"><b>19</b></a> <a href="../modifying_meshes.htm"><b>20</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>21</b></a> <a href="../transparency.htm"><b>22</b></a> </nobr><br><nobr>setcurrentstudy <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> <a href="../viewing_meshes.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>setdisplaymode</b></a> <br><nobr>setlength <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><nobr>setmargin <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setmaxelementarea <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>setmaxelementvolume <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><nobr>setname <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> </nobr><br><nobr>setnumberofsegments <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>setnumfunctor <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>setpredicate <a href="../quality_controls.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><a href="../files/sewing_meshes.htm"><b>sets</b></a> <br><nobr>setting <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="../selection_filter_library.htm"><b>4</b></a> </nobr><br><a href="../files/constructing_meshes.htm"><b>settings</b></a> <br><a href="../defining_hypotheses_tui.htm"><b>settransparency</b></a> <br><nobr>sew <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewbordertoside</b></a> <br><a href="../transforming_meshes.htm"><b>sewconformfreeborders</b></a> <br><a href="../transforming_meshes.htm"><b>sewfreeborders</b></a> <br><nobr>sewing <a href="../files/sewing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> </nobr><br><a href="../transforming_meshes.htm"><b>sewsideelements</b></a> <br><nobr><a name="bms_SG"></a><a name="subkey_SG"></a>sg <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../transforming_meshes.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../modifying_meshes.htm"><b>5</b></a> <a href="../grouping_elements.htm"><b>6</b></a> <a href="../viewing_meshes.htm"><b>7</b></a> </nobr><br><nobr><a name="bms_SH"></a><a name="subkey_SH"></a>shading <a href="../presentation.htm"><b>1</b></a> <a href="../transparency.htm"><b>2</b></a> </nobr><br><nobr>shall <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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/changing_orientation_of_elements.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="../files/rotation.htm"><b>7</b></a> <a href="../files/merging_nodes.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/uniting_two_triangles.htm"><b>11</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>12</b></a> </nobr><br><nobr>shape <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../pattern_mapping.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shapetype <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../transforming_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>shift <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> <a href="../files/removing_nodes_and_elements.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_along_a_path.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/arithmetic_1d.htm"><b>4</b></a> <a href="../files/smoothing.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="../selection_filter_library.htm"><b>8</b></a> <a href="../revolution.htm"><b>9</b></a> <a href="../pattern_mapping.htm"><b>10</b></a> <a href="../files/using_operations_on_groups.htm"><b>11</b></a> </nobr><br><nobr>show <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../extrusion_along_a_path.htm"><b>showing</b></a> <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="../selection_filter_library.htm"><b>shows</b></a> <br><a href="../presentation.htm"><b>shrink</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
+<a name="bm_Q"></a><a name="subkey_QI"></a><a href="../aspect_ratio_3d.htm"><b>qi</b></a> <br><nobr><a name="bms_QK"></a><a name="subkey_QK"></a>qk <a href="../aspect_ratio_3d.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_QU"></a><a name="subkey_QU"></a>quad <a href="../modifying_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>quad2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangle <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.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/aspect_ratio.htm"><b>9</b></a> <a href="../files/adding_nodes_and_elements.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="../modifying_meshes.htm"><b>13</b></a> <a href="../transforming_meshes.htm"><b>14</b></a> </nobr><br><nobr>quadrangle_2d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../grouping_elements.htm"><b>2</b></a> </nobr><br><nobr>quadrangles <a href="../files/about_meshes.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/area_of_elements.htm"><b>4</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../modifying_meshes.htm"><b>9</b></a> <a href="../viewing_meshes.htm"><b>10</b></a> <a href="../transforming_meshes.htm"><b>11</b></a> <a href="../revolution.htm"><b>12</b></a> </nobr><br><nobr>quadrangular <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../defining_hypotheses_tui.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../transforming_meshes.htm"><b>6</b></a> </nobr><br><nobr>quadratic <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>2</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>quadtotri</b></a> <br><nobr>quality <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../borders_at_multiconnection_2d.htm"><b>2</b></a> <a href="../borders_at_multi-connection.htm"><b>3</b></a> <a href="../aspect_ratio_3d.htm"><b>4</b></a> <a href="../about_viewing_meshes.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/aspect_ratio.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/area_of_elements.htm"><b>10</b></a> <a href="../files/taper.htm"><b>11</b></a> <a href="../files/skew.htm"><b>12</b></a> <a href="../files/minimum_angle.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../quality_controls.htm"><b>15</b></a> <a href="../length.htm"><b>16</b></a> <a href="../free_edges.htm"><b>17</b></a> <a href="../free_borders.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>20</b></a> <a href="../volume.htm"><b>21</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>quantity</b></a> <br>\r
+<br><br>\r
+<a name="bm_R"></a><a name="subkey_R{"></a><a href="../modifying_meshes.htm"><b>r1</b></a> <br><nobr><a name="bms_RA"></a><a name="subkey_RA"></a>radio <a href="../files/cutting_quadrangles.htm"><b>1</b></a> <a href="../files/creating_groups.htm"><b>2</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>3</b></a> <a href="../files/symmetry.htm"><b>4</b></a> <a href="../files/sewing_meshes.htm"><b>5</b></a> <a href="../files/rotation.htm"><b>6</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>7</b></a> </nobr><br><nobr>radius <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>range <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/arithmetic_1d.htm"><b>ranges</b></a> <br><nobr>ranging <a href="../files/creating_groups.htm"><b>1</b></a> <a href="../files/arithmetic_1d.htm"><b>2</b></a> </nobr><br><nobr>ratio <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/aspect_ratio.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/smoothing.htm"><b>6</b></a> <a href="../quality_controls.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/constructing_meshes.htm"><b>ready</b></a> <br><a href="../about_viewing_meshes.htm"><b>recent</b></a> <br><a href="../free_edges.htm"><b>red</b></a> <br><nobr>redefine <a href="../about_viewing_meshes.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><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> <a href="../volume.htm"><b>3</b></a> </nobr><br><a href="../about_viewing_meshes.htm"><b>refreshes</b></a> <br><a href="../files/aspect_ratio.htm"><b>regular</b></a> <br><nobr>regular_1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../viewing_meshes.htm"><b>5</b></a> </nobr><br><nobr>regular1d <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><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/vtk_3d_viewer.htm"><b>remote</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>removal</b></a> <br><nobr>remove <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../deleting_groups.htm"><b>2</b></a> <a href="../constructing_meshes.htm"><b>3</b></a> <a href="../files/editing_groups.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/changing_orientation_of_elements.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../grouping_elements.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../viewing_meshes.htm"><b>11</b></a> <a href="../selection_filter_library.htm"><b>12</b></a> </nobr><br><nobr>removeelements <a href="../quality_controls.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><nobr>removehypothesis <a href="../constructing_meshes.htm"><b>1</b></a> <a href="../viewing_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>removenodes</b></a> <br><a href="../deleting_groups.htm"><b>removes</b></a> <br><nobr>removing <a href="../files/removing_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/renumbering_nodes_and_elements.htm"><b>renumber</b></a> <br><nobr>renumbering <a href="../files/renumbering_nodes_and_elements.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>renumbernodes</b></a> <br><a href="../modifying_meshes.htm"><b>reorient</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>reoriented</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/arithmetic_1d.htm"><b>2</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>represented <a href="../presentation.htm"><b>1</b></a> <a href="../files/vtk_3d_viewer.htm"><b>2</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>representing</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../aspect_ratio_3d.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>required <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/uniting_two_triangles.htm"><b>3</b></a> </nobr><br><a href="../files/vtk_3d_viewer.htm"><b>reset</b></a> <br><a href="../files/vtk_3d_viewer.htm"><b>resizes</b></a> <br><a href="../extrusion_along_a_path.htm"><b>respect</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>respective</b></a> <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/vtk_3d_viewer.htm"><b>restores</b></a> <br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><nobr>result <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../grouping_elements.htm"><b>4</b></a> <a href="../files/using_operations_on_groups.htm"><b>5</b></a> </nobr><br><nobr>resulting <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../files/using_operations_on_groups.htm"><b>3</b></a> </nobr><br><nobr>results <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/smoothing.htm"><b>2</b></a> </nobr><br><nobr>ret <a href="../defining_hypotheses_tui.htm"><b>1</b></a> <a href="../constructing_meshes.htm"><b>2</b></a> <a href="../grouping_elements.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a href="../modifying_meshes.htm"><b>return</b></a> <br><a href="../length.htm"><b>returns</b></a> <br><a href="../files/aspect_ratio.htm"><b>reveals</b></a> <br><nobr>reverse <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../pattern_mapping.htm"><b>2</b></a> </nobr><br><a href="../adding_quadratic_nodes_and_elements.htm"><b>reverses</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="../modifying_meshes.htm"><b>2</b></a> <a href="../revolution.htm"><b>3</b></a> </nobr><br><a href="../revolution.htm"><b>revolved</b></a> <br><br><br></p><p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&gt;&gt;</b></a>\r
 \r
 </body>\r
 \r
index 96e9afaabaaf4fadb603157a3a3ac30f8a4dd5a2..4082c0a5cf618d81752dc7e4124ed4737f1c89a2 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_{"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_{" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{D" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{R" target="ftslist" title="search letter {R"><b>{R</b></a> <a href="whlstf0.htm#bms_{T" target="ftslist" title="search letter {T"><b>{T</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 href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_{" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{D" target="ftslist" title="search letter {D"><b>{D</b></a> <a href="whlstf0.htm#bms_{E" target="ftslist" title="search letter {E"><b>{E</b></a> <a href="whlstf0.htm#bms_{R" target="ftslist" title="search letter {R"><b>{R</b></a> <a href="whlstf0.htm#bms_{X" target="ftslist" title="search letter {X"><b>{X</b></a> <a href="whlstf0.htm#bms_{T" target="ftslist" title="search letter {T"><b>{T</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 5887b7f2dfa821b572b6578e35ffc46b302f5fa6..028f9161bffc9ed1c3e813c1f1df25dbb4e52716 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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_AF" target="ftslist" title="search letter AF"><b>AF</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AI" target="ftslist" title="search letter AI"><b>AI</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AM" target="ftslist" title="search letter AM"><b>AM</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="whlstf1.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf1.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf1.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf1.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf1.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 A "><b>A </b></a> <a href="whlstf0.htm#bms_AA" target="ftslist" title="search letter AA"><b>AA</b></a> <a href="whlstf0.htm#bms_AB" 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_AF" target="ftslist" title="search letter AF"><b>AF</b></a> <a href="whlstf0.htm#bms_AG" target="ftslist" title="search letter AG"><b>AG</b></a> <a href="whlstf0.htm#bms_AI" target="ftslist" title="search letter AI"><b>AI</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AM" target="ftslist" title="search letter AM"><b>AM</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="whlstf1.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf1.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf1.htm#bms_AT" target="ftslist" title="search letter AT"><b>AT</b></a> <a href="whlstf1.htm#bms_AU" target="ftslist" title="search letter AU"><b>AU</b></a> <a href="whlstf1.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf1.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 dfd413347bebe36323fa30d213ffcc8dd1c32702..0b0edbd3045e09f13fb744b10485839e35039268 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf5.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf5.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
+<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="whlstf6.htm#bm_J" target="ftslist" title="search letter JO"><b>JO</b></a> <a href="whlstf6.htm#bms_JP" target="ftslist" title="search letter JP"><b>JP</b></a> <a href="whlstf6.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 d3df6cf0dd61b74f7a598db5e118e44f136b2285..e3d54053090a265c182e5da5dd67373c17c46d27 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf5.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf5.htm#bms_KE" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf5.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a> <a href="whlstf5.htm#bms_KO" target="ftslist" title="search letter KO"><b>KO</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="whlstf6.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf6.htm#bms_KE" target="ftslist" title="search letter KE"><b>KE</b></a> <a href="whlstf6.htm#bms_KN" target="ftslist" title="search letter KN"><b>KN</b></a> <a href="whlstf6.htm#bms_KO" target="ftslist" title="search letter KO"><b>KO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index e21d26ebeabc4a2a20d0c0097184726563c28a6a..f733d9bac8118a11a2392ed80824f2b3b1ec8965 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf5.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf5.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf5.htm#bms_LC" target="ftslist" title="search letter LC"><b>LC</b></a> <a href="whlstf5.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf5.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf6.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf6.htm#bms_LL" target="ftslist" title="search letter LL"><b>LL</b></a> <a href="whlstf6.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf6.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
+<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="whlstf6.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf6.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf6.htm#bms_LC" target="ftslist" title="search letter LC"><b>LC</b></a> <a href="whlstf6.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf6.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf6.htm#bms_LK" target="ftslist" title="search letter LK"><b>LK</b></a> <a href="whlstf6.htm#bms_LL" target="ftslist" title="search letter LL"><b>LL</b></a> <a href="whlstf6.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a> <a href="whlstf6.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 0dc3c66ecaacbbebd095b744726705c917a4177e..3c3bc9b26faacbcf1e7c4eb93739094e23929d47 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf6.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf6.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf6.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf6.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf6.htm#bms_MP" target="ftslist" title="search letter MP"><b>MP</b></a> <a href="whlstf6.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a> <a href="whlstf6.htm#bms_MY" target="ftslist" title="search letter MY"><b>MY</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="whlstf6.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf7.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf7.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf7.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf7.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a> <a href="whlstf7.htm#bms_MY" target="ftslist" title="search letter MY"><b>MY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index e350d8d85493d7e08508b41dbd5d596b6db3405e..aa0fdcd09889fa5d674e182d9fe3e911c34259d5 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf6.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf7.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf7.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf7.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf7.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf7.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="whlstf7.htm#bm_N" target="ftslist" title="search letter N "><b>N </b></a> <a href="whlstf7.htm#bms_NA" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf7.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf7.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf7.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf8.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 0e43816be77ba5191ee8552f4246d874979c74f8..cf91f4143be07b1cc4374fe41b14d8ddc3b4a67a 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf7.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf7.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf7.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf7.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf7.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf7.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf7.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf7.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="whlstf8.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf8.htm#bms_OF" target="ftslist" title="search letter OF"><b>OF</b></a> <a href="whlstf8.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf8.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf8.htm#bms_OO" target="ftslist" title="search letter OO"><b>OO</b></a> <a href="whlstf8.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf8.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf8.htm#bms_OT" target="ftslist" title="search letter OT"><b>OT</b></a> <a href="whlstf8.htm#bms_OU" target="ftslist" title="search letter OU"><b>OU</b></a> <a href="whlstf8.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 5548d75208a544ce34ee2436304556ad4fba2572..548f4c571b08232fae0cea21bfc63d3b40b2a755 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf7.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf7.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf7.htm#bms_PI" target="ftslist" title="search letter PI"><b>PI</b></a> <a href="whlstf7.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf8.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf8.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf8.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf8.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whlstf8.htm#bms_PX" target="ftslist" title="search letter PX"><b>PX</b></a> <a href="whlstf8.htm#bms_PY" target="ftslist" title="search letter PY"><b>PY</b></a> <a href="whlstf8.htm#bms_PZ" target="ftslist" title="search letter PZ"><b>PZ</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="whlstf8.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf8.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf8.htm#bms_PI" target="ftslist" title="search letter PI"><b>PI</b></a> <a href="whlstf8.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf8.htm#bms_PN" target="ftslist" title="search letter PN"><b>PN</b></a> <a href="whlstf8.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf9.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a> <a href="whlstf9.htm#bms_PS" target="ftslist" title="search letter PS"><b>PS</b></a> <a href="whlstf9.htm#bms_PU" target="ftslist" title="search letter PU"><b>PU</b></a> <a href="whlstf9.htm#bms_PX" target="ftslist" title="search letter PX"><b>PX</b></a> <a href="whlstf9.htm#bms_PY" target="ftslist" title="search letter PY"><b>PY</b></a> <a href="whlstf9.htm#bms_PZ" target="ftslist" title="search letter PZ"><b>PZ</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index c1f802da9cd75587f0d1739b116e169a78086fb3..ba26cc8b135d03885bd9d6cfb6de47fb49c7f30b 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
 \r
-<p class="ftsheader"><a name="subkey_Q"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf8.htm#bm_Q" target="ftslist" title="search letter QI"><b>QI</b></a> <a href="whlstf8.htm#bms_QK" target="ftslist" title="search letter QK"><b>QK</b></a> <a href="whlstf8.htm#bms_QU" target="ftslist" title="search letter QU"><b>QU</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_Q"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf9.htm#bm_Q" target="ftslist" title="search letter QI"><b>QI</b></a> <a href="whlstf9.htm#bms_QK" target="ftslist" title="search letter QK"><b>QK</b></a> <a href="whlstf9.htm#bms_QU" target="ftslist" title="search letter QU"><b>QU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index d421e5f990999bf4e4128292f321122b98aabf4a..508acf2529922cec77d548143fb6330abece3976 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf8.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf8.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf9.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf9.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf9.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="whlstf9.htm#bm_R" target="ftslist" title="search letter R "><b>R </b></a> <a href="whlstf9.htm#bms_RA" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf9.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf10.htm#bms_RI" target="ftslist" title="search letter RI"><b>RI</b></a> <a href="whlstf10.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf10.htm#bms_RR" target="ftslist" title="search letter RR"><b>RR</b></a> <a href="whlstf10.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 9a900084a9df6db10235e4fcf0dc22241e5424f8..9cf29aaf91ac87130f5a08ee9f4afa017d125adf 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf9.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf9.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf9.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf9.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf9.htm#bms_SG" target="ftslist" title="search letter SG"><b>SG</b></a> <a href="whlstf9.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf10.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf10.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf10.htm#bms_SL" target="ftslist" title="search letter SL"><b>SL</b></a> <a href="whlstf10.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf10.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf10.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf10.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf10.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf10.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf10.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
+<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="whlstf10.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf10.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf10.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf10.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf10.htm#bms_SG" target="ftslist" title="search letter SG"><b>SG</b></a> <a href="whlstf10.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf11.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf11.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf11.htm#bms_SL" target="ftslist" title="search letter SL"><b>SL</b></a> <a href="whlstf11.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf11.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf11.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf11.htm#bms_SQ" target="ftslist" title="search letter SQ"><b>SQ</b></a> <a href="whlstf11.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf11.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a> <a href="whlstf11.htm#bms_SW" target="ftslist" title="search letter SW"><b>SW</b></a> <a href="whlstf11.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 3f1ebc933840f8c4e3c51f7c02e9790da24e0b1e..04c0e41fe432c0ef607d4550fd7ae472b661fec0 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf1.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf1.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf1.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf1.htm#bms_BL" target="ftslist" title="search letter BL"><b>BL</b></a> <a href="whlstf1.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
+<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="whlstf1.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf1.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf1.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf1.htm#bms_BL" target="ftslist" title="search letter BL"><b>BL</b></a> <a href="whlstf1.htm#bms_BM" target="ftslist" title="search letter BM"><b>BM</b></a> <a href="whlstf1.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 db8d0f9c2c700f8720ff82d58b65248bae46d1ea..911d9dff3823e52cf9600cd2c3f459f8ca37d4e6 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf10.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf10.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf10.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf10.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf10.htm#bms_TM" target="ftslist" title="search letter TM"><b>TM</b></a> <a href="whlstf10.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf10.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf11.htm#bms_TT" target="ftslist" title="search letter TT"><b>TT</b></a> <a href="whlstf11.htm#bms_TU" target="ftslist" title="search letter TU"><b>TU</b></a> <a href="whlstf11.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf11.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="whlstf11.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf11.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf11.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf11.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf11.htm#bms_TI" target="ftslist" title="search letter TI"><b>TI</b></a> <a href="whlstf11.htm#bms_TM" target="ftslist" title="search letter TM"><b>TM</b></a> <a href="whlstf11.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf12.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf12.htm#bms_TT" target="ftslist" title="search letter TT"><b>TT</b></a> <a href="whlstf12.htm#bms_TU" target="ftslist" title="search letter TU"><b>TU</b></a> <a href="whlstf12.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf12.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 0115e00c78aee1ad1dcfef723c866f9a5a1ae835..bdf778148382a6108874a900588eba3f2e5735c6 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf11.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf11.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf11.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf11.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="whlstf12.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf12.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf12.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf12.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 deb26cc72f5850e1e9ab1c80991524b81b4d080b..7f1c9c5de27acda5697a6b87c099b7d9f725026d 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf11.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf11.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf11.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf11.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf11.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf11.htm#bms_VX" target="ftslist" title="search letter VX"><b>VX</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="whlstf12.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf12.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf12.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf12.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf12.htm#bms_VK" target="ftslist" title="search letter VK"><b>VK</b></a> <a href="whlstf12.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf12.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a> <a href="whlstf12.htm#bms_VX" target="ftslist" title="search letter VX"><b>VX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 404291137eda527cab3adce4d50deb8f667ecdbe..593e8934338558fa124912124c762ed58df82138 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf11.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf11.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf11.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf11.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf11.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whlstf11.htm#bms_WW" target="ftslist" title="search letter WW"><b>WW</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="whlstf12.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf12.htm#bms_WE" target="ftslist" title="search letter WE"><b>WE</b></a> <a href="whlstf12.htm#bms_WH" target="ftslist" title="search letter WH"><b>WH</b></a> <a href="whlstf13.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf13.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a> <a href="whlstf13.htm#bms_WW" target="ftslist" title="search letter WW"><b>WW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 2bee610ae755d4d140f915b5996c46928be14376..4a5b35370b8ce0129afd70481ed3e67082e2a1c5 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf11.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf12.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="whlstf13.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf13.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
index c486f0eb578cf9107b85cfff8b5f53b3a9e7fc0e..54024bd8f250370b89c9987e55a790f5ae35da88 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf12.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf12.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
+<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="whlstf13.htm#bm_Z" target="ftslist" title="search letter Z "><b>Z </b></a> <a href="whlstf13.htm#bms_ZE" target="ftslist" title="search letter ZE"><b>ZE</b></a> <a href="whlstf13.htm#bms_ZO" target="ftslist" title="search letter ZO"><b>ZO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index e397aa250efe979b03b5308051ab12e8a8627235..85723035704873d80627043bda07d4bb8623fe4f 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="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_CI" target="ftslist" title="search letter CI"><b>CI</b></a> <a href="whlstf1.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf2.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
+<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="whlstf2.htm#bms_CI" target="ftslist" title="search letter CI"><b>CI</b></a> <a href="whlstf2.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf2.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="whlstf3.htm#bms_CU" target="ftslist" title="search letter CU"><b>CU</b></a> <a href="whlstf3.htm#bms_CY" target="ftslist" title="search letter CY"><b>CY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 77d8cf42d58b4226d0aa5b0bb35abf9d75a7545e..15a11997f7167a5e796385d2bc9fe7f3c4618d6c 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf2.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf2.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf3.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf3.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="whlstf3.htm#bm_D" target="ftslist" title="search letter D "><b>D </b></a> <a href="whlstf3.htm#bms_DE" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf3.htm#bms_DH" target="ftslist" title="search letter DH"><b>DH</b></a> <a href="whlstf3.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf3.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a> <a href="whlstf3.htm#bms_DR" target="ftslist" title="search letter DR"><b>DR</b></a> <a href="whlstf3.htm#bms_DU" target="ftslist" title="search letter DU"><b>DU</b></a> <a href="whlstf3.htm#bms_DX" target="ftslist" title="search letter DX"><b>DX</b></a> <a href="whlstf3.htm#bms_DY" target="ftslist" title="search letter DY"><b>DY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
 \r
 </body>\r
 \r
index 36c77c99217a8438fd3173247cb3c7c8d7ebdabb..8791bfe0d33b57e9939558caae682f875c09f1fa 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf3.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf3.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf3.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf3.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf3.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf3.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf3.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_ER" target="ftslist" title="search letter ER"><b>ER</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
+<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="whlstf3.htm#bm_E" target="ftslist" title="search letter E "><b>E </b></a> <a href="whlstf3.htm#bms_EA" target="ftslist" title="search letter EA"><b>EA</b></a> <a href="whlstf3.htm#bms_ED" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf4.htm#bms_EF" target="ftslist" title="search letter EF"><b>EF</b></a> <a href="whlstf4.htm#bms_EI" target="ftslist" title="search letter EI"><b>EI</b></a> <a href="whlstf4.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf4.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf4.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf4.htm#bms_ER" target="ftslist" title="search letter ER"><b>ER</b></a> <a href="whlstf4.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf4.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf4.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 f6c4e882227ac909187bede42569bdbdcd7317d3..3b07963e3f69740ba607669bd011458ebff428eb 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf4.htm#bm_F" target="ftslist" title="search letter F "><b>F </b></a> <a href="whlstf4.htm#bms_FA" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf4.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf4.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf4.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf4.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf4.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="whlstf4.htm#bm_F" target="ftslist" title="search letter F "><b>F </b></a> <a href="whlstf4.htm#bms_FA" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf4.htm#bms_FE" target="ftslist" title="search letter FE"><b>FE</b></a> <a href="whlstf4.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf4.htm#bms_FL" target="ftslist" title="search letter FL"><b>FL</b></a> <a href="whlstf4.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf5.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf5.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 8e905ec462f954d4f3addcb2f1e79672fb054d72..e21537ab0ef14f4a3fe9d9dfe1f7ce92efdd7e0c 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf4.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf4.htm#bms_GG" target="ftslist" title="search letter GG"><b>GG</b></a> <a href="whlstf4.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf4.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf4.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="whlstf5.htm#bm_G" target="ftslist" title="search letter G "><b>G </b></a> <a href="whlstf5.htm#bms_GA" target="ftslist" title="search letter GA"><b>GA</b></a> <a href="whlstf5.htm#bms_GE" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf5.htm#bms_GG" target="ftslist" title="search letter GG"><b>GG</b></a> <a href="whlstf5.htm#bms_GI" target="ftslist" title="search letter GI"><b>GI</b></a> <a href="whlstf5.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf5.htm#bms_GO" target="ftslist" title="search letter GO"><b>GO</b></a> <a href="whlstf5.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 3fa0c5689602abcf852844d2d96a18bd04764a5c..537d978990ebd301971bcbf92567cd81419fd9bc 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf4.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf4.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf4.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf5.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf5.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf5.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="whlstf5.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf5.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf5.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf5.htm#bms_HH" target="ftslist" title="search letter HH"><b>HH</b></a> <a href="whlstf5.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf5.htm#bms_HM" target="ftslist" title="search letter HM"><b>HM</b></a> <a href="whlstf5.htm#bms_HO" target="ftslist" title="search letter HO"><b>HO</b></a> <a href="whlstf5.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 0cd296c340ef1deafadd569cc486de809491a74f..a0e5efa0a693e60b26f11e326f323761904c2d85 100755 (executable)
@@ -37,7 +37,7 @@ body {background-color:White; }
 </head>\r
 <body marginheight="0"  marginwidth="0" bgproperties="fixed">\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="whlstf5.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf5.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf5.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf5.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf5.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf5.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf5.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf5.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="whlstf5.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf5.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf5.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf6.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf6.htm#bms_II" target="ftslist" title="search letter II"><b>II</b></a> <a href="whlstf6.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf6.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf6.htm#bms_IS" target="ftslist" title="search letter IS"><b>IS</b></a> <a href="whlstf6.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 86348a194b81ecbfab01787d75ba2637f2d15157..8f23daa63027ddc736553ff1ff9b465fb4add9a1 100755 (executable)
@@ -48,7 +48,7 @@ img {vertial-align:middle;}
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt2.htm#3" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About Hypotheses</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/arithmetic_1d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> 1D Meshing Hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Max Element Area hypothesis</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> 2D Meshing Hypotheses</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_volume_hypothsis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Max Element Volume hypothesis</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Additional Hypotheses</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
index d1c22f43b54c1a97024a61359c98c96f4c016a79..45e5c40976db227e9e50c0fca2045ff27b72f485 100755 (executable)
@@ -42,7 +42,8 @@ img {vertial-align:middle;}
 &nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running MESH 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="4"></a><a href="whlstt1.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../about_viewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About viewing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../about_viewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/vtk_3d_viewer.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> VTK 3D Viewer</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"> Mesh infos</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"> Numbering</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../presentation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Display Mode</a></nobr><br>\r
index cd1933f020fa7d2e910270834ee3440a74264be1..ec4f0045dc320c6677384794be8ce81497d56c56 100755 (executable)
@@ -57,6 +57,7 @@ img {vertial-align:middle;}
 &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</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../aspect_ratio_3d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Aspect ratio 3D</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../volume.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Volume</a></nobr><br>\r
 &nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" 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="7"></a><a href="whlstt7.htm#7" 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="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>\r
index ed5f4bbd743a591407a009f0f7d9b20534e4286d..4fd98145347ccb1c1d99e8420313a2be6aa1ade0 100755 (executable)
@@ -46,6 +46,7 @@ img {vertial-align:middle;}
 &nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" 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="7"></a><a href="whlstt1.htm#7" 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="../adding_quadratic_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding quadratic 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="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
index b7eb512ddc29a96b13a99711c7bf9edb23d2df34..8498fba26199b656982634b3806b26e5ea712a15 100755 (executable)
@@ -46,6 +46,7 @@ img {vertial-align:middle;}
 &nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" 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="7"></a><a href="whlstt1.htm#7" 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="../adding_quadratic_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding quadratic 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="8"></a><a href="whlstt7.htm#8" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>\r
@@ -54,6 +55,7 @@ img {vertial-align:middle;}
 &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;&nbsp;&nbsp;&nbsp;<nobr><a href="../merge_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging 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"> 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
index 3b103a8b6ad0d8d873acc425a2ebed559f2bf07e..efd580cdda60c5e88319de4d5535ac628545aee7 100755 (executable)
@@ -62,7 +62,7 @@ body {background-color:White; }
  <a href="whlstfl21.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> \r
  <a href="whlstfl22.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> \r
  <a href="whlstfl23.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
- <a href="whlstf11.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
+ <a href="whlstf13.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
  <a href="whlstfl24.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
  <a href="whlstfl25.htm#subkey_Z" target="_self"title="search letter Z"><b>Z</b></a> \r
 </p>\r
index 5da80d8a0423dd657d54c5d752ae118f0666730a..4e0c1b9a684aa6a5f82053a40f2744489e45b18e 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>18:07 12/02/2005</td></tr>\r
+<tr><td> Generating Time </td><td>12:34 04/21/2006</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>13.10.606</td></tr>\r
index 053989ed4f9eec5e87bb31b852df68706eb702ab..cc395d0a7ac323eb7d2e152b2d718a6e646245c5 100755 (executable)
@@ -1,6 +1,7 @@
 <?xml version='1.0' encoding='windows-1252' ?>\r
 <ftstdata>\r
 <topic name="About viewing meshes" url="about_viewing_meshes.htm" />\r
+<topic name="Adding Quadratic Nodes and Elements" url="adding_quadratic_nodes_and_elements.htm" />\r
 <topic name="Aspect ratio 3D" url="aspect_ratio_3d.htm" />\r
 <topic name="Borders at multi-connection" url="borders_at_multi-connection.htm" />\r
 <topic name="Borders at multiconnection 2D" url="borders_at_multiconnection_2d.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="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
+<topic name="VTK 3D Viewer" url="files/vtk_3d_viewer.htm" />\r
 <topic name="Warp" url="files/warp.htm" />\r
 <topic name="Free borders" url="free_borders.htm" />\r
 <topic name="Free_edges" url="free_edges.htm" />\r
 <topic name="Grouping Elements" url="grouping_elements.htm" />\r
 <topic name="Length" url="length.htm" />\r
+<topic name="Merge Elements" url="merge_elements.htm" />\r
 <topic name="Modifying Meshes" url="modifying_meshes.htm" />\r
 <topic name="Pattern mapping" url="pattern_mapping.htm" />\r
 <topic name="Presentation" url="presentation.htm" />\r
@@ -66,5 +69,6 @@
 <topic name="Transforming Meshes" url="transforming_meshes.htm" />\r
 <topic name="Transparency" url="transparency.htm" />\r
 <topic name="Viewing Meshes" url="viewing_meshes.htm" />\r
+<topic name="Volume" url="volume.htm" />\r
 \r
 </ftstdata>  \r
index 58b9c0e24b924f2953455a0062183d5a2b89306e..c833cb7eac3712243f20241a225627dd962808d1 100755 (executable)
@@ -1,7 +1,7 @@
 <?xml version='1.0' encoding='windows-1252' ?>\r
 <fts>\r
-<chunkinfo url="whfwdata0.xml" first="0" last="zero"/>\r
+<chunkinfo url="whfwdata0.xml" first="0" last="zoom"/>\r
 \r
-<tchunkinfo first="0" last="65" url="whftdata0.xml" />\r
+<tchunkinfo first="0" last="69" url="whftdata0.xml" />\r
 \r
 </fts>\r
index 028a018b6782eaf3056efa782f0f364ecdc2d2d6..3c93e1fa3c5bed717c1e100df5e89b8e580cdef6 100755 (executable)
 <?xml version='1.0' encoding='windows-1252' ?>\r
 <ftswdata>\r
-<key name="0"> 12,4,5,23,6,55,57,60,42,63,65, </key>\r
-<key name="0d"> 12, </key>\r
-<key name="1"> 15,16,17,18,19,21,5,24,6,25,26,27,28,9,10,55,29,31,34,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52, </key>\r
-<key name="10"> 5,6,55,57,63,65, </key>\r
-<key name="100"> 5,6,55,57,60, </key>\r
-<key name="109"> 63, </key>\r
-<key name="113"> 63, </key>\r
-<key name="1135"> 57, </key>\r
-<key name="1145"> 57, </key>\r
-<key name="1147"> 57, </key>\r
-<key name="1159"> 57, </key>\r
-<key name="12"> 57,63, </key>\r
-<key name="13"> 57, </key>\r
-<key name="15"> 60,63, </key>\r
-<key name="150"> 63, </key>\r
-<key name="18"> 60, </key>\r
-<key name="180"> 57, </key>\r
-<key name="1d"> 11,12,13,14,17,21,6,9,10,30,36,60,61, </key>\r
-<key name="1e"> 57,60, </key>\r
-<key name="2"> 15,16,18,1,19,21,5,24,6,25,26,27,28,9,10,29,31,35,57,58,60,38,39,61,42,43,44,46,63,48,49,50,65,52, </key>\r
-<key name="20"> 5,6,55,57,60,63,65, </key>\r
-<key name="200"> 5,6, </key>\r
-<key name="21"> 63, </key>\r
-<key name="23"> 57,63, </key>\r
-<key name="2381"> 57, </key>\r
-<key name="2382"> 57, </key>\r
-<key name="2383"> 57, </key>\r
-<key name="2384"> 57, </key>\r
-<key name="2385"> 57, </key>\r
-<key name="2386"> 57, </key>\r
-<key name="2387"> 57, </key>\r
-<key name="2388"> 57, </key>\r
-<key name="2389"> 57, </key>\r
-<key name="2390"> 57, </key>\r
-<key name="2391"> 57, </key>\r
-<key name="2392"> 57, </key>\r
-<key name="2393"> 57, </key>\r
-<key name="2394"> 57, </key>\r
-<key name="2395"> 57, </key>\r
-<key name="2396"> 57, </key>\r
-<key name="2397"> 57, </key>\r
-<key name="2398"> 57, </key>\r
-<key name="2399"> 57, </key>\r
-<key name="24"> 63, </key>\r
-<key name="2400"> 57, </key>\r
-<key name="2401"> 57, </key>\r
-<key name="2402"> 57, </key>\r
-<key name="2403"> 57, </key>\r
-<key name="2404"> 57, </key>\r
-<key name="2405"> 57, </key>\r
-<key name="2406"> 57, </key>\r
-<key name="2407"> 57, </key>\r
-<key name="2408"> 57, </key>\r
-<key name="2409"> 57, </key>\r
-<key name="2410"> 57, </key>\r
-<key name="2411"> 57, </key>\r
-<key name="2412"> 57, </key>\r
-<key name="2413"> 57, </key>\r
-<key name="2414"> 57, </key>\r
-<key name="2415"> 57, </key>\r
-<key name="2416"> 57, </key>\r
-<key name="2417"> 57, </key>\r
-<key name="2418"> 57, </key>\r
-<key name="2419"> 57, </key>\r
-<key name="2420"> 57, </key>\r
-<key name="2421"> 57, </key>\r
-<key name="2422"> 57, </key>\r
-<key name="245"> 57, </key>\r
-<key name="246"> 57, </key>\r
-<key name="25"> 63, </key>\r
-<key name="255"> 57, </key>\r
-<key name="2d"> 11,12,13,14,16,18,1,3,21,5,6,9,10,30,32,31,35,57,58,60,61,42,63,51,52, </key>\r
-<key name="3"> 12,16,18,1,19,21,5,24,25,26,9,10,55,29,58,60,38,39,61,42,43,44,63,48,49,65,52, </key>\r
-<key name="30"> 6,55,57,60,63, </key>\r
-<key name="300"> 5,6, </key>\r
-<key name="3128"> 57, </key>\r
-<key name="321"> 57, </key>\r
-<key name="3265"> 57, </key>\r
-<key name="3402"> 57, </key>\r
-<key name="3658"> 57, </key>\r
-<key name="38"> 57,63, </key>\r
-<key name="39"> 57, </key>\r
-<key name="3d"> 11,12,13,14,15,1,19,21,23,24,6,7,25,26,27,9,10,30,33,60,38,39,61,42,44,48,49, </key>\r
-<key name="3e"> 60, </key>\r
-<key name="3rd"> 12, </key>\r
-<key name="4"> 12,16,18,21,5,24,6,26,10,29,57,58,60,42,43,46,63,52, </key>\r
-<key name="40"> 57, </key>\r
-<key name="405"> 57, </key>\r
-<key name="406"> 57, </key>\r
-<key name="45"> 57,63, </key>\r
-<key name="47"> 57, </key>\r
-<key name="492"> 57, </key>\r
-<key name="493"> 57, </key>\r
-<key name="5"> 4,57,60,63, </key>\r
-<key name="50"> 6,57, </key>\r
-<key name="502"> 57, </key>\r
-<key name="503"> 57, </key>\r
-<key name="58"> 63, </key>\r
-<key name="5th"> 12, </key>\r
-<key name="6"> 5,6,55,57,63,65, </key>\r
-<key name="60"> 55,57, </key>\r
-<key name="642"> 57, </key>\r
-<key name="66632"> 57, </key>\r
-<key name="69"> 63, </key>\r
-<key name="7"> 5,6,55, </key>\r
-<key name="70"> 6,60,63, </key>\r
-<key name="700"> 57, </key>\r
-<key name="71"> 63, </key>\r
-<key name="72"> 63, </key>\r
-<key name="73"> 57, </key>\r
-<key name="8"> 55,63, </key>\r
-<key name="800"> 5,6,55, </key>\r
-<key name="814"> 57, </key>\r
-<key name="850"> 57, </key>\r
-<key name="859"> 57, </key>\r
-<key name="864"> 57, </key>\r
-<key name="89"> 63, </key>\r
-<key name="9"> 63, </key>\r
-<key name="90"> 63, </key>\r
-<key name="900"> 5,6,55, </key>\r
-<key name="91"> 63, </key>\r
-<key name="911"> 57, </key>\r
-<key name="92"> 63, </key>\r
-<key name="931"> 57, </key>\r
-<key name="932"> 57, </key>\r
-<key name="950"> 57, </key>\r
-<key name="abl"> 15, </key>\r
-<key name="abov"> 10,44, </key>\r
-<key name="abox"> 60, </key>\r
-<key name="absent"> 50, </key>\r
-<key name="absolute"> 64, </key>\r
-<key name="abut"> 17, </key>\r
-<key name="acces"> 0,62, </key>\r
-<key name="accord"> 14,16,17,18,31,35,58,43,44,46,52, </key>\r
-<key name="account"> 11,58, </key>\r
-<key name="acomp"> 60,63, </key>\r
-<key name="acompobj"> 63, </key>\r
-<key name="actual"> 36, </key>\r
-<key name="ad"> 15,19,23,24,55,57,48,50, </key>\r
-<key name="add"> 15,19,21,5,23,24,6,28,10,55,57,60,62,48, </key>\r
-<key name="addedg"> 57, </key>\r
-<key name="addfac"> 57, </key>\r
-<key name="addhypothesi"> 5,6,55,60,65, </key>\r
-<key name="addition"> 24,30,57, </key>\r
-<key name="additional"> 11,12,21,6,36,58,41,62,44, </key>\r
-<key name="addnod"> 57, </key>\r
-<key name="addobject"> 55, </key>\r
-<key name="addtostudy"> 5,6,55,57,60,63,65, </key>\r
-<key name="addtostudyinfath"> 5,55,65, </key>\r
-<key name="addvolum"> 57, </key>\r
-<key name="adjacent"> 26,35,36,38,42,48, </key>\r
-<key name="adjust"> 44, </key>\r
-<key name="adjustabl"> 36, </key>\r
-<key name="advanc"> 0,51, </key>\r
-<key name="afilt"> 55,60, </key>\r
-<key name="afiltermgr"> 55,57,60, </key>\r
-<key name="afunctor"> 55,57,60, </key>\r
-<key name="ageomgroup1"> 55, </key>\r
-<key name="ageomgroup2"> 55, </key>\r
-<key name="agroup"> 55,60, </key>\r
-<key name="agroup1"> 55, </key>\r
-<key name="agroup2"> 55, </key>\r
-<key name="agroup3"> 55, </key>\r
-<key name="agroup4"> 55, </key>\r
-<key name="agroup5"> 55, </key>\r
-<key name="agroupelemid"> 55, </key>\r
-<key name="agroupmain"> 55, </key>\r
-<key name="agroupr"> 55, </key>\r
-<key name="agrouptool"> 55, </key>\r
-<key name="ai"> 17, </key>\r
-<key name="algo"> 5,6,57,63, </key>\r
-<key name="algo1"> 5,60,65, </key>\r
-<key name="algo2"> 5,60,65, </key>\r
-<key name="algorithm"> 11,12,13,14,16,21,5,22,6,10,55,30,32,57,33,58,37,42,63, </key>\r
-<key name="allow"> 11,17,19,23,24,29,30,34,36,58,40,42,44,45,47,48,50, </key>\r
-<key name="along"> 9,10,57,58,44, </key>\r
-<key name="alternativ"> 21, </key>\r
-<key name="alway"> 44, </key>\r
-<key name="amesheditor"> 57,63, </key>\r
-<key name="amount"> 2, </key>\r
-<key name="analytic"> 17, </key>\r
-<key name="aneditor"> 57,60,63, </key>\r
-<key name="angl"> 14,4,24,10,30,35,60,61,40,43,48,52, </key>\r
-<key name="angle180"> 63, </key>\r
-<key name="angle45"> 57, </key>\r
-<key name="angular"> 10, </key>\r
-<key name="angularity"> 10, </key>\r
-<key name="anid"> 55,60, </key>\r
-<key name="anodeid1"> 57, </key>\r
-<key name="anodeid2"> 57, </key>\r
-<key name="anodeid3"> 57, </key>\r
-<key name="anodeid4"> 57, </key>\r
-<key name="anoth"> 36, </key>\r
-<key name="any"> 12,21,23,26,10,55,58,44, </key>\r
-<key name="ap"> 13,15,16,18,19,4,21,23,24,7,25,26,28,9,10,30,31,35,58,37,38,39,61,42,43,44,45,46,48,49,50,52, </key>\r
-<key name="apparent"> 21, </key>\r
-<key name="appear"> 0,15,19,21,22,23,24,25,26,28,9,10,34,58,38,39,61,40,45,47,48,49,50, </key>\r
-<key name="append"> 60, </key>\r
-<key name="appli"> 16,17,18,1,21,22,6,32,31,35,57,33,36,37,62,43,44,46,52, </key>\r
-<key name="applicabl"> 62, </key>\r
-<key name="application"> 14,58, </key>\r
-<key name="apply"> 11,0,21,22,23, </key>\r
-<key name="appropriat"> 21, </key>\r
-<key name="approximate"> 17, </key>\r
-<key name="apredicat"> 55,60, </key>\r
-<key name="arc"> 6,57, </key>\r
-<key name="arcsin"> 52, </key>\r
-<key name="area"> 11,14,16,1,6,55,30,32,33,60,44,46, </key>\r
-<key name="arithmetic"> 11,17,5,6,63, </key>\r
-<key name="arithmetic1d"> 5,6,63,65, </key>\r
-<key name="around"> 4,10,61, </key>\r
-<key name="asmeshgroup1"> 55, </key>\r
-<key name="asmeshgroup2"> 55, </key>\r
-<key name="aspect"> 14,18,1,30,60,44, </key>\r
-<key name="assign"> 21,37,52, </key>\r
-<key name="associat"> 15,27,38, </key>\r
-<key name="auto"> 4, </key>\r
-<key name="automatic"> 21,58, </key>\r
-<key name="automatical"> 19,21,24,26,48, </key>\r
-<key name="availabl"> 42, </key>\r
-<key name="averag"> 11,17,6,36,58,52, </key>\r
-<key name="axi"> 9,61,40,45,52, </key>\r
-<key name="axisstruct"> 57,63, </key>\r
-<key name="axisxyz"> 57,63, </key>\r
+<key name="0"> 13,18,5,6,24,7,57,60,63,43,66,68, </key>\r
+<key name="001"> 66, </key>\r
+<key name="0d"> 13, </key>\r
+<key name="1"> 16,1,17,18,19,2,20,22,6,25,7,26,27,28,29,10,11,57,30,32,35,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54, </key>\r
+<key name="10"> 6,7,57,60,66,68, </key>\r
+<key name="100"> 6,7,57,60,63,66, </key>\r
+<key name="109"> 66, </key>\r
+<key name="11"> 60, </key>\r
+<key name="113"> 66, </key>\r
+<key name="1135"> 60, </key>\r
+<key name="1145"> 60, </key>\r
+<key name="1147"> 60, </key>\r
+<key name="1159"> 60, </key>\r
+<key name="12"> 60,66, </key>\r
+<key name="13"> 60, </key>\r
+<key name="14"> 60, </key>\r
+<key name="15"> 60,63,66, </key>\r
+<key name="150"> 66, </key>\r
+<key name="16"> 60, </key>\r
+<key name="17"> 60, </key>\r
+<key name="18"> 60,63, </key>\r
+<key name="180"> 60, </key>\r
+<key name="19"> 60, </key>\r
+<key name="1d"> 12,13,14,15,18,22,7,10,11,31,33,37,63,64, </key>\r
+<key name="1e"> 60,63, </key>\r
+<key name="2"> 16,1,17,19,2,20,22,6,25,7,26,27,28,29,10,11,30,32,36,60,61,63,39,40,64,43,44,45,47,66,49,50,51,68,69,54, </key>\r
+<key name="20"> 6,7,57,60,63,66,68, </key>\r
+<key name="200"> 6,7,60, </key>\r
+<key name="21"> 60,66, </key>\r
+<key name="23"> 60,66, </key>\r
+<key name="2381"> 60, </key>\r
+<key name="2382"> 60, </key>\r
+<key name="2383"> 60, </key>\r
+<key name="2384"> 60, </key>\r
+<key name="2385"> 60, </key>\r
+<key name="2386"> 60, </key>\r
+<key name="2387"> 60, </key>\r
+<key name="2388"> 60, </key>\r
+<key name="2389"> 60, </key>\r
+<key name="2390"> 60, </key>\r
+<key name="2391"> 60, </key>\r
+<key name="2392"> 60, </key>\r
+<key name="2393"> 60, </key>\r
+<key name="2394"> 60, </key>\r
+<key name="2395"> 60, </key>\r
+<key name="2396"> 60, </key>\r
+<key name="2397"> 60, </key>\r
+<key name="2398"> 60, </key>\r
+<key name="2399"> 60, </key>\r
+<key name="24"> 66, </key>\r
+<key name="240"> 60, </key>\r
+<key name="2400"> 60, </key>\r
+<key name="2401"> 60, </key>\r
+<key name="2402"> 60, </key>\r
+<key name="2403"> 60, </key>\r
+<key name="2404"> 60, </key>\r
+<key name="2405"> 60, </key>\r
+<key name="2406"> 60, </key>\r
+<key name="2407"> 60, </key>\r
+<key name="2408"> 60, </key>\r
+<key name="2409"> 60, </key>\r
+<key name="2410"> 60, </key>\r
+<key name="2411"> 60, </key>\r
+<key name="2412"> 60, </key>\r
+<key name="2413"> 60, </key>\r
+<key name="2414"> 60, </key>\r
+<key name="2415"> 60, </key>\r
+<key name="2416"> 60, </key>\r
+<key name="2417"> 60, </key>\r
+<key name="2418"> 60, </key>\r
+<key name="2419"> 60, </key>\r
+<key name="2420"> 60, </key>\r
+<key name="2421"> 60, </key>\r
+<key name="2422"> 60, </key>\r
+<key name="245"> 60, </key>\r
+<key name="246"> 60, </key>\r
+<key name="25"> 66, </key>\r
+<key name="255"> 60, </key>\r
+<key name="2d"> 12,13,14,15,17,19,4,22,6,7,10,11,31,33,32,36,60,61,63,64,43,66,54, </key>\r
+<key name="3"> 13,17,19,20,22,6,25,26,27,10,11,57,30,60,61,63,39,40,64,43,44,45,66,49,50,68,54, </key>\r
+<key name="30"> 7,57,60,63,66, </key>\r
+<key name="300"> 6,7, </key>\r
+<key name="3128"> 60, </key>\r
+<key name="321"> 60, </key>\r
+<key name="3265"> 60, </key>\r
+<key name="3402"> 60, </key>\r
+<key name="3658"> 60, </key>\r
+<key name="38"> 60,66, </key>\r
+<key name="39"> 60, </key>\r
+<key name="3d"> 12,13,14,15,0,16,1,19,2,20,22,24,25,7,8,26,27,28,10,11,31,34,63,39,40,64,43,45,49,50,69,53, </key>\r
+<key name="3e"> 63, </key>\r
+<key name="3rd"> 13, </key>\r
+<key name="3x3"> 60, </key>\r
+<key name="4"> 13,17,19,22,6,25,7,27,11,30,60,61,63,43,44,47,66,54, </key>\r
+<key name="40"> 60, </key>\r
+<key name="405"> 60, </key>\r
+<key name="406"> 60, </key>\r
+<key name="45"> 60,66, </key>\r
+<key name="47"> 60, </key>\r
+<key name="492"> 60, </key>\r
+<key name="493"> 60, </key>\r
+<key name="5"> 5,60,63,66, </key>\r
+<key name="50"> 7,60,66, </key>\r
+<key name="502"> 60, </key>\r
+<key name="503"> 60, </key>\r
+<key name="58"> 66, </key>\r
+<key name="5th"> 13, </key>\r
+<key name="6"> 2,6,7,57,60,66,68, </key>\r
+<key name="60"> 57,60, </key>\r
+<key name="642"> 60, </key>\r
+<key name="66632"> 60, </key>\r
+<key name="69"> 66, </key>\r
+<key name="7"> 6,7,57,60,63, </key>\r
+<key name="70"> 7,63,66, </key>\r
+<key name="700"> 60, </key>\r
+<key name="71"> 66, </key>\r
+<key name="72"> 66, </key>\r
+<key name="73"> 60, </key>\r
+<key name="77"> 60, </key>\r
+<key name="8"> 57,60,66, </key>\r
+<key name="800"> 6,7, </key>\r
+<key name="814"> 60, </key>\r
+<key name="850"> 60, </key>\r
+<key name="859"> 60, </key>\r
+<key name="864"> 60, </key>\r
+<key name="89"> 66, </key>\r
+<key name="9"> 60,66, </key>\r
+<key name="90"> 66, </key>\r
+<key name="900"> 6,7, </key>\r
+<key name="91"> 66, </key>\r
+<key name="911"> 60, </key>\r
+<key name="92"> 66, </key>\r
+<key name="931"> 60, </key>\r
+<key name="932"> 60, </key>\r
+<key name="95"> 63, </key>\r
+<key name="950"> 60, </key>\r
+<key name="9999"> 24, </key>\r
+<key name="a_mesh"> 60, </key>\r
+<key name="aa"> 60, </key>\r
+<key name="abl"> 16,1,53, </key>\r
+<key name="abord"> 63, </key>\r
+<key name="aborder"> 63, </key>\r
+<key name="abov"> 11,60,45, </key>\r
+<key name="abox"> 63, </key>\r
+<key name="absent"> 51, </key>\r
+<key name="absolute"> 67, </key>\r
+<key name="abut"> 18, </key>\r
+<key name="acces"> 0,65,53, </key>\r
+<key name="accord"> 15,17,18,19,2,32,36,61,44,45,47,69,54, </key>\r
+<key name="account"> 12,61, </key>\r
+<key name="acomp"> 63,66, </key>\r
+<key name="acompobj"> 66, </key>\r
+<key name="actual"> 37, </key>\r
+<key name="ad"> 16,1,20,24,25,57,60,49,51, </key>\r
+<key name="add"> 16,1,20,22,6,24,25,7,29,11,57,60,63,65,49, </key>\r
+<key name="addedg"> 60, </key>\r
+<key name="addfac"> 60, </key>\r
+<key name="addhypothesi"> 6,7,57,60,63,68, </key>\r
+<key name="addition"> 25,31,60, </key>\r
+<key name="additional"> 12,13,22,7,37,61,42,65,45, </key>\r
+<key name="addnod"> 60, </key>\r
+<key name="addobject"> 57, </key>\r
+<key name="addpolygonalfac"> 60, </key>\r
+<key name="addpolyhedralvolum"> 60, </key>\r
+<key name="addtostudy"> 6,7,57,60,63,66,68, </key>\r
+<key name="addtostudyinfath"> 6,7,57,60,68, </key>\r
+<key name="addvolum"> 60, </key>\r
+<key name="adjacent"> 27,36,37,39,43,49, </key>\r
+<key name="adjust"> 45, </key>\r
+<key name="adjustabl"> 37, </key>\r
+<key name="advanc"> 0,52, </key>\r
+<key name="afilt"> 57,63, </key>\r
+<key name="afiltermgr"> 57,60,63, </key>\r
+<key name="afunctor"> 57,60,63, </key>\r
+<key name="ageomgroup1"> 57, </key>\r
+<key name="ageomgroup2"> 57, </key>\r
+<key name="agroup"> 57,63, </key>\r
+<key name="agroup1"> 57, </key>\r
+<key name="agroup2"> 57, </key>\r
+<key name="agroup3"> 57, </key>\r
+<key name="agroup4"> 57, </key>\r
+<key name="agroup5"> 57, </key>\r
+<key name="agroupelemid"> 57, </key>\r
+<key name="agroupf"> 63, </key>\r
+<key name="agroupmain"> 57, </key>\r
+<key name="agroupn"> 63, </key>\r
+<key name="agroupr"> 57, </key>\r
+<key name="agrouptool"> 57, </key>\r
+<key name="ai"> 18, </key>\r
+<key name="al"> 60, </key>\r
+<key name="algo"> 6,7,60,66, </key>\r
+<key name="algo1"> 6,63,68, </key>\r
+<key name="algo2"> 6,63,68, </key>\r
+<key name="algorithm"> 12,13,14,15,0,17,22,6,23,7,11,57,31,33,34,61,38,43,66, </key>\r
+<key name="allow"> 12,0,1,18,20,23,24,25,30,31,33,59,35,37,61,41,43,45,46,48,49,51,53, </key>\r
+<key name="along"> 10,11,60,61,45,53, </key>\r
+<key name="alternativ"> 22, </key>\r
+<key name="alternative"> 0,1, </key>\r
+<key name="alway"> 45, </key>\r
+<key name="amesheditor"> 60,66, </key>\r
+<key name="amount"> 3, </key>\r
+<key name="analytic"> 18, </key>\r
+<key name="aneditor"> 60,63,66, </key>\r
+<key name="angl"> 15,5,25,11,31,36,60,63,64,41,44,49,54, </key>\r
+<key name="angle180"> 66, </key>\r
+<key name="angle45"> 60, </key>\r
+<key name="angular"> 11, </key>\r
+<key name="angularity"> 11, </key>\r
+<key name="anid"> 57,63, </key>\r
+<key name="anodeid1"> 60, </key>\r
+<key name="anodeid2"> 60, </key>\r
+<key name="anodeid3"> 60, </key>\r
+<key name="anodeid4"> 60, </key>\r
+<key name="anoth"> 60,37, </key>\r
+<key name="any"> 13,1,22,24,27,11,57,61,45, </key>\r
+<key name="ap"> 14,16,1,17,19,2,20,5,22,24,25,7,8,26,27,29,10,11,31,32,59,36,60,61,38,39,40,64,43,44,45,46,47,49,50,51,69,54, </key>\r
+<key name="apparent"> 22, </key>\r
+<key name="appear"> 0,16,1,20,22,23,25,26,27,29,10,11,35,61,39,40,64,41,46,48,49,50,51, </key>\r
+<key name="append"> 60,63, </key>\r
+<key name="appli"> 17,18,19,2,22,23,33,32,36,34,37,38,65,44,45,47,69,54, </key>\r
+<key name="applicabl"> 19,65, </key>\r
+<key name="application"> 15,61, </key>\r
+<key name="apply"> 12,0,22,23,24, </key>\r
+<key name="applytomeshfac"> 60, </key>\r
+<key name="appropriat"> 22, </key>\r
+<key name="approximate"> 18, </key>\r
+<key name="apredicat"> 57,63, </key>\r
+<key name="arc"> 7,60,66, </key>\r
+<key name="arcsin"> 54, </key>\r
+<key name="area"> 12,15,17,7,57,31,33,34,63,45,47,53, </key>\r
+<key name="arithmetic"> 12,18,6,7,31,66, </key>\r
+<key name="arithmetic1d"> 6,7,66,68, </key>\r
+<key name="around"> 5,11,64, </key>\r
+<key name="array_of_nodes_group"> 66, </key>\r
+<key name="asmeshgroup1"> 57, </key>\r
+<key name="asmeshgroup2"> 57, </key>\r
+<key name="aspect"> 15,19,2,31,63,45, </key>\r
+<key name="assign"> 18,22,24,7,38,54, </key>\r
+<key name="associat"> 16,28,39, </key>\r
+<key name="attribut"> 24, </key>\r
+<key name="auto"> 5, </key>\r
+<key name="automatic"> 12,18,22,31,61, </key>\r
+<key name="automatical"> 0,18,20,22,25,27,49, </key>\r
+<key name="availabl"> 43,53, </key>\r
+<key name="averag"> 12,18,7,31,33,61,54, </key>\r
+<key name="ax"> 53, </key>\r
+<key name="axi"> 10,64,41,46,53,54, </key>\r
+<key name="axisstruct"> 60,66, </key>\r
+<key name="axisxyz"> 60,66, </key>\r
 <key name="background"> 0, </key>\r
-<key name="bar"> 14, </key>\r
-<key name="bas"> 11,16,6,10,30,52, </key>\r
-<key name="basi"> 12,21,22, </key>\r
-<key name="basic"> 11, </key>\r
-<key name="becom"> 58, </key>\r
-<key name="befor"> 62, </key>\r
-<key name="begin"> 17,42, </key>\r
-<key name="belong"> 2,3,23,53,54,42,50, </key>\r
-<key name="berder"> 42, </key>\r
-<key name="binary"> 62, </key>\r
-<key name="bisect"> 52, </key>\r
-<key name="bisector"> 52, </key>\r
-<key name="bit"> 62, </key>\r
+<key name="bar"> 15, </key>\r
+<key name="bas"> 12,17,7,11,31,54, </key>\r
+<key name="basi"> 13,22,23, </key>\r
+<key name="basic"> 12,0, </key>\r
+<key name="becom"> 61, </key>\r
+<key name="befor"> 65,66, </key>\r
+<key name="begin"> 18,43, </key>\r
+<key name="belong"> 3,4,24,55,56,43,51, </key>\r
+<key name="below"> 60, </key>\r
+<key name="berder"> 43, </key>\r
+<key name="bet"> 19, </key>\r
+<key name="binary"> 65, </key>\r
+<key name="bisect"> 54, </key>\r
+<key name="bisector"> 54, </key>\r
+<key name="bit"> 65, </key>\r
 <key name="black"> 0, </key>\r
-<key name="block"> 5,6, </key>\r
-<key name="bog"> 17, </key>\r
-<key name="boolean"> 50, </key>\r
-<key name="bord"> 42,63, </key>\r
-<key name="border"> 14,2,3,53,54,30,60,42,63, </key>\r
-<key name="both"> 8,10,44,50, </key>\r
-<key name="bottom"> 41, </key>\r
-<key name="bound"> 12,58, </key>\r
-<key name="boundari"> 58, </key>\r
-<key name="boundary"> 11,58,42,44, </key>\r
-<key name="box"> 13,15,19,21,5,22,23,24,6,25,26,28,9,10,55,29,34,58,60,38,39,61,40,41,62,42,44,45,63,47,48,49,50,51,65, </key>\r
-<key name="box_id"> 5,6, </key>\r
-<key name="box1"> 63, </key>\r
-<key name="box2"> 63, </key>\r
-<key name="brown"> 23, </key>\r
-<key name="brows"> 0,15,20,21,22,23,7,28,59,38,39,62,51, </key>\r
-<key name="build"> 6,9,36,58,61, </key>\r
-<key name="built"> 58,44, </key>\r
-<key name="button"> 0,15,16,18,19,4,21,22,23,24,7,25,26,28,9,10,29,31,35,58,37,38,39,61,40,62,42,43,44,45,46,47,48,49,50,51,52, </key>\r
-<key name="cad"> 12, </key>\r
-<key name="cal"> 58, </key>\r
-<key name="calculat"> 14,18,1,36,46, </key>\r
-<key name="calculation"> 11,16,31,35, </key>\r
-<key name="careful"> 38, </key>\r
-<key name="cas"> 15,21,5,6,26,58,63,51, </key>\r
-<key name="cel"> 23,38,49, </key>\r
-<key name="cent"> 10,44, </key>\r
-<key name="centroid"> 44, </key>\r
-<key name="centroidal"> 44, </key>\r
-<key name="centroidal_smooth"> 57, </key>\r
-<key name="certain"> 23,58, </key>\r
-<key name="chang"> 0,17,19,5,26,36,37,65, </key>\r
-<key name="chapt"> 0, </key>\r
-<key name="characteristic"> 14, </key>\r
-<key name="characteriz"> 12, </key>\r
-<key name="check"> 23,42, </key>\r
-<key name="checkbox"> 15,62,47, </key>\r
-<key name="choic"> 11,21,58, </key>\r
-<key name="choos"> 15,16,18,19,20,23,24,7,25,26,8,27,9,10,29,31,34,35,58,38,39,61,40,41,62,42,43,45,46,47,48,49,52, </key>\r
-<key name="chosen"> 24,32,33,48, </key>\r
-<key name="circl"> 10,57, </key>\r
-<key name="circlemesh"> 57, </key>\r
-<key name="clear"> 62, </key>\r
-<key name="click"> 0,15,16,18,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,31,35,58,59,37,38,39,61,41,62,42,43,44,46,48,49,50,51,52, </key>\r
-<key name="clip"> 0,4, </key>\r
-<key name="clos"> 12,7,42, </key>\r
-<key name="co"> 42, </key>\r
-<key name="coincident"> 34, </key>\r
-<key name="color"> 14,0,16,18,31,35,43,46,52, </key>\r
-<key name="combin"> 31,59,62, </key>\r
-<key name="common"> 25,62,49, </key>\r
-<key name="compar"> 42, </key>\r
-<key name="component"> 30,41, </key>\r
-<key name="compos"> 11,12,13,14,0,17,1,27,32,33,43, </key>\r
-<key name="compound"> 5,6,57, </key>\r
-<key name="comput"> 17,21,5,6,55,57,58,60,42,63,65, </key>\r
-<key name="computation"> 21,22, </key>\r
-<key name="concept"> 36, </key>\r
-<key name="condition"> 11, </key>\r
-<key name="confirm"> 19,24,28,38,44,48,50, </key>\r
-<key name="confirmation"> 23, </key>\r
-<key name="conform"> 11,36,42,63, </key>\r
-<key name="connect"> 17,24,44, </key>\r
-<key name="connection"> 12,14,2,3,30,60, </key>\r
-<key name="connectivity"> 58, </key>\r
-<key name="consid"> 21, </key>\r
-<key name="consider"> 12,42, </key>\r
-<key name="consist"> 14,16,17,18,2,3,20,21,22,23,53,54,55,32,31,35,33,46, </key>\r
-<key name="consol"> 51, </key>\r
-<key name="constant"> 17, </key>\r
-<key name="construct"> 17,20,21,5,22,37, </key>\r
-<key name="construction"> 17,21,5,22, </key>\r
-<key name="contain"> 12,13,19,21,22,23,24,29,58,44,48, </key>\r
-<key name="content"> 7, </key>\r
-<key name="continu"> 44, </key>\r
-<key name="contour"> 12,42, </key>\r
-<key name="contrast"> 48, </key>\r
-<key name="control"> 14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52, </key>\r
-<key name="converg"> 44, </key>\r
-<key name="coordinat"> 12,15,26,58, </key>\r
-<key name="copy"> 40,62,45,63,47, </key>\r
-<key name="corn"> 52, </key>\r
-<key name="corner"> 24,44,52, </key>\r
-<key name="correspond"> 12,14,29,58,62,42,47, </key>\r
-<key name="could"> 12,15, </key>\r
-<key name="count"> 42, </key>\r
-<key name="counterclockwis"> 58, </key>\r
-<key name="cours"> 21, </key>\r
-<key name="creat"> 12,13,0,15,4,21,5,23,6,55,30,34,57,36,58,60,37,40,62,45,63,47,50,52, </key>\r
-<key name="createanddisplaygo"> 6, </key>\r
-<key name="createarea"> 55,60, </key>\r
-<key name="createaspectratio"> 60, </key>\r
-<key name="createaspectratio3d"> 60, </key>\r
-<key name="createequalto"> 55,60, </key>\r
-<key name="createfilt"> 55,60, </key>\r
-<key name="createfiltermanag"> 55,57,60, </key>\r
-<key name="createfreeborder"> 60, </key>\r
-<key name="createfreeedg"> 60, </key>\r
-<key name="creategroup"> 55,57,60, </key>\r
-<key name="creategroupfromgeom"> 55, </key>\r
-<key name="createhypothesi"> 5,6,55,60,65, </key>\r
-<key name="createlength"> 60, </key>\r
-<key name="createlength2d"> 60, </key>\r
-<key name="createlessthan"> 55,60, </key>\r
-<key name="createmesh"> 5,6,55,60,65, </key>\r
-<key name="createminimumangl"> 57,60, </key>\r
-<key name="createmorethan"> 55,60, </key>\r
-<key name="createmulticonnection"> 60, </key>\r
-<key name="createmulticonnection2d"> 60, </key>\r
-<key name="createskew"> 60, </key>\r
-<key name="createtap"> 60, </key>\r
-<key name="createwarp"> 60, </key>\r
-<key name="creation"> 12,23,36,58,37,50, </key>\r
-<key name="criteria"> 30,62, </key>\r
-<key name="criterion"> 16,18,1,23,24,55,56,31,35,60,62,43,46,48,52, </key>\r
-<key name="cros"> 0,4,52, </key>\r
-<key name="cubic"> 13, </key>\r
-<key name="current"> 19,21,24,37,62,42,48, </key>\r
-<key name="curv"> 12,10, </key>\r
-<key name="curvilinear"> 17,10, </key>\r
-<key name="cut"> 5,24,6,55,57,63,50, </key>\r
-<key name="cutgroup"> 55, </key>\r
-<key name="d"> 17, </key>\r
-<key name="deal"> 12, </key>\r
-<key name="default"> 0,21,23,10,59,62,64, </key>\r
-<key name="defin"> 12,13,17,18,4,21,5,23,6,10,57,36,58,42,63, </key>\r
-<key name="definit"> 12,14,17,19,20,23,24,30,37,38,48, </key>\r
-<key name="definition"> 17,32,33, </key>\r
-<key name="deflection"> 11,17,6, </key>\r
-<key name="deflection1d"> 6, </key>\r
-<key name="degre"> 4, </key>\r
-<key name="delet"> 0,7,54,57,38,62, </key>\r
-<key name="deletediag"> 57, </key>\r
-<key name="deletion"> 30,38,49, </key>\r
-<key name="density"> 17, </key>\r
-<key name="depend"> 11,12,21,32,33, </key>\r
-<key name="describ"> 12,0,58, </key>\r
-<key name="description"> 58, </key>\r
-<key name="desirabl"> 34, </key>\r
-<key name="desktop"> 41, </key>\r
-<key name="destin"> 12,14,30, </key>\r
-<key name="detail"> 11, </key>\r
-<key name="detect"> 34, </key>\r
-<key name="diagonal"> 24,25,57,46, </key>\r
-<key name="dialog"> 13,15,17,19,21,22,24,25,26,28,9,10,29,34,58,38,39,61,40,42,44,45,47,48,49,50, </key>\r
-<key name="differ"> 17, </key>\r
-<key name="differenc"> 10,42, </key>\r
-<key name="different"> 11,15,23,37,62,42, </key>\r
-<key name="dimension"> 12,1,21,9,61, </key>\r
-<key name="direct"> 12,1,42,44, </key>\r
-<key name="direction"> 58,52, </key>\r
-<key name="dirstruct"> 57,63, </key>\r
-<key name="discretisation"> 5,6,55, </key>\r
-<key name="discretiz"> 9,61, </key>\r
-<key name="discretization"> 12,13, </key>\r
-<key name="displac"> 26, </key>\r
-<key name="display"> 14,0,16,18,2,19,21,22,24,6,26,8,27,53,31,35,59,43,44,46,48,51,52, </key>\r
-<key name="distanc"> 17,4,58,52, </key>\r
-<key name="distinguish"> 23, </key>\r
-<key name="distortion"> 44, </key>\r
-<key name="distribution"> 17, </key>\r
-<key name="divid"> 17, </key>\r
-<key name="do"> 15, </key>\r
-<key name="domain"> 58, </key>\r
-<key name="don"> 12,21,36, </key>\r
-<key name="e"> 21,24,58,42,48, </key>\r
-<key name="easi"> 20, </key>\r
-<key name="edg"> 11,12,13,14,15,17,18,2,3,20,21,5,23,24,6,25,26,8,10,53,54,55,30,56,31,57,36,58,60,62,42,44,63,48,49,65,52, </key>\r
-<key name="edgeslist"> 63, </key>\r
-<key name="edgex111"> 5,6, </key>\r
-<key name="edgex112"> 5,6, </key>\r
-<key name="edgex121"> 5,6, </key>\r
-<key name="edgex122"> 5,6, </key>\r
-<key name="edgey11"> 5,6, </key>\r
-<key name="edgey12"> 5,6, </key>\r
-<key name="edgey21"> 5,6, </key>\r
-<key name="edgey22"> 5,6, </key>\r
-<key name="edgez111"> 5,6, </key>\r
-<key name="edgez121"> 5,6, </key>\r
-<key name="edgez211"> 5,6, </key>\r
-<key name="edgez221"> 5,6, </key>\r
-<key name="edit"> 5,7,28,55,34,37, </key>\r
-<key name="effect"> 48, </key>\r
-<key name="eith"> 58,42, </key>\r
-<key name="element"> 11,12,13,14,0,15,16,17,18,1,3,19,20,23,24,6,7,25,26,27,28,9,10,54,55,30,32,31,35,57,33,36,58,38,39,61,40,62,42,43,44,45,46,63,47,48,50,51,52, </key>\r
-<key name="els"> 57,58, </key>\r
-<key name="enabl"> 62, </key>\r
-<key name="encapsulat"> 22, </key>\r
-<key name="encounter"> 58, </key>\r
-<key name="end"> 11,17,6,36,62,42,47, </key>\r
-<key name="enough"> 42, </key>\r
-<key name="ent"> 23,25,26,29,49, </key>\r
-<key name="entiti"> 12,13, </key>\r
-<key name="entity"> 12,0,8,62, </key>\r
-<key name="equal"> 17,18,58,62,42,44, </key>\r
-<key name="equidistant"> 17, </key>\r
-<key name="equilateral"> 18, </key>\r
+<key name="block"> 6,7, </key>\r
+<key name="blu"> 3, </key>\r
+<key name="bmp"> 0,53, </key>\r
+<key name="bog"> 18, </key>\r
+<key name="boolean"> 51, </key>\r
+<key name="bord"> 43,66, </key>\r
+<key name="border"> 15,3,4,55,56,31,63,43,66, </key>\r
+<key name="both"> 0,11,45,51, </key>\r
+<key name="bottom"> 60,42, </key>\r
+<key name="bound"> 13,61, </key>\r
+<key name="boundari"> 61, </key>\r
+<key name="boundary"> 12,24,61,43,45, </key>\r
+<key name="box"> 14,16,1,18,20,22,6,23,25,7,26,27,29,10,11,57,30,59,35,61,63,39,40,64,41,42,65,43,45,46,66,48,49,50,51,52,68, </key>\r
+<key name="box_1"> 60, </key>\r
+<key name="box_id"> 6,7, </key>\r
+<key name="box1"> 66, </key>\r
+<key name="box2"> 66, </key>\r
+<key name="broken"> 1,37, </key>\r
+<key name="brown"> 24, </key>\r
+<key name="brows"> 0,16,1,21,22,23,24,8,29,62,39,40,65,52, </key>\r
+<key name="build"> 7,10,33,60,37,61,64, </key>\r
+<key name="built"> 19,23,61,45, </key>\r
+<key name="button"> 16,1,17,19,2,20,5,22,23,24,25,8,26,27,29,10,11,30,32,36,61,38,39,40,64,41,65,43,44,45,46,47,48,49,50,51,52,69,53,54, </key>\r
+<key name="cad"> 13, </key>\r
+<key name="cal"> 61, </key>\r
+<key name="calculat"> 15,19,2,33,47, </key>\r
+<key name="calculation"> 12,17,32,36, </key>\r
+<key name="careful"> 39, </key>\r
+<key name="cas"> 16,22,6,7,27,60,61,66,52, </key>\r
+<key name="cel"> 24,39,50, </key>\r
+<key name="cent"> 11,45,53, </key>\r
+<key name="centroid"> 45, </key>\r
+<key name="centroidal"> 45, </key>\r
+<key name="centroidal_smooth"> 60, </key>\r
+<key name="certain"> 24,61, </key>\r
+<key name="chang"> 0,18,20,6,27,60,37,38,68, </key>\r
+<key name="characteristic"> 15, </key>\r
+<key name="characteriz"> 13, </key>\r
+<key name="check"> 24,43,53, </key>\r
+<key name="checkbox"> 16,65,48, </key>\r
+<key name="choic"> 12,22,61, </key>\r
+<key name="choos"> 16,1,17,19,2,20,21,24,25,8,26,27,9,28,10,11,30,32,35,36,61,39,40,64,41,42,65,43,44,46,47,48,49,50,69,54, </key>\r
+<key name="chosen"> 19,25,33,34,49, </key>\r
+<key name="circl"> 11,60,66, </key>\r
+<key name="circlemesh"> 60,66, </key>\r
+<key name="clear"> 65, </key>\r
+<key name="click"> 0,16,1,17,19,2,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,32,36,61,62,38,39,40,64,42,65,43,44,45,47,49,50,51,52,69,53,54, </key>\r
+<key name="clip"> 0,5, </key>\r
+<key name="clos"> 13,19,8,43, </key>\r
+<key name="co"> 60,43, </key>\r
+<key name="coars"> 18, </key>\r
+<key name="coincid"> 59, </key>\r
+<key name="coincident"> 59,35, </key>\r
+<key name="color"> 15,0,17,19,2,24,32,36,44,47,69,53,54, </key>\r
+<key name="combin"> 9,32,62,65, </key>\r
+<key name="common"> 26,65,50, </key>\r
+<key name="compar"> 18,43, </key>\r
+<key name="complete"> 59, </key>\r
+<key name="complex"> 1, </key>\r
+<key name="component"> 31,42, </key>\r
+<key name="compos"> 12,13,14,15,0,18,2,28,33,34,44, </key>\r
+<key name="compound"> 6,7, </key>\r
+<key name="comput"> 0,18,22,6,7,57,60,61,63,43,66,68, </key>\r
+<key name="computation"> 22,23,7,57,60, </key>\r
+<key name="concept"> 37, </key>\r
+<key name="condition"> 12,24, </key>\r
+<key name="confirm"> 20,25,29,39,45,49,51, </key>\r
+<key name="confirmation"> 24, </key>\r
+<key name="conform"> 12,37,43,66, </key>\r
+<key name="conformity"> 19, </key>\r
+<key name="connect"> 18,25,45, </key>\r
+<key name="connection"> 13,15,3,4,31,63, </key>\r
+<key name="connectivity"> 61, </key>\r
+<key name="consid"> 19,22, </key>\r
+<key name="consider"> 13,19,2,43, </key>\r
+<key name="consist"> 15,1,17,18,19,3,4,21,22,23,24,55,56,57,33,32,36,34,47, </key>\r
+<key name="consol"> 52, </key>\r
+<key name="constant"> 18, </key>\r
+<key name="construct"> 18,21,22,6,23,38, </key>\r
+<key name="construction"> 18,22,6,23, </key>\r
+<key name="contain"> 13,14,20,22,23,24,25,30,33,61,45,49, </key>\r
+<key name="content"> 8,53, </key>\r
+<key name="continu"> 45, </key>\r
+<key name="contour"> 13,43, </key>\r
+<key name="contrast"> 49, </key>\r
+<key name="control"> 15,0,17,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54, </key>\r
+<key name="converg"> 45, </key>\r
+<key name="conversion"> 18, </key>\r
+<key name="coordinat"> 13,16,27,61,53, </key>\r
+<key name="copy"> 41,65,46,66,48, </key>\r
+<key name="corn"> 1,54, </key>\r
+<key name="corner"> 25,45,54, </key>\r
+<key name="correspond"> 13,15,30,60,61,63,65,43,48, </key>\r
+<key name="cosal"> 60, </key>\r
+<key name="could"> 13,16, </key>\r
+<key name="count"> 43, </key>\r
+<key name="counterclockwis"> 61, </key>\r
+<key name="cours"> 22, </key>\r
+<key name="creat"> 13,14,0,16,1,18,5,22,6,23,24,7,29,57,31,35,60,37,61,63,38,41,65,46,66,48,51,54, </key>\r
+<key name="createanddisplaygo"> 7, </key>\r
+<key name="createarea"> 57,63, </key>\r
+<key name="createaspectratio"> 63, </key>\r
+<key name="createaspectratio3d"> 63, </key>\r
+<key name="createequalto"> 57,63, </key>\r
+<key name="createfilt"> 57,63, </key>\r
+<key name="createfiltermanag"> 57,60,63, </key>\r
+<key name="createfreeborder"> 63, </key>\r
+<key name="createfreeedg"> 63, </key>\r
+<key name="creategroup"> 57,60,63, </key>\r
+<key name="creategroupfromgeom"> 57, </key>\r
+<key name="createhypothesi"> 6,7,57,60,63,68, </key>\r
+<key name="createlength"> 63, </key>\r
+<key name="createlength2d"> 63, </key>\r
+<key name="createlessthan"> 57,63, </key>\r
+<key name="createmesh"> 6,7,57,60,63,68, </key>\r
+<key name="createminimumangl"> 60,63, </key>\r
+<key name="createmorethan"> 57,63, </key>\r
+<key name="createmulticonnection"> 63, </key>\r
+<key name="createmulticonnection2d"> 63, </key>\r
+<key name="createskew"> 63, </key>\r
+<key name="createtap"> 63, </key>\r
+<key name="createvolume3d"> 63, </key>\r
+<key name="createwarp"> 63, </key>\r
+<key name="creation"> 13,37,61,38,51, </key>\r
+<key name="criteria"> 31,65, </key>\r
+<key name="criterion"> 17,19,2,24,25,57,58,32,36,63,65,44,47,49,69,54, </key>\r
+<key name="cros"> 0,5,54, </key>\r
+<key name="cubic"> 14, </key>\r
+<key name="current"> 20,22,25,38,65,43,49, </key>\r
+<key name="curv"> 13,18,11, </key>\r
+<key name="curvilinear"> 18,11, </key>\r
+<key name="cut"> 18,6,25,7,57,60,66,51, </key>\r
+<key name="cutgroup"> 57, </key>\r
+<key name="cylind"> 60, </key>\r
+<key name="d"> 18, </key>\r
+<key name="deal"> 13, </key>\r
+<key name="def"> 60, </key>\r
+<key name="default"> 0,22,11,62,65,67,53, </key>\r
+<key name="defin"> 13,14,1,18,19,5,22,6,23,24,7,11,60,37,61,43,66,53, </key>\r
+<key name="definit"> 13,15,18,20,21,24,25,31,38,39,49, </key>\r
+<key name="definition"> 0,18,33,34, </key>\r
+<key name="deflection"> 12,18,7,31, </key>\r
+<key name="deflection1d"> 7, </key>\r
+<key name="deform"> 53, </key>\r
+<key name="degre"> 19,5, </key>\r
+<key name="delet"> 8,56,60,39,65, </key>\r
+<key name="deletediag"> 60, </key>\r
+<key name="deletion"> 39,50, </key>\r
+<key name="density"> 18, </key>\r
+<key name="depend"> 12,13,22,33,34, </key>\r
+<key name="describ"> 13,61, </key>\r
+<key name="description"> 61, </key>\r
+<key name="desirabl"> 35, </key>\r
+<key name="desktop"> 42, </key>\r
+<key name="destin"> 13,15,31, </key>\r
+<key name="detail"> 12,0, </key>\r
+<key name="detect"> 35, </key>\r
+<key name="dh"> 60, </key>\r
+<key name="diagonal"> 25,26,60,47, </key>\r
+<key name="dialog"> 14,16,1,18,20,22,23,25,26,27,29,10,11,30,59,35,61,39,40,64,41,43,45,46,48,49,50,51, </key>\r
+<key name="diamet"> 19, </key>\r
+<key name="dif"> 1, </key>\r
+<key name="differ"> 18, </key>\r
+<key name="differenc"> 11,43, </key>\r
+<key name="different"> 12,16,24,38,65,43, </key>\r
+<key name="dimension"> 13,2,22,10,64,52, </key>\r
+<key name="direct"> 13,43,45, </key>\r
+<key name="direction"> 61,54, </key>\r
+<key name="dirstruct"> 60,66, </key>\r
+<key name="discretisation"> 6,7, </key>\r
+<key name="discretiz"> 10,64, </key>\r
+<key name="discretization"> 13,14, </key>\r
+<key name="displac"> 27, </key>\r
+<key name="display"> 15,0,1,17,19,2,3,20,22,23,24,25,7,27,9,28,55,32,36,62,44,45,47,49,52,69,53,54, </key>\r
+<key name="distanc"> 18,5,61,53,54, </key>\r
+<key name="distinguish"> 24, </key>\r
+<key name="distortion"> 45, </key>\r
+<key name="distribution"> 18, </key>\r
+<key name="divid"> 18, </key>\r
+<key name="do"> 16, </key>\r
+<key name="domain"> 61, </key>\r
+<key name="don"> 13,22,37,53, </key>\r
+<key name="doubl"> 1, </key>\r
+<key name="downward"> 53, </key>\r
+<key name="dr"> 60, </key>\r
+<key name="drag"> 53, </key>\r
+<key name="drawn"> 53, </key>\r
+<key name="dump"> 0,53, </key>\r
+<key name="dx"> 60, </key>\r
+<key name="dy"> 60, </key>\r
+<key name="e"> 19,22,23,25,61,43,49, </key>\r
+<key name="easi"> 21, </key>\r
+<key name="edg"> 12,13,14,15,0,16,1,18,19,3,4,21,22,6,24,25,7,26,27,9,11,55,56,57,31,58,33,32,60,37,61,63,65,43,45,66,49,50,68,54, </key>\r
+<key name="edgeslist"> 66, </key>\r
+<key name="edgex111"> 6,7, </key>\r
+<key name="edgex112"> 6,7, </key>\r
+<key name="edgex121"> 6,7, </key>\r
+<key name="edgex122"> 6,7, </key>\r
+<key name="edgey11"> 6,7, </key>\r
+<key name="edgey12"> 6,7, </key>\r
+<key name="edgey21"> 6,7, </key>\r
+<key name="edgey22"> 6,7, </key>\r
+<key name="edgez111"> 6,7, </key>\r
+<key name="edgez121"> 6,7, </key>\r
+<key name="edgez211"> 6,7, </key>\r
+<key name="edgez221"> 6,7, </key>\r
+<key name="edit"> 6,8,29,57,35,38, </key>\r
+<key name="effect"> 49, </key>\r
+<key name="eith"> 61,43, </key>\r
+<key name="element"> 12,13,14,15,0,16,1,17,18,19,2,4,20,21,24,25,7,8,26,27,28,29,10,11,56,57,31,33,32,59,36,60,34,37,61,63,39,40,64,41,65,43,44,45,46,47,66,48,49,51,52,69,54, </key>\r
+<key name="els"> 7,57,60,61, </key>\r
+<key name="enabl"> 65, </key>\r
+<key name="encapsulat"> 23, </key>\r
+<key name="encounter"> 61, </key>\r
+<key name="end"> 12,18,7,31,37,65,43,48, </key>\r
+<key name="enough"> 43, </key>\r
+<key name="ent"> 24,26,27,30,50, </key>\r
+<key name="entiti"> 13,14, </key>\r
+<key name="entity"> 13,0,9,65, </key>\r
+<key name="equal"> 18,33,61,65,43,45, </key>\r
+<key name="equidistant"> 18, </key>\r
+<key name="equilateral"> 19, </key>\r
 <key name="eras"> 0, </key>\r
-<key name="etc"> 14,1,24,48, </key>\r
-<key name="evaluat"> 1, </key>\r
-<key name="even"> 21, </key>\r
-<key name="eventual"> 58, </key>\r
-<key name="every"> 52, </key>\r
-<key name="everyth"> 21, </key>\r
-<key name="exampl"> 12,21,58,50, </key>\r
-<key name="exce"> 17, </key>\r
-<key name="exceed"> 44, </key>\r
-<key name="except"> 42, </key>\r
-<key name="exist"> 11,19,23,24,28,58,62,48, </key>\r
-<key name="existenc"> 21, </key>\r
-<key name="export"> 5,29,30, </key>\r
-<key name="exportation"> 29, </key>\r
-<key name="exportm"> 5, </key>\r
-<key name="extend"> 52, </key>\r
-<key name="extremiti"> 4, </key>\r
-<key name="extrud"> 9,10,61, </key>\r
-<key name="extrusion"> 9,10,57, </key>\r
-<key name="extrusionalongpathobject"> 57, </key>\r
-<key name="extrusionsweepobject"> 57, </key>\r
-<key name="f"> 17,6, </key>\r
-<key name="fac"> 11,12,13,15,17,1,2,20,21,5,23,6,8,53,55,30,32,57,36,58,60,62,42,63,51,65,52, </key>\r
-<key name="face1"> 6,57, </key>\r
-<key name="facelist"> 60, </key>\r
-<key name="facesrotat"> 57, </key>\r
-<key name="facessmooth"> 57, </key>\r
-<key name="facestritoquad"> 57, </key>\r
-<key name="facex11"> 5,6, </key>\r
-<key name="facex21"> 5,6, </key>\r
-<key name="facey111"> 5,6, </key>\r
-<key name="facey121"> 5,6, </key>\r
-<key name="facez11"> 5,6, </key>\r
-<key name="facez12"> 5,6, </key>\r
-<key name="factor"> 17, </key>\r
-<key name="factoryserv"> 5,6,55,60,65, </key>\r
-<key name="far"> 42, </key>\r
-<key name="fashion"> 10, </key>\r
-<key name="fast"> 44, </key>\r
-<key name="field"> 15,19,23,24,25,26,39,62,42,44,48,49, </key>\r
-<key name="fifth"> 42, </key>\r
-<key name="fil"> 29,58,62, </key>\r
-<key name="fill"> 39,42, </key>\r
-<key name="filt"> 19,23,24,62,48, </key>\r
-<key name="filter"> 23,62, </key>\r
-<key name="find"> 29,58,42, </key>\r
-<key name="findcoincidentnod"> 63, </key>\r
-<key name="findorloadcomponent"> 5,6,55,60,65, </key>\r
-<key name="first"> 17,21,55,58,42, </key>\r
-<key name="fix"> 12,5,6,57,44,63, </key>\r
-<key name="flag"> 58, </key>\r
-<key name="fold"> 21,22, </key>\r
-<key name="follow"> 11,12,13,0,15,18,1,19,21,22,23,24,25,26,27,28,9,10,34,58,38,39,61,40,42,44,45,47,48,49,50,51, </key>\r
-<key name="form"> 25,28,58,42, </key>\r
-<key name="format"> 29,30, </key>\r
-<key name="formula"> 17,1, </key>\r
-<key name="four"> 12,52, </key>\r
-<key name="fre"> 12,14,53,54,30,60,42,44,63, </key>\r
-<key name="function"> 12, </key>\r
-<key name="functionaliti"> 0, </key>\r
-<key name="functionality"> 21,29,34,42, </key>\r
-<key name="generat"> 11,12,14,17,21,30,36,58, </key>\r
-<key name="generation"> 9,58,61, </key>\r
-<key name="geom"> 12,6,30, </key>\r
-<key name="geometric"> 12,14,6, </key>\r
-<key name="geometrical"> 11,12,13,17,21,22,23,30,32,33,58,37,40,44,45,47,51, </key>\r
-<key name="geometry"> 23,55,44, </key>\r
-<key name="geompy"> 5,6,55,57,60,63,65, </key>\r
-<key name="get"> 0,4,21,10,58,51, </key>\r
-<key name="getelementsid"> 55,60, </key>\r
-<key name="getid"> 5,6,55, </key>\r
-<key name="getlistofid"> 55, </key>\r
-<key name="getmaxelementarea"> 5,6,55, </key>\r
-<key name="getmaxelementvolum"> 5,6,55, </key>\r
-<key name="getmesh"> 57,63, </key>\r
-<key name="getmesheditor"> 57,60,63, </key>\r
-<key name="getnam"> 5,6,55, </key>\r
-<key name="getnumberofsegment"> 5,6,55, </key>\r
-<key name="gg"> 6, </key>\r
-<key name="giv"> 62,51, </key>\r
-<key name="given"> 17,1,36,42, </key>\r
-<key name="good"> 44, </key>\r
-<key name="got"> 58, </key>\r
-<key name="green"> 23, </key>\r
-<key name="group"> 19,20,23,24,7,28,10,55,30,34,57,60,62,47,48,50,51, </key>\r
-<key name="group1"> 50, </key>\r
-<key name="group12"> 50, </key>\r
-<key name="group12a"> 50, </key>\r
-<key name="group12b"> 50, </key>\r
-<key name="group2"> 50, </key>\r
-<key name="grouprotat"> 57, </key>\r
-<key name="groupsmooth"> 57, </key>\r
-<key name="groupsofnod"> 63, </key>\r
-<key name="grouptritoquad"> 57, </key>\r
-<key name="h"> 52, </key>\r
-<key name="h1"> 18, </key>\r
-<key name="h2"> 18, </key>\r
-<key name="half"> 52, </key>\r
-<key name="halv"> 4, </key>\r
-<key name="hav"> 36,58, </key>\r
-<key name="height"> 18,52, </key>\r
-<key name="helical"> 10, </key>\r
-<key name="help"> 14, </key>\r
-<key name="henc"> 58, </key>\r
-<key name="her"> 28,58, </key>\r
-<key name="hexa"> 5,6,57, </key>\r
-<key name="hexa_3d"> 6, </key>\r
-<key name="hexa3d"> 6, </key>\r
-<key name="hexagon"> 10, </key>\r
-<key name="hexahedral"> 13,5,6, </key>\r
-<key name="hexahedralization"> 21, </key>\r
-<key name="hexahedrical"> 5,6,57, </key>\r
-<key name="hexahedron"> 12,13,15,1,6,57,33,65, </key>\r
-<key name="hid"> 0, </key>\r
-<key name="high"> 12, </key>\r
-<key name="highlight"> 2,3,19,23,24,53,54,48, </key>\r
-<key name="hol"> 54, </key>\r
-<key name="hold"> 58, </key>\r
-<key name="how"> 10,37, </key>\r
-<key name="hyp"> 22, </key>\r
-<key name="hyp1"> 5,60,65, </key>\r
-<key name="hyp2"> 5,60,65, </key>\r
-<key name="hyp3"> 5,65, </key>\r
-<key name="hyp4"> 5,65, </key>\r
-<key name="hyparea"> 5,6,55, </key>\r
-<key name="hypnbseg"> 5,6,55, </key>\r
-<key name="hypothes"> 11,17,21,22,6,30,36,37, </key>\r
-<key name="hypothesi"> 11,17,21,5,6,55,32,57,33,36,37,63,65, </key>\r
-<key name="hypvolum"> 5,6,55, </key>\r
-<key name="i"> 21,24,55,58,60,42,48, </key>\r
-<key name="icon"> 28,38,41, </key>\r
-<key name="id"> 0,17,19,23,24,25,26,27,9,10,61,42,44,48,49, </key>\r
-<key name="id_circl"> 57, </key>\r
-<key name="id_face1"> 6,57, </key>\r
-<key name="idbox"> 5,6,55,60,65, </key>\r
-<key name="idcomp"> 63, </key>\r
-<key name="idea"> 10, </key>\r
-<key name="idedg"> 5,65, </key>\r
-<key name="idfac"> 55, </key>\r
-<key name="idtoobject"> 5,60,63,65, </key>\r
-<key name="if"> 12,15,4,21,5,6,9,10,55,57,36,58,37,38,61,62,42,44,48, </key>\r
-<key name="imag"> 10, </key>\r
-<key name="imp"> 12, </key>\r
-<key name="import"> 5,6,55,29,30,57,60,63,65, </key>\r
-<key name="importation"> 29, </key>\r
-<key name="importcomponentgui"> 5,6,55,60, </key>\r
-<key name="includ"> 12,51, </key>\r
-<key name="increas"> 5,6,63, </key>\r
-<key name="index"> 58, </key>\r
-<key name="indic"> 58, </key>\r
-<key name="indicat"> 52, </key>\r
-<key name="info"> 0,51,65, </key>\r
-<key name="information"> 12,0,28,51,65, </key>\r
-<key name="init"> 5,6,55,60, </key>\r
-<key name="initial"> 10,62,45,50, </key>\r
-<key name="initializ"> 5,6,55, </key>\r
-<key name="input"> 17, </key>\r
-<key name="insert"> 62,42, </key>\r
-<key name="instead"> 58, </key>\r
-<key name="intact"> 7, </key>\r
-<key name="intend"> 42, </key>\r
-<key name="interest"> 12, </key>\r
-<key name="intermediat"> 42, </key>\r
-<key name="internal"> 58, </key>\r
-<key name="intersect"> 58,50, </key>\r
-<key name="intersectgroup"> 55, </key>\r
-<key name="intersection"> 55,58,50, </key>\r
-<key name="introduc"> 11,36, </key>\r
-<key name="introduction"> 30, </key>\r
-<key name="invers"> 12,25,57, </key>\r
-<key name="inversediag"> 57, </key>\r
-<key name="inversion"> 25,57, </key>\r
-<key name="invisibl"> 64, </key>\r
-<key name="iso"> 58, </key>\r
-<key name="isolin"> 58, </key>\r
-<key name="isplanarfac"> 6,57, </key>\r
-<key name="item"> 15,19,20,24,25,26,28,9,10,29,34,58,39,61,40,42,44,45,47,48,49,50, </key>\r
-<key name="iteration"> 10,44, </key>\r
-<key name="iterativ"> 44, </key>\r
-<key name="join"> 43, </key>\r
-<key name="just"> 58,38, </key>\r
-<key name="k"> 17, </key>\r
-<key name="keep"> 10,44,45, </key>\r
-<key name="key"> 58, </key>\r
-<key name="know"> 58, </key>\r
-<key name="ko"> 57, </key>\r
-<key name="l"> 52, </key>\r
-<key name="laplacian"> 44, </key>\r
-<key name="largest"> 18, </key>\r
-<key name="last"> 17,42, </key>\r
-<key name="lastnodeid"> 57, </key>\r
-<key name="lay"> 9,58,61, </key>\r
-<key name="lcc"> 5,6,55,60,65, </key>\r
-<key name="learn"> 0,51, </key>\r
-<key name="least"> 58,44, </key>\r
-<key name="leav"> 21,7, </key>\r
-<key name="left"> 10,58, </key>\r
-<key name="legth"> 60, </key>\r
-<key name="len"> 55,60, </key>\r
-<key name="length"> 11,14,17,18,5,6,30,56,31,36,60,42,63,52, </key>\r
-<key name="lengthfromedg"> 6, </key>\r
-<key name="les"> 62,42,44, </key>\r
-<key name="let"> 10, </key>\r
-<key name="level"> 11,15, </key>\r
-<key name="libnetgenengin"> 6, </key>\r
-<key name="library"> 23,62, </key>\r
-<key name="libstdmeshersengin"> 5,6,55,60,65, </key>\r
-<key name="lik"> 15,1,21,27,42, </key>\r
-<key name="limit"> 58,42,44, </key>\r
-<key name="lin"> 12,17,9,58,61,43, </key>\r
-<key name="link"> 42, </key>\r
-<key name="list"> 15,19,23,24,7,10,62,48, </key>\r
-<key name="lk"> 17, </key>\r
-<key name="ll"> 21, </key>\r
-<key name="load"> 58,62, </key>\r
-<key name="local"> 5,22,6,30,57,36,63, </key>\r
-<key name="locallength"> 6, </key>\r
-<key name="locat"> 58,42, </key>\r
-<key name="location"> 17,26,29,44, </key>\r
-<key name="longest"> 18, </key>\r
-<key name="look"> 27,58,62, </key>\r
-<key name="low"> 12, </key>\r
-<key name="ly"> 58, </key>\r
-<key name="main"> 19,24,7,10,36,58,62,48,50, </key>\r
-<key name="makearc"> 6,57, </key>\r
-<key name="makebox"> 5,6,55,60,63,65, </key>\r
-<key name="makecirclethreepnt"> 57, </key>\r
-<key name="makecompound"> 5,6,60,63, </key>\r
-<key name="makecylinderrh"> 6, </key>\r
-<key name="makeedg"> 5,6, </key>\r
-<key name="makefac"> 6,57, </key>\r
-<key name="makehexa"> 5,6, </key>\r
-<key name="makequad"> 5,6, </key>\r
-<key name="makesketch"> 6, </key>\r
-<key name="makevector"> 6,57, </key>\r
-<key name="makevertex"> 5,6,57, </key>\r
-<key name="makewir"> 6,57, </key>\r
-<key name="manag"> 11,15, </key>\r
-<key name="manual"> 23,58, </key>\r
-<key name="map"> 58, </key>\r
-<key name="mas"> 10, </key>\r
-<key name="math"> 57,63, </key>\r
-<key name="max"> 11,30,32,33,44, </key>\r
-<key name="maxelementarea"> 5,6,55,57,60,65, </key>\r
-<key name="maxelementarea_500"> 5,55, </key>\r
-<key name="maxelementarea_800"> 6, </key>\r
-<key name="maxelementvolum"> 5,6,55, </key>\r
-<key name="maxelementvolume_500"> 5,55, </key>\r
-<key name="maxelementvolume_900"> 6, </key>\r
-<key name="maximum"> 17,6,32,33,43,44, </key>\r
-<key name="mean"> 12, </key>\r
-<key name="meaningful"> 12, </key>\r
-<key name="measur"> 52, </key>\r
-<key name="meet"> 24,48, </key>\r
-<key name="mefisto_2d"> 5,6,60,65, </key>\r
-<key name="mefisto2d"> 5,6, </key>\r
-<key name="menu"> 0,15,19,4,20,21,22,23,24,7,25,26,27,28,9,10,29,34,36,58,38,39,61,40,41,62,42,44,45,47,48,49,50,51, </key>\r
-<key name="merg"> 34,42,63, </key>\r
-<key name="mergenod"> 63, </key>\r
-<key name="mesh"> 11,12,13,14,0,15,16,17,18,1,2,3,19,4,20,21,5,22,23,24,6,7,25,26,27,28,9,10,53,54,55,29,30,32,31,34,35,57,33,36,58,59,60,37,38,39,61,40,41,62,42,43,44,45,46,63,47,48,49,50,51,65,52, </key>\r
-<key name="mesh_1"> 21, </key>\r
-<key name="mesh_borders_at_multi"> 60, </key>\r
-<key name="mesh_freebord"> 60, </key>\r
-<key name="meshbox"> 5,6,55, </key>\r
-<key name="meshm"> 5, </key>\r
-<key name="method"> 44, </key>\r
-<key name="minimum"> 14,24,30,35,60,42,48, </key>\r
-<key name="mirror"> 63, </key>\r
-<key name="mirrorobject"> 63, </key>\r
-<key name="mod"> 0,59, </key>\r
-<key name="model"> 12,30, </key>\r
-<key name="modification"> 12,15,19,24,25,26,28,9,10,30,34,58,38,39,61,40,42,44,45,47,48,49, </key>\r
-<key name="modify"> 19,24,28,57,48, </key>\r
-<key name="modul"> 12,13,30,41, </key>\r
-<key name="mous"> 23, </key>\r
-<key name="mov"> 26,30,57, </key>\r
-<key name="movenod"> 57, </key>\r
-<key name="mport"> 63, </key>\r
-<key name="multi"> 14,2,3,30,60, </key>\r
-<key name="multiconnection"> 60, </key>\r
-<key name="multipli"> 18, </key>\r
-<key name="must"> 21,10,58,62,42, </key>\r
-<key name="mystudy"> 5,60,65, </key>\r
-<key name="mystudyid"> 5,6,55,60, </key>\r
-<key name="n"> 58,42, </key>\r
-<key name="nam"> 21,5,23,28,55,29,62,50,65, </key>\r
-<key name="nb"> 55,60, </key>\r
-<key name="nbedg"> 65, </key>\r
-<key name="nbfac"> 65, </key>\r
-<key name="nbhexa"> 65, </key>\r
-<key name="nbnod"> 57,65, </key>\r
-<key name="nbpolygon"> 65, </key>\r
-<key name="nbpolyhedron"> 65, </key>\r
-<key name="nbprism"> 65, </key>\r
-<key name="nbpyramid"> 65, </key>\r
-<key name="nbquadrangl"> 65, </key>\r
-<key name="nbtetra"> 65, </key>\r
-<key name="nbtriangl"> 65, </key>\r
-<key name="nbvolum"> 65, </key>\r
-<key name="ne"> 21, </key>\r
-<key name="necessary"> 15, </key>\r
-<key name="need"> 1, </key>\r
-<key name="neighbor"> 25,49, </key>\r
-<key name="netgen"> 13, </key>\r
-<key name="netgen_3d"> 6, </key>\r
-<key name="netgen3d"> 6, </key>\r
-<key name="netgenplugin"> 6, </key>\r
-<key name="new"> 4,21,22,23,26,58,37,62,50, </key>\r
-<key name="next"> 0,17,58, </key>\r
-<key name="nod"> 12,0,15,16,17,18,19,20,23,26,27,9,30,34,57,58,59,38,39,61,62,42,43,44,46,63,51,65,52, </key>\r
-<key name="nodal"> 58,44, </key>\r
-<key name="non"> 21, </key>\r
-<key name="normal"> 45,52, </key>\r
-<key name="not"> 15,21,7,44, </key>\r
-<key name="notic"> 12, </key>\r
-<key name="now"> 4,21,10, </key>\r
-<key name="numb"> 11,12,17,5,6,9,30,57,58,61,42,44,63,51,65, </key>\r
-<key name="number"> 0,27, </key>\r
-<key name="numberofsegment"> 5,6,55,57,60,63,65, </key>\r
-<key name="numberofsegments_10"> 5,6,55, </key>\r
-<key name="numerical"> 11, </key>\r
-<key name="obey"> 42, </key>\r
-<key name="object"> 11,13,0,15,17,4,20,21,22,23,24,6,7,28,29,32,57,33,58,59,37,38,39,40,47,48,51, </key>\r
-<key name="objecttoid"> 5,6,55,60, </key>\r
-<key name="objet"> 23, </key>\r
-<key name="obliqu"> 10, </key>\r
-<key name="obtain"> 15,21, </key>\r
-<key name="ok"> 15,19,4,24,7,25,26,28,9,10,29,57,38,39,61,42,44,48,49,50, </key>\r
-<key name="on"> 12,17,21,22,24,7,25,9,53,54,36,58,60,37,38,61,62,42,44,45,47,48,50,65, </key>\r
-<key name="onc"> 48, </key>\r
-<key name="onto"> 36,58, </key>\r
-<key name="opaqu"> 64, </key>\r
-<key name="operat"> 11, </key>\r
-<key name="operation"> 13,0,15,16,17,18,1,2,3,19,22,23,24,7,25,26,28,9,10,53,54,29,30,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52, </key>\r
-<key name="opposit"> 11,4,5,24,6,36,42,43,63, </key>\r
-<key name="option"> 12,45,47, </key>\r
-<key name="optional"> 21,10, </key>\r
-<key name="ord"> 12,19,58, </key>\r
-<key name="orientation"> 19,4,24,48, </key>\r
-<key name="origin"> 52, </key>\r
-<key name="other"> 48, </key>\r
-<key name="otherwis"> 21, </key>\r
-<key name="our"> 21, </key>\r
-<key name="outlin"> 54, </key>\r
-<key name="outsid"> 58, </key>\r
-<key name="own"> 12, </key>\r
-<key name="pag"> 23, </key>\r
-<key name="pair"> 17, </key>\r
-<key name="paramet"> 12,17,62,42, </key>\r
-<key name="parameter"> 11,0,4,10,40,42, </key>\r
-<key name="parametric"> 12,58, </key>\r
-<key name="part"> 42,44, </key>\r
-<key name="particularity"> 12, </key>\r
-<key name="path"> 10,57,62, </key>\r
-<key name="pattern"> 58, </key>\r
-<key name="pattern_nam"> 58, </key>\r
-<key name="pentahedron"> 1, </key>\r
-<key name="perfect"> 18, </key>\r
-<key name="perform"> 30,39,42,45,50, </key>\r
-<key name="pi"> 57,63, </key>\r
-<key name="pictur"> 2,23,10,53,54, </key>\r
-<key name="plac"> 42, </key>\r
-<key name="plan"> 4,55,60,45,52, </key>\r
-<key name="planar"> 52, </key>\r
-<key name="platform"> 23,41, </key>\r
-<key name="pleas"> 7, </key>\r
-<key name="plu"> 9,61, </key>\r
-<key name="point"> 12,17,6,10,57,58,61,40,42,45,63,47,52, </key>\r
-<key name="point111"> 5,6, </key>\r
-<key name="point112"> 5,6, </key>\r
-<key name="point121"> 5,6, </key>\r
-<key name="point122"> 5,6, </key>\r
-<key name="point211"> 5,6, </key>\r
-<key name="point212"> 5,6, </key>\r
-<key name="point221"> 5,6, </key>\r
-<key name="point222"> 5,6, </key>\r
-<key name="pointstruct"> 57,63, </key>\r
-<key name="polygon"> 15,65, </key>\r
-<key name="polyhedral"> 15, </key>\r
-<key name="polyhedron"> 15,65, </key>\r
-<key name="pop"> 0,7,27, </key>\r
-<key name="position"> 12,58, </key>\r
-<key name="posses"> 36, </key>\r
-<key name="possibility"> 62, </key>\r
-<key name="possibl"> 11,1,23,58, </key>\r
-<key name="powerful"> 62, </key>\r
-<key name="precision"> 15, </key>\r
-<key name="preferenc"> 59, </key>\r
-<key name="prefix"> 62, </key>\r
-<key name="pres"> 15,10,38,44, </key>\r
-<key name="present"> 12,50, </key>\r
-<key name="presentation"> 14,0, </key>\r
-<key name="preserv"> 58, </key>\r
-<key name="preset"> 11, </key>\r
-<key name="preview"> 15,4,24,58,62, </key>\r
-<key name="previou"> 17,48, </key>\r
-<key name="previous"> 22,23,30,58, </key>\r
-<key name="principl"> 10, </key>\r
-<key name="print"> 5,6,55,57,60,65, </key>\r
-<key name="prism"> 65, </key>\r
-<key name="problem"> 5,6,55, </key>\r
-<key name="proce"> 21,7, </key>\r
-<key name="procedur"> 18,44, </key>\r
-<key name="proceed"> 37, </key>\r
-<key name="proces"> 44, </key>\r
-<key name="produc"> 12,9,61,44, </key>\r
-<key name="product"> 52, </key>\r
-<key name="program"> 17,21, </key>\r
-<key name="progression"> 17, </key>\r
-<key name="project"> 58, </key>\r
-<key name="projection"> 58,52, </key>\r
-<key name="propagat"> 5,6,36,63, </key>\r
-<key name="propagatea"> 6, </key>\r
-<key name="propagation"> 11,5,6,36,63,65, </key>\r
-<key name="provid"> 15, </key>\r
-<key name="pseudo"> 25, </key>\r
-<key name="pul"> 44, </key>\r
-<key name="px"> 6,57, </key>\r
-<key name="px1"> 57, </key>\r
-<key name="py"> 6,57, </key>\r
-<key name="py1"> 57, </key>\r
-<key name="pyramid"> 65, </key>\r
-<key name="pyramidal"> 13, </key>\r
-<key name="python"> 51, </key>\r
-<key name="pz"> 6,57, </key>\r
-<key name="pz1"> 57, </key>\r
-<key name="qi"> 1, </key>\r
-<key name="qk"> 1, </key>\r
-<key name="quad"> 57,52, </key>\r
-<key name="quad2d"> 6,55, </key>\r
-<key name="quadrangl"> 12,13,15,16,18,1,5,24,6,25,9,32,31,35,57,61,43,63,65, </key>\r
-<key name="quadrangle_2d"> 6,55, </key>\r
-<key name="quadrangular"> 13,5,6,36,63, </key>\r
-<key name="quadtotri"> 57, </key>\r
-<key name="quality"> 14,0,16,18,1,2,3,24,53,54,30,56,31,35,60,43,46,48,52, </key>\r
-<key name="quantity"> 11, </key>\r
-<key name="radio"> 19,23,24,40,42,45,48, </key>\r
-<key name="rang"> 55,60, </key>\r
-<key name="ratio"> 14,18,1,30,60,44,46,52, </key>\r
-<key name="ready"> 21, </key>\r
+<key name="etc"> 15,2,25,49, </key>\r
+<key name="even"> 22,33, </key>\r
+<key name="eventual"> 61, </key>\r
+<key name="every"> 54, </key>\r
+<key name="everyth"> 22, </key>\r
+<key name="exampl"> 13,2,22,24,61,51, </key>\r
+<key name="exce"> 18, </key>\r
+<key name="exceed"> 45, </key>\r
+<key name="except"> 43,53, </key>\r
+<key name="exist"> 12,20,24,25,29,61,65,49, </key>\r
+<key name="existenc"> 22, </key>\r
+<key name="exponent"> 18, </key>\r
+<key name="export"> 0,6,30,31,53, </key>\r
+<key name="exportation"> 30, </key>\r
+<key name="exportm"> 6, </key>\r
+<key name="extend"> 53,54, </key>\r
+<key name="extreme"> 18, </key>\r
+<key name="extremiti"> 5, </key>\r
+<key name="extrud"> 10,11,60,64, </key>\r
+<key name="extrusion"> 10,11,60,66, </key>\r
+<key name="extrusionalongpathobject"> 60,66, </key>\r
+<key name="extrusionsweepobject"> 60, </key>\r
+<key name="f"> 18,7, </key>\r
+<key name="fac"> 12,13,14,0,16,18,2,3,21,22,6,23,24,7,9,55,57,31,33,60,37,61,63,65,43,66,52,68,54, </key>\r
+<key name="face_1"> 60, </key>\r
+<key name="face_2"> 60, </key>\r
+<key name="face1"> 7,60,66, </key>\r
+<key name="facelist"> 63, </key>\r
+<key name="facesrotat"> 60, </key>\r
+<key name="facessmooth"> 60, </key>\r
+<key name="facestritoquad"> 60, </key>\r
+<key name="facex11"> 6,7, </key>\r
+<key name="facex21"> 6,7, </key>\r
+<key name="facey111"> 6,7, </key>\r
+<key name="facey121"> 6,7, </key>\r
+<key name="facez11"> 6,7, </key>\r
+<key name="facez12"> 6,7, </key>\r
+<key name="factor"> 18,25, </key>\r
+<key name="factoryserv"> 6,7,57,60,63,68, </key>\r
+<key name="fail"> 60, </key>\r
+<key name="far"> 43, </key>\r
+<key name="fashion"> 11, </key>\r
+<key name="fast"> 45, </key>\r
+<key name="featur"> 24, </key>\r
+<key name="field"> 16,1,20,24,26,27,40,65,43,45,49,50, </key>\r
+<key name="fifth"> 43, </key>\r
+<key name="fil"> 30,61,65, </key>\r
+<key name="fill"> 63,40,43, </key>\r
+<key name="filt"> 20,24,25,65,49, </key>\r
+<key name="filter"> 24,65, </key>\r
+<key name="fin"> 18, </key>\r
+<key name="find"> 30,61,43, </key>\r
+<key name="findcoincidentnod"> 66, </key>\r
+<key name="findorloadcomponent"> 6,7,57,60,63,68, </key>\r
+<key name="finenes"> 18, </key>\r
+<key name="first"> 1,18,22,57,60,37,61,43, </key>\r
+<key name="fit"> 53, </key>\r
+<key name="fiv"> 60, </key>\r
+<key name="fix"> 13,6,7,45,66, </key>\r
+<key name="flag"> 61, </key>\r
+<key name="fold"> 22,23, </key>\r
+<key name="follow"> 12,13,14,16,1,2,20,22,23,24,25,26,27,28,29,10,11,35,61,39,40,64,41,43,45,46,48,49,50,51,52, </key>\r
+<key name="font"> 53, </key>\r
+<key name="form"> 1,26,29,61,43, </key>\r
+<key name="format"> 0,30,31,53, </key>\r
+<key name="formula"> 18,19,2, </key>\r
+<key name="four"> 13,19,54, </key>\r
+<key name="fourth"> 60, </key>\r
+<key name="fram"> 53, </key>\r
+<key name="fre"> 13,15,55,56,31,63,43,45,66, </key>\r
+<key name="function"> 13, </key>\r
+<key name="functionaliti"> 53, </key>\r
+<key name="functionality"> 22,30,59,35,43,53, </key>\r
+<key name="futur"> 18, </key>\r
+<key name="g"> 23, </key>\r
+<key name="gaus"> 53, </key>\r
+<key name="generat"> 12,13,15,18,22,31,37,61, </key>\r
+<key name="generation"> 10,61,64, </key>\r
+<key name="geom"> 13,7,31,60, </key>\r
+<key name="geometric"> 13,15,7, </key>\r
+<key name="geometrical"> 12,13,14,18,22,23,24,31,33,34,61,38,41,45,46,48,52, </key>\r
+<key name="geometry"> 23,24,57,60,45, </key>\r
+<key name="geompy"> 6,7,57,60,63,66,68, </key>\r
+<key name="get"> 0,5,22,7,11,61,52, </key>\r
+<key name="getalgorithm"> 60, </key>\r
+<key name="getborder"> 63, </key>\r
+<key name="getelementsid"> 57,63, </key>\r
+<key name="geterrorcod"> 60, </key>\r
+<key name="getid"> 6, </key>\r
+<key name="getlistofid"> 57, </key>\r
+<key name="getmaxelementarea"> 6,7, </key>\r
+<key name="getmaxelementvolum"> 6,7, </key>\r
+<key name="getmesh"> 60,66, </key>\r
+<key name="getmesheditor"> 60,63,66, </key>\r
+<key name="getnam"> 6,7, </key>\r
+<key name="getnumberofsegment"> 6,7, </key>\r
+<key name="getpattern"> 60, </key>\r
+<key name="gg"> 7, </key>\r
+<key name="giv"> 65,52, </key>\r
+<key name="given"> 18,33,43, </key>\r
+<key name="global"> 53, </key>\r
+<key name="go"> 60, </key>\r
+<key name="good"> 45, </key>\r
+<key name="got"> 61, </key>\r
+<key name="graduat"> 53, </key>\r
+<key name="graphical"> 0, </key>\r
+<key name="great"> 18,53, </key>\r
+<key name="greatest"> 19,2, </key>\r
+<key name="green"> 24, </key>\r
+<key name="group"> 20,21,24,25,8,29,11,57,31,35,60,63,65,45,48,49,51,52, </key>\r
+<key name="group1"> 51, </key>\r
+<key name="group12"> 51, </key>\r
+<key name="group12a"> 51, </key>\r
+<key name="group12b"> 51, </key>\r
+<key name="group2"> 51, </key>\r
+<key name="grouprotat"> 60, </key>\r
+<key name="groupsmooth"> 60, </key>\r
+<key name="groupsofnod"> 66, </key>\r
+<key name="grouptritoquad"> 60, </key>\r
+<key name="h"> 54, </key>\r
+<key name="half"> 19,54, </key>\r
+<key name="halv"> 5, </key>\r
+<key name="hav"> 19,33,37,61, </key>\r
+<key name="hedron"> 60, </key>\r
+<key name="height"> 54, </key>\r
+<key name="helical"> 11, </key>\r
+<key name="help"> 15, </key>\r
+<key name="henc"> 61, </key>\r
+<key name="her"> 61, </key>\r
+<key name="hexa"> 6,7, </key>\r
+<key name="hexa_3d"> 7, </key>\r
+<key name="hexa3d"> 7, </key>\r
+<key name="hexagon"> 11, </key>\r
+<key name="hexahedral"> 14,6,7, </key>\r
+<key name="hexahedralization"> 22, </key>\r
+<key name="hexahedrical"> 6,7, </key>\r
+<key name="hexahedron"> 13,14,16,2,7,60,34,68, </key>\r
+<key name="hh"> 60, </key>\r
+<key name="hid"> 0,53, </key>\r
+<key name="high"> 13, </key>\r
+<key name="highlight"> 3,4,20,24,25,55,56,49, </key>\r
+<key name="hmax"> 19, </key>\r
+<key name="hol"> 56, </key>\r
+<key name="hold"> 61, </key>\r
+<key name="how"> 11,38, </key>\r
+<key name="hyp"> 23, </key>\r
+<key name="hyp1"> 6,63,68, </key>\r
+<key name="hyp2"> 6,63,68, </key>\r
+<key name="hyp3"> 6,68, </key>\r
+<key name="hyp4"> 6,68, </key>\r
+<key name="hyparea"> 6,7, </key>\r
+<key name="hypnbseg"> 6,7,57, </key>\r
+<key name="hypothes"> 12,0,18,22,23,7,57,31,33,37,38, </key>\r
+<key name="hypothesi"> 12,18,22,6,7,57,33,34,37,38,66,68, </key>\r
+<key name="hypvolum"> 6,7, </key>\r
+<key name="i"> 19,22,25,57,60,61,63,43,49, </key>\r
+<key name="icon"> 29,39,42, </key>\r
+<key name="id"> 0,18,20,24,25,26,27,28,10,11,64,43,45,49,50, </key>\r
+<key name="id_arc"> 7, </key>\r
+<key name="id_circl"> 60,66, </key>\r
+<key name="id_fac"> 7, </key>\r
+<key name="id_face1"> 7,60,66, </key>\r
+<key name="idbox"> 6,7,57,63,68, </key>\r
+<key name="idcomp"> 66, </key>\r
+<key name="idea"> 11, </key>\r
+<key name="idedg"> 6,68, </key>\r
+<key name="idfac"> 57, </key>\r
+<key name="idtoobject"> 6,63,66,68, </key>\r
+<key name="if"> 13,16,5,22,6,23,7,10,11,57,33,60,37,61,38,39,64,65,43,45,49,53, </key>\r
+<key name="ii"> 60, </key>\r
+<key name="imag"> 0,11,53, </key>\r
+<key name="imp"> 13, </key>\r
+<key name="import"> 6,7,57,30,31,60,63,66,68, </key>\r
+<key name="importation"> 30, </key>\r
+<key name="importcomponentgui"> 6,7,63, </key>\r
+<key name="includ"> 13,52, </key>\r
+<key name="increas"> 6,7,66, </key>\r
+<key name="index"> 24,61, </key>\r
+<key name="indic"> 61, </key>\r
+<key name="indicat"> 54, </key>\r
+<key name="info"> 0,52,68, </key>\r
+<key name="information"> 13,0,29,52,68, </key>\r
+<key name="init"> 6,7,63, </key>\r
+<key name="init_geom"> 60, </key>\r
+<key name="initial"> 11,65,46,51, </key>\r
+<key name="initializ"> 6,7,57, </key>\r
+<key name="input"> 1,18, </key>\r
+<key name="inscrib"> 19, </key>\r
+<key name="insert"> 65,43, </key>\r
+<key name="instead"> 37,61, </key>\r
+<key name="intact"> 8, </key>\r
+<key name="integ"> 24, </key>\r
+<key name="intend"> 43, </key>\r
+<key name="interest"> 13, </key>\r
+<key name="intermediat"> 43, </key>\r
+<key name="internal"> 61, </key>\r
+<key name="intersect"> 61,51, </key>\r
+<key name="intersectgroup"> 57, </key>\r
+<key name="intersection"> 57,61,51, </key>\r
+<key name="introduc"> 12,24,37, </key>\r
+<key name="introduction"> 31, </key>\r
+<key name="invers"> 13,26,60, </key>\r
+<key name="inversediag"> 60, </key>\r
+<key name="inversion"> 26,60, </key>\r
+<key name="invisibl"> 67, </key>\r
+<key name="isdon"> 60, </key>\r
+<key name="iso"> 61, </key>\r
+<key name="isolin"> 61, </key>\r
+<key name="isometric"> 53, </key>\r
+<key name="isplanarfac"> 7,60,66, </key>\r
+<key name="item"> 16,1,20,21,25,26,27,29,10,11,30,35,61,40,64,41,43,45,46,48,49,50,51, </key>\r
+<key name="iteration"> 11,45, </key>\r
+<key name="iterativ"> 45, </key>\r
+<key name="join"> 44, </key>\r
+<key name="jpeg"> 0,53, </key>\r
+<key name="jpg"> 0,53, </key>\r
+<key name="just"> 1,61,39, </key>\r
+<key name="k"> 18,19, </key>\r
+<key name="keep"> 11,45,46, </key>\r
+<key name="key"> 61, </key>\r
+<key name="keyboard"> 25, </key>\r
+<key name="know"> 61, </key>\r
+<key name="ko"> 60, </key>\r
+<key name="l"> 54, </key>\r
+<key name="label"> 53, </key>\r
+<key name="laplacian"> 45, </key>\r
+<key name="last"> 1,18,37,43, </key>\r
+<key name="lastnodeid"> 60, </key>\r
+<key name="lay"> 10,61,64, </key>\r
+<key name="lcc"> 6,7,57,60,63,68, </key>\r
+<key name="learn"> 52, </key>\r
+<key name="least"> 61,45, </key>\r
+<key name="leav"> 22,8, </key>\r
+<key name="left"> 0,11,61,53, </key>\r
+<key name="legth"> 63, </key>\r
+<key name="len"> 57,63, </key>\r
+<key name="length"> 12,15,18,19,6,7,31,58,33,32,63,43,66,53,54, </key>\r
+<key name="lengthfromedg"> 7,60,66, </key>\r
+<key name="les"> 65,43,45, </key>\r
+<key name="let"> 11, </key>\r
+<key name="level"> 12,16, </key>\r
+<key name="libnetgenengin"> 7, </key>\r
+<key name="library"> 24,65, </key>\r
+<key name="libstdmeshersengin"> 6,7,57,60,63,68, </key>\r
+<key name="lik"> 16,2,28,43, </key>\r
+<key name="limit"> 61,43,45, </key>\r
+<key name="lin"> 13,1,18,10,37,61,64,44, </key>\r
+<key name="link"> 43, </key>\r
+<key name="list"> 0,16,20,24,25,8,11,65,49, </key>\r
+<key name="lk"> 18, </key>\r
+<key name="ll"> 53, </key>\r
+<key name="load"> 61,65, </key>\r
+<key name="loadfromfac"> 60, </key>\r
+<key name="local"> 6,23,7,31,37,66, </key>\r
+<key name="locallength"> 7, </key>\r
+<key name="locat"> 61,43, </key>\r
+<key name="location"> 18,27,30,45, </key>\r
+<key name="lock"> 25,45,53, </key>\r
+<key name="longest"> 19, </key>\r
+<key name="look"> 28,61,65, </key>\r
+<key name="low"> 13,18, </key>\r
+<key name="ly"> 61, </key>\r
+<key name="main"> 20,25,8,11,37,61,65,49,51, </key>\r
+<key name="makearc"> 7,60,66, </key>\r
+<key name="makebox"> 6,7,57,63,66,68, </key>\r
+<key name="makeboxdxdydz"> 60, </key>\r
+<key name="makecirclethreepnt"> 60,66, </key>\r
+<key name="makecompound"> 6,7,63,66, </key>\r
+<key name="makecylinderrh"> 7,60, </key>\r
+<key name="makeedg"> 6,7, </key>\r
+<key name="makefac"> 7,60,66, </key>\r
+<key name="makehexa"> 6,7, </key>\r
+<key name="makemesh"> 60, </key>\r
+<key name="makepolygon"> 60, </key>\r
+<key name="makequad"> 6,7, </key>\r
+<key name="makesketch"> 7, </key>\r
+<key name="makevector"> 7,60,66, </key>\r
+<key name="makevertex"> 6,7,60,66, </key>\r
+<key name="makewir"> 7,60,66, </key>\r
+<key name="manag"> 12,16, </key>\r
+<key name="manual"> 24,61, </key>\r
+<key name="map"> 33,60,61, </key>\r
+<key name="mark"> 53, </key>\r
+<key name="mas"> 11, </key>\r
+<key name="math"> 60,66, </key>\r
+<key name="max"> 12,7,31,33,34,45, </key>\r
+<key name="max_element_area"> 60, </key>\r
+<key name="maxelementarea"> 6,7,60,63,68, </key>\r
+<key name="maxelementarea_500"> 6, </key>\r
+<key name="maxelementarea_800"> 7, </key>\r
+<key name="maxelementvolum"> 6,7, </key>\r
+<key name="maxelementvolume_500"> 6, </key>\r
+<key name="maxelementvolume_900"> 7, </key>\r
+<key name="maximum"> 18,7,33,34,44,45,52, </key>\r
+<key name="mean"> 13, </key>\r
+<key name="meaningful"> 13, </key>\r
+<key name="measur"> 54, </key>\r
+<key name="meet"> 25,49, </key>\r
+<key name="mefisto_2d"> 6,7,63,68, </key>\r
+<key name="mefisto2d"> 6,7, </key>\r
+<key name="menu"> 16,1,18,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,35,37,61,39,40,64,41,42,65,43,45,46,48,49,50,51,52, </key>\r
+<key name="merg"> 59,35,43,66, </key>\r
+<key name="mergeequalelement"> 66, </key>\r
+<key name="mergenod"> 66, </key>\r
+<key name="mesh"> 12,13,14,15,0,16,1,17,18,19,2,3,4,20,5,21,22,6,23,24,25,7,8,26,27,28,29,10,11,55,56,57,30,31,33,32,59,35,36,60,34,37,61,62,63,38,39,40,64,41,42,65,43,44,45,46,47,66,48,49,50,51,52,68,69,53,54, </key>\r
+<key name="mesh_1"> 22,60, </key>\r
+<key name="mesh_2"> 60, </key>\r
+<key name="mesh_borders_at_multi"> 63, </key>\r
+<key name="mesh_freebord"> 63, </key>\r
+<key name="meshbox"> 6,7, </key>\r
+<key name="mesheditor"> 60, </key>\r
+<key name="meshm"> 6, </key>\r
+<key name="method"> 60,45, </key>\r
+<key name="middl"> 1,37, </key>\r
+<key name="minimum"> 15,18,25,31,36,63,43,49, </key>\r
+<key name="mirror"> 66, </key>\r
+<key name="mirrorobject"> 66, </key>\r
+<key name="mod"> 0,18,62, </key>\r
+<key name="model"> 13,31, </key>\r
+<key name="modification"> 13,16,1,20,25,26,27,29,10,11,31,35,61,39,40,64,41,43,45,46,48,49,50, </key>\r
+<key name="modify"> 20,25,29,60,49, </key>\r
+<key name="modul"> 13,14,1,18,24,31,60,42,53, </key>\r
+<key name="mous"> 0,24,53, </key>\r
+<key name="mov"> 27,60, </key>\r
+<key name="movenod"> 60, </key>\r
+<key name="multi"> 15,3,4,31,63, </key>\r
+<key name="multiconnection"> 63, </key>\r
+<key name="must"> 22,11,61,65,43, </key>\r
+<key name="myelemid"> 63, </key>\r
+<key name="mypnt1"> 63, </key>\r
+<key name="mypnt2"> 63, </key>\r
+<key name="mystudy"> 6,60,63,68, </key>\r
+<key name="mystudyid"> 6,7,63, </key>\r
+<key name="n"> 61,43, </key>\r
+<key name="nam"> 22,6,23,24,29,57,30,65,51,68,53, </key>\r
+<key name="nb"> 57,63, </key>\r
+<key name="nb_segments_1"> 60, </key>\r
+<key name="nb_vert"> 60, </key>\r
+<key name="nbedg"> 66,68, </key>\r
+<key name="nbfac"> 68, </key>\r
+<key name="nbhexa"> 68, </key>\r
+<key name="nbnod"> 60,66,68, </key>\r
+<key name="nbpolygon"> 68, </key>\r
+<key name="nbpolyhedron"> 68, </key>\r
+<key name="nbprism"> 68, </key>\r
+<key name="nbpyramid"> 68, </key>\r
+<key name="nbquadrangl"> 66,68, </key>\r
+<key name="nbtetra"> 68, </key>\r
+<key name="nbtriangl"> 66,68, </key>\r
+<key name="nbvolum"> 66,68, </key>\r
+<key name="ne"> 22, </key>\r
+<key name="necessary"> 16, </key>\r
+<key name="negativ"> 18, </key>\r
+<key name="neighbor"> 26,50, </key>\r
+<key name="netgen"> 14, </key>\r
+<key name="netgen_3d"> 7, </key>\r
+<key name="netgen3d"> 7, </key>\r
+<key name="netgenplugin"> 7, </key>\r
+<key name="new"> 0,5,22,23,24,27,61,38,65,51, </key>\r
+<key name="next"> 18,61, </key>\r
+<key name="nod"> 13,0,16,1,17,18,19,20,21,24,27,28,10,31,33,35,60,61,62,63,39,40,64,65,43,44,45,47,66,52,68,54, </key>\r
+<key name="nodal"> 61,45, </key>\r
+<key name="node_id"> 60, </key>\r
+<key name="node_start_id"> 60, </key>\r
+<key name="non"> 22, </key>\r
+<key name="normal"> 46,54, </key>\r
+<key name="normalisation"> 19, </key>\r
+<key name="not"> 16,19,22,24,8, </key>\r
+<key name="noth"> 24, </key>\r
+<key name="notic"> 13, </key>\r
+<key name="now"> 5,22,11,60, </key>\r
+<key name="numb"> 12,13,1,18,6,24,7,10,31,33,61,64,43,45,66,52,68,53, </key>\r
+<key name="number"> 0,1,28, </key>\r
+<key name="numberofsegment"> 6,7,57,60,63,66,68, </key>\r
+<key name="numberofsegments_10"> 6, </key>\r
+<key name="numberofsegments_7"> 7, </key>\r
+<key name="numeric"> 25, </key>\r
+<key name="numerical"> 12, </key>\r
+<key name="obey"> 43, </key>\r
+<key name="object"> 12,14,0,16,1,18,5,21,22,23,24,25,7,8,29,30,33,60,34,61,62,38,39,40,41,48,49,52,69,53, </key>\r
+<key name="objecttoid"> 6,7,63, </key>\r
+<key name="objet"> 24, </key>\r
+<key name="obliqu"> 11, </key>\r
+<key name="obtain"> 16, </key>\r
+<key name="offset"> 53, </key>\r
+<key name="ok"> 16,1,20,5,25,8,26,27,29,10,11,30,60,39,40,64,43,45,49,50,51, </key>\r
+<key name="on"> 13,1,18,22,23,25,8,26,10,55,56,59,37,61,63,38,39,64,65,43,45,46,48,49,51,68, </key>\r
+<key name="onc"> 49, </key>\r
+<key name="onto"> 37,61, </key>\r
+<key name="oo"> 19, </key>\r
+<key name="opaqu"> 67, </key>\r
+<key name="operat"> 12, </key>\r
+<key name="operation"> 14,16,17,18,19,2,3,4,20,23,24,25,8,26,27,29,10,11,55,56,30,31,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54, </key>\r
+<key name="opposit"> 12,5,6,25,7,33,37,43,44,66, </key>\r
+<key name="option"> 13,0,18,46,48, </key>\r
+<key name="optional"> 22,11, </key>\r
+<key name="ord"> 13,20,61, </key>\r
+<key name="ordinary"> 1,37, </key>\r
+<key name="orientat"> 53, </key>\r
+<key name="orientation"> 20,5,25,60,49, </key>\r
+<key name="origin"> 54, </key>\r
+<key name="other"> 49, </key>\r
+<key name="otherwis"> 22,33, </key>\r
+<key name="our"> 22, </key>\r
+<key name="out"> 53, </key>\r
+<key name="outlin"> 56, </key>\r
+<key name="outsid"> 61, </key>\r
+<key name="own"> 13, </key>\r
+<key name="pag"> 24,29, </key>\r
+<key name="pair"> 18, </key>\r
+<key name="pan"> 53, </key>\r
+<key name="paramet"> 13,18,2,65,43, </key>\r
+<key name="parameter"> 12,0,5,11,41,43,53, </key>\r
+<key name="parametric"> 13,61, </key>\r
+<key name="parent"> 23, </key>\r
+<key name="part"> 43,45,53, </key>\r
+<key name="particular"> 60, </key>\r
+<key name="particularity"> 13, </key>\r
+<key name="pas"> 60, </key>\r
+<key name="path"> 11,60,65,66, </key>\r
+<key name="pattern"> 60,61, </key>\r
+<key name="pattern_nam"> 61, </key>\r
+<key name="pentahedron"> 2, </key>\r
+<key name="perform"> 31,40,43,46,51, </key>\r
+<key name="perimet"> 19, </key>\r
+<key name="pi"> 60,66, </key>\r
+<key name="pictur"> 3,24,11,55,56,59, </key>\r
+<key name="plac"> 43,53, </key>\r
+<key name="plan"> 5,63,46,54, </key>\r
+<key name="planar"> 54, </key>\r
+<key name="platform"> 24,42, </key>\r
+<key name="pleas"> 8, </key>\r
+<key name="plot"> 18, </key>\r
+<key name="plu"> 10,64, </key>\r
+<key name="png"> 0,53, </key>\r
+<key name="point"> 13,1,18,7,11,60,37,61,64,41,43,46,66,48,53,54, </key>\r
+<key name="point111"> 6,7, </key>\r
+<key name="point112"> 6,7, </key>\r
+<key name="point121"> 6,7, </key>\r
+<key name="point122"> 6,7, </key>\r
+<key name="point211"> 6,7, </key>\r
+<key name="point212"> 6,7, </key>\r
+<key name="point221"> 6,7, </key>\r
+<key name="point222"> 6,7, </key>\r
+<key name="pointstruct"> 60,66, </key>\r
+<key name="polygon"> 16,60,68, </key>\r
+<key name="polygonal"> 60, </key>\r
+<key name="polyhedral"> 16,60, </key>\r
+<key name="polyhedron"> 16,60,68, </key>\r
+<key name="pop"> 8,28, </key>\r
+<key name="position"> 13,61,53, </key>\r
+<key name="posses"> 37, </key>\r
+<key name="possibility"> 65, </key>\r
+<key name="possibl"> 12,2,24,61, </key>\r
+<key name="post"> 53, </key>\r
+<key name="powerful"> 65, </key>\r
+<key name="precision"> 16, </key>\r
+<key name="preferenc"> 12,31,33,62, </key>\r
+<key name="prefix"> 65, </key>\r
+<key name="preproces"> 24, </key>\r
+<key name="pres"> 16,1,11,39,53, </key>\r
+<key name="present"> 13,0,51, </key>\r
+<key name="presentation"> 15,0,53, </key>\r
+<key name="preserv"> 61, </key>\r
+<key name="preset"> 12, </key>\r
+<key name="preview"> 16,5,25,61,65, </key>\r
+<key name="previou"> 18,49, </key>\r
+<key name="previous"> 23,24,31,61, </key>\r
+<key name="principl"> 11, </key>\r
+<key name="print"> 6,7,57,60,63,66,68, </key>\r
+<key name="prism"> 68, </key>\r
+<key name="pro"> 53, </key>\r
+<key name="problem"> 6,7,57, </key>\r
+<key name="proce"> 22,8, </key>\r
+<key name="procedur"> 45, </key>\r
+<key name="proceed"> 38, </key>\r
+<key name="proces"> 45, </key>\r
+<key name="produc"> 13,10,64,45, </key>\r
+<key name="product"> 54, </key>\r
+<key name="program"> 22, </key>\r
+<key name="progression"> 18, </key>\r
+<key name="project"> 61, </key>\r
+<key name="projection"> 61,54, </key>\r
+<key name="prompt"> 18, </key>\r
+<key name="propagat"> 6,7,37,66, </key>\r
+<key name="propagation"> 12,6,7,37,66,68, </key>\r
+<key name="properti"> 53, </key>\r
+<key name="provid"> 0,16,25, </key>\r
+<key name="pseudo"> 26, </key>\r
+<key name="pul"> 45, </key>\r
+<key name="px"> 7,60,66, </key>\r
+<key name="px1"> 60,66, </key>\r
+<key name="py"> 7,60,66, </key>\r
+<key name="py1"> 60,66, </key>\r
+<key name="pyramid"> 68, </key>\r
+<key name="pyramidal"> 14, </key>\r
+<key name="python"> 52, </key>\r
+<key name="pz"> 7,60,66, </key>\r
+<key name="pz1"> 60,66, </key>\r
+<key name="qi"> 2, </key>\r
+<key name="qk"> 19,2, </key>\r
+<key name="quad"> 60,54, </key>\r
+<key name="quad2d"> 7,57, </key>\r
+<key name="quadrangl"> 12,13,14,16,17,19,2,6,25,7,26,10,31,33,32,36,60,64,44,66,68, </key>\r
+<key name="quadrangle_2d"> 7,57, </key>\r
+<key name="quadrangular"> 14,6,7,33,37,66, </key>\r
+<key name="quadratic"> 12,1,37, </key>\r
+<key name="quadtotri"> 60, </key>\r
+<key name="quality"> 15,0,17,18,19,2,3,4,25,55,56,31,58,32,36,63,44,47,49,69,54, </key>\r
+<key name="quantity"> 12, </key>\r
+<key name="r1"> 60, </key>\r
+<key name="radio"> 20,24,25,41,43,46,49, </key>\r
+<key name="radiu"> 19,60, </key>\r
+<key name="rang"> 18,24,57,60,63, </key>\r
+<key name="ratio"> 15,19,2,31,63,45,47,54, </key>\r
+<key name="ready"> 22, </key>\r
 <key name="recent"> 0, </key>\r
-<key name="red"> 54, </key>\r
-<key name="reduc"> 44, </key>\r
-<key name="reevaluat"> 44, </key>\r
-<key name="refer"> 58, </key>\r
-<key name="referenc"> 12,14,21,22, </key>\r
-<key name="refin"> 11, </key>\r
-<key name="reflect"> 58,43, </key>\r
+<key name="red"> 56, </key>\r
+<key name="redefin"> 0,53, </key>\r
+<key name="reduc"> 45, </key>\r
+<key name="reevaluat"> 45, </key>\r
+<key name="refer"> 61, </key>\r
+<key name="referenc"> 13,15,22,23, </key>\r
+<key name="refin"> 12, </key>\r
+<key name="reflect"> 61,44,69, </key>\r
 <key name="refresh"> 0, </key>\r
-<key name="regular_1d"> 5,6,55,60,65, </key>\r
-<key name="regular1d"> 5,6,55, </key>\r
-<key name="relat"> 41, </key>\r
-<key name="relation"> 12, </key>\r
-<key name="relationship"> 12, </key>\r
-<key name="remain"> 18, </key>\r
-<key name="remov"> 19,5,23,24,7,28,10,55,57,38,62,48,65, </key>\r
-<key name="removeelement"> 57,60, </key>\r
-<key name="removehypothesi"> 5,65, </key>\r
-<key name="removenod"> 57, </key>\r
-<key name="renumb"> 39, </key>\r
-<key name="renumber"> 57,39, </key>\r
-<key name="renumbernod"> 57, </key>\r
-<key name="reorient"> 19, </key>\r
-<key name="repeat"> 18, </key>\r
-<key name="replac"> 42, </key>\r
-<key name="represent"> 11,12,17,59,46, </key>\r
-<key name="representation"> 12, </key>\r
-<key name="requir"> 25,26,49, </key>\r
-<key name="resembl"> 1, </key>\r
-<key name="respect"> 10, </key>\r
-<key name="rest"> 58,42, </key>\r
-<key name="restrict"> 12, </key>\r
-<key name="result"> 11,15,10,55,60,44,50, </key>\r
-<key name="ret"> 5,6,55, </key>\r
-<key name="retain"> 18, </key>\r
-<key name="retriev"> 12, </key>\r
-<key name="return"> 56, </key>\r
-<key name="revers"> 58, </key>\r
-<key name="revert"> 19, </key>\r
-<key name="revolution"> 9,57,61, </key>\r
-<key name="revolv"> 61, </key>\r
-<key name="right"> 0,20,21,7,26,27,10,59, </key>\r
-<key name="rotat"> 9,10,57,61,40,63, </key>\r
-<key name="rotateobject"> 63, </key>\r
-<key name="rotation"> 4,10,61,40,63, </key>\r
-<key name="rotationsweepobject"> 57, </key>\r
-<key name="rough"> 11, </key>\r
-<key name="rul"> 17,36,42, </key>\r
-<key name="run"> 41, </key>\r
-<key name="s"> 18,10, </key>\r
-<key name="salom"> 5,23,6,55,30,57,60,41,63,65, </key>\r
-<key name="sam"> 12,17,1,21,6,10,36,37,62,42,50, </key>\r
-<key name="sampl"> 13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52, </key>\r
-<key name="sav"> 62, </key>\r
-<key name="scal"> 17, </key>\r
-<key name="scalar"> 14, </key>\r
-<key name="script"> 13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52, </key>\r
-<key name="se"> 13,0,15,16,17,18,1,2,3,4,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,52, </key>\r
-<key name="seam"> 58, </key>\r
-<key name="search"> 29,62, </key>\r
-<key name="second"> 15,42, </key>\r
-<key name="section"> 0,4,21,58, </key>\r
-<key name="segment"> 11,17,5,6,30,57,36,63, </key>\r
-<key name="select"> 11,13,0,15,19,20,21,22,23,24,7,25,26,28,9,10,29,34,36,58,59,38,39,61,40,41,62,42,44,45,47,48,49,50,51, </key>\r
-<key name="selection"> 15,19,23,24,7,62,48, </key>\r
-<key name="sens"> 12, </key>\r
-<key name="separat"> 46, </key>\r
-<key name="sequenc"> 42, </key>\r
-<key name="session"> 0, </key>\r
-<key name="set"> 12,13,0,15,17,19,4,21,23,24,26,10,30,32,57,33,36,58,59,62,42,44,64,48, </key>\r
-<key name="setcurrentstudy"> 5,60,65, </key>\r
-<key name="setdisplaymod"> 6, </key>\r
-<key name="setlength"> 5,65, </key>\r
-<key name="setmargin"> 55,60, </key>\r
-<key name="setmaxelementarea"> 5,6,55,60,65, </key>\r
-<key name="setmaxelementvolum"> 5,6,55, </key>\r
-<key name="setnam"> 5,6,55,60, </key>\r
-<key name="setnumberofsegment"> 5,6,55,60,65, </key>\r
-<key name="setnumfunctor"> 55,60, </key>\r
-<key name="setpredicat"> 55,60, </key>\r
-<key name="setting"> 21, </key>\r
-<key name="settransparency"> 6, </key>\r
-<key name="sew"> 60,42,63, </key>\r
-<key name="sewbordertosid"> 63, </key>\r
-<key name="sewconformfreeborder"> 63, </key>\r
-<key name="sewfreeborder"> 63, </key>\r
-<key name="sewsideelement"> 63, </key>\r
-<key name="sg"> 5,6,55,57,60,63,65, </key>\r
-<key name="shad"> 59,64, </key>\r
-<key name="shall"> 19,24,25,26,34,58,61,40,45,47,48,49, </key>\r
-<key name="shap"> 11,12,18,10,57,58,44, </key>\r
-<key name="shapetyp"> 5,55,60,63,65, </key>\r
-<key name="shift"> 15,38,44, </key>\r
-<key name="shortest"> 18,52, </key>\r
-<key name="should"> 17,23,9,10,58,61,40,62,42,44,50, </key>\r
-<key name="show"> 4,10,62, </key>\r
-<key name="shown"> 14,44, </key>\r
-<key name="shrink"> 59, </key>\r
-<key name="sid"> 18,5,6,35,42,43,63, </key>\r
-<key name="simp"> 21,36, </key>\r
-<key name="simpl"> 12,15,1,58, </key>\r
-<key name="simplex"> 1, </key>\r
-<key name="siz"> 0,44, </key>\r
-<key name="sk"> 1, </key>\r
-<key name="sketch"> 6, </key>\r
-<key name="sketcher"> 6, </key>\r
-<key name="sketcher1"> 6, </key>\r
-<key name="sketcher2"> 6, </key>\r
-<key name="skew"> 14,24,30,60,43,48, </key>\r
-<key name="slid"> 64, </key>\r
-<key name="smesh"> 15,5,6,55,57,60,38,39,42,63,65, </key>\r
-<key name="smesh_mechanic"> 55,57,60,63, </key>\r
-<key name="smesh_mechanic_tetra"> 60, </key>\r
-<key name="smesh_mesheditor"> 57,63, </key>\r
-<key name="smeshgroup1"> 55, </key>\r
-<key name="smeshgroup2"> 55, </key>\r
-<key name="smeshgui"> 5,6,55,60, </key>\r
-<key name="smooth"> 57,44, </key>\r
-<key name="smoothobject"> 57, </key>\r
-<key name="smp"> 58, </key>\r
-<key name="so"> 11,17,18,5,6,55,58,60,42,46,65, </key>\r
-<key name="solid"> 5,6,30, </key>\r
-<key name="someth"> 21, </key>\r
-<key name="somewhat"> 15, </key>\r
-<key name="sort"> 19,23,24,48, </key>\r
-<key name="sourc"> 62, </key>\r
-<key name="spac"> 12,58,40,47, </key>\r
-<key name="specifi"> 17,2,58,38,42,44, </key>\r
-<key name="specific"> 20,62, </key>\r
-<key name="specify"> 15,24,9,10,58,38,61,40,62,44,45,47,50, </key>\r
-<key name="spher"> 21, </key>\r
-<key name="split"> 13,17,4,42, </key>\r
-<key name="standalon"> 23,55,62, </key>\r
-<key name="standard"> 0,29,51, </key>\r
-<key name="start"> 11,17,4,6,10,41,42,47, </key>\r
-<key name="startendlength"> 6, </key>\r
-<key name="stdmesher"> 5,6,55,60,65, </key>\r
-<key name="step"> 9,61, </key>\r
-<key name="stor"> 58,62, </key>\r
-<key name="structur"> 21,22, </key>\r
-<key name="study"> 5,6,55,57,62, </key>\r
-<key name="sub"> 29,34,58,40,42,45,47, </key>\r
-<key name="submenu"> 15,8,38,39, </key>\r
-<key name="submesh"> 11,19,20,5,22,23,24,9,10,37,61,44,47,48,51, </key>\r
-<key name="subshapeall"> 5,55,60,63,65, </key>\r
-<key name="subshapelist"> 5,55,60,65, </key>\r
-<key name="subshapelist1"> 63, </key>\r
-<key name="subshapelist2"> 63, </key>\r
-<key name="subshapenam"> 5,55,65, </key>\r
-<key name="sum"> 1, </key>\r
-<key name="supplement"> 36, </key>\r
-<key name="supplementary"> 24, </key>\r
-<key name="surfac"> 12,9,58,61,42, </key>\r
-<key name="surround"> 12,44, </key>\r
-<key name="sweep"> 57, </key>\r
-<key name="swept"> 9,61, </key>\r
-<key name="symmetrical"> 45,63, </key>\r
-<key name="symmetry"> 45,63, </key>\r
-<key name="syntax"> 62, </key>\r
-<key name="t"> 12,17,21,36,58,59, </key>\r
-<key name="tabl"> 17, </key>\r
-<key name="tak"> 48, </key>\r
-<key name="taken"> 11,20,23,6,58, </key>\r
-<key name="tap"> 14,23,30,60,46, </key>\r
-<key name="techniqu"> 44, </key>\r
-<key name="tetrahedral"> 13, </key>\r
-<key name="tetrahedralization"> 21, </key>\r
-<key name="tetrahedron"> 12,13,15,1,6,57,33,65, </key>\r
-<key name="th"> 58,42, </key>\r
-<key name="them"> 11,15,17,23,7,9,10,34,38,61,42,44, </key>\r
-<key name="thos"> 24,48, </key>\r
-<key name="thre"> 12,6,57,42,45, </key>\r
-<key name="threshold"> 62, </key>\r
-<key name="tmp"> 5, </key>\r
-<key name="toggl"> 15,62,47, </key>\r
-<key name="toleranc"> 34,61,62,63, </key>\r
-<key name="tool"> 62,50, </key>\r
-<key name="toolbar"> 18,19,21,22,24,25,26,28,9,10,31,58,38,39,61,41,43,44,46,48,49,51,52, </key>\r
-<key name="topological"> 12,42, </key>\r
-<key name="topology"> 12, </key>\r
-<key name="total"> 51, </key>\r
-<key name="toward"> 44, </key>\r
-<key name="transform"> 26,63, </key>\r
-<key name="transformation"> 34,40,42,45,47, </key>\r
-<key name="translat"> 63,47, </key>\r
-<key name="translateobject"> 63, </key>\r
-<key name="translation"> 63,47, </key>\r
-<key name="transparency"> 0,64, </key>\r
-<key name="transparent"> 64, </key>\r
-<key name="triangl"> 12,13,15,16,18,1,6,25,9,32,31,35,57,61,43,46,48,49,65, </key>\r
-<key name="triangular"> 13, </key>\r
-<key name="tritoquad"> 57, </key>\r
-<key name="try"> 21, </key>\r
-<key name="tt"> 6, </key>\r
-<key name="tui"> 13,0,15,16,17,18,1,2,3,21,22,23,24,25,26,28,9,10,53,54,29,56,32,31,34,35,33,36,37,38,39,61,40,42,43,44,45,46,47,48,49,50,51,52, </key>\r
-<key name="two"> 12,15,18,4,23,24,6,25,10,55,35,57,58,42,46,63,47,49,50,51, </key>\r
-<key name="typ"> 12,15,17,1,20,21,23,9,10,38,61,62,42,51, </key>\r
-<key name="typical"> 44, </key>\r
-<key name="u"> 12,42, </key>\r
-<key name="unary"> 62, </key>\r
-<key name="unassign"> 37, </key>\r
-<key name="uniform"> 44, </key>\r
-<key name="union"> 55,48,49,50, </key>\r
-<key name="uniongroup"> 55, </key>\r
-<key name="unit"> 57,42,48,49,50, </key>\r
-<key name="unles"> 36, </key>\r
-<key name="unv"> 29, </key>\r
-<key name="up"> 0,17,7,27, </key>\r
-<key name="updat"> 0,41,44, </key>\r
-<key name="updateobjbrows"> 5,6,55,57,60,63,65, </key>\r
-<key name="upload"> 62, </key>\r
-<key name="us"> 12,13,0,17,2,4,21,22,9,34,58,61,62,42,44,64,50, </key>\r
-<key name="usag"> 14, </key>\r
-<key name="useful"> 0,15,10, </key>\r
-<key name="usual"> 42,44, </key>\r
-<key name="v"> 12, </key>\r
-<key name="valu"> 11,14,17,18,1,21,5,10,56,35,36,37,62,43,65, </key>\r
-<key name="ve"> 15,21, </key>\r
-<key name="vector"> 6,9,10,57,61,40,45,63,47,52, </key>\r
-<key name="vertex"> 12,58, </key>\r
-<key name="vertic"> 5,6,57,58, </key>\r
-<key name="very"> 15,10, </key>\r
-<key name="via"> 0,62,51, </key>\r
-<key name="view"> 0,15,16,18,19,4,23,24,7,25,26,27,9,10,31,35,38,39,61,62,42,43,44,46,48,49,51,65,52, </key>\r
-<key name="visual"> 14, </key>\r
-<key name="volum"> 11,12,13,15,20,23,6,30,33,60,62,51,65, </key>\r
-<key name="vxy"> 6,57, </key>\r
-<key name="walk"> 58, </key>\r
-<key name="warp"> 14,24,30,60,48,52, </key>\r
-<key name="way"> 12,0,15,21,23,10,58,37,50, </key>\r
-<key name="weight"> 44, </key>\r
-<key name="well"> 58, </key>\r
-<key name="wheth"> 62, </key>\r
-<key name="whil"> 38, </key>\r
-<key name="whit"> 2,53, </key>\r
-<key name="whol"> 9,10,61,62,44,47, </key>\r
-<key name="whos"> 19,23,24,48, </key>\r
-<key name="will"> 11,12,15,16,17,18,19,20,21,22,23,24,7,26,27,28,9,10,29,32,31,35,33,36,58,38,39,61,41,62,42,43,44,46,64,48,50,51,52, </key>\r
-<key name="window"> 4, </key>\r
-<key name="wir"> 13,5,6,10,55,57,36, </key>\r
-<key name="wirefram"> 10,59, </key>\r
-<key name="wish"> 21,7,29, </key>\r
-<key name="within"> 17,58,42, </key>\r
-<key name="without"> 60, </key>\r
-<key name="word"> 17, </key>\r
-<key name="work"> 10, </key>\r
-<key name="would"> 15,42, </key>\r
-<key name="ww"> 6, </key>\r
-<key name="x"> 12,4,52, </key>\r
-<key name="y"> 12,4, </key>\r
-<key name="your"> 11,12,14,0,15,16,17,18,19,4,20,21,22,23,26,27,28,29,32,31,34,35,33,58,59,37,38,39,40,62,43,44,45,46,47,51,52, </key>\r
-<key name="z"> 12,4, </key>\r
-<key name="zero"> 58, </key>\r
+<key name="regular"> 19, </key>\r
+<key name="regular_1d"> 6,7,57,63,68, </key>\r
+<key name="regular1d"> 6,7,57, </key>\r
+<key name="relat"> 42, </key>\r
+<key name="relation"> 13, </key>\r
+<key name="relationship"> 13, </key>\r
+<key name="remot"> 53, </key>\r
+<key name="remov"> 20,6,24,25,8,29,11,57,60,39,65,49,68, </key>\r
+<key name="removal"> 31, </key>\r
+<key name="removeelement"> 60,63, </key>\r
+<key name="removehypothesi"> 6,68, </key>\r
+<key name="removenod"> 60, </key>\r
+<key name="renumb"> 40, </key>\r
+<key name="renumber"> 60,40, </key>\r
+<key name="renumbernod"> 60, </key>\r
+<key name="reorient"> 20,60, </key>\r
+<key name="replac"> 43, </key>\r
+<key name="represent"> 12,13,18,2,62,47,53, </key>\r
+<key name="representation"> 13, </key>\r
+<key name="requir"> 26,27,50, </key>\r
+<key name="reset"> 53, </key>\r
+<key name="resiz"> 53, </key>\r
+<key name="respect"> 11, </key>\r
+<key name="respectiv"> 1, </key>\r
+<key name="rest"> 61,43, </key>\r
+<key name="restor"> 53, </key>\r
+<key name="restrict"> 13, </key>\r
+<key name="result"> 12,16,11,57,63,45,51, </key>\r
+<key name="ret"> 6,7,57, </key>\r
+<key name="retriev"> 13, </key>\r
+<key name="return"> 58,60, </key>\r
+<key name="reveal"> 19, </key>\r
+<key name="revers"> 1,61, </key>\r
+<key name="revert"> 20, </key>\r
+<key name="revolution"> 10,60,64, </key>\r
+<key name="revolv"> 64, </key>\r
+<key name="right"> 0,21,8,27,28,11,62, </key>\r
+<key name="rotat"> 10,11,60,64,41,66,53, </key>\r
+<key name="rotateobject"> 66, </key>\r
+<key name="rotation"> 5,11,64,41,66,53, </key>\r
+<key name="rotationsweepobject"> 60, </key>\r
+<key name="rough"> 12, </key>\r
+<key name="rr"> 60, </key>\r
+<key name="rul"> 18,37,43, </key>\r
+<key name="run"> 42, </key>\r
+<key name="s"> 11, </key>\r
+<key name="salom"> 6,24,7,57,31,60,63,42,66,68, </key>\r
+<key name="sam"> 13,0,18,19,2,22,23,7,11,37,38,65,43,51, </key>\r
+<key name="sampl"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,54, </key>\r
+<key name="sav"> 65, </key>\r
+<key name="scal"> 18,53, </key>\r
+<key name="scalar"> 15, </key>\r
+<key name="scen"> 53, </key>\r
+<key name="script"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54, </key>\r
+<key name="se"> 14,16,17,18,19,2,3,4,20,5,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,69,53,54, </key>\r
+<key name="seam"> 61, </key>\r
+<key name="search"> 30,65, </key>\r
+<key name="second"> 16,60,43, </key>\r
+<key name="section"> 0,5,22,61, </key>\r
+<key name="segment"> 12,18,6,7,31,33,60,66, </key>\r
+<key name="select"> 12,14,0,16,1,18,20,21,22,23,24,25,8,26,27,29,10,11,30,35,37,61,62,39,40,64,41,42,65,43,45,46,48,49,50,51,52,53, </key>\r
+<key name="selectabl"> 59, </key>\r
+<key name="selection"> 16,1,20,24,25,8,65,49, </key>\r
+<key name="sens"> 13, </key>\r
+<key name="separat"> 47, </key>\r
+<key name="sequenc"> 43, </key>\r
+<key name="set"> 13,14,16,18,20,5,22,24,7,27,11,31,33,60,34,61,62,65,43,45,67,49, </key>\r
+<key name="setcurrentstudy"> 6,60,63,68, </key>\r
+<key name="setdisplaymod"> 7, </key>\r
+<key name="setlength"> 6,68, </key>\r
+<key name="setmargin"> 57,63, </key>\r
+<key name="setmaxelementarea"> 6,7,63,68, </key>\r
+<key name="setmaxelementvolum"> 6,7, </key>\r
+<key name="setmesh"> 63, </key>\r
+<key name="setnam"> 6,7,63, </key>\r
+<key name="setnumberofsegment"> 6,7,57,60,63,68, </key>\r
+<key name="setnumfunctor"> 57,63, </key>\r
+<key name="setpredicat"> 57,63, </key>\r
+<key name="setting"> 22, </key>\r
+<key name="settransparency"> 7, </key>\r
+<key name="sew"> 63,43,66, </key>\r
+<key name="sewbordertosid"> 66, </key>\r
+<key name="sewconformfreeborder"> 66, </key>\r
+<key name="sewfreeborder"> 66, </key>\r
+<key name="sewsideelement"> 66, </key>\r
+<key name="sg"> 6,7,57,60,63,66,68, </key>\r
+<key name="shad"> 0,62,67, </key>\r
+<key name="shall"> 20,26,27,35,61,64,41,46,48,49,50, </key>\r
+<key name="shap"> 12,13,11,61,45, </key>\r
+<key name="shape_mesh"> 60, </key>\r
+<key name="shapetyp"> 6,7,57,60,63,66,68, </key>\r
+<key name="shift"> 16,1,25,39,45, </key>\r
+<key name="shortest"> 54, </key>\r
+<key name="should"> 18,24,10,11,61,64,41,65,43,45,51, </key>\r
+<key name="show"> 18,5,11,65,53, </key>\r
+<key name="shown"> 15,45, </key>\r
+<key name="shrink"> 62, </key>\r
+<key name="sid"> 6,7,36,43,44,66, </key>\r
+<key name="simp"> 22,37, </key>\r
+<key name="simpl"> 13,16,61, </key>\r
+<key name="simplex"> 19,2, </key>\r
+<key name="sin"> 60, </key>\r
+<key name="siz"> 0,45, </key>\r
+<key name="sk"> 19,2, </key>\r
+<key name="sketch"> 7, </key>\r
+<key name="sketcher"> 7, </key>\r
+<key name="sketcher1"> 7, </key>\r
+<key name="sketcher2"> 7, </key>\r
+<key name="skew"> 15,25,31,63,44,49, </key>\r
+<key name="slid"> 67, </key>\r
+<key name="small"> 53, </key>\r
+<key name="smesh"> 6,7,57,60,63,43,66,68, </key>\r
+<key name="smesh_mechanic"> 57,60,63,66, </key>\r
+<key name="smesh_mechanic_tetra"> 63, </key>\r
+<key name="smesh_mesheditor"> 60,66, </key>\r
+<key name="smeshgroup1"> 57, </key>\r
+<key name="smeshgroup2"> 57, </key>\r
+<key name="smeshgui"> 6,7,63, </key>\r
+<key name="smooth"> 60,45, </key>\r
+<key name="smoothobject"> 60, </key>\r
+<key name="smp"> 61, </key>\r
+<key name="so"> 12,18,19,6,7,57,60,61,63,43,47,68, </key>\r
+<key name="solid"> 6,7,31, </key>\r
+<key name="somewhat"> 16, </key>\r
+<key name="sort"> 20,24,25,49, </key>\r
+<key name="sourc"> 65, </key>\r
+<key name="spac"> 13,61,41,48, </key>\r
+<key name="specifi"> 18,3,61,39,43,45, </key>\r
+<key name="specific"> 21,65, </key>\r
+<key name="specify"> 16,1,25,10,11,61,39,64,41,65,45,46,48,51, </key>\r
+<key name="spher"> 18,19,22, </key>\r
+<key name="split"> 14,18,2,5,43, </key>\r
+<key name="sqrt"> 60, </key>\r
+<key name="standalon"> 24,57,65, </key>\r
+<key name="standard"> 0,30,52, </key>\r
+<key name="start"> 12,18,5,7,11,31,42,43,48, </key>\r
+<key name="startendlength"> 7, </key>\r
+<key name="statu"> 60, </key>\r
+<key name="stdmesher"> 6,7,57,60,63,68, </key>\r
+<key name="step"> 10,64, </key>\r
+<key name="stor"> 61,65, </key>\r
+<key name="straight"> 1,7,37, </key>\r
+<key name="stretch"> 53, </key>\r
+<key name="strict"> 53, </key>\r
+<key name="structur"> 22,23, </key>\r
+<key name="study"> 6,7,57,65, </key>\r
+<key name="stuf"> 53, </key>\r
+<key name="sub"> 30,35,60,61,41,43,46,48, </key>\r
+<key name="submenu"> 16,9,39,40, </key>\r
+<key name="submesh"> 12,20,21,6,23,24,25,10,11,38,64,45,48,49,52, </key>\r
+<key name="subshapeall"> 6,7,57,60,63,66,68, </key>\r
+<key name="subshapelist"> 6,57,63,68, </key>\r
+<key name="subshapelist1"> 66, </key>\r
+<key name="subshapelist2"> 66, </key>\r
+<key name="subshapenam"> 6,57,68, </key>\r
+<key name="succed"> 7,57, </key>\r
+<key name="sum"> 2, </key>\r
+<key name="supplement"> 37, </key>\r
+<key name="supplementary"> 25, </key>\r
+<key name="surfac"> 13,19,2,10,61,64,43, </key>\r
+<key name="surround"> 13,45, </key>\r
+<key name="sweep"> 60, </key>\r
+<key name="swept"> 10,64, </key>\r
+<key name="switch"> 1, </key>\r
+<key name="symmetrical"> 46,66, </key>\r
+<key name="symmetry"> 46,66, </key>\r
+<key name="syntax"> 65, </key>\r
+<key name="t"> 13,18,2,22,37,61,62,53, </key>\r
+<key name="tabl"> 1,18, </key>\r
+<key name="tak"> 19,49, </key>\r
+<key name="taken"> 12,21,24,7,61, </key>\r
+<key name="tap"> 15,24,31,63,47, </key>\r
+<key name="techniqu"> 45, </key>\r
+<key name="tetra3d"> 7, </key>\r
+<key name="tetrahedral"> 14, </key>\r
+<key name="tetrahedralization"> 22, </key>\r
+<key name="tetrahedron"> 13,14,16,2,7,60,34,68, </key>\r
+<key name="th"> 61,43, </key>\r
+<key name="them"> 12,16,1,18,2,24,8,9,10,11,35,39,64,43,45,53, </key>\r
+<key name="thos"> 25,49, </key>\r
+<key name="thre"> 13,1,19,7,60,37,43,46, </key>\r
+<key name="threshold"> 65, </key>\r
+<key name="tick"> 53, </key>\r
+<key name="tim"> 0, </key>\r
+<key name="tmp"> 6, </key>\r
+<key name="togeth"> 33, </key>\r
+<key name="toggl"> 16,65,48, </key>\r
+<key name="toleranc"> 35,64,65,66, </key>\r
+<key name="tool"> 65,51, </key>\r
+<key name="toolbar"> 19,2,20,22,23,25,26,27,29,10,11,32,61,39,40,64,42,44,45,47,49,50,52,69,53,54, </key>\r
+<key name="top"> 60, </key>\r
+<key name="topological"> 13,43, </key>\r
+<key name="topology"> 13, </key>\r
+<key name="total"> 52, </key>\r
+<key name="toward"> 45, </key>\r
+<key name="transform"> 27,66, </key>\r
+<key name="transformation"> 35,41,43,46,48, </key>\r
+<key name="translat"> 66,48, </key>\r
+<key name="translateobject"> 66, </key>\r
+<key name="translation"> 66,48, </key>\r
+<key name="transparency"> 0,67, </key>\r
+<key name="transparent"> 67, </key>\r
+<key name="tri_mesh"> 66, </key>\r
+<key name="tria"> 7,60,66, </key>\r
+<key name="tria_mesh"> 7, </key>\r
+<key name="triangl"> 13,14,16,1,17,19,7,26,10,33,32,59,36,60,64,44,47,66,49,50,68,53, </key>\r
+<key name="triangle_mefisto"> 60, </key>\r
+<key name="triangular"> 14,33, </key>\r
+<key name="triangulation"> 7, </key>\r
+<key name="trihedron"> 53, </key>\r
+<key name="tritoquad"> 60, </key>\r
+<key name="try"> 22, </key>\r
+<key name="tt"> 7, </key>\r
+<key name="tui"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,55,56,30,58,33,32,59,35,36,34,37,61,38,39,40,64,41,43,44,45,46,47,48,49,50,51,52,69,54, </key>\r
+<key name="two"> 13,16,5,24,25,7,26,11,57,36,60,61,43,47,66,48,50,51,52, </key>\r
+<key name="typ"> 13,16,18,19,2,21,22,24,10,11,39,64,65,43,52, </key>\r
+<key name="typical"> 45, </key>\r
+<key name="u"> 13,43, </key>\r
+<key name="unary"> 65, </key>\r
+<key name="unassign"> 38, </key>\r
+<key name="uniform"> 45, </key>\r
+<key name="union"> 57,49,50,51, </key>\r
+<key name="uniongroup"> 57, </key>\r
+<key name="unit"> 60,43,49,50,51, </key>\r
+<key name="unles"> 37, </key>\r
+<key name="unv"> 30, </key>\r
+<key name="up"> 18,8,28, </key>\r
+<key name="updat"> 0,42,45, </key>\r
+<key name="updateobjbrows"> 6,7,57,60,63,66,68, </key>\r
+<key name="upload"> 65, </key>\r
+<key name="us"> 13,14,18,3,5,22,23,24,10,33,35,61,64,65,43,45,67,51,53, </key>\r
+<key name="usag"> 15, </key>\r
+<key name="useful"> 0,16,24,11, </key>\r
+<key name="usual"> 43,45, </key>\r
+<key name="v"> 13, </key>\r
+<key name="valu"> 12,15,18,19,2,22,6,11,58,36,37,38,65,44,68, </key>\r
+<key name="vari"> 19, </key>\r
+<key name="variou"> 0, </key>\r
+<key name="ve"> 16, </key>\r
+<key name="vector"> 7,10,11,60,64,41,46,66,48,54, </key>\r
+<key name="vertex"> 13,61, </key>\r
+<key name="vertic"> 6,7,61, </key>\r
+<key name="very"> 16,11, </key>\r
+<key name="via"> 65,52,53, </key>\r
+<key name="view"> 0,16,1,17,19,2,20,5,24,25,8,26,27,28,10,11,32,36,39,40,64,65,43,44,45,47,49,50,52,68,69,53,54, </key>\r
+<key name="visibl"> 53, </key>\r
+<key name="visual"> 15, </key>\r
+<key name="visualiz"> 53, </key>\r
+<key name="vk"> 2, </key>\r
+<key name="volum"> 12,13,14,15,16,2,21,24,7,9,31,60,34,63,65,66,52,68,69, </key>\r
+<key name="vtk"> 0,53, </key>\r
+<key name="vxy"> 7,60,66, </key>\r
+<key name="walk"> 61, </key>\r
+<key name="warp"> 15,25,31,63,49,54, </key>\r
+<key name="way"> 13,16,22,23,24,11,61,38,51, </key>\r
+<key name="weight"> 45, </key>\r
+<key name="well"> 61, </key>\r
+<key name="wheth"> 65, </key>\r
+<key name="whil"> 39, </key>\r
+<key name="whit"> 55, </key>\r
+<key name="whol"> 2,10,11,60,64,65,45,48, </key>\r
+<key name="whos"> 20,24,25,37,49, </key>\r
+<key name="will"> 12,13,0,16,1,17,18,19,2,20,21,22,23,24,25,8,27,28,29,10,11,30,33,32,59,36,60,34,37,61,39,40,64,42,65,43,44,45,47,67,49,51,52,69,54, </key>\r
+<key name="window"> 5, </key>\r
+<key name="wir"> 14,6,7,11,33,60,66, </key>\r
+<key name="wire_discretisation"> 60, </key>\r
+<key name="wirefram"> 0,11,62, </key>\r
+<key name="wish"> 22,8,30,53, </key>\r
+<key name="within"> 18,61,43, </key>\r
+<key name="without"> 1,63, </key>\r
+<key name="word"> 18, </key>\r
+<key name="work"> 1,11, </key>\r
+<key name="worst"> 19, </key>\r
+<key name="would"> 16,43, </key>\r
+<key name="ww"> 7, </key>\r
+<key name="x"> 13,5,54, </key>\r
+<key name="x0"> 60, </key>\r
+<key name="y"> 13,5, </key>\r
+<key name="y0"> 60, </key>\r
+<key name="your"> 12,13,15,0,16,1,17,18,19,2,20,5,21,22,23,24,27,28,29,30,33,32,35,36,34,61,62,38,39,40,41,65,44,45,46,47,48,52,69,54, </key>\r
+<key name="z"> 13,5, </key>\r
+<key name="z0"> 60, </key>\r
+<key name="zero"> 61, </key>\r
+<key name="zoom"> 53, </key>\r
 \r
 </ftswdata>  \r
index f4771caad683b086782119163085d59a53df1322..855b6b9e0a8458c903a5249e18879db0cdadfa2e 100755 (executable)
@@ -11,7 +11,7 @@
     <book name="Defining hypotheses" >\r
       <item name="About Hypotheses" url="files/about_hypotheses.htm" />\r
       <item name="1D Meshing Hypotheses" url="files/arithmetic_1d.htm" />\r
-      <item name="Max Element Area hypothesis" url="files/max._element_area_hypothesis.htm" />\r
+      <item name="2D Meshing Hypotheses" url="files/max._element_area_hypothesis.htm" />\r
       <item name="Max Element Volume hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
       <item name="Additional Hypotheses" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
     </book>\r
@@ -19,7 +19,8 @@
     <item name="Editing Meshes" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
   </book>\r
   <book name="Viewing meshes" >\r
-    <item name="About viewing meshes" url="about_viewing_meshes.htm" />\r
+    <item name="Viewing meshes" url="about_viewing_meshes.htm" />\r
+    <item name="VTK 3D Viewer" url="files/vtk_3d_viewer.htm" />\r
     <item name="Mesh infos" url="files/viewing_mesh_info.htm" />\r
     <item name="Numbering" url="files/displaying_nodes_numbers.htm" />\r
     <item name="Display Mode" url="presentation.htm" />\r
@@ -42,6 +43,7 @@
     <item name="Warping" url="files/warp.htm" />\r
     <item name="Skew" url="files/skew.htm" />\r
     <item name="Aspect ratio 3D" url="aspect_ratio_3d.htm" />\r
+    <item name="Volume" url="volume.htm" />\r
   </book>\r
   <book name="Grouping elements" >\r
     <item name="Creating groups" url="files/creating_groups.htm" />\r
@@ -53,6 +55,7 @@
   </book>\r
   <book name="Modifying meshes" >\r
     <item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
+    <item name="Adding quadratic elements" url="adding_quadratic_nodes_and_elements.htm" />\r
     <item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
     <item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
     <book name="Transforming meshes" >\r
@@ -61,6 +64,7 @@
       <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
+      <item name="Merging Elements" url="merge_elements.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
index 894cc0c6daec8bdfa61ad92460bfec0ce4e6e6a1..50f7fa1b03c3d630092e88fa63a4734a2d596f17 100644 (file)
@@ -23,21 +23,40 @@ docs:
        cp -fr $(srcdir)/SMESH ./INPUT; \
        cd INPUT; \
        sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
-       mv -f doxyfile1 doxyfile; \
-       $(doxygen) ./doxyfile; \
-       mkdir py1; mkdir py2; \
-       cd ..
-       for file in $(PYTHON_SCRIPTS) dummy; do \
-         if [ $$file != "dummy" ]; then \
-           cp $(root_srcdir)/src/SMESH_SWIG/$$file INPUT/py1/; \
-         fi ; \
-       done
-       cd INPUT; \
-       python $(KERNEL_ROOT_DIR)/doc/salome/tui/KERNEL/pythfilter.py ./py1 ./py2; \
-       sed 's|list_py_files_to_process|$(PYTHON_SCRIPTS)|' ./doxyfile_py > py2/doxyfile_py; \
-       cd py2; \
-       $(doxygen) ./doxyfile_py; \
-       cd ../..; \
+       sed 's|../../build/salome|$(top_builddir)|' ./doxyfile1 > ./doxyfile2; \
+       sed "s|version|`cut -d: -f2 $(root_srcdir)/bin/VERSION`|" ./doxyfile2 > ./doxyfile3; \
+       mv -f doxyfile3 doxyfile1; \
+       if (test "x@DOXYGEN_WITH_PYTHON@" = "xyes"); then \
+         echo "DOXYGEN SUPPORT PYTHON - @DOXYGEN_WITH_PYTHON@"; \
+         sed 's|python_extension_must_be_here|*.py|' ./doxyfile1 > ./doxyfile2; \
+         mv -f doxyfile2 doxyfile1; \
+         $(doxygen) -u ./doxyfile1; \
+         if( test "x@DOXYGEN_WITH_STL@" = "xyes"); then \
+           sed -e 's|BUILTIN_STL_SUPPORT    = NO|BUILTIN_STL_SUPPORT    = YES|' ./doxyfile1 > ./doxyfile2; \
+           mv -f doxyfile2 doxyfile1; \
+         fi; \
+         mv -f doxyfile1 doxyfile; \
+         $(doxygen) ./doxyfile; \
+         cd ..; \
+       else \
+         sed 's|python_extension_must_be_here||' ./doxyfile1 > ./doxyfile2; \
+         mv -f doxyfile2 doxyfile1; \
+         mv -f doxyfile1 doxyfile; \
+         $(doxygen) ./doxyfile; \
+         mkdir py1; mkdir py2; \
+         cd ..; \
+         for file in $(PYTHON_SCRIPTS) dummy; do \
+           if [ $$file != "dummy" ]; then \
+             cp $(root_srcdir)/src/GEOM_SWIG/$$file INPUT/py1/; \
+           fi ; \
+         done; \
+         cd INPUT; \
+         python $(KERNEL_ROOT_DIR)/doc/salome/tui/KERNEL/pythfilter.py ./py1 ./py2; \
+         sed 's|list_py_files_to_process|$(PYTHON_SCRIPTS)|' ./doxyfile_py > py2/doxyfile_py; \
+         cd py2; \
+         $(doxygen) ./doxyfile_py; \
+         cd ../..; \
+       fi; \
        cp -fr $(srcdir)/SMESH/sources/static/*.* ./SMESH/
        cp -fr $(srcdir)/SMESH/sources/ SMESH/
        cp -fr $(srcdir)/SMESH/HTML/ SMESH/
index b008baa4d08ced7f2e3d65ae6be706d7c373f970..ba0d3393fa46f98fd9ae0ae1155cb8f8971c4185 100755 (executable)
@@ -1,67 +1,86 @@
-# Doxyfile 1.3-rc1
+# Doxyfile 1.4.6
 
 #---------------------------------------------------------------------------
-# General configuration options
+# Project related configuration options
 #---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - SMESH - v.3.2.0a2"
-PROJECT_NUMBER         = id#1.1
+PROJECT_NAME           = "SALOME - SMESH - v.version"
+PROJECT_NUMBER         = 
 OUTPUT_DIRECTORY       = ../
+CREATE_SUBDIRS         = NO
 OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = ../../../share/salome \
+                        ../../../build/salome
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 5
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
 EXTRACT_ALL            = YES
 EXTRACT_PRIVATE        = YES
 EXTRACT_STATIC         = YES
 EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
 HIDE_UNDOC_MEMBERS     = NO
 HIDE_UNDOC_CLASSES     = NO
 HIDE_FRIEND_COMPOUNDS  = NO
 HIDE_IN_BODY_DOCS      = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = NO
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
 INTERNAL_DOCS          = YES
 CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
 HIDE_SCOPE_NAMES       = NO
-VERBATIM_HEADERS       = YES
 SHOW_INCLUDE_FILES     = YES
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
 INLINE_INFO            = YES
 SORT_MEMBER_DOCS       = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 5
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
 GENERATE_TODOLIST      = YES
 GENERATE_TESTLIST      = YES
 GENERATE_BUGLIST       = YES
 GENERATE_DEPRECATEDLIST= YES
-ALIASES                = 
 ENABLED_SECTIONS       = 
 MAX_INITIALIZER_LINES  = 25
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = YES
 SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
+
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
 QUIET                  = NO
 WARNINGS               = YES
 WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
 WARN_FORMAT            = "$file:$line: $text"
 WARN_LOGFILE           = log.txt
+
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
-INPUT                  = ../../../share/salome/idl/SMESH_Gen.idl \
-                         ../../../share/salome/idl/SMESH_Mesh.idl \
-                         ../../../share/salome/idl/SMESH_BasicHypothesis.idl \
-                         ../../../share/salome/idl/SMESH_Hypothesis.idl
-FILE_PATTERNS          = 
-RECURSIVE              = NO
+INPUT                  = ../../../share/salome/src \
+                        ../../../share/salome/idl \
+                        ../../../build/salome/bin
+FILE_PATTERNS          = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
+RECURSIVE              = YES
 EXCLUDE                = 
 EXCLUDE_SYMLINKS       = NO
 EXCLUDE_PATTERNS       = 
@@ -70,7 +89,9 @@ EXAMPLE_PATTERNS       =
 EXAMPLE_RECURSIVE      = NO
 IMAGE_PATH             = sources/
 INPUT_FILTER           = 
+FILTER_PATTERNS        = 
 FILTER_SOURCE_FILES    = YES
+
 #---------------------------------------------------------------------------
 # configuration options related to source browsing
 #---------------------------------------------------------------------------
@@ -79,12 +100,16 @@ INLINE_SOURCES         = NO
 STRIP_CODE_COMMENTS    = YES
 REFERENCED_BY_RELATION = NO
 REFERENCES_RELATION    = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
 IGNORE_PREFIX          = 
+
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
 #---------------------------------------------------------------------------
@@ -92,8 +117,8 @@ GENERATE_HTML          = YES
 HTML_OUTPUT            = SMESH
 HTML_FILE_EXTENSION    = .html
 HTML_HEADER            = sources/myheader.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
+HTML_FOOTER            = sources/footer.html
+HTML_STYLESHEET        = sources/static/doxygen.css
 HTML_ALIGN_MEMBERS     = YES
 GENERATE_HTMLHELP      = NO
 CHM_FILE               = 
@@ -101,10 +126,11 @@ HHC_LOCATION           =
 GENERATE_CHI           = NO
 BINARY_TOC             = YES
 TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
+DISABLE_INDEX          = NO
 ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
+GENERATE_TREEVIEW      = NO
 TREEVIEW_WIDTH         = 250
+
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
@@ -119,6 +145,8 @@ LATEX_HEADER           =
 PDF_HYPERLINKS         = NO
 USE_PDFLATEX           = NO
 LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the RTF output
 #---------------------------------------------------------------------------
@@ -128,6 +156,7 @@ COMPACT_RTF            = NO
 RTF_HYPERLINKS         = NO
 RTF_STYLESHEET_FILE    = 
 RTF_EXTENSIONS_FILE    = 
+
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
@@ -135,16 +164,21 @@ GENERATE_MAN           = NO
 MAN_OUTPUT             = man
 MAN_EXTENSION          = .3
 MAN_LINKS              = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the XML output
 #---------------------------------------------------------------------------
 GENERATE_XML           = NO
+XML_OUTPUT             = xml
 XML_SCHEMA             = 
 XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+
 #---------------------------------------------------------------------------
 # configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
 GENERATE_AUTOGEN_DEF   = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the Perl module output
 #---------------------------------------------------------------------------
@@ -152,11 +186,12 @@ GENERATE_PERLMOD       = NO
 PERLMOD_LATEX          = NO
 PERLMOD_PRETTY         = YES
 PERLMOD_MAKEVAR_PREFIX = 
+
 #---------------------------------------------------------------------------
 # Configuration options related to the preprocessor   
 #---------------------------------------------------------------------------
 ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
+MACRO_EXPANSION        = NO
 EXPAND_ONLY_PREDEF     = NO
 SEARCH_INCLUDES        = YES
 INCLUDE_PATH           = 
@@ -164,14 +199,16 @@ INCLUDE_FILE_PATTERNS  =
 PREDEFINED             = 
 EXPAND_AS_DEFINED      = 
 SKIP_FUNCTION_MACROS   = NO
+
 #---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
+# Configuration::additions related to external references   
 #---------------------------------------------------------------------------
 TAGFILES               = 
 GENERATE_TAGFILE       = 
 ALLEXTERNALS           = NO
 EXTERNAL_GROUPS        = YES
 PERL_PATH              = /usr/bin/perl
+
 #---------------------------------------------------------------------------
 # Configuration options related to the dot tool   
 #---------------------------------------------------------------------------
@@ -180,24 +217,26 @@ HIDE_UNDOC_RELATIONS   = NO
 HAVE_DOT               = YES
 CLASS_GRAPH            = YES
 COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = NO
+UML_LOOK               = NO
 TEMPLATE_RELATIONS     = YES
 INCLUDE_GRAPH          = YES
 INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
 GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
 DOT_IMAGE_FORMAT       = jpg
 DOT_PATH               = 
 DOTFILE_DIRS           = 
 MAX_DOT_GRAPH_WIDTH    = 1024
 MAX_DOT_GRAPH_HEIGHT   = 1200
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
 GENERATE_LEGEND        = NO
 DOT_CLEANUP            = YES
+
 #---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
+# Configuration::additions related to the search engine   
 #---------------------------------------------------------------------------
 SEARCHENGINE           = NO
-CGI_NAME               = search.cgi
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = /usr/local/bin/
-EXT_DOC_PATHS          = 
index d4887c700432749605932d543b245ddc61d95619..ba0d3393fa46f98fd9ae0ae1155cb8f8971c4185 100755 (executable)
@@ -1,73 +1,97 @@
-# Doxyfile 1.3-rc1
+# Doxyfile 1.4.6
 
 #---------------------------------------------------------------------------
-# General configuration options
+# Project related configuration options
 #---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - SMESH - v.3.2.0a2"
-PROJECT_NUMBER         = id#1.1
+PROJECT_NAME           = "SALOME - SMESH - v.version"
+PROJECT_NUMBER         = 
 OUTPUT_DIRECTORY       = ../
+CREATE_SUBDIRS         = NO
 OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = ../../../share/salome \
+                        ../../../build/salome
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 5
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
 EXTRACT_ALL            = YES
 EXTRACT_PRIVATE        = YES
 EXTRACT_STATIC         = YES
 EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
 HIDE_UNDOC_MEMBERS     = NO
 HIDE_UNDOC_CLASSES     = NO
 HIDE_FRIEND_COMPOUNDS  = NO
 HIDE_IN_BODY_DOCS      = NO
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = NO
-ALWAYS_DETAILED_SEC    = YES
-INLINE_INHERITED_MEMB  = YES
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
 INTERNAL_DOCS          = YES
 CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
 HIDE_SCOPE_NAMES       = NO
-VERBATIM_HEADERS       = YES
 SHOW_INCLUDE_FILES     = YES
-JAVADOC_AUTOBRIEF      = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP         = NO
-INHERIT_DOCS           = YES
 INLINE_INFO            = YES
 SORT_MEMBER_DOCS       = NO
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 5
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
 GENERATE_TODOLIST      = YES
 GENERATE_TESTLIST      = YES
 GENERATE_BUGLIST       = YES
 GENERATE_DEPRECATEDLIST= YES
-ALIASES                = 
 ENABLED_SECTIONS       = 
 MAX_INITIALIZER_LINES  = 25
-OPTIMIZE_OUTPUT_FOR_C  = YES
-OPTIMIZE_OUTPUT_JAVA   = YES
 SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
+
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
 QUIET                  = NO
 WARNINGS               = YES
 WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
 WARN_FORMAT            = "$file:$line: $text"
 WARN_LOGFILE           = log.txt
+
 #---------------------------------------------------------------------------
 # configuration options related to the input files
 #---------------------------------------------------------------------------
-INPUT                  = list_py_files_to_process
-FILE_PATTERNS          = 
-RECURSIVE              = NO
+INPUT                  = ../../../share/salome/src \
+                        ../../../share/salome/idl \
+                        ../../../build/salome/bin
+FILE_PATTERNS          = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
+RECURSIVE              = YES
 EXCLUDE                = 
 EXCLUDE_SYMLINKS       = NO
 EXCLUDE_PATTERNS       = 
 EXAMPLE_PATH           = 
 EXAMPLE_PATTERNS       = 
 EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = ../sources/
+IMAGE_PATH             = sources/
 INPUT_FILTER           = 
+FILTER_PATTERNS        = 
 FILTER_SOURCE_FILES    = YES
+
 #---------------------------------------------------------------------------
 # configuration options related to source browsing
 #---------------------------------------------------------------------------
@@ -76,21 +100,25 @@ INLINE_SOURCES         = NO
 STRIP_CODE_COMMENTS    = YES
 REFERENCED_BY_RELATION = NO
 REFERENCES_RELATION    = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+
 #---------------------------------------------------------------------------
 # configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
 IGNORE_PREFIX          = 
+
 #---------------------------------------------------------------------------
 # configuration options related to the HTML output
 #---------------------------------------------------------------------------
 GENERATE_HTML          = YES
-HTML_OUTPUT            = ../SMESH/meshpy_doc
+HTML_OUTPUT            = SMESH
 HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = ../sources/myheader_py2.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
+HTML_HEADER            = sources/myheader.html
+HTML_FOOTER            = sources/footer.html
+HTML_STYLESHEET        = sources/static/doxygen.css
 HTML_ALIGN_MEMBERS     = YES
 GENERATE_HTMLHELP      = NO
 CHM_FILE               = 
@@ -98,10 +126,11 @@ HHC_LOCATION           =
 GENERATE_CHI           = NO
 BINARY_TOC             = YES
 TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
+DISABLE_INDEX          = NO
 ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
+GENERATE_TREEVIEW      = NO
 TREEVIEW_WIDTH         = 250
+
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
@@ -116,6 +145,8 @@ LATEX_HEADER           =
 PDF_HYPERLINKS         = NO
 USE_PDFLATEX           = NO
 LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the RTF output
 #---------------------------------------------------------------------------
@@ -125,6 +156,7 @@ COMPACT_RTF            = NO
 RTF_HYPERLINKS         = NO
 RTF_STYLESHEET_FILE    = 
 RTF_EXTENSIONS_FILE    = 
+
 #---------------------------------------------------------------------------
 # configuration options related to the man page output
 #---------------------------------------------------------------------------
@@ -132,16 +164,21 @@ GENERATE_MAN           = NO
 MAN_OUTPUT             = man
 MAN_EXTENSION          = .3
 MAN_LINKS              = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the XML output
 #---------------------------------------------------------------------------
 GENERATE_XML           = NO
+XML_OUTPUT             = xml
 XML_SCHEMA             = 
 XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+
 #---------------------------------------------------------------------------
 # configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
 GENERATE_AUTOGEN_DEF   = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the Perl module output
 #---------------------------------------------------------------------------
@@ -149,11 +186,12 @@ GENERATE_PERLMOD       = NO
 PERLMOD_LATEX          = NO
 PERLMOD_PRETTY         = YES
 PERLMOD_MAKEVAR_PREFIX = 
+
 #---------------------------------------------------------------------------
 # Configuration options related to the preprocessor   
 #---------------------------------------------------------------------------
 ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
+MACRO_EXPANSION        = NO
 EXPAND_ONLY_PREDEF     = NO
 SEARCH_INCLUDES        = YES
 INCLUDE_PATH           = 
@@ -161,14 +199,16 @@ INCLUDE_FILE_PATTERNS  =
 PREDEFINED             = 
 EXPAND_AS_DEFINED      = 
 SKIP_FUNCTION_MACROS   = NO
+
 #---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
+# Configuration::additions related to external references   
 #---------------------------------------------------------------------------
 TAGFILES               = 
 GENERATE_TAGFILE       = 
 ALLEXTERNALS           = NO
 EXTERNAL_GROUPS        = YES
 PERL_PATH              = /usr/bin/perl
+
 #---------------------------------------------------------------------------
 # Configuration options related to the dot tool   
 #---------------------------------------------------------------------------
@@ -177,24 +217,26 @@ HIDE_UNDOC_RELATIONS   = NO
 HAVE_DOT               = YES
 CLASS_GRAPH            = YES
 COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = NO
+UML_LOOK               = NO
 TEMPLATE_RELATIONS     = YES
 INCLUDE_GRAPH          = YES
 INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
 GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
 DOT_IMAGE_FORMAT       = jpg
 DOT_PATH               = 
 DOTFILE_DIRS           = 
 MAX_DOT_GRAPH_WIDTH    = 1024
 MAX_DOT_GRAPH_HEIGHT   = 1200
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
 GENERATE_LEGEND        = NO
 DOT_CLEANUP            = YES
+
 #---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
+# Configuration::additions related to the search engine   
 #---------------------------------------------------------------------------
 SEARCHENGINE           = NO
-CGI_NAME               = search.cgi
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = /usr/local/bin/
-EXT_DOC_PATHS          = 
diff --git a/doc/salome/tui/SMESH/sources/footer.html b/doc/salome/tui/SMESH/sources/footer.html
new file mode 100755 (executable)
index 0000000..cb55f39
--- /dev/null
@@ -0,0 +1,5 @@
+</DIV>
+<DIV class="div-footer">
+Generated on $datetime for $projectname by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> $doxygenversion</DIV>
+</BODY>
+</HTML>
index 83ca543cda7dcf8bc623fb52b00def9617fd1c8b..1dc1ce7a4d77a3bbe1110486cf494dd474796fc0 100755 (executable)
@@ -8,17 +8,5 @@
 </head>
 <body>
 &nbsp;
-<center><table WIDTH="96%" >
-<tr>
-<td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
-
-
-<td>
-<div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
-</td>
-</tr>
-</table></center>
-
-
 </body>
 </html>
index 0a8e93d50b5939b2f769931a2fba6c12458b2b86..88e613d2392388224ab7c6ba85e7aafb73185dac 100755 (executable)
-H1 { text-align: center; }
-CAPTION { font-weight: bold }
+H1 { 
+   text-align: center; 
+}
+
+CAPTION { 
+   font-weight: bold 
+}
+
+/* Link in the top navbar */
 A.qindex {}
+
 A.qindexRef {}
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code { text-decoration: none; font-weight: normal; color: #4444ee }
-A.codeRef { font-weight: normal; color: #4444ee }
-A:hover { text-decoration: none; background-color: lightblue }
-DL.el { margin-left: -1cm }
-DIV.fragment { width: 100%; border: none; background-color: #CCCCCC }
-DIV.ah { background-color: #CCCCCC; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-TD.md { background-color: lightblue; font-weight: bold; }
-TD.mdname1 { background-color: lightblue; font-weight: bold; color: #602020; }
-TD.mdname { background-color: lightblue; font-weight: bold; color: #602020; width: 600px; }
-DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
-BODY { background: url(sources/bg_salome.gif) }
+
+/* Link to any cross-referenced Doxygen element */
+A.el { 
+   text-decoration: none; 
+   font-weight: bold 
+}
+
+A.elRef { 
+   font-weight: bold 
+}
+
+/* Link to any cross-referenced Doxygen element inside a code section 
+   (ex: header)
+*/
+A.code { 
+   text-decoration: none; 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A.codeRef { 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A:hover { 
+   text-decoration: none; 
+   background-color: lightblue 
+}
+
+DL.el { 
+   margin-left: -1cm 
+}
+
+/* A code fragment (ex: header) */
+DIV.fragment { 
+   width: 100%; 
+   border: none; 
+   background-color: #CCCCCC 
+}
+
+/* In the alpha list (coumpound index), style of an alphabetical index letter */
+DIV.ah { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   color: #ffffff; 
+   margin-bottom: 3px; 
+   margin-top: 3px 
+}
+
+/* Method name (+ type) */
+TD.md { 
+   background-color: lightblue; 
+   font-weight: bold; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname1 { 
+   background-color: lightblue; 
+   font-weight: bold; color: #602020; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname { 
+   background-color: lightblue; 
+   font-weight: bold; 
+   color: #602020; 
+   width: 600px; 
+}
+
+/* Separator between methods group (usually empty, seems not supported by IE) */
+DIV.groupHeader { 
+   margin-left: 16px; 
+   margin-top: 12px; 
+   margin-bottom: 6px; 
+   font-weight: bold 
+}
+
+DIV.groupText { 
+   margin-left: 16px; 
+   font-style: italic; 
+   font-size: smaller 
+}
+
+BODY { 
+   background: #FFFFFF;
+}
+
+/*div.div-page { 
+  background-color: #FFFFFF; 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-top: 1em;
+  margin-bottom: 0.1em;
+
+  padding-left: 1em;
+  padding-right: 1em;
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+
+  border: 2px solid #0D299A; 
+  border-width: 2px;
+  border-color: #0D299A; 
+}*/
+
+div.tabs { 
+  text-align: justify; 
+  margin-left    : 2px;         
+  margin-right   : 2px;  
+  margin-top     : 2px; 
+  margin-bottom  : 2px
+  font-weight: bold;
+  color: #FFFFFF;
+}
+
+DIV.div-footer { 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-bottom: 0.2em;
+  text-align: right;
+  font-size: 9pt; 
+}
+
+/* In File List, Coumpound List, etc, 1st column of the index */
 TD.indexkey { 
    background-color: #CCCCCC; 
    font-weight: bold; 
@@ -28,6 +146,8 @@ TD.indexkey {
    margin-top     : 2px; 
    margin-bottom  : 2px  
 }
+
+/* In File List, Coumpound List, etc, 2nd column of the index */
 TD.indexvalue { 
    background-color: #CCCCCC; 
    font-style: italic; 
@@ -40,6 +160,7 @@ TD.indexvalue {
    margin-top     : 2px; 
    margin-bottom  : 2px  
 }
+
 span.keyword       { color: #008000 }
 span.keywordtype   { color: #604020 }
 span.keywordflow   { color: #e08000 }
index 67d80075ec5f5a69deb4f34605f31d2898782fae..ef81ae08ef52f051813dd4151d89dc277f3c0f77 100755 (executable)
@@ -1,4 +1,4 @@
-foldersTree = gFld("<b>SALOME v.3.2.0a2 </b>", "", "")
+foldersTree = gFld("<b>SALOME v.3.2.0b1 </b>", "", "")
      insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
 
 aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
index 8bc4e84d31ef6d0ece2d528311afd997ef14b85c..083911793319d379fe6d58564f5d695ed7c229f6 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # generate dependencies for idl file :
 #
index 516eeb38f7cb776d7bc2b102b31ab79b1831d0cc..4376a66a4686e5746a56a78cc5210d94547033d7 100644 (file)
 
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
+#include "GEOM_Gen.idl"
 #include "SMESH_Mesh.idl"
 
-
-module GEOM
-{
-  interface GEOM_Object;
-};
-
-
 module SMESH
 {
 
index ee234b95e943727c35ce4e1b49ff090eaa1c4a03..f9e3af677584d5f2bae47251efb83bd329430bc3 100644 (file)
@@ -113,6 +113,12 @@ module SMESH
     SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject )
       raises ( SALOME::SALOME_Exception );
     
+    /*!
+     * Create a empty mesh object
+     */
+    SMESH_Mesh CreateEmptyMesh()
+      raises ( SALOME::SALOME_Exception );
+    
     /*!
      * Create Mesh object importing data from given UNV file
      */
index 4b7b547071a67cef08821288b484f5fc4c877747..c11266dedfa25c4c06bee5416cb988b95a8d3299 100644 (file)
 
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
-
-module GEOM
-{
-  interface GEOM_Object;
-};
-
-
-module SALOME_MED
-{
-  interface MESH;
-  interface FAMILY;
-};
-
+#include "GEOM_Gen.idl"
+#include "MED.idl"
 
 module SMESH
 {
   interface SMESH_Hypothesis;
   typedef sequence<SMESH_Hypothesis> ListOfHypothesis;
+  interface SMESH_GroupBase;
+  typedef sequence<SMESH_GroupBase> ListOfGroups;
 
   typedef sequence<double> double_array ;
   typedef sequence<long> long_array ;
@@ -111,6 +102,15 @@ module SMESH
     FACE,
     VOLUME
   };
+  
+  /*!
+   * ElementOrder points out entities of what order are requested
+   */
+  enum ElementOrder {
+    ORDER_ANY,          /*! entities of any order */
+    ORDER_LINEAR,       /*! entities of 1st order */
+    ORDER_QUADRATIC     /*! entities of 2nd order */
+  };
 
   /*!
    * Enumeration for hypothesis status (used by AddHypothesis() and RemoveHypothesis() methods)
@@ -171,7 +171,6 @@ module SMESH
     long_array GetIDs();
   };
 
-  interface SMESH_GroupBase;
   interface SMESH_Group;
   interface SMESH_GroupOnGeom;
   interface SMESH_subMesh;
@@ -238,6 +237,12 @@ module SMESH
     void RemoveGroupWithContents( in SMESH_GroupBase aGroup )
       raises (SALOME::SALOME_Exception);
 
+    /*!
+     *  Get the list of groups existing in the mesh
+     */
+    ListOfGroups GetGroups()
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Union of two groups
      *    New group is created. All mesh elements that are
@@ -395,33 +400,60 @@ module SMESH
     long NbEdges()
       raises (SALOME::SALOME_Exception);
 
+    long NbEdgesOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbFaces()
       raises (SALOME::SALOME_Exception);
 
+    long NbFacesOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbTriangles()
       raises (SALOME::SALOME_Exception);
 
+    long NbTrianglesOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbQuadrangles()
       raises (SALOME::SALOME_Exception);
 
+    long NbQuadranglesOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbPolygons()
       raises (SALOME::SALOME_Exception);
 
     long NbVolumes()
       raises (SALOME::SALOME_Exception);
 
+    long NbVolumesOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbTetras()
       raises (SALOME::SALOME_Exception);
 
+    long NbTetrasOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbHexas()
       raises (SALOME::SALOME_Exception);
 
+    long NbHexasOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbPyramids()
       raises (SALOME::SALOME_Exception);
 
+    long NbPyramidsOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbPrisms()
       raises (SALOME::SALOME_Exception);
 
+    long NbPrismsOfOrder(in ElementOrder order)
+      raises (SALOME::SALOME_Exception);
+
     long NbPolyhedrons()
       raises (SALOME::SALOME_Exception);
 
@@ -443,6 +475,15 @@ module SMESH
     ElementType GetElementType( in long id, in boolean iselem )
       raises (SALOME::SALOME_Exception);
 
+    long_array GetSubMeshElementsId(in long ShapeID)
+      raises (SALOME::SALOME_Exception);
+
+    long_array GetSubMeshNodesId(in long ShapeID, in boolean all )
+      raises (SALOME::SALOME_Exception);
+    
+    ElementType GetSubMeshElementType(in long ShapeID)
+      raises (SALOME::SALOME_Exception);
+
     /*!
      * Get mesh description
      */
@@ -453,6 +494,78 @@ module SMESH
      */
     long GetMeshPtr();
 
+    /*!
+     * Get XYZ coordinates of node as list of double
+     * If there is not node for given ID - returns empty list
+     */
+    double_array GetNodeXYZ(in long id);
+
+    /*!
+     * For given node returns list of IDs of inverse elements
+     * If there is not node for given ID - returns empty list
+     */
+    long_array GetNodeInverseElements(in long id);
+
+    /*!
+     * If given element is node returns IDs of shape from position
+     * else - return ID of result shape after ::FindShape()
+     * from SMESH_MeshEditor
+     * If there is not element for given ID - returns -1
+     */
+    long GetShapeID(in long id);
+
+    /*!
+     * Returns number of nodes for given element
+     * If there is not element for given ID - returns -1
+     */
+    long GetElemNbNodes(in long id);
+
+    /*!
+     * Returns ID of node by given index for given element
+     * If there is not element for given ID - returns -1
+     * If there is not node for given index - returns -2
+     */
+    long GetElemNode(in long id, in long index);
+
+    /*!
+     * Returns true if given node is medium node
+     * in given quadratic element
+     */
+    boolean IsMediumNode(in long ide, in long idn);
+
+    /*!
+     * Returns true if given node is medium node
+     * in one of quadratic elements
+     */
+    boolean IsMediumNodeOfAnyElem(in long idn, in ElementType elem_type);
+
+    /*!
+     * Returns number of edges for given element
+     */
+    long ElemNbEdges(in long id);
+
+    /*!
+     * Returns number of faces for given element
+     */
+    long ElemNbFaces(in long id);
+
+    /*!
+     * Returns true if given element is polygon
+     */
+    boolean IsPoly(in long id);
+
+    /*!
+     * Returns true if given element is quadratic
+     */
+    boolean IsQuadratic(in long id);
+
+    /*!
+     * Returns XYZ coordinates of bary center for given element
+     * as list of double
+     * If there is not element for given ID - returns empty list
+     */
+    double_array BaryCenter(in long id);
+
   };
 
   interface SMESH_subMesh : SALOME::GenericObj, SMESH_IDSource
@@ -527,15 +640,15 @@ module SMESH
 
     boolean RemoveNodes(in long_array IDsOfNodes);
 
-    boolean AddNode(in double x, in double y, in double z);
+    long AddNode(in double x, in double y, in double z);
 
-    boolean AddEdge(in long_array IDsOfNodes);
+    long AddEdge(in long_array IDsOfNodes);
 
-    boolean AddFace(in long_array IDsOfNodes);
+    long AddFace(in long_array IDsOfNodes);
 
-    boolean AddPolygonalFace(in long_array IdsOfNodes);
+    long AddPolygonalFace(in long_array IdsOfNodes);
 
-    boolean AddVolume(in long_array IDsOfNodes);
+    long AddVolume(in long_array IDsOfNodes);
 
     /*!
      *  Create volume of many faces, giving nodes for each face.
@@ -543,7 +656,7 @@ module SMESH
      *  \param Quantities List of integer values, Quantities[i]
      *         gives quantity of nodes in face number i.
      */
-    boolean AddPolyhedralVolume (in long_array IdsOfNodes,
+    long AddPolyhedralVolume (in long_array IdsOfNodes,
                                 in long_array Quantities);
 
     /*!
@@ -552,7 +665,7 @@ module SMESH
      *  \note The created volume will refer only to nodes
      *        of the given faces, not to the faces itself.
      */
-    boolean AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
+    long AddPolyhedralVolumeByFaces (in long_array IdsOfFaces);
 
     boolean MoveNode(in long NodeID, in double x, in double y, in double z);
 
@@ -655,6 +768,10 @@ module SMESH
                                    in double          MaxAspectRatio,
                                    in Smooth_Method   Method);
 
+    void ConvertToQuadratic(in boolean theForce3d);
+
+    boolean ConvertFromQuadratic();
+
     void RenumberNodes();
 
     void RenumberElements();
@@ -809,6 +926,27 @@ module SMESH
                                in long       NodeID2OfSide1ToMerge,
                                in long       NodeID2OfSide2ToMerge);
 
+   /*!
+    * Set new nodes for given element.
+    * If number of nodes is not corresponded to type of
+    * element - returns false
+    */
+    boolean ChangeElemNodes(in long ide, in long_array newIDs);
+
+   /*!
+    * If during last operation of MeshEditor some nodes were
+    * created this method returns list of it's IDs, if new nodes
+    * not creared - returns empty list
+    */
+    long_array GetLastCreatedNodes();
+
+   /*!
+    * If during last operation of MeshEditor some elements were
+    * created this method returns list of it's IDs, if new elements
+    * not creared - returns empty list
+    */
+    long_array GetLastCreatedElems();
+
   };
 };
 
index d2324a0b215336a8f88b89b7ccfb3e72dd370d29..6317019bfaf41fc787b1aaf09da7c136dbf82295 100644 (file)
@@ -140,6 +140,7 @@ module SMESH
       // Load(face)
       ERR_LOADF_NARROW_FACE, // too narrow face
       ERR_LOADF_CLOSED_FACE, // closed face
+      ERR_LOADF_CANT_PROJECT, // impossible to project nodes
       // Load(volume)
       ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
       ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters
index ad94da9c2d0ff94cf7a963469496ae6a3ce5130d..bbc8e1b8a48e520bbd3efcc1a88ad701ea1dc93e 100644 (file)
@@ -16,7 +16,7 @@
                <component-username>Mesh</component-username>
                <component-type>MESH</component-type>
                <component-author>NRI</component-author>
-               <component-version>3.2.0a2</component-version>
+               <component-version>3.2.0b1</component-version>
                <component-comment>Mesh component</component-comment>
                <component-multistudy>1</component-multistudy>
                <component-icone>ModuleMesh.png</component-icone>
diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml
new file mode 100644 (file)
index 0000000..3b4db83
--- /dev/null
@@ -0,0 +1,47 @@
+<document>
+  <section name="SMESH">
+    <!-- Major module parameters -->
+    <parameter name="name" value="Mesh"/>
+    <parameter name="icon" value="ModuleMesh.png"/>
+    <!-- Other module preferences -->
+    <parameter name="node_color"                   value="255, 0,   0"/>
+    <parameter name="fill_color"                   value="0, 170, 255"/>
+    <parameter name="outline_color"                value="0, 170, 255"/>
+    <parameter name="backface_color"               value="0, 0,   255"/>
+    <parameter name="highlight_color"              value="0, 255, 255"/>
+    <parameter name="node_size"                    value="3" />
+    <parameter name="element_width"                value="1" />
+    <parameter name="shrink_coeff"                 value="75"/>
+    <parameter name="selection_element_color"      value="255, 255,   0"/>
+    <parameter name="selection_object_color"       value="255, 255, 255"/>
+    <parameter name="selection_precision_element"  value="0.005"/>
+    <parameter name="selection_precision_node"     value="0.005"/>
+    <parameter name="selection_width"              value="5"/>
+    <parameter name="highlight_width"              value="5"/>
+    <parameter name="controls_precision"           value="0"/>
+    <parameter name="scalar_bar_horizontal_height" value="0.05"/>
+    <parameter name="scalar_bar_horizontal_width"  value="0.5" />
+    <parameter name="scalar_bar_horizontal_x"      value="0.01"/>
+    <parameter name="scalar_bar_horizontal_y"      value="0.01"/>
+    <parameter name="scalar_bar_label_color"       value="255, 255, 255"/>
+    <parameter name="scalar_bar_label_font"        value="Arial,12"     />
+    <parameter name="scalar_bar_num_colors"        value="64"/>
+    <parameter name="scalar_bar_num_labels"        value="5" />
+    <parameter name="scalar_bar_orientation"       value="0" />
+    <parameter name="scalar_bar_title_color"       value="255, 255, 255"/>
+    <parameter name="scalar_bar_title_font"        value="Arial,12"     />
+    <parameter name="scalar_bar_vertical_height"   value="0.5"  />
+    <parameter name="scalar_bar_vertical_width"    value="0.05" />
+    <parameter name="scalar_bar_vertical_x"        value="0.01" />
+    <parameter name="scalar_bar_vertical_y"        value="0.01" />
+    <parameter name="DisplayMode"                  value="true" />
+    <parameter name="auto_update"                  value="true" />
+    <parameter name="display_mode"                 value="1"    />
+    <parameter name="auto_groups"                  value="false"/>
+  </section>
+  <section name="resources">
+    <!-- Module resources -->
+    <parameter name="SMESH"      value="${SMESH_ROOT_DIR}/share/salome/resources"/>
+    <parameter name="StdMeshers" value="${SMESH_ROOT_DIR}/share/salome/resources"/>
+  </section>
+</document>
index 6daf06253c936a2ea5d1435d88479271cbca3c5d..853f8ea2b44f2d19616ed1d289214b4f06f8b29e 100644 (file)
     <algorithm type="Regular_1D"
               label-id="Wire discretisation"
               icon-id="mesh_algo_regular.png"
-         dim="1"/>
+               hypos="LocalLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength"
+               opt-hypos="Propagation,QuadraticMesh"
+               output="EDGE"
+               dim="1"/>
 
     <algorithm type="MEFISTO_2D"
               label-id="Triangle (Mefisto)"
               icon-id="mesh_algo_mefisto.png"
-         dim="2"/>
+               hypos="LengthFromEdges,MaxElementArea"
+               input="EDGE"
+               output="TRIA"
+               dim="2"/>
 
     <algorithm type="Quadrangle_2D"
                label-id="Quadrangle (Mapping)"
                icon-id="mesh_algo_quad.png"
+               opt-hypos="QuadranglePreference"
+               input="EDGE"
+               output="QUAD"
                dim="2"/>
 
     <algorithm type="Hexa_3D"
                label-id="Hexahedron (i,j,k)"
                icon-id="mesh_algo_hexa.png"
+               input="QUAD"
                dim="3"/>
   </algorithms>
 </meshers-group>
diff --git a/resources/mesh_conv_to_quad.png b/resources/mesh_conv_to_quad.png
new file mode 100755 (executable)
index 0000000..ae39c7e
Binary files /dev/null and b/resources/mesh_conv_to_quad.png differ
diff --git a/resources/mesh_tree_algo_netgen_2d.png b/resources/mesh_tree_algo_netgen_2d.png
new file mode 100755 (executable)
index 0000000..092eae3
Binary files /dev/null and b/resources/mesh_tree_algo_netgen_2d.png differ
diff --git a/resources/mesh_tree_algo_netgen_2d3d.png b/resources/mesh_tree_algo_netgen_2d3d.png
new file mode 100644 (file)
index 0000000..eeaf98a
Binary files /dev/null and b/resources/mesh_tree_algo_netgen_2d3d.png differ
diff --git a/resources/mesh_tree_hypo_netgen.png b/resources/mesh_tree_hypo_netgen.png
new file mode 100644 (file)
index 0000000..ad5e9f3
Binary files /dev/null and b/resources/mesh_tree_hypo_netgen.png differ
diff --git a/resources/mesh_tree_hypo_netgen_2d.png b/resources/mesh_tree_hypo_netgen_2d.png
new file mode 100644 (file)
index 0000000..cd813c8
Binary files /dev/null and b/resources/mesh_tree_hypo_netgen_2d.png differ
index c00cbae43554bcf0c5ea8f40f2d46537bad8eed7..7edaa0e2169f315eea09cf9f44b7583cb1026821 100644 (file)
@@ -246,6 +246,7 @@ void  NumericalFunctor::SetPrecision( const long thePrecision )
 
 double NumericalFunctor::GetValue( long theId )
 {
+  myCurrElement = myMesh->FindElement( theId );
   TSequenceOfXYZ P;
   if ( GetPoints( theId, P ))
   {
@@ -484,6 +485,7 @@ namespace{
 double AspectRatio3D::GetValue( const TSequenceOfXYZ& P )
 {
   double aQuality = 0.0;
+  if(myCurrElement->IsPoly()) return aQuality;
   int nbNodes = P.size();
   switch(nbNodes){
   case 4:{
@@ -1292,60 +1294,58 @@ double MultiConnection2D::GetValue( const TSequenceOfXYZ& P )
 
 double MultiConnection2D::GetValue( long theElementId )
 {
-  TSequenceOfXYZ P;
   int aResult = 0;
 
-  if (GetPoints(theElementId,P)){
-    const SMDS_MeshElement* anFaceElem = myMesh->FindElement( theElementId );
-    SMDSAbs_ElementType aType = anFaceElem->GetType();
-
-    int len = P.size();
-
-    TColStd_MapOfInteger aMap;
-    int aResult = 0;
+  const SMDS_MeshElement* aFaceElem = myMesh->FindElement(theElementId);
+  SMDSAbs_ElementType aType = aFaceElem->GetType();
 
-    switch (aType){
-    case SMDSAbs_All:
-    case SMDSAbs_Node:
-    case SMDSAbs_Edge:
-    case SMDSAbs_Face:
-      if (len == 3){ // triangles
-       int Nb[3] = {0,0,0};
-
-       int i=0;
-       SMDS_ElemIteratorPtr anIter = anFaceElem->nodesIterator();
-       if ( anIter != 0 ) {
-         while( anIter->more() ) {
-           const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-           if ( aNode == 0 ){
-             break;
-           }
-           SMDS_ElemIteratorPtr anElemIter = aNode->GetInverseElementIterator();
-           while( anElemIter->more() ) {
-             const SMDS_MeshElement* anElem = anElemIter->next();
-             if ( anElem != 0 && anElem->GetType() != SMDSAbs_Edge ) {
-               int anId = anElem->GetID();
-
-               if ( anIter->more() )              // i.e. first node
-                 aMap.Add( anId );
-               else if ( aMap.Contains( anId ) ){
-                 Nb[i]++;
-               }
-             }
-             else if ( anElem != 0 && anElem->GetType() == SMDSAbs_Edge ) i++;
-           }
-         }
-       }
-
-       aResult = Max(Max(Nb[0],Nb[1]),Nb[2]);
+  switch (aType) {
+  case SMDSAbs_Face:
+    {
+      int i = 0, len = aFaceElem->NbNodes();
+      SMDS_ElemIteratorPtr anIter = aFaceElem->nodesIterator();
+      if (!anIter) break;
+
+      const SMDS_MeshNode *aNode, *aNode0;
+      TColStd_MapOfInteger aMap, aMapPrev;
+
+      for (i = 0; i <= len; i++) {
+        aMapPrev = aMap;
+        aMap.Clear();
+
+        int aNb = 0;
+        if (anIter->more()) {
+          aNode = (SMDS_MeshNode*)anIter->next();
+        } else {
+          if (i == len)
+            aNode = aNode0;
+          else
+            break;
+        }
+        if (!aNode) break;
+        if (i == 0) aNode0 = aNode;
+
+        SMDS_ElemIteratorPtr anElemIter = aNode->GetInverseElementIterator();
+        while (anElemIter->more()) {
+          const SMDS_MeshElement* anElem = anElemIter->next();
+          if (anElem != 0 && anElem->GetType() == SMDSAbs_Face) {
+            int anId = anElem->GetID();
+
+            aMap.Add(anId);
+            if (aMapPrev.Contains(anId)) {
+              aNb++;
+            }
+          }
+        }
+        aResult = Max(aResult, aNb);
       }
-      break;
-    case SMDSAbs_Volume:
-    default: aResult=0;
     }
-
+    break;
+  default:
+    aResult = 0;
   }
-  return aResult;//getNbMultiConnection( myMesh, theId );
+
+  return aResult;
 }
 
 double MultiConnection2D::GetBadRate( double Value, int /*nbNodes*/ ) const
@@ -1545,7 +1545,7 @@ bool FreeEdges::IsSatisfy( long theId )
   else {
     anIter = aFace->nodesIterator();
   }
-  if ( anIter != 0 )
+  if ( anIter == 0 )
     return false;
 
   int i = 0, nbNodes = aFace->NbNodes();
index 576b1e8e011b9cec6f90c939fc040d6db3f9a9ae..a4018959f7536a9b545e7553bfa764d9ce55421e 100644 (file)
@@ -126,6 +126,7 @@ namespace SMESH{
                            TSequenceOfXYZ& theRes);
     protected:
       const SMDS_Mesh* myMesh;
+      const SMDS_MeshElement* myCurrElement;
       long       myPrecision;
     };
   
index 49c645f47a23a09f89e2cce8f55c93330cc4f70b..87f33c81c7a318f63047d443d68c184c2098668b 100644 (file)
@@ -124,6 +124,8 @@ DriverMED_R_SMESHDS_Mesh
         // Reading MED nodes to the corresponding SMDS structure
        //------------------------------------------------------
        PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo);
+       if(!aNodeInfo)
+         continue;
 
        PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo);
 
index 97ffd7d29c7d9c6404c436e6c6232d8c1e631aa3..173339ac3a02cd57fdbab2bb1fc05b07d5f4cb19 100644 (file)
 //
 #include "DriverUNV_R_SMDS_Mesh.h"
 #include "SMDS_Mesh.hxx"
+#include "SMDS_MeshGroup.hxx"
 
 #include "utilities.h"
 
 #include "UNV2411_Structure.hxx"
 #include "UNV2412_Structure.hxx"
+#include "UNV2417_Structure.hxx"
 #include "UNV_Utilities.hxx"
 
 using namespace std;
@@ -36,6 +38,13 @@ static int MYDEBUG = 0;
 #endif
 
 
+DriverUNV_R_SMDS_Mesh::~DriverUNV_R_SMDS_Mesh()
+{
+  if (myGroup != 0) 
+    delete myGroup;
+}
+
+
 Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
 {
   Status aResult = DRS_OK;
@@ -65,17 +74,16 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
        const TElementLab& aLabel = anIter->first;
        const TRecord& aRec = anIter->second;
        if(IsBeam(aRec.fe_descriptor_id)) {
-          if(aRec.fe_descriptor_id == 11) {
-            // edge with two nodes
+          switch ( aRec.node_labels.size() ) {
+          case 2: // edge with two nodes
             anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
                                               aRec.node_labels[1],
                                               aLabel);
-          }
-          else {
-            // quadratic edge (with 3 nodes)
+            break;
+          case 3: // quadratic edge (with 3 nodes)
             anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
-                                              aRec.node_labels[1],
                                               aRec.node_labels[2],
+                                              aRec.node_labels[1],
                                               aLabel);
           }
        }
@@ -96,10 +104,10 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
          case 42: // Plane Stress Quadratic Triangle - TRI6
          case 92: // Thin Shell Quadratic Triangle - TRI6
            anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
-                                             aRec.node_labels[1],
                                              aRec.node_labels[2],
-                                             aRec.node_labels[3],
                                              aRec.node_labels[4],
+                                             aRec.node_labels[1],
+                                             aRec.node_labels[3],
                                              aRec.node_labels[5],
                                              aLabel);
            break;
@@ -116,12 +124,12 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
          case 45: // Plane Stress Quadratic Quadrilateral - QUAD8
          case 95: // Thin Shell   Quadratic Quadrilateral - QUAD8
            anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
-                                             aRec.node_labels[1],
                                              aRec.node_labels[2],
-                                             aRec.node_labels[3],
                                              aRec.node_labels[4],
-                                             aRec.node_labels[5],
                                              aRec.node_labels[6],
+                                             aRec.node_labels[1],
+                                             aRec.node_labels[3],
+                                             aRec.node_labels[5],
                                              aRec.node_labels[7],
                                              aLabel);
            break;
@@ -140,15 +148,18 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
 
          case 118: // Solid Quadratic Tetrahedron - TET10
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[1],
-                                               aRec.node_labels[3],
-                                               aRec.node_labels[6],
-                                               aRec.node_labels[5],
                                                aRec.node_labels[4],
-                                               aRec.node_labels[7],
+                                               aRec.node_labels[2],
+
                                                aRec.node_labels[9],
+
+                                               aRec.node_labels[5],
+                                               aRec.node_labels[3],
+                                                aRec.node_labels[1],
+
+                                                aRec.node_labels[6],
                                                aRec.node_labels[8],
+                                               aRec.node_labels[7],
                                                aLabel);
            break;
            
@@ -164,20 +175,24 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
            
          case 113: // Solid Quadratic Prism - PRISM15
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
+                                               aRec.node_labels[4],
                                                aRec.node_labels[2],
-                                               aRec.node_labels[1],
-                                               aRec.node_labels[3],
+
+                                               aRec.node_labels[9],
+                                               aRec.node_labels[13],
+                                               aRec.node_labels[11],
+
                                                aRec.node_labels[5],
-                                               aRec.node_labels[4],
+                                               aRec.node_labels[3],
+                                                aRec.node_labels[1],
+
+                                               aRec.node_labels[14],
+                                               aRec.node_labels[12],
+                                                aRec.node_labels[10],
+
+                                                aRec.node_labels[6],
                                                aRec.node_labels[8],
                                                aRec.node_labels[7],
-                                               aRec.node_labels[6],
-                                               aRec.node_labels[11],
-                                               aRec.node_labels[10],
-                                               aRec.node_labels[9],
-                                               aRec.node_labels[12],
-                                               aRec.node_labels[14],
-                                               aRec.node_labels[13],
                                                aLabel);
            break;
            
@@ -195,51 +210,136 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
 
          case 116: // Solid Quadratic Brick - HEX20
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[3],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[1],
+                                               aRec.node_labels[6],
                                                aRec.node_labels[4],
+                                               aRec.node_labels[2],
+
+                                               aRec.node_labels[12],
+                                               aRec.node_labels[18],
+                                               aRec.node_labels[16],
+                                               aRec.node_labels[14],
+
                                                aRec.node_labels[7],
-                                               aRec.node_labels[6],
                                                aRec.node_labels[5],
+                                               aRec.node_labels[3],
+                                               aRec.node_labels[1],
+
+                                               aRec.node_labels[19],
+                                               aRec.node_labels[17],
+                                               aRec.node_labels[15],
+                                                aRec.node_labels[13],
+
+                                                aRec.node_labels[8],
                                                aRec.node_labels[11],
                                                aRec.node_labels[10],
                                                aRec.node_labels[9],
-                                               aRec.node_labels[8],
-                                               aRec.node_labels[15],
-                                               aRec.node_labels[14],
-                                               aRec.node_labels[13],
-                                               aRec.node_labels[12],
-                                               aRec.node_labels[16],
-                                               aRec.node_labels[19],
-                                               aRec.node_labels[18],
-                                               aRec.node_labels[17],
                                                aLabel);
            break;
 
          case 114: // pyramid of 13 nodes (quadratic) - PIRA13
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
-                                               aRec.node_labels[3],
-                                               aRec.node_labels[2],
-                                               aRec.node_labels[1],
+                                               aRec.node_labels[6],
                                                aRec.node_labels[4],
-                                               aRec.node_labels[8],
+                                               aRec.node_labels[2],
                                                aRec.node_labels[7],
-                                               aRec.node_labels[6],
                                                aRec.node_labels[5],
-                                               aRec.node_labels[9],
-                                               aRec.node_labels[12],
+                                               aRec.node_labels[3],
+                                               aRec.node_labels[1],
+
+                                               aRec.node_labels[8],
                                                aRec.node_labels[11],
                                                aRec.node_labels[10],
+                                               aRec.node_labels[9],
+                                               aRec.node_labels[12],
                                                aLabel);
            break;
 
          }
        }
-       if(!anElement)
-         MESSAGE("DriverUNV_R_SMDS_Mesh::Perform - can not add element with ID = "<<aLabel<<" and type = "<<aRec.fe_descriptor_id);
+       //      if(!anElement)
+       //        MESSAGE("DriverUNV_R_SMDS_Mesh::Perform - can not add element with ID = "<<aLabel<<" and type = "<<aRec.fe_descriptor_id);
       }
     }
+    {
+      using namespace UNV2417;      
+      in_stream.seekg(0);
+      TDataSet aDataSet2417;
+      UNV2417::Read(in_stream,aDataSet2417);
+      if(MYDEBUG) MESSAGE("Perform - aDataSet2417.size() = "<<aDataSet2417.size());
+      if  (aDataSet2417.size() > 0) {
+       myGroup = new SMDS_MeshGroup(myMesh);
+       TDataSet::const_iterator anIter = aDataSet2417.begin();
+       for(; anIter != aDataSet2417.end(); anIter++){
+         const TGroupId& aLabel = anIter->first;
+         const TRecord& aRec = anIter->second;
+
+         int aNodesNb = aRec.NodeList.size();
+         int aElementsNb = aRec.ElementList.size();
+
+         bool useSuffix = ((aNodesNb > 0) && (aElementsNb > 0));
+         int i;
+         if (aNodesNb > 0) {
+           SMDS_MeshGroup* aNodesGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Node);
+           std::string aGrName = (useSuffix) ? aRec.GroupName + "_Nodes" : aRec.GroupName;
+           myGroupNames.insert(TGroupNamesMap::value_type(aNodesGroup, aGrName));
+           myGroupId.insert(TGroupIdMap::value_type(aNodesGroup, aLabel));
+
+           for (i = 0; i < aNodesNb; i++) {
+             const SMDS_MeshNode* aNode = myMesh->FindNode(aRec.NodeList[i]);
+             if (aNode)
+               aNodesGroup->Add(aNode);
+           }
+         }
+         if (aElementsNb > 0){
+           SMDS_MeshGroup* aEdgesGroup = 0;
+           SMDS_MeshGroup* aFacesGroup = 0;
+           SMDS_MeshGroup* aVolumeGroup = 0;
+           bool createdGroup = false;
+
+           for (i = 0; i < aElementsNb; i++) {
+             const SMDS_MeshElement* aElement = myMesh->FindElement(aRec.ElementList[i]);
+             if (aElement) {
+               switch (aElement->GetType()) {
+               case SMDSAbs_Edge:
+                 if (!aEdgesGroup) {
+                   aEdgesGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Edge);
+                   if (!useSuffix && createdGroup) useSuffix = true;
+                   std::string aEdgesGrName = (useSuffix) ? aRec.GroupName + "_Edges" : aRec.GroupName;
+                   myGroupNames.insert(TGroupNamesMap::value_type(aEdgesGroup, aEdgesGrName));
+                   myGroupId.insert(TGroupIdMap::value_type(aEdgesGroup, aLabel));
+                   createdGroup = true;
+                 }
+                 aEdgesGroup->Add(aElement);
+                 break;
+               case SMDSAbs_Face:
+                 if (!aFacesGroup) {
+                   aFacesGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Face);
+                   if (!useSuffix && createdGroup) useSuffix = true;
+                   std::string aFacesGrName = (useSuffix) ? aRec.GroupName + "_Faces" : aRec.GroupName;
+                   myGroupNames.insert(TGroupNamesMap::value_type(aFacesGroup, aFacesGrName));
+                   myGroupId.insert(TGroupIdMap::value_type(aFacesGroup, aLabel));
+                   createdGroup = true;
+                 }
+                 aFacesGroup->Add(aElement);
+                 break;
+               case SMDSAbs_Volume:
+                 if (!aVolumeGroup) {
+                   aVolumeGroup = (SMDS_MeshGroup*) myGroup->AddSubGroup(SMDSAbs_Volume);
+                   if (!useSuffix && createdGroup) useSuffix = true;
+                   std::string aVolumeGrName = (useSuffix) ? aRec.GroupName + "_Volumes" : aRec.GroupName;
+                   myGroupNames.insert(TGroupNamesMap::value_type(aVolumeGroup, aVolumeGrName));
+                   myGroupId.insert(TGroupIdMap::value_type(aVolumeGroup, aLabel));
+                   createdGroup = true;
+                 }
+                 aVolumeGroup->Add(aElement);
+                 break;
+               }
+             } 
+           }
+         }
+       }
+      }
+    } 
   }
   catch(const std::exception& exc){
     INFOS("Follow exception was cought:\n\t"<<exc.what());
index 46c6ad347b30e2696daa70cef607180440c6472b..a07e9a5de06bcbe68215485e17024eaf8b5a6046 100644 (file)
 #define _INCLUDE_DRIVERUNV_R_SMDS_MESH
 
 #include "Driver_SMDS_Mesh.h"
+#include <map>
+#include <string>
+
 
 class SMDS_Mesh;
+class SMDS_MeshGroup;
+
+
+typedef std::map<SMDS_MeshGroup*, std::string> TGroupNamesMap;
+typedef std::map<SMDS_MeshGroup*, int> TGroupIdMap;
 
 class DriverUNV_R_SMDS_Mesh: public Driver_SMDS_Mesh
 {
  public:
+  DriverUNV_R_SMDS_Mesh():Driver_SMDS_Mesh(),myGroup(0) {};
+  ~DriverUNV_R_SMDS_Mesh();
   virtual Status Perform();
+
+  const SMDS_MeshGroup* GetGroup()         const { return myGroup;}
+  const TGroupNamesMap& GetGroupNamesMap() const { return myGroupNames; }
+  const TGroupIdMap&    GetGroupIdMap() const { return myGroupId; }
+
+ private:
+  SMDS_MeshGroup* myGroup;
+  TGroupNamesMap myGroupNames;
+  TGroupIdMap    myGroupId;
 };
 
 #endif
index a716945d9ecfc0776ec1509226d277689519dc58..1a1a9dce71604a40f3ad8653e9e6eaf51ee00e7b 100644 (file)
 #include "DriverUNV_W_SMDS_Mesh.h"
 
 #include "SMDS_Mesh.hxx"
+#include "SMESHDS_GroupBase.hxx"
+//#include "SMESH_Group.hxx"
+#include "SMDS_QuadraticEdge.hxx"
+#include "SMDS_QuadraticFaceOfNodes.hxx"
 
 #include "utilities.h"
 
 #include "UNV2411_Structure.hxx"
 #include "UNV2412_Structure.hxx"
+#include "UNV2417_Structure.hxx"
 #include "UNV_Utilities.hxx"
 
 using namespace std;
@@ -86,15 +91,19 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
          int aNbNodes = anElem->NbNodes();
          TRecord aRec;
          aRec.node_labels.reserve(aNbNodes);
-         SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+         SMDS_ElemIteratorPtr aNodesIter;
+          if( anElem->IsQuadratic() ) {
+            aNodesIter = static_cast<const SMDS_QuadraticEdge* >
+              ( anElem )->interlacedNodesElemIterator();
+            aRec.fe_descriptor_id = 22;
+          } else {
+            aNodesIter = anElem->nodesIterator();
+            aRec.fe_descriptor_id = 11;
+          }
          for(; aNodesIter->more();){
            const SMDS_MeshElement* aNode = aNodesIter->next();
            aRec.node_labels.push_back(aNode->GetID());
          }
-          if(aNbNodes==2)
-            aRec.fe_descriptor_id = 11;
-          else
-            aRec.fe_descriptor_id = 21;
          aDataSet2412.insert(TDataSet::value_type(aLabel,aRec));
        }
        MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
@@ -109,7 +118,12 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
          int aNbNodes = anElem->NbNodes();
          TRecord aRec;
          aRec.node_labels.reserve(aNbNodes);
-         SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+         SMDS_ElemIteratorPtr aNodesIter;
+          if( anElem->IsQuadratic() )
+            aNodesIter = static_cast<const SMDS_QuadraticFaceOfNodes* >
+              ( anElem )->interlacedNodesElemIterator();
+          else
+            aNodesIter = anElem->nodesIterator();
          for(; aNodesIter->more();){
            const SMDS_MeshElement* aNode = aNodesIter->next();
            aRec.node_labels.push_back(aNode->GetID());
@@ -170,25 +184,25 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
            break;
          }
          case 10: {
-           static int anIds[] = {0,2,1,3,6,5,4,7,9,8};
+           static int anIds[] = {0,4,2,9,5,3, 1,6,8, 7};
            aConn = anIds;
            anId = 118;
            break;
          }
          case 13: {
-           static int anIds[] = {0,3,2,1,4,8,7,6,5,9,12,11,10};
+           static int anIds[] = {0,6,4,2,7,5,3,1,8,11,10,9,12};
            aConn = anIds;
            anId = 114;
            break;
          }
          case 15: {
-           static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
+           static int anIds[] = {0,4,2,9,13,11,5,3,1,14,12,10,6,8,7};
            aConn = anIds;
            anId = 113;
            break;
          }
          case 20: {
-           static int anIds[] = {0,3,2,1,4,7,6,5,11,10,9,8,15,14,13,12,16,19,18,17};
+           static int anIds[] = {0,6, 4,2, 12,18,16,14,7, 5, 3, 1, 19,17,15,13,8, 11,10,9};
            aConn = anIds;
            anId = 116;
            break;
@@ -210,6 +224,74 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
       }
       UNV2412::Write(out_stream,aDataSet2412);
     }
+    {
+      using namespace UNV2417;
+      if (myGroups.size() > 0) {
+       TDataSet aDataSet2417;
+       TGroupList::const_iterator aIter = myGroups.begin();
+       for (; aIter != myGroups.end(); aIter++) {
+         SMESHDS_GroupBase* aGroupDS = *aIter;
+         TRecord aRec;
+         aRec.GroupName = aGroupDS->GetStoreName();
+
+         int i;
+         SMDS_ElemIteratorPtr aIter = aGroupDS->GetElements();
+         if (aGroupDS->GetType() == SMDSAbs_Node) {
+           aRec.NodeList.resize(aGroupDS->Extent());
+           i = 0;
+           while (aIter->more()) {
+             const SMDS_MeshElement* aElem = aIter->next();
+             aRec.NodeList[i] = aElem->GetID(); 
+             i++;
+           }
+         } else {
+           aRec.ElementList.resize(aGroupDS->Extent());
+           i = 0;
+           while (aIter->more()) {
+             const SMDS_MeshElement* aElem = aIter->next();
+             aRec.ElementList[i] = aElem->GetID(); 
+             i++;
+           }
+         }
+         aDataSet2417.insert(TDataSet::value_type(aGroupDS->GetID(), aRec));
+       }
+       UNV2417::Write(out_stream,aDataSet2417);
+       myGroups.clear();
+      }
+    }
+    /*    {
+      using namespace UNV2417;
+      TDataSet aDataSet2417;
+      for ( TGroupsMap::iterator it = myGroupsMap.begin(); it != myGroupsMap.end(); it++ ) {
+       SMESH_Group*       aGroup   = it->second;
+       SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
+       if ( aGroupDS ) {
+         TRecord aRec;
+         aRec.GroupName = aGroup->GetName();
+         int i;
+         SMDS_ElemIteratorPtr aIter = aGroupDS->GetElements();
+         if (aGroupDS->GetType() == SMDSAbs_Node) {
+           aRec.NodeList.resize(aGroupDS->Extent());
+           i = 0;
+           while (aIter->more()) {
+             const SMDS_MeshElement* aElem = aIter->next();
+             aRec.NodeList[i] = aElem->GetID(); 
+             i++;
+           }
+         } else {
+           aRec.ElementList.resize(aGroupDS->Extent());
+           i = 0;
+           while (aIter->more()) {
+             const SMDS_MeshElement* aElem = aIter->next();
+             aRec.ElementList[i] = aElem->GetID(); 
+             i++;
+           }
+         }
+         aDataSet2417.insert(TDataSet::value_type(aGroupDS->GetID(), aRec));
+       }
+      }
+      UNV2417::Write(out_stream,aDataSet2417);
+      }*/
   }
   catch(const std::exception& exc){
     INFOS("Follow exception was cought:\n\t"<<exc.what());
index 88ff5e83cccc376e04ca915cf54c3d0e40430c39..17e8880d67a83bf27219cb015e47fa268b96929b 100644 (file)
 #define _INCLUDE_DRIVERUNV_W_SMDS_MESH
 
 #include "Driver_SMDS_Mesh.h"
+#include "SMESHDS_GroupBase.hxx"
+#include <list>
+
+
+typedef std::list<SMESHDS_GroupBase*> TGroupList;
 
 class DriverUNV_W_SMDS_Mesh: public Driver_SMDS_Mesh
 {
  public:
   virtual Status Perform();
+
+  void AddGroup(SMESHDS_GroupBase* theGroup) { myGroups.push_back(theGroup); }
+
+ private:
+  TGroupList myGroups;
 };
 
 
index 34676940199d54f8293a02986c66c577054160c6..1e72090a4d56ec6f3e0d2192b01d27b5f002c124 100644 (file)
@@ -51,7 +51,7 @@ LIB_SRC = \
        DriverUNV_W_SMESHDS_Document.cxx \
        DriverUNV_W_SMDS_Mesh.cxx \
        DriverUNV_W_SMESHDS_Mesh.cxx \
-       UNV_Utilities.cxx UNV2411_Structure.cxx UNV2412_Structure.cxx
+       UNV_Utilities.cxx UNV2411_Structure.cxx UNV2412_Structure.cxx UNV2417_Structure.cxx
 
 # Executables targets
 BIN = UNV_Test
index 2be3319f3e4e8013a4472204654f9b07a33fdf7c..cac7a91d7cf241ba8f49e88c5fa39a27e102fd50 100644 (file)
@@ -63,7 +63,7 @@ void UNV2412::Read(std::ifstream& in_stream, TDataSet& theDataSet)
       // end of dataset is reached
       break;
     }
-
+    
     int n_nodes;
     TRecord aRec;
     in_stream>>aRec.fe_descriptor_id;
@@ -143,8 +143,9 @@ void UNV2412::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
 bool UNV2412::IsBeam(int theFeDescriptorId){
   switch (theFeDescriptorId){
   case 11: // edge with 2 nodes
-  case 21: // edge with 3 nodes (quadratic)
-  case 22:
+  case 21: 
+  case 22: // edge with 3 nodes
+  case 23: // curved beam
   case 24:
   case 25:
     return true;
diff --git a/src/DriverUNV/UNV2417_Structure.cxx b/src/DriverUNV/UNV2417_Structure.cxx
new file mode 100644 (file)
index 0000000..ac13c9b
--- /dev/null
@@ -0,0 +1,184 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+#include "UNV2417_Structure.hxx"
+#include "UNV_Utilities.hxx"
+
+#include <fstream>     
+#include <iomanip>
+
+using namespace std;
+using namespace UNV;
+using namespace UNV2417;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 0;
+#else
+static int MYDEBUG = 0;
+#endif
+
+
+static string _group_labels[] = {"2417", "2429", "2430", "2432", "2435", "2452", "2467"};
+#define NBGROUP 7
+
+static string _label_dataset = "2467";
+
+void UNV2417::Read(std::ifstream& in_stream, TDataSet& theDataSet)
+{
+  if(!in_stream.good())
+    EXCEPTION(runtime_error,"ERROR: Input file not good.");
+
+  std::string olds, news;
+  
+  while(true){
+    in_stream >> olds >> news;
+    /*
+     * a "-1" followed by a number means the beginning of a dataset
+     * stop combing at the end of the file
+     */
+    while( ((olds != "-1") || (news == "-1") ) && !in_stream.eof() ){    
+      olds = news;
+      in_stream >> news;
+    }
+    if(in_stream.eof())
+      return;
+    for (int i = 0; i < NBGROUP; i++) {
+      if (news == _group_labels[i]) {
+       ReadGroup(news, in_stream, theDataSet);
+      }
+    }
+  }
+}
+
+
+
+void UNV2417::ReadGroup(const std::string& myGroupLabel, std::ifstream& in_stream, TDataSet& theDataSet)
+{
+  TGroupId aId;
+  for(; !in_stream.eof();){
+    in_stream >> aId ;
+    if(aId == -1){
+      // end of dataset is reached
+      break;
+    }
+
+    int n_nodes;
+    TRecord aRec;
+    int aTmp;
+    in_stream>>aTmp; // miss not necessary values
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>aTmp;
+    in_stream>>n_nodes;
+
+    std::getline(in_stream, aRec.GroupName, '\n'); // Finalise previous reading
+    std::getline(in_stream, aRec.GroupName, '\n');
+    
+    int aElType;
+    int aElId;
+    int aNum;
+    for(int j=0; j < n_nodes; j++){
+      in_stream>>aElType;
+      in_stream>>aElId;
+      if ((myGroupLabel.compare("2435") == 0) || (myGroupLabel.compare("2452") == 0) || (myGroupLabel.compare("2467") == 0)) {
+       in_stream>>aTmp;
+       in_stream>>aTmp;
+      }
+      switch (aElType) {
+      case 7: // Nodes
+       aNum = aRec.NodeList.size();
+       aRec.NodeList.resize(aNum + 1);
+       aRec.NodeList[aNum] = aElId;
+       break;
+      case 8: // Elements
+       aNum = aRec.ElementList.size();
+       aRec.ElementList.resize(aNum + 1);
+       aRec.ElementList[aNum] = aElId;
+       break;
+      }
+    }
+    theDataSet.insert(TDataSet::value_type(aId,aRec));
+  }
+
+}
+
+
+void UNV2417::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
+{
+  if(!out_stream.good())
+    EXCEPTION(runtime_error,"ERROR: Output file not good.");
+  
+  /*
+   * Write beginning of dataset
+   */
+  out_stream<<"    -1\n";
+  out_stream<<"  "<<_label_dataset<<"\n";
+
+  TDataSet::const_iterator anIter = theDataSet.begin();
+  for(; anIter != theDataSet.end(); anIter++){
+    const TGroupId& aLabel = anIter->first;
+    const TRecord& aRec = anIter->second;
+    int aNbNodes = aRec.NodeList.size();
+    int aNbElements = aRec.ElementList.size();
+    int aNbRecords = aNbNodes + aNbElements;
+
+    out_stream<<std::setw(10)<<aLabel;  /* group ID */
+    out_stream<<std::setw(10)<<0;  
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<0;
+    out_stream<<std::setw(10)<<aNbRecords<<std::endl; 
+
+    out_stream<<aRec.GroupName<<std::endl;
+    int aRow = 0;
+    int i;
+    for (i = 0; i < aNbNodes; i++) {
+      if (aRow == 2) {
+       out_stream<<std::endl; 
+       aRow = 0;
+      }
+      out_stream<<std::setw(10)<<7;
+      out_stream<<std::setw(10)<<aRec.NodeList[i];
+      out_stream<<std::setw(10)<<0;
+      out_stream<<std::setw(10)<<0;
+      aRow++;
+    }
+    for (i = 0; i < aNbElements; i++) {
+      if (aRow == 2) {
+       out_stream<<std::endl; 
+       aRow = 0;
+      }
+      out_stream<<std::setw(10)<<8;
+      out_stream<<std::setw(10)<<aRec.ElementList[i];
+      out_stream<<std::setw(10)<<0;
+      out_stream<<std::setw(10)<<0;
+      aRow++;
+    }
+    out_stream<<std::endl; 
+  }
+
+  /*
+   * Write end of dataset
+   */
+  out_stream<<"    -1\n";
+}
diff --git a/src/DriverUNV/UNV2417_Structure.hxx b/src/DriverUNV/UNV2417_Structure.hxx
new file mode 100644 (file)
index 0000000..d5dc312
--- /dev/null
@@ -0,0 +1,49 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+
+#ifndef UNV2417_Structure_HeaderFile
+#define UNV2417_Structure_HeaderFile
+
+#include <map>
+#include <vector>
+#include <fstream>     
+#include <string>      
+
+
+namespace UNV2417{
+
+  typedef std::vector<int> TListOfId; // Nodal connectivitiesList of Id
+
+  struct TRecord{
+    std::string    GroupName;
+    TListOfId NodeList;
+    TListOfId ElementList;
+  };
+
+  typedef int TGroupId; // type of element label
+  typedef std::map<TGroupId, TRecord> TDataSet;
+
+  void Read(std::ifstream& in_stream, TDataSet& theDataSet);
+  void ReadGroup(const std::string& myGroupLabel, std::ifstream& in_stream, TDataSet& theDataSet);
+
+  void Write(std::ofstream& out_stream, const TDataSet& theDataSet);
+};
+
+
+#endif
index d1c4033578716d4b86d52a8b6fdb4b2e951f386f..2f9c33dc1e67a570ef70bc0809d9499032f385c6 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #  File   : Makefile.in
 #  Author : 
 #  Module : SMESH
index 40c09052378101f2593917d8d41e391436080b9b..46429ead71ba0df4cf1c95b986a9ecd3c0b625bc 100755 (executable)
@@ -1,6 +1,6 @@
-//  MEFISTO : library to compute 2D triangulation from segmented boundaries
+//  MEFISTO2: a library to compute 2D triangulation from segmented boundaries
 //
-//  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
+//  Copyright (C) 2006  Laboratoire J.-L. Lions UPMC Paris
 //
 //  This library is free software; you can redistribute it and/or
 //  modify it under the terms of the GNU Lesser General Public
 //
 //  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
 //
-//
-//  File   : aptrte.cxx
+//  File   : aptrte.cxx   le C++ de l'appel du trianguleur plan
 //  Module : SMESH
-//  Author: Alain PERRONNET
+//  Author : Alain PERRONNET
+//  Date   : 16 mars 2006
 
 #include "Rn.h"
 #include "aptrte.h"
@@ -63,10 +63,11 @@ void deltacpu_( R & dtcpu )
 }
 
 
-void  aptrte( Z nutysu, R aretmx,
-             Z nblf,   Z * nudslf, R2 * uvslf,
-             Z nbpti,  R2 *uvpti,
-             Z & nbst, R2 * & uvst, Z & nbt, Z * & nust,
+void  aptrte( Z   nutysu, R      aretmx,
+             Z   nblf,   Z  *   nudslf,  R2 * uvslf,
+             Z   nbpti,  R2 *   uvpti,
+             Z & nbst,   R2 * & uvst,
+             Z & nbt,    Z  * & nust,
              Z & ierr )
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 // but : appel de la triangulation par un arbre-4 recouvrant
@@ -110,9 +111,12 @@ void  aptrte( Z nutysu, R aretmx,
 // ierr   : 0 si pas d'erreur
 //        > 0 sinon
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-// auteur : Alain Perronnet  Analyse Numerique Paris UPMC   decembre 2001
+// auteur : Alain Perronnet  Laboratoire J.-L. LIONS Paris UPMC mars 2006
 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 {
+  Z  nbsttria=4; //Attention: 4 sommets stockes par triangle
+                 //no st1, st2, st3, 0 (non quadrangle)
+
   R  d, tcpu=0;
   R3 direction=R3(0,0,0);  //direction pour areteideale() inactive ici!
   Z  nbarfr=nudslf[nblf];  //nombre total d'aretes des lignes fermees
@@ -121,7 +125,7 @@ void  aptrte( Z nutysu, R aretmx,
   R3 *mnpxyd=NULL;
   Z  *mnsoar=NULL, mosoar=7, mxsoar, n1soar; //le hachage des aretes
   Z  *mnartr=NULL, moartr=3, mxartr, n1artr; //le no des 3 aretes des triangles
-  Z  *mntree=NULL, motree=9, mxtree;   //L'arbre 4 de TE et nombre d'entiers par TE
+  Z  *mntree=NULL, motree=9, mxtree; //L'arbre 4 de TE et nombre d'entiers par TE
   Z  *mnqueu=NULL, mxqueu;
   Z  *mn1arcf=NULL;
   Z  *mnarcf=NULL, mxarcf;
@@ -129,7 +133,6 @@ void  aptrte( Z nutysu, R aretmx,
   Z  *mnarcf2=NULL;
   Z  *mnarcf3=NULL;
   Z  *mntrsu=NULL;
-  Z  *mndalf=NULL;
   Z  *mnslig=NULL;
   Z  *mnarst=NULL;
   Z  *mnlftr=NULL;
@@ -142,6 +145,7 @@ void  aptrte( Z nutysu, R aretmx,
   Z  i, l, n, ns, ns0, ns1, ns2, nosotr[3], nt;
   Z  mxsomm, nbsomm, nbarpi, nbarli, ndtri0, mn;
   Z  moins1=-1;
+  R  dist;
 
   aretemaxface_ = aretmx;
 
@@ -151,19 +155,14 @@ void  aptrte( Z nutysu, R aretmx,
 
   // quelques reservations de tableaux pour faire les calculs
   // ========================================================
-  // le tableau pointeur sur la premiere arete de chaque ligne fermee
-  if( mndalf!=NULL ) delete [] mndalf;
-  mndalf = new Z[1+nblf];
-  if( mndalf==NULL ) goto ERREUR;
-  mndalf[0]=0;
-
   // declaration du tableau des coordonnees des sommets de la frontiere
   // puis des sommets internes ajoutes
   // majoration empirique du nombre de sommets de la triangulation
-  i =  4*nbarfr/10;
+  i = 4*nbarfr/10;
   mxsomm = Max( 20000, 64*nbpti+i*i );
-  MESSAGE( "APTRTE: Depart de la triangulation avec " );
+  MESSAGE( "APTRTE: Debut de la triangulation plane avec " );
   MESSAGE( "nutysu=" << nutysu << "  aretmx=" << aretmx << "  mxsomm=" << mxsomm );
+  MESSAGE( nbarfr << " sommets sur la frontiere et " << nbpti << " points internes");
 
  NEWDEPART:
   //mnpxyd( 3, mxsomm ) les coordonnees UV des sommets et la taille d'arete aux sommets
@@ -251,7 +250,7 @@ void  aptrte( Z nutysu, R aretmx,
     //pas de test sur ierr car pas de saturation possible a ce niveau
 
     //le pointeur dans le hachage sur la premiere arete de la ligne fermee n
-    mndalf[n] = noar0;
+    //mndalf[n] = noar0;
 
     //la nouvelle arete est la suivante de l'arete definie juste avant
     if( noar > 0 )
@@ -539,8 +538,11 @@ void  aptrte( Z nutysu, R aretmx,
   // mise en delaunay de la triangulation
   // =====================================================
   mnarcf3 = new Z[mxarcf];
-  if( mnarcf3 == NULL ) goto ERREUR;
-
+  if( mnarcf3 == NULL )
+  {
+    cout << "aptrte: MC saturee mnarcf3=" << mnarcf3 << endl;
+    goto ERREUR;
+  }
   teamqt_( nutysu,
           mnarst, mosoar, mxsoar, n1soar, mnsoar,
           moartr, mxartr, n1artr, mnartr,
@@ -548,11 +550,11 @@ void  aptrte( Z nutysu, R aretmx,
           mn1arcf, mnarcf, mnarcf1,
           comxmi, nbarpi, nbsomm, mxsomm, mnpxyd, mnslig,
           ierr );
+  if( mnarcf3 != NULL ) {delete [] mnarcf3; mnarcf3=NULL;}
   if( mn1arcf != NULL ) {delete [] mn1arcf; mn1arcf=NULL;}
   if( mnarcf  != NULL ) {delete [] mnarcf;  mnarcf =NULL;}
   if( mnarcf1 != NULL ) {delete [] mnarcf1; mnarcf1=NULL;}
   if( mnarcf2 != NULL ) {delete [] mnarcf2; mnarcf2=NULL;}
-  if( mnarcf3 != NULL ) {delete [] mnarcf3; mnarcf3=NULL;}
 
   deltacpu_( d );
   tcpu += d;
@@ -632,7 +634,7 @@ void  aptrte( Z nutysu, R aretmx,
   // -----------------------------------------------------
   // boucle sur les triangles occupes (internes et externes)
   if( nust != NULL ) delete [] nust;
-  nust = new Z[4*nbt];
+  nust = new Z[nbsttria*nbt];
   if( nust == NULL ) goto ERREUR;
   nbt = 0;
   for (i=1; i<=mxartr; i++)
@@ -648,13 +650,12 @@ void  aptrte( Z nutysu, R aretmx,
       nust[nbt++] = 0;
     }
   }
-  nbt /= 4;  //le nombre final de triangles de la surface
-  MESSAGE("Nombre de sommets=" << nbst
-       << "  Nombre de triangles=" << nbt);
-
+  nbt /= nbsttria;  //le nombre final de triangles de la surface
+  MESSAGE( "APTRTE: Fin de la triangulation plane avec "<<nbst<<" sommets et "
+          << nbt << " triangles=" << nbt);
   deltacpu_( d );
   tcpu += d;
-  MESSAGE( "Temps total de la triangulation=" << tcpu << " secondes" );
+  MESSAGE( "APTRTE: Temps total de la triangulation plane=" << tcpu << " secondes" );
 
   // destruction des tableaux auxiliaires
   // ------------------------------------
@@ -664,7 +665,6 @@ void  aptrte( Z nutysu, R aretmx,
   if( mnslig != NULL ) delete [] mnslig;
   if( mnsoar != NULL ) delete [] mnsoar;
   if( mnpxyd != NULL ) delete [] mnpxyd;
-  if( mndalf != NULL ) delete [] mndalf;
   if( mntree != NULL ) delete [] mntree;
   if( mnqueu != NULL ) delete [] mnqueu;
   if( mntrsu != NULL ) delete [] mntrsu;
@@ -686,7 +686,7 @@ void  aptrte( Z nutysu, R aretmx,
   }
   else
   {
-    MESSAGE( "Triangulation non realisee " << ierr );
+    MESSAGE( "APTRTE: Triangulation NON REALISEE  avec erreur=" << ierr );
     if( ierr == 0 ) ierr=1;
     goto NETTOYAGE;
   }
@@ -777,7 +777,7 @@ void qualitetrte( R3 *mnpxyd,
   quamoy /= nbtria;
   MESSAGE("Qualite moyenne=" << quamoy
        << "  Qualite minimale=" << quamin
-       << " des " << nbtria << " triangles de surface totale="
+       << " des " << nbtria << " triangles de surface plane totale="
        << aire);
 
   if( nbtrianeg>0 )
index 8e0388b88a4ed215a75519d81df0110ebfc15f57..d33d0ebb6b71893e2ee541e10364866f0a160a23 100755 (executable)
@@ -1,6 +1,6 @@
-c  MEFISTO : library to compute 2D triangulation from segmented boundaries
+c  MEFISTO2: a library to compute 2D triangulation from segmented boundaries
 c
-c  Copyright (C) 2003  Laboratoire J.-L. Lions UPMC Paris
+c  Copyright (C) 2006  Laboratoire J.-L. Lions UPMC Paris
 c
 c  This library is free software; you can redistribute it and/or
 c  modify it under the terms of the GNU Lesser General Public
@@ -16,12 +16,12 @@ c  You should have received a copy of the GNU Lesser General Public
 c  License along with this library; if not, write to the Free Software
 c  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 c
-c  See http://www.ann.jussieu.fr/~perronne or email Perronnet@ann.jussieu.fr
+c  See http://www.ann.jussieu.fr/~perronnet or email perronnet@ann.jussieu.fr
 c
-c
-c  File   : trte.f
+c  File   : trte.f    le Fortran du trianguleur plan
 c  Module : SMESH
-c  Author: Alain PERRONNET
+c  Author : Alain PERRONNET
+c  Date   : 16 mars 2006
 
       subroutine qutr2d( p1, p2, p3, qualite )
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -2640,6 +2640,8 @@ c....................................................................012
      %                  noarst(*)
       integer           lapile(1:mxpile)
       integer           nosotr(3)
+c
+      lhpile = 0
 c
 c     la premiere arete de sommet ns
       nar = noarst( ns )
@@ -2817,13 +2819,13 @@ c     les triangles de sommet ns ne forment pas une boule de centre ns
 c
 c     saturation de la pile des triangles
 c     -----------------------------------
- 9990 write(imprim,*) 'trp1st:saturation pile des triangles autour ',
+ 9990 write(imprim,*)'trp1st: saturation pile des triangles autour ',
      %'sommet',ns
       goto 9999
 c
 c     erreur triangle ne contenant pas le sommet ns
 c     ----------------------------------------------
- 9995 write(imprim,*) 'trp1st:triangle ',nta,' st=',
+ 9995 write(imprim,*) 'trp1st: triangle ',nta,' st=',
      %   (nosotr(nar),nar=1,3),' sans le sommet' ,ns
 c
  9999 lhpile = 0
@@ -2883,7 +2885,7 @@ c     le sommet nosotr(3 du triangle 123
      %                   mosoar, mxsoar, n1soar, nosoar,
      %                   moartr, mxartr, n1artr, noartr,
      %                   mxarcf, n1arcf, noarcf, larmin, notrcf, liarcf,
-     %                   nbstsu, ierr )
+     %                   ierr )
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 c but :   supprimer de la triangulation les sommets de te trop proches
 c -----   soit d'un sommet frontalier ou point interne impose
@@ -2931,7 +2933,6 @@ c liarcf : tableau ( mxarcf ) auxiliaire d'entiers
 c
 c sortie :
 c --------
-c nbstsu : nombre de sommets de te supprimes
 c ierr   : =0 si pas d'erreur
 c          >0 si une erreur est survenue
 c          11 algorithme defaillant
@@ -2958,8 +2959,8 @@ c
       equivalence      (nosotr(1),ns1), (nosotr(2),ns2),
      %                 (nosotr(3),ns3)
 c
-c     le nombre de sommets de te supprimes
-      nbstsu = 0
+cccc     le nombre de sommets de te supprimes
+ccc      nbstsu = 0
 c
 c     initialisation du chainage des aretes des cf => 0 arete de cf
       do 10 narete=1,mxsoar
@@ -2990,7 +2991,8 @@ c        recherche des triangles de sommet ns
 c        ils doivent former un contour ferme de type etoile
          call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
      %                mxarcf, nbtrcf, notrcf )
-         if( nbtrcf .le. 0 ) then
+         if( nbtrcf .eq. 0 ) goto 100
+         if( nbtrcf .lt. 0 ) then
 c           erreur: impossible de trouver tous les triangles de sommet ns
 c           seule une partie est a priori retrouvee
             nbtrcf = -nbtrcf
@@ -3050,8 +3052,9 @@ c              ==========================================
      %                      mxarcf, n1arcf, noarcf,
      %                      larmin, notrcf, liarcf, ierr )
                if( ierr .eq. 0 ) then
-c                 un sommet de te supprime de plus
-                  nbstsu = nbstsu + 1
+cccc                 un sommet de te supprime de plus
+ccc                  nbstsu = nbstsu + 1
+                  goto 100
                else if( ierr .lt. 0 ) then
 c                 le sommet nste est externe donc non supprime
 c                 ou bien le sommet nste est le centre d'un cf dont toutes
@@ -3064,18 +3067,21 @@ c                 erreur motivant un arret de la triangulation
                   return
                endif
 c
-c              boucle jusqu'a obtenir une qualite suffisante
-c              si triangulation tres irreguliere =>
-c              destruction de beaucoup de points internes
-c              les 2 variables suivantes brident ces destructions massives
+cccc              boucle jusqu'a obtenir une qualite suffisante
+cccc              si triangulation tres irreguliere =>
+cccc              destruction de beaucoup de points internes
+cccc              les 2 variables suivantes brident ces destructions massives
 ccc               nbsuns = nbsuns + 1
-               quaopt = quaopt * 0.8
-ccc               if( nbsuns .le. 5 ) goto 15
-               goto 15
+ccc               quaopt = quaopt * 0.8
+ccc               if( nbsuns .lt. 5 ) goto 15
             endif
          endif
 c
  100  continue
+c
+c      write(imprim,*)'retrait de',nbstsu,
+c     %                ' sommets de te trop proches de la frontiere'
+      return
       end
 
 
@@ -3370,7 +3376,10 @@ c                 l'arete suivante
      %                      mxtrcf, n1arcf, noarcf,
      %                      larmin, notrcf, nostbo,
      %                      ierr )
-               if( ierr .lt. 0 ) then
+               if( ierr .eq. -543 ) then
+                  ierr = 0
+                  goto 1000
+               else if( ierr .lt.    0 ) then
 c                 le sommet ns est externe donc non supprime
 c                 ou bien le sommet ns est le centre d'un cf dont toutes
 c                 les aretes simples sont frontalieres
@@ -3704,12 +3713,13 @@ c n1arcf : tableau (0:mxtrcf) auxiliaire d'entiers
 c noarcf : tableau (3,mxtrcf) auxiliaire d'entiers
 c larmin : tableau ( mxtrcf ) auxiliaire d'entiers
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc        mai 1997
+c auteur : Alain Perronnet  Laboratoire J.-L. LIONS Paris UPMC mars 2006
 c....................................................................012
       parameter        (lchain=6)
       common / unites / lecteu, imprim, nunite(30)
       double precision  pxyd(3,*)
       double precision  ponder, ponde1, xbar, ybar, x, y, d, dmin, dmax
+      double precision  surtd2
       double precision  d2d3(3,3)
       real              origin(3), xyz(3)
       integer           noartr(moartr,*),
@@ -3745,7 +3755,8 @@ c        les compteurs de passage sur les differents cas
          nbst8 = 0
 c
 c        coefficient de ponderation croissant avec les iterations
-         ponder = min( 1d0, ( 50 + (50*iter)/nbitaq ) * 0.01d0 )
+         ponder = min( 1d0, 0.1d0 + iter * 0.9d0 / nbitaq )
+ccc 9 mars 2006 ponder = min( 1d0, ( 50 + (50*iter)/nbitaq ) * 0.01d0 )
          ponde1 = 1d0 - ponder
 c
 c        l'ordre du parcours dans le sens croissant ou decroissant
@@ -3774,7 +3785,7 @@ c           recherche des triangles de sommet ns
 c           ils doivent former un contour ferme de type etoile
             call trp1st( ns, noarst, mosoar, nosoar, moartr, noartr,
      %                   mxtrcf, nbtrcf, notrcf )
-            if( nbtrcf .le. 0 ) goto 1000
+            if( nbtrcf .le. 2 ) goto 1000
 c
 c           boucle sur les triangles qui forment une boule autour du sommet ns
             nbstbo = 0
@@ -3840,9 +3851,14 @@ c           pas de modification de la topologie lors de la derniere iteration
 c           =================================================================
             if( iter .ge. nbitaq ) goto 200
 c
-c           si la boule de ns contient 3 ou 4 triangles le sommet ns est detruit
-c           ====================================================================
-            if( nbtrcf .le. 4 ) then
+c           si la boule de ns contient au plus 3 triangles
+c            =>  pas de changement de topologie
+c           ==============================================
+            if( nbtrcf .le. 3 ) goto 200
+c
+c           si la boule de ns contient 4 triangles le sommet ns est detruit
+c           ===============================================================
+            if( nbtrcf .eq. 4 ) then
 c
 c              remise a -1 du chainage des aretes peripheriques de la boule ns
                noar = noar0
@@ -3861,7 +3877,10 @@ c                 l'arete suivante
      %                      mxtrcf, n1arcf, noarcf,
      %                      larmin, notrcf, nostbo,
      %                      ierr )
-               if( ierr .lt. 0 ) then
+               if( ierr .eq. -543 ) then
+                  ierr = 0
+                  goto 1000
+               else if( ierr .lt.    0 ) then
 c                 le sommet ns est externe donc non supprime
 c                 ou bien le sommet ns est le centre d'un cf dont toutes
 c                 les aretes simples sont frontalieres
@@ -3873,6 +3892,8 @@ c                 dans les 2 cas le sommet ns n'est pas supprime
                   nbstsu = nbstsu + 1
                else
 c                 erreur irrecuperable
+                  write(imprim,*)
+     %           'teamqs: erreur1 irrecuperable en sortie te1stm'
                   goto 9999
                endif
                goto 1000
@@ -3910,6 +3931,9 @@ c                       l'arete suivante
                      endif
 c
 c                    le point ns1 devient le milieu de l'arete ns-ns1
+                     x = pxyd(1,ns1)
+                     y = pxyd(2,ns1)
+                     d = pxyd(3,ns1)
                      do 75 j=1,3
                         pxyd(j,ns1) = (pxyd(j,ns) + pxyd(j,ns1)) * 0.5d0
  75                  continue
@@ -3931,16 +3955,22 @@ c                    suppression du point ns et mise en delaunay
                      if( ierr .lt. 0 ) then
 c                       le sommet ns est externe donc non supprime
 c                       ou bien le sommet ns est le centre d'un cf dont toutes
-c                       les aretes simples sont frontalieres
-c                       dans les 2 cas le sommet ns n'est pas supprime
+c                       les aretes simples sont frontalieres ou erreur
+c                       dans les 3 cas le sommet ns n'est pas supprime
+c                       restauration du sommet ns1 a son ancienne place
+                        pxyd(1,ns1) = x
+                        pxyd(2,ns1) = y
+                        pxyd(3,ns1) = d
                         ierr = 0
-                        goto 200
+                        goto 1000
                      else if( ierr .eq. 0 ) then
                         nbstsu = nbstsu + 1
                         nbst5  = nbst5 + 1
                         goto 1000
                      else
 c                       erreur irrecuperable
+                        write(imprim,*)
+     %                 'teamqs: erreur2 irrecuperable en sortie te1stm'
                         goto 9999
                      endif
                   endif
@@ -3983,9 +4013,9 @@ c                 le numero pxyd de ses 3 sommets
 c
 c                 ajout du nouveau barycentre
                   if( nbsomm .ge. mxsomm ) then
-                     write(imprim,*) 'saturation du tableau pxyd'
+                   write(imprim,*) 'teamqs: saturation du tableau pxyd'
 c                    abandon de l'amelioration
-                     goto 1100
+                     goto 9999
                   endif
                   nbsomm = nbsomm + 1
                   do 120 i=1,3
@@ -4024,7 +4054,11 @@ c                 protection a ne pas modifier sinon erreur!
      %                         moartr, mxartr, n1artr, noartr,
      %                         noarst,
      %                         nosotr, ierr )
-                  if( ierr .ne. 0 ) goto 9999
+                  if( ierr .ne. 0 ) then
+                     write(imprim,*)
+     %              'teamqs: erreur irrecuperable en sortie tr3str'
+                     goto 9999
+                  endif
  140           continue
 c
                nbst8  = nbst8 + 1
@@ -4041,10 +4075,56 @@ c           simples de la boule du sommet ns
  200        xbar = xbar / nbstbo
             ybar = ybar / nbstbo
 c
-c           ponderation pour eviter les degenerescenses
+C DEBUT AJOUT 21/MAI/2005
+C           PONDERATION POUR EVITER LES DEGENERESCENSES AVEC PROTECTION
+C           SI UN TRIANGLE DE SOMMET NS A UNE AIRE NEGATIVE APRES BARYCENTRAGE
+C           ALORS LE SOMMET NS N'EST PAS BOUGE
+c
+c           protection des XY du point initial
+            xxx = pxyd(1,ns)
+            yyy = pxyd(2,ns)
+c
             pxyd(1,ns) = ponde1 * pxyd(1,ns) + ponder * xbar
             pxyd(2,ns) = ponde1 * pxyd(2,ns) + ponder * ybar
 c
+ccc         write(imprim,*)'teamqs 200: ns=',ns,' ancien =',xxx,yyy
+ccc         write(imprim,*)'teamqs 200: ns=',ns,' nouveau=',pxyd(1,ns),pxyd(2,ns)
+c
+            do 240 i=1,nbtrcf
+c              le numero de l'arete du triangle nt ne contenant pas le sommet ns
+               nt = notrcf(i)
+               do 220 na=1,3
+c                 le numero de l'arete na dans le tableau nosoar
+                  noar = abs( noartr(na,nt) )
+                  if( nosoar(1,noar) .ne. ns   .and.
+     %                nosoar(2,noar) .ne. ns ) then
+                     if( noartr(na,nt) .ge. 0 ) then
+                        ns2 = nosoar(1,noar)
+                        ns3 = nosoar(2,noar)
+                     else
+                        ns3 = nosoar(1,noar)
+                        ns2 = nosoar(2,noar)
+                     endif
+                     goto 225
+                  endif
+ 220           continue
+
+c              aire signee du triangle nt
+ 225           d = surtd2( pxyd(1,ns), pxyd(1,ns2), pxyd(1,ns3) )
+               if( d .le. 0d0 ) then
+ccc                  write(imprim,*),'iter=',iter,
+ccc     %            ' Barycentrage au point ns=',ns,
+ccc     %            '   XB=',pxyd(1,ns),' YB=',pxyd(2,ns),
+ccc     %            ' => triangle avec AIRE<0 => Pt REMIS en X =',xxx,
+ccc     %            ' Y =',yyy
+                  pxyd(1,ns) = xxx
+                  pxyd(2,ns) = yyy
+                  goto 1000
+               endif
+ 240        continue
+C
+C FIN AJOUT 21/MAI/2005
+c
 c           les aretes chainees de la boule sont rendues delaunay
  300        call tedela( pxyd,   noarst,
      %                   mosoar, mxsoar, n1soar, nosoar, noar0,
@@ -4052,11 +4132,9 @@ c           les aretes chainees de la boule sont rendues delaunay
 c
  1000    continue
 c
-c        trace de la triangulation actuelle et calcul de la qualite
- 1100    continue
-c
-ccc         write(imprim,11000) nbst4, nbst5, nbst8
-ccc11000 format( i7,' sommets de 4t',
+ccc         write(imprim,11000) iter, nbitaq, nbst4, nbst5, nbst8
+ccc11000 format( 'teamqs iter=',i2,' max iter=',i2,':',
+ccc     %        i7,' sommets de 4t',
 ccc     %        i7,' sommets 5t+5t',
 ccc     %        i7,' sommets >7t' )
 c
@@ -4083,7 +4161,7 @@ c
      %                   comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
      %                   ierr )
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c but :    amelioration de la qualite de la triangulation issue de teabr4
+c but :    amelioration de la qualite de la triangulation
 c -----
 c
 c entrees:
@@ -4153,10 +4231,8 @@ c     ==============================================================
      %             mosoar, mxsoar, n1soar, nosoar,
      %             moartr, mxartr, n1artr, noartr,
      %             mxarcf, n1arcf, noarcf, larmin, notrcf, nostbo,
-     %             nbstsu, ierr )
+     %             ierr )
       if( ierr .ne. 0 ) goto 9999
-c      write(imprim,*) 'retrait de',nbstsu,
-c     %                ' sommets de te trop proches de la frontiere'
 c
 c     ajustage des tailles moyennes des aretes avec ampli=1.34d0 entre
 c     ampli/2 x taille_souhaitee et ampli x taille_souhaitee 
@@ -4171,18 +4247,18 @@ c     ================================================================
      %             ierr )
       if( ierr .ne. 0 ) goto 9999
 c
-c     modification de la topologie autour des sommets frontaliers
-c     pour avoir un nombre de triangles egal a l'angle/60 degres
-c     et mise en triangulation delaunay locale
-c     ===========================================================
-      call teamsf( nutysu,
-     %             noarst, mosoar, mxsoar, n1soar, nosoar,
-     %             moartr, mxartr, n1artr, noartr,
-     %             mxarcf, notrcf, nostbo,
-     %             n1arcf, noarcf, larmin,
-     %             comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
-     %             ierr )
-      if( ierr .ne. 0 ) goto 9999
+cccc     modification de la topologie autour des sommets frontaliers
+cccc     pour avoir un nombre de triangles egal a l'angle/60 degres
+cccc     et mise en triangulation delaunay locale
+cccc     ===========================================================
+ccc      call teamsf( nutysu,
+ccc     %             noarst, mosoar, mxsoar, n1soar, nosoar,
+ccc     %             moartr, mxartr, n1artr, noartr,
+ccc     %             mxarcf, notrcf, nostbo,
+ccc     %             n1arcf, noarcf, larmin,
+ccc     %             comxmi, nbarpi, nbsomm, mxsomm, pxyd, nslign,
+ccc     %             ierr )
+ccc      if( ierr .ne. 0 ) goto 9999
 c
 c     quelques iterations de barycentrage des points internes
 c     modification de la topologie pour avoir 4 ou 5 ou 6 triangles
@@ -5540,7 +5616,7 @@ c             dans les 2 cas => retour sans modifs
 c          >0 si une erreur est survenue
 c          =11 algorithme defaillant
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
+c auteur : alain perronnet  analyse numerique paris upmc       mars 2006
 c....................................................................012
       parameter       ( lchain=6, quamal=0.3)
       common / unites / lecteu,imprim,intera,nunite(29)
@@ -5601,7 +5677,11 @@ c     forme a partir des aretes des triangles de l'etoile du sommet nsasup
      %             moartr, n1artr, noartr,
      %             nbarcf, n1arcf, noarcf,
      %             ierr )
-      if( ierr .ne. 0 ) return
+      if( ierr .ne. 0 ) then
+c        modification de ierr pour continuer le calcul
+         ierr = -543
+         return
+      endif
 c
 c     ici le sommet nsasup appartient a aucune arete
       noarst( nsasup ) = 0
@@ -5655,7 +5735,7 @@ c     mise en delaunay des aretes chainees
       call tedela( pxyd,   noarst,
      %             mosoar, mxsoar, n1soar, nosoar, liarcf(1),
      %             moartr, mxartr, n1artr, noartr, modifs )
-ccc   write(imprim,*) 'nombre echanges diagonales =',modifs
+ccc      write(imprim,*) 'nombre echanges diagonales =',modifs
       return
       end
 
@@ -7247,11 +7327,12 @@ c n1aeoc : numero dans nosoar de la premiere arete simple de l'etoile
 c
 c sortie :
 c --------
-c nbtrar : 1 si arete ajoutee, 2 si arete double supprimee
+c nbtrar : 1 si arete ajoutee, 2 si arete double supprimee, 0 si erreur
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
 c2345x7..............................................................012
       parameter        (lchain=6)
+      common / unites / lecteu, imprim, nunite(30)
       integer           nosoar(mosoar,mxsoar)
 c
 c     si    l'arete n'appartient pas aux aretes de l'etoile naetoi
 c        arete double de l'etoile. elle est supprimee du chainage
          na0 = 0
          na  = n1aeoc
+         nbpass = 0
 c        parcours des aretes chainees jusqu'a trouver l'arete noar
  10      if( na .ne. noar ) then
 c           passage a la suivante
             na0 = na
             na  = nosoar( lchain, na )
+            if( na .le. 0 ) then
+               nbtrar = 0
+               return
+            endif
+            nbpass = nbpass + 1
+            if( nbpass .gt. 128 ) then
+               write(imprim,*)'Pb dans caetoi: boucle infinie evitee'
+               nbtrar = 0
+               return
+            endif
             goto 10
          endif
 c
@@ -7353,6 +7445,7 @@ c          14 si les lignes fermees se coupent => donnees a revoir
 c          15 si une seule arete simple frontaliere
 c          16 si boucle infinie car toutes les aretes simples
 c                de la boule sont frontalieres!
+c          17 si boucle infinie dans caetoi
 c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 c auteur : alain perronnet  analyse numerique paris upmc       mars 1997
 c....................................................................012
@@ -7384,7 +7477,12 @@ c           l'arete de nosoar a traiter
             noar = abs( noartr(j,nt) )
             call caetoi( noar,   mosoar, mxsoar, n1soar, nosoar,
      %                   n1aeoc, nbtrar  )
-c           si arete simple alors suppression du numero de triangle pour cette a
+            if( nbtrar .le. 0 ) then
+               ierr = 17
+               return
+            endif
+c           si arete simple alors suppression du numero de triangle
+c           pour cette arete
             if( nbtrar .eq. 1 ) then
                if( nosoar(4,noar) .eq. nt ) then
                   nosoar(4,noar) = nosoar(5,noar)
index fc2e0476a8fa8e9adb482379f9cb36f3859aae4e..c13e8296d99d5defbee2925336d6f605af1d168b 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # -* Makefile *- 
 #
 # Author : Nadir Bouhamou (CEA)
index a3f6297d78e107735df7fc5a17a9c165ba8f287b..e0208b4d12fb91a5e301ea3de46c068723ae479a 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 3d47e38c4e42f4a66cf76ebe5a6fc61d04b9f5df..51612bf325774331c61911bf16ca335fa9eafd1c 100644 (file)
@@ -50,6 +50,8 @@ LIB_SRC = \
 
 LIB_CLIENT_IDL = SALOME_Exception.idl \
                 SALOME_GenericObj.idl \
+                SALOME_Comm.idl \
+                MED.idl \
                 SMESH_Mesh.idl \
                 SMESH_Group.idl \
                  SALOMEDS.idl \
index 7f2ee90d6cc6afe23ecb8bf4f6ce36f40c742d8a..cd2cec46e1cac83ac28a75af25876f831a1da6ff 100644 (file)
@@ -122,15 +122,15 @@ SMESH_ActorDef::SMESH_ActorDef()
   if ( mgr && mgr->booleanValue( "SMESH", "use_precision", false ) )
     myControlsPrecision = (long)SMESH::GetFloat( "SMESH", "controls_precision", -1 );
 
-  float aPointSize = SMESH::GetFloat("SMESH:node_size",3);
-  float aLineWidth = SMESH::GetFloat("SMESH:element_width",1);
+  vtkFloatingPointType aPointSize = SMESH::GetFloat("SMESH:node_size",3);
+  vtkFloatingPointType aLineWidth = SMESH::GetFloat("SMESH:element_width",1);
 
   vtkMatrix4x4 *aMatrix = vtkMatrix4x4::New();
   VTKViewer_ExtractUnstructuredGrid* aFilter = NULL;
 
   //Definition 2D and 3D divices of the actor
   //-----------------------------------------
-  float anRGB[3] = {1,1,1};
+  vtkFloatingPointType anRGB[3] = {1,1,1};
   mySurfaceProp = vtkProperty::New();
   SMESH::GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
   mySurfaceProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
@@ -748,7 +748,7 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
   my2DActor->GetMapper()->SetLookupTable(myLookupTable);
   my3DActor->GetMapper()->SetLookupTable(myLookupTable);
     
-  float aFactor, aUnits;
+  vtkFloatingPointType aFactor, aUnits;
   my2DActor->GetPolygonOffsetParameters(aFactor,aUnits);
   my2DActor->SetPolygonOffsetParameters(aFactor,aUnits*0.75);
 
@@ -782,7 +782,7 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
 }
 
 
-float* SMESH_ActorDef::GetBounds(){
+vtkFloatingPointType* SMESH_ActorDef::GetBounds(){
   return myNodeActor->GetBounds();
 }
 
@@ -847,11 +847,11 @@ void SMESH_ActorDef::SetIsShrunkable(bool theShrunkable){
   Modified();
 }
 
-float SMESH_ActorDef::GetShrinkFactor(){
+vtkFloatingPointType SMESH_ActorDef::GetShrinkFactor(){
   return myBaseActor->GetShrinkFactor();
 }
 
-void SMESH_ActorDef::SetShrinkFactor(float theValue){
+void SMESH_ActorDef::SetShrinkFactor(vtkFloatingPointType theValue){
   myBaseActor->SetShrinkFactor(theValue);
 
   my1DActor->SetShrinkFactor(theValue);
@@ -898,7 +898,7 @@ int SMESH_ActorDef::GetNodeObjId(int theVtkID){
   return myPickableActor->GetNodeObjId(theVtkID);
 }
 
-float* SMESH_ActorDef::GetNodeCoord(int theObjID){
+vtkFloatingPointType* SMESH_ActorDef::GetNodeCoord(int theObjID){
   return myPickableActor->GetNodeCoord(theObjID);
 }
 
@@ -1269,15 +1269,15 @@ void SMESH_ActorDef::ReleaseGraphicsResources(vtkWindow *renWin){
 }
 
 
-static void GetColor(vtkProperty *theProperty, float& r,float& g,float& b){
-  float* aColor = theProperty->GetColor();
+static void GetColor(vtkProperty *theProperty, vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
+  vtkFloatingPointType* aColor = theProperty->GetColor();
   r = aColor[0];
   g = aColor[1];
   b = aColor[2];
 }
 
 
-void SMESH_ActorDef::SetOpacity(float theValue){
+void SMESH_ActorDef::SetOpacity(vtkFloatingPointType theValue){
   mySurfaceProp->SetOpacity(theValue);
   myBackSurfaceProp->SetOpacity(theValue);
   myEdgeProp->SetOpacity(theValue);
@@ -1287,74 +1287,74 @@ void SMESH_ActorDef::SetOpacity(float theValue){
 }
 
 
-float SMESH_ActorDef::GetOpacity(){
+vtkFloatingPointType SMESH_ActorDef::GetOpacity(){
   return mySurfaceProp->GetOpacity();
 }
 
 
-void SMESH_ActorDef::SetSufaceColor(float r,float g,float b){
+void SMESH_ActorDef::SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
   mySurfaceProp->SetColor(r,g,b);
   Modified();
 }
 
-void SMESH_ActorDef::GetSufaceColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
   ::GetColor(mySurfaceProp,r,g,b);
 }
 
-void SMESH_ActorDef::SetBackSufaceColor(float r,float g,float b){
+void SMESH_ActorDef::SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
   myBackSurfaceProp->SetColor(r,g,b);
   Modified();
 }
 
-void SMESH_ActorDef::GetBackSufaceColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
   ::GetColor(myBackSurfaceProp,r,g,b);
 }
 
-void SMESH_ActorDef::SetEdgeColor(float r,float g,float b){
+void SMESH_ActorDef::SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){
   myEdgeProp->SetColor(r,g,b);
   my1DProp->SetColor(r,g,b);
   my1DExtProp->SetColor(1.0-r,1.0-g,1.0-b);
   Modified();
 }
 
-void SMESH_ActorDef::GetEdgeColor(float& r,float& g,float& b){
+void SMESH_ActorDef::GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){
   ::GetColor(myEdgeProp,r,g,b);
 }
 
-void SMESH_ActorDef::SetNodeColor(float r,float g,float b){ 
+void SMESH_ActorDef::SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){ 
   myNodeProp->SetColor(r,g,b);
   Modified();
 }
 
-void SMESH_ActorDef::GetNodeColor(float& r,float& g,float& b){ 
+void SMESH_ActorDef::GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){ 
   ::GetColor(myNodeProp,r,g,b);
 }
 
-void SMESH_ActorDef::SetHighlightColor(float r,float g,float b){ 
+void SMESH_ActorDef::SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){ 
   myHighlightProp->SetColor(r,g,b);
   Modified();
 }
 
-void SMESH_ActorDef::GetHighlightColor(float& r,float& g,float& b){ 
+void SMESH_ActorDef::GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){ 
   ::GetColor(myHighlightProp,r,g,b);
 }
 
-void SMESH_ActorDef::SetPreHighlightColor(float r,float g,float b){ 
+void SMESH_ActorDef::SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b){ 
   myPreselectProp->SetColor(r,g,b);
   Modified();
 }
 
-void SMESH_ActorDef::GetPreHighlightColor(float& r,float& g,float& b){ 
+void SMESH_ActorDef::GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b){ 
   ::GetColor(myPreselectProp,r,g,b);
 }
 
 
-float SMESH_ActorDef::GetLineWidth(){
+vtkFloatingPointType SMESH_ActorDef::GetLineWidth(){
   return myEdgeProp->GetLineWidth();
 }
 
 
-void SMESH_ActorDef::SetLineWidth(float theVal){
+void SMESH_ActorDef::SetLineWidth(vtkFloatingPointType theVal){
   myEdgeProp->SetLineWidth(theVal);
 
   my1DProp->SetLineWidth(theVal + aLineWidthInc);
@@ -1364,7 +1364,7 @@ void SMESH_ActorDef::SetLineWidth(float theVal){
 }
 
 
-void SMESH_ActorDef::SetNodeSize(float theVal){
+void SMESH_ActorDef::SetNodeSize(vtkFloatingPointType theVal){
   myNodeProp->SetPointSize(theVal);
   myHighlightProp->SetPointSize(theVal);
   myPreselectProp->SetPointSize(theVal);
@@ -1375,7 +1375,7 @@ void SMESH_ActorDef::SetNodeSize(float theVal){
   Modified();
 }
 
-float SMESH_ActorDef::GetNodeSize(){
+vtkFloatingPointType SMESH_ActorDef::GetNodeSize(){
   return myNodeProp->GetPointSize();
 }
 
@@ -1448,21 +1448,21 @@ GetClippingPlane(vtkIdType theID)
 
 
 static void ComputeBoundsParam(vtkDataSet* theDataSet,
-                              float theDirection[3], float theMinPnt[3],
-                              float& theMaxBoundPrj, float& theMinBoundPrj)
+                              vtkFloatingPointType theDirection[3], vtkFloatingPointType theMinPnt[3],
+                              vtkFloatingPointType& theMaxBoundPrj, vtkFloatingPointType& theMinBoundPrj)
 {
-  float aBounds[6];
+  vtkFloatingPointType aBounds[6];
   theDataSet->GetBounds(aBounds);
 
   //Enlarge bounds in order to avoid conflicts of precision
   for(int i = 0; i < 6; i += 2){
     static double EPS = 1.0E-3;
-    float aDelta = (aBounds[i+1] - aBounds[i])*EPS;
+    vtkFloatingPointType aDelta = (aBounds[i+1] - aBounds[i])*EPS;
     aBounds[i] -= aDelta;
     aBounds[i+1] += aDelta;
   }
 
-  float aBoundPoints[8][3] = { {aBounds[0],aBounds[2],aBounds[4]},
+  vtkFloatingPointType aBoundPoints[8][3] = { {aBounds[0],aBounds[2],aBounds[4]},
                               {aBounds[1],aBounds[2],aBounds[4]},
                               {aBounds[0],aBounds[3],aBounds[4]},
                               {aBounds[1],aBounds[3],aBounds[4]},
@@ -1475,7 +1475,7 @@ static void ComputeBoundsParam(vtkDataSet* theDataSet,
   theMaxBoundPrj = vtkMath::Dot(theDirection,aBoundPoints[aMaxId]);
   theMinBoundPrj = theMaxBoundPrj;
   for(int i = 1; i < 8; i++){
-    float aTmp = vtkMath::Dot(theDirection,aBoundPoints[i]);
+    vtkFloatingPointType aTmp = vtkMath::Dot(theDirection,aBoundPoints[i]);
     if(theMaxBoundPrj < aTmp){
       theMaxBoundPrj = aTmp;
       aMaxId = i;
@@ -1485,7 +1485,7 @@ static void ComputeBoundsParam(vtkDataSet* theDataSet,
       aMinId = i;
     }
   }
-  float *aMinPnt = aBoundPoints[aMaxId];
+  vtkFloatingPointType *aMinPnt = aBoundPoints[aMaxId];
   theMinPnt[0] = aMinPnt[0];
   theMinPnt[1] = aMinPnt[1];
   theMinPnt[2] = aMinPnt[2];
@@ -1493,11 +1493,11 @@ static void ComputeBoundsParam(vtkDataSet* theDataSet,
 
 
 static void DistanceToPosition(vtkDataSet* theDataSet,
-                              float theDirection[3], float theDist, float thePos[3])
+                              vtkFloatingPointType theDirection[3], vtkFloatingPointType theDist, vtkFloatingPointType thePos[3])
 {
-  float aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
+  vtkFloatingPointType aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
   ComputeBoundsParam(theDataSet,theDirection,aMinPnt,aMaxBoundPrj,aMinBoundPrj);
-  float aLength = (aMaxBoundPrj-aMinBoundPrj)*theDist;
+  vtkFloatingPointType aLength = (aMaxBoundPrj-aMinBoundPrj)*theDist;
   thePos[0] = aMinPnt[0]-theDirection[0]*aLength;
   thePos[1] = aMinPnt[1]-theDirection[1]*aLength;
   thePos[2] = aMinPnt[2]-theDirection[2]*aLength;
@@ -1505,29 +1505,29 @@ static void DistanceToPosition(vtkDataSet* theDataSet,
 
 
 static void PositionToDistance(vtkDataSet* theDataSet, 
-                              float theDirection[3], float thePos[3], float& theDist)
+                              vtkFloatingPointType theDirection[3], vtkFloatingPointType thePos[3], vtkFloatingPointType& theDist)
 {
-  float aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
+  vtkFloatingPointType aMaxBoundPrj, aMinBoundPrj, aMinPnt[3];
   ComputeBoundsParam(theDataSet,theDirection,aMinPnt,aMaxBoundPrj,aMinBoundPrj);
-  float aPrj = vtkMath::Dot(theDirection,thePos);
+  vtkFloatingPointType aPrj = vtkMath::Dot(theDirection,thePos);
   theDist = (aPrj-aMinBoundPrj)/(aMaxBoundPrj-aMinBoundPrj);
 }
 
 
-void SMESH_ActorDef::SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane)
+void SMESH_ActorDef::SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane)
 {
   thePlane->SetNormal(theDir);
-  float anOrigin[3];
+  vtkFloatingPointType anOrigin[3];
   ::DistanceToPosition(GetUnstructuredGrid(),theDir,theDist,anOrigin);
   thePlane->SetOrigin(anOrigin);
 }
 
 
-void SMESH_ActorDef::GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane)
+void SMESH_ActorDef::GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& theDist, vtkPlane* thePlane)
 {
   thePlane->GetNormal(theDir);
 
-  float anOrigin[3];
+  vtkFloatingPointType anOrigin[3];
   thePlane->GetOrigin(anOrigin);
   ::PositionToDistance(GetUnstructuredGrid(),theDir,anOrigin,theDist);
 }
@@ -1617,21 +1617,21 @@ void SMESH_ActorDef::UpdateScalarBar()
     myScalarBarActor->SetOrientationToVertical();
 
 
-  float aXVal = horiz ? 0.20 : 0.01;
+  vtkFloatingPointType aXVal = horiz ? 0.20 : 0.01;
   if( mgr->hasValue( "SMESH", name + "x" ) )
     aXVal = mgr->doubleValue( "SMESH", name + "x", aXVal );
 
-  float aYVal = horiz ? 0.01 : 0.1;
+  vtkFloatingPointType aYVal = horiz ? 0.01 : 0.1;
   if( mgr->hasValue( "SMESH", name + "y" ) )
     aYVal = mgr->doubleValue( "SMESH", name + "y", aYVal );
   myScalarBarActor->SetPosition( aXVal, aYVal );
 
-  float aWVal = horiz ? 0.60 : 0.10;
+  vtkFloatingPointType aWVal = horiz ? 0.60 : 0.10;
   if( mgr->hasValue( "SMESH", name + "width" ) )
     aWVal = mgr->doubleValue( "SMESH", name + "width", aWVal );
   myScalarBarActor->SetWidth( aWVal );
 
-  float aHVal = horiz ? 0.12 : 0.80;
+  vtkFloatingPointType aHVal = horiz ? 0.12 : 0.80;
   if( mgr->hasValue( "SMESH", name + "height" ) )
     aHVal = mgr->doubleValue( "SMESH", name + "height", aHVal );
   myScalarBarActor->SetHeight( aHVal );
index 7319914d769aaee7a8399cf07de68977a1be54f5..977e1bdc0512e11c6206db1cde638d6d16ecde74 100644 (file)
@@ -50,29 +50,29 @@ class SMESH_Actor: public SALOME_Actor
                          const char* theName,
                          int theIsClear);
   
-  virtual void SetSufaceColor(float r,float g,float b) = 0;
-  virtual void GetSufaceColor(float& r,float& g,float& b) = 0;
+  virtual void SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+  virtual void GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
   
-  virtual void SetBackSufaceColor(float r,float g,float b) = 0;
-  virtual void GetBackSufaceColor(float& r,float& g,float& b) = 0;
+  virtual void SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+  virtual void GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
   
-  virtual void SetEdgeColor(float r,float g,float b) = 0;
-  virtual void GetEdgeColor(float& r,float& g,float& b) = 0;
+  virtual void SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+  virtual void GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
 
-  virtual void SetNodeColor(float r,float g,float b) = 0;
-  virtual void GetNodeColor(float& r,float& g,float& b) = 0;
+  virtual void SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+  virtual void GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
 
-  virtual void SetHighlightColor(float r,float g,float b) = 0;
-  virtual void GetHighlightColor(float& r,float& g,float& b) = 0;
+  virtual void SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+  virtual void GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
 
-  virtual void SetPreHighlightColor(float r,float g,float b) = 0;
-  virtual void GetPreHighlightColor(float& r,float& g,float& b) = 0;
+  virtual void SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) = 0;
+  virtual void GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) = 0;
  
-  virtual float GetLineWidth() = 0;
-  virtual void SetLineWidth(float theVal) = 0;
+  virtual vtkFloatingPointType GetLineWidth() = 0;
+  virtual void SetLineWidth(vtkFloatingPointType theVal) = 0;
 
-  virtual void SetNodeSize(float size) = 0;
-  virtual float GetNodeSize() = 0;
+  virtual void SetNodeSize(vtkFloatingPointType size) = 0;
+  virtual vtkFloatingPointType GetNodeSize() = 0;
 
   enum EReperesent { ePoint, eEdge, eSurface};
   
@@ -85,7 +85,7 @@ class SMESH_Actor: public SALOME_Actor
 
   virtual vtkUnstructuredGrid* GetUnstructuredGrid() = 0;
 
-  virtual void SetShrinkFactor(float theValue) = 0;
+  virtual void SetShrinkFactor(vtkFloatingPointType theValue) = 0;
 
   virtual void SetPointsLabeled(bool theIsPointsLabeled) = 0;
   virtual bool GetPointsLabeled() = 0;
@@ -101,8 +101,8 @@ class SMESH_Actor: public SALOME_Actor
 
   virtual vtkScalarBarActor* GetScalarBarActor() = 0;
 
-  virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane) = 0;
-  virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane) = 0;
+  virtual void SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane) = 0;
+  virtual void GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& theDist, vtkPlane* thePlane) = 0;
 
   virtual void RemoveAllClippingPlanes() = 0; 
   virtual vtkIdType GetNumberOfClippingPlanes() = 0; 
index 7ed5149f19300ff2563524eb0707a100b199c3f0..c23f977281e6e8600971dc7136046a2dd5799c95 100644 (file)
@@ -79,7 +79,8 @@ class vtkTimeStamp;
 class SMESH_DeviceActor;
 
 
-class SMESH_ActorDef : public SMESH_Actor{
+class SMESH_ActorDef : public SMESH_Actor
+{
   friend class SMESH_VisualObj;
   friend class SMESH_Actor;
 
@@ -100,35 +101,35 @@ class SMESH_ActorDef : public SMESH_Actor{
 
   virtual bool IsInfinitive();  
 
-  virtual void SetOpacity(float theValue);
-  virtual float GetOpacity();
+  virtual void SetOpacity(vtkFloatingPointType theValue);
+  virtual vtkFloatingPointType GetOpacity();
 
-  virtual void SetSufaceColor(float r,float g,float b);
-  virtual void GetSufaceColor(float& r,float& g,float& b);
+  virtual void SetSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+  virtual void GetSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
 
-  virtual void SetBackSufaceColor(float r,float g,float b);
-  virtual void GetBackSufaceColor(float& r,float& g,float& b);
+  virtual void SetBackSufaceColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+  virtual void GetBackSufaceColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
 
-  virtual void SetEdgeColor(float r,float g,float b);
-  virtual void GetEdgeColor(float& r,float& g,float& b);
+  virtual void SetEdgeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+  virtual void GetEdgeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
 
-  virtual void SetNodeColor(float r,float g,float b);
-  virtual void GetNodeColor(float& r,float& g,float& b);
+  virtual void SetNodeColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+  virtual void GetNodeColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
 
-  virtual void SetHighlightColor(float r,float g,float b);
-  virtual void GetHighlightColor(float& r,float& g,float& b);
+  virtual void SetHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+  virtual void GetHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
 
-  virtual void SetPreHighlightColor(float r,float g,float b);
-  virtual void GetPreHighlightColor(float& r,float& g,float& b);
+  virtual void SetPreHighlightColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
+  virtual void GetPreHighlightColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
  
-  virtual float GetLineWidth();
-  virtual void SetLineWidth(float theVal);
+  virtual vtkFloatingPointType GetLineWidth();
+  virtual void SetLineWidth(vtkFloatingPointType theVal);
 
-  virtual void SetNodeSize(float size) ;
-  virtual float GetNodeSize() ;
+  virtual void SetNodeSize(vtkFloatingPointType size) ;
+  virtual vtkFloatingPointType GetNodeSize() ;
 
   virtual int GetNodeObjId(int theVtkID);
-  virtual float* GetNodeCoord(int theObjID);
+  virtual vtkFloatingPointType* GetNodeCoord(int theObjID);
 
   virtual int GetElemObjId(int theVtkID);
   virtual vtkCell* GetElemCell(int theObjID);
@@ -146,15 +147,15 @@ class SMESH_ActorDef : public SMESH_Actor{
   virtual void SetPointRepresentation(bool theIsPointsVisible);
   virtual bool GetPointRepresentation();
 
-  virtual float* GetBounds();
+  virtual vtkFloatingPointType* GetBounds();
   virtual void SetTransform(VTKViewer_Transform* theTransform); 
 
   virtual vtkUnstructuredGrid* GetUnstructuredGrid();
   virtual vtkDataSet* GetInput();
   virtual vtkMapper* GetMapper();
 
-  virtual float GetShrinkFactor();
-  virtual void SetShrinkFactor(float theValue);
+  virtual vtkFloatingPointType GetShrinkFactor();
+  virtual void SetShrinkFactor(vtkFloatingPointType theValue);
 
   virtual bool IsShrunkable() { return myIsShrinkable;}
   virtual bool IsShrunk() { return myIsShrunk;}
@@ -172,8 +173,8 @@ class SMESH_ActorDef : public SMESH_Actor{
 
   virtual vtkScalarBarActor* GetScalarBarActor(){ return myScalarBarActor;}
 
-  virtual void SetPlaneParam(float theDir[3], float theDist, vtkPlane* thePlane);
-  virtual void GetPlaneParam(float theDir[3], float& theDist, vtkPlane* thePlane);
+  virtual void SetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType theDist, vtkPlane* thePlane);
+  virtual void GetPlaneParam(vtkFloatingPointType theDir[3], vtkFloatingPointType& theDist, vtkPlane* thePlane);
 
   virtual void RemoveAllClippingPlanes();
   virtual vtkIdType GetNumberOfClippingPlanes();
index feee143db948dd0510aa8ec57b3d4ee291f974a1..127f25a9eb267db0730a41fe40dd28a2a59a69d0 100644 (file)
@@ -35,12 +35,15 @@ static int MYDEBUG = 1;
 static int MYDEBUG = 0;
 #endif
 
-namespace SMESH{
+namespace SMESH
+{
 
-  float GetFloat( const QString& theValue, float theDefault )
+  vtkFloatingPointType
+  GetFloat( const QString& theValue, 
+           vtkFloatingPointType theDefault )
   {
     int pos = theValue.find( ":" );
-    float val = theDefault;
+    vtkFloatingPointType val = theDefault;
     if( pos>=0 ) 
     {
       QString name = theValue.right( theValue.length()-pos-1 ),
@@ -51,17 +54,23 @@ namespace SMESH{
     return val;
   }
 
-  float GetFloat( const QString& theValue, const QString& theSection, float theDefault )
+  vtkFloatingPointType
+  GetFloat( const QString& theValue, 
+           const QString& theSection, 
+           vtkFloatingPointType theDefault )
   {
-    float val = theDefault;
+    vtkFloatingPointType val = theDefault;
     SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
     if( mgr )
-      val = (float) mgr->doubleValue( theValue, theSection, theDefault );
+      val = (vtkFloatingPointType) mgr->doubleValue( theValue, theSection, theDefault );
 
     return val;
   }
 
-  void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName){
+  void
+  WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, 
+                       const char* theFileName)
+  {
     vtkUnstructuredGridWriter* aWriter = vtkUnstructuredGridWriter::New();
     aWriter->SetFileName(theFileName);
     aWriter->SetInput(theGrid);
@@ -71,7 +80,10 @@ namespace SMESH{
     aWriter->Delete();
   }
 
-  QColor GetColor( const QString& theSect, const QString& theName, const QColor& def )
+  QColor
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           const QColor& def )
   {
     QColor c = def;
     SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
@@ -80,7 +92,13 @@ namespace SMESH{
     return c;
   }
 
-  void GetColor( const QString& theSect, const QString& theName, int& r, int& g, int& b, const QColor& def )
+  void
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           int& r, 
+           int& g, 
+           int& b, 
+           const QColor& def )
   {
     QColor c = def;
     SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
@@ -90,7 +108,13 @@ namespace SMESH{
     SUIT_Tools::rgbSet( SUIT_Tools::rgbSet( c ), r, g, b );
   }
 
-  void GetColor( const QString& theSect, const QString& theName, float& r, float& g, float& b, const QColor& def )
+  void
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           vtkFloatingPointType& r, 
+           vtkFloatingPointType& g, 
+           vtkFloatingPointType& b, 
+           const QColor& def )
   {
     int ir( 0 ), ig( 0 ), ib( 0 );
     GetColor( theSect, theName, ir, ig, ib, def );
index f28e8d6c9ae5568fae70b246c3b4df9b1ec89c57..19ed7e282ee960085f83c09525706cc1e77a727e 100644 (file)
 #include <qcolor.h>
 #include <qstring.h>
 
+#include "VTKViewer.h"
+
 class vtkUnstructuredGrid;
 
-namespace SMESH{
+namespace SMESH
+{
   
-  float GetFloat( const QString& theValue, float theDefault = 0 );
-  float GetFloat( const QString& theName, const QString& theSection, float theDefault = 0 );
+  vtkFloatingPointType 
+  GetFloat( const QString& theValue, 
+           vtkFloatingPointType theDefault = 0 );
+
+  vtkFloatingPointType 
+  GetFloat( const QString& theName, 
+           const QString& theSection, 
+           vtkFloatingPointType theDefault = 0 );
+
+  QColor 
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           const QColor&t = QColor() );
+
+  void
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           int&, 
+           int&, 
+           int&, 
+           const QColor&t = QColor() );
 
-  QColor GetColor( const QString& theSect, const QString& theName, const QColor&t = QColor() );
-  void   GetColor( const QString& theSect, const QString& theName, int&, int&, int&, const QColor&t = QColor() );
-  void   GetColor( const QString& theSect, const QString& theName, float&, float&, float&, const QColor&t = QColor() );
+  void
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           vtkFloatingPointType&, 
+           vtkFloatingPointType&, 
+           vtkFloatingPointType&, 
+           const QColor&t = QColor() );
 
-  void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName);
+  void 
+  WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, 
+                       const char* theFileName);
 
 }
 
index 28670e6bef7302f017887740615bed1380d270df..bf094ba9b9910361ebe7ca9cf5b5364ebb21d37b 100644 (file)
@@ -31,6 +31,7 @@
 #include "SMESH_ExtractGeometry.h"
 #include "SMESH_ControlsDef.hxx"
 #include "SMESH_ActorUtils.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 #include <VTKViewer_Transform.h>
 #include <VTKViewer_TransformFilter.h>
@@ -55,7 +56,6 @@
 
 #include <vtkCell.h>
 #include <vtkIdList.h>
-#include <vtkIntArray.h>
 #include <vtkCellArray.h>
 #include <vtkUnsignedCharArray.h>
 
@@ -75,7 +75,8 @@ using namespace std;
 vtkStandardNewMacro(SMESH_DeviceActor);
 
 
-SMESH_DeviceActor::SMESH_DeviceActor()
+SMESH_DeviceActor
+::SMESH_DeviceActor()
 {
   if(MYDEBUG) MESSAGE("SMESH_DeviceActor - "<<this);
 
@@ -113,7 +114,9 @@ SMESH_DeviceActor::SMESH_DeviceActor()
 }
 
 
-SMESH_DeviceActor::~SMESH_DeviceActor(){
+SMESH_DeviceActor
+::~SMESH_DeviceActor()
+{
   if(MYDEBUG) MESSAGE("~SMESH_DeviceActor - "<<this);
 
   myProperty->Delete();
@@ -139,8 +142,8 @@ SMESH_DeviceActor::~SMESH_DeviceActor(){
 
 
 void
-SMESH_DeviceActor::
-SetStoreGemetryMapping(bool theStoreMapping)
+SMESH_DeviceActor
+::SetStoreGemetryMapping(bool theStoreMapping)
 {
   myGeomFilter->SetStoreMapping(theStoreMapping);
   SetStoreClippingMapping(theStoreMapping);
@@ -148,8 +151,8 @@ SetStoreGemetryMapping(bool theStoreMapping)
 
 
 void
-SMESH_DeviceActor::
-SetStoreClippingMapping(bool theStoreMapping)
+SMESH_DeviceActor
+::SetStoreClippingMapping(bool theStoreMapping)
 {
   myStoreClippingMapping = theStoreMapping;
   myExtractGeometry->SetStoreMapping(theStoreMapping && myIsImplicitFunctionUsed);
@@ -158,15 +161,17 @@ SetStoreClippingMapping(bool theStoreMapping)
 
 
 void
-SMESH_DeviceActor::
-SetStoreIDMapping(bool theStoreMapping)
+SMESH_DeviceActor
+::SetStoreIDMapping(bool theStoreMapping)
 {
   myExtractUnstructuredGrid->SetStoreMapping(theStoreMapping);
 }
 
 
-void SMESH_DeviceActor::Init(TVisualObjPtr theVisualObj, 
-                            vtkImplicitBoolean* theImplicitBoolean)
+void 
+SMESH_DeviceActor
+::Init(TVisualObjPtr theVisualObj, 
+       vtkImplicitBoolean* theImplicitBoolean)
 {
   myVisualObj = theVisualObj;
   myExtractGeometry->SetImplicitFunction(theImplicitBoolean);
@@ -175,8 +180,8 @@ void SMESH_DeviceActor::Init(TVisualObjPtr theVisualObj,
 
 
 void
-SMESH_DeviceActor::
-SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
+SMESH_DeviceActor
+::SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
 {
   int anId = 0;
   if(theIsImplicitFunctionUsed)
@@ -189,7 +194,10 @@ SetImplicitFunctionUsed(bool theIsImplicitFunctionUsed)
 }
 
 
-void SMESH_DeviceActor::SetUnstructuredGrid(vtkUnstructuredGrid* theGrid){
+void
+SMESH_DeviceActor
+::SetUnstructuredGrid(vtkUnstructuredGrid* theGrid)
+{
   if(theGrid){
     //myIsShrinkable = theGrid->GetNumberOfCells() > 10;
     myIsShrinkable = true;
@@ -231,20 +239,28 @@ void SMESH_DeviceActor::SetUnstructuredGrid(vtkUnstructuredGrid* theGrid){
 }
 
 
-VTKViewer_ExtractUnstructuredGrid* SMESH_DeviceActor::GetExtractUnstructuredGrid(){
+VTKViewer_ExtractUnstructuredGrid* 
+SMESH_DeviceActor
+::GetExtractUnstructuredGrid()
+{
   return myExtractUnstructuredGrid;
 }
 
 
-vtkUnstructuredGrid* SMESH_DeviceActor::GetUnstructuredGrid(){
+vtkUnstructuredGrid* 
+SMESH_DeviceActor
+::GetUnstructuredGrid()
+{
   myExtractUnstructuredGrid->Update();
   return myExtractUnstructuredGrid->GetOutput();
 }
 
 
-void SMESH_DeviceActor::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
-                                      vtkScalarBarActor* theScalarBarActor,
-                                      vtkLookupTable* theLookupTable)
+void
+SMESH_DeviceActor
+::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
+                vtkScalarBarActor* theScalarBarActor,
+                vtkLookupTable* theLookupTable)
 {
   bool anIsInitialized = theFunctor;
   if(anIsInitialized){
@@ -284,6 +300,7 @@ void SMESH_DeviceActor::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
     aScalars->Delete();
        
     theLookupTable->SetRange(aScalars->GetRange());
+    theLookupTable->SetNumberOfTableValues(theScalarBarActor->GetMaximumNumberOfColors());
     theLookupTable->Build();
     
     myMergeFilter->SetScalars(aDataSet);
@@ -293,9 +310,11 @@ void SMESH_DeviceActor::SetControlMode(SMESH::Controls::FunctorPtr theFunctor,
   theScalarBarActor->SetVisibility(anIsInitialized);
 }
 
-void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor,
-                                         vtkScalarBarActor* theScalarBarActor,
-                                         vtkLookupTable* theLookupTable)
+void
+SMESH_DeviceActor
+::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor,
+                   vtkScalarBarActor* theScalarBarActor,
+                   vtkLookupTable* theLookupTable)
 {
   bool anIsInitialized = theFunctor;
   myExtractUnstructuredGrid->ClearRegisteredCells();
@@ -347,7 +366,7 @@ void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor
        }
       }
       
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+      VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
       aCellLocationsArray->SetNumberOfComponents( 1 );
       aCellLocationsArray->SetNumberOfTuples( aNbCells );
       
@@ -407,7 +426,7 @@ void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor
        }
       }
       
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+      VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
       aCellLocationsArray->SetNumberOfComponents( 1 );
       aCellLocationsArray->SetNumberOfTuples( aNbCells );
       
@@ -432,7 +451,9 @@ void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor
   theScalarBarActor->SetVisibility(anIsInitialized);
 }
 
-void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor)
+void
+SMESH_DeviceActor
+::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor)
 {
   myExtractUnstructuredGrid->ClearRegisteredCells();
   myExtractUnstructuredGrid->ClearRegisteredCellsWithType();
@@ -487,7 +508,7 @@ void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor
       }
     }
     
-    vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+    VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
     aCellLocationsArray->SetNumberOfComponents( 1 );
     aCellLocationsArray->SetNumberOfTuples( aNbCells );
     
@@ -505,7 +526,10 @@ void SMESH_DeviceActor::SetExtControlMode(SMESH::Controls::FunctorPtr theFunctor
 
 
 
-unsigned long int SMESH_DeviceActor::GetMTime(){
+unsigned long int 
+SMESH_DeviceActor
+::GetMTime()
+{
   unsigned long mTime = this->Superclass::GetMTime();
   mTime = max(mTime,myExtractGeometry->GetMTime());
   mTime = max(mTime,myExtractUnstructuredGrid->GetMTime());
@@ -516,12 +540,18 @@ unsigned long int SMESH_DeviceActor::GetMTime(){
 }
 
 
-void SMESH_DeviceActor::SetTransform(VTKViewer_Transform* theTransform){
+void
+SMESH_DeviceActor
+::SetTransform(VTKViewer_Transform* theTransform)
+{
   myTransformFilter->SetTransform(theTransform);
 }
 
 
-void SMESH_DeviceActor::SetShrink() {
+void
+SMESH_DeviceActor
+::SetShrink() 
+{
   if ( !myIsShrinkable ) return;
   if ( vtkDataSet* aDataSet = myPassFilter[ 0 ]->GetOutput() )
   {
@@ -531,7 +561,10 @@ void SMESH_DeviceActor::SetShrink() {
   }
 }
 
-void SMESH_DeviceActor::UnShrink() {
+void
+SMESH_DeviceActor
+::UnShrink() 
+{
   if ( !myIsShrunk ) return;
   if ( vtkDataSet* aDataSet = myPassFilter[ 0 ]->GetOutput() )
   {    
@@ -543,7 +576,10 @@ void SMESH_DeviceActor::UnShrink() {
 }
 
 
-void SMESH_DeviceActor::SetRepresentation(EReperesent theMode){
+void
+SMESH_DeviceActor
+::SetRepresentation(EReperesent theMode)
+{
   switch(theMode){
   case ePoint:
     myGeomFilter->SetInside(true);
@@ -572,7 +608,10 @@ void SMESH_DeviceActor::SetRepresentation(EReperesent theMode){
 }
 
 
-void SMESH_DeviceActor::SetVisibility(int theMode){
+void
+SMESH_DeviceActor
+::SetVisibility(int theMode)
+{
   if(!myExtractUnstructuredGrid->GetInput() || 
      GetUnstructuredGrid()->GetNumberOfCells())
   {
@@ -583,7 +622,10 @@ void SMESH_DeviceActor::SetVisibility(int theMode){
 }
 
 
-int SMESH_DeviceActor::GetVisibility(){
+int
+SMESH_DeviceActor
+::GetVisibility()
+{
   if(!GetUnstructuredGrid()->GetNumberOfCells()){
     vtkLODActor::SetVisibility(false);
   }
@@ -591,7 +633,10 @@ int SMESH_DeviceActor::GetVisibility(){
 }
 
 
-int SMESH_DeviceActor::GetNodeObjId(int theVtkID){
+int
+SMESH_DeviceActor
+::GetNodeObjId(int theVtkID)
+{
   vtkIdType anID = theVtkID;
 
   if(IsImplicitFunctionUsed())
@@ -602,16 +647,22 @@ int SMESH_DeviceActor::GetNodeObjId(int theVtkID){
   return aRetID;
 }
 
-float* SMESH_DeviceActor::GetNodeCoord(int theObjID){
+vtkFloatingPointType* 
+SMESH_DeviceActor
+::GetNodeCoord(int theObjID)
+{
   vtkDataSet* aDataSet = myMergeFilter->GetOutput();
   vtkIdType anID = myVisualObj->GetNodeVTKId(theObjID);
-  float* aCoord = aDataSet->GetPoint(anID);
+  vtkFloatingPointType* aCoord = aDataSet->GetPoint(anID);
   if(MYDEBUG) MESSAGE("GetNodeCoord - theObjID = "<<theObjID<<"; anID = "<<anID);
   return aCoord;
 }
 
 
-int SMESH_DeviceActor::GetElemObjId(int theVtkID){
+int
+SMESH_DeviceActor
+::GetElemObjId(int theVtkID)
+{
   vtkIdType anId = myGeomFilter->GetElemObjId(theVtkID);
   if(anId < 0) 
     return -1;
@@ -632,7 +683,10 @@ int SMESH_DeviceActor::GetElemObjId(int theVtkID){
   return aRetID;
 }
 
-vtkCell* SMESH_DeviceActor::GetElemCell(int theObjID){
+vtkCell* 
+SMESH_DeviceActor
+::GetElemCell(int theObjID)
+{
   vtkDataSet* aDataSet = myVisualObj->GetUnstructuredGrid();
   vtkIdType aGridID = myVisualObj->GetElemVTKId(theObjID);
   vtkCell* aCell = aDataSet->GetCell(aGridID);
@@ -642,33 +696,45 @@ vtkCell* SMESH_DeviceActor::GetElemCell(int theObjID){
 }
 
 
-float SMESH_DeviceActor::GetShrinkFactor(){
+vtkFloatingPointType 
+SMESH_DeviceActor
+::GetShrinkFactor()
+{
   return myShrinkFilter->GetShrinkFactor();
 }
 
-void SMESH_DeviceActor::SetShrinkFactor(float theValue){
+void
+SMESH_DeviceActor
+::SetShrinkFactor(vtkFloatingPointType theValue)
+{
   theValue = theValue > 0.1? theValue: 0.8;
   myShrinkFilter->SetShrinkFactor(theValue);
   Modified();
 }
 
 
-void SMESH_DeviceActor::SetHighlited(bool theIsHighlited){
+void
+SMESH_DeviceActor
+::SetHighlited(bool theIsHighlited)
+{
   if ( myIsHighlited == theIsHighlited )
     return;
   myIsHighlited = theIsHighlited;
   Modified();
 }
 
-void SMESH_DeviceActor::Render(vtkRenderer *ren, vtkMapper* m){
+void
+SMESH_DeviceActor
+::Render(vtkRenderer *ren, vtkMapper* m)
+{
   int aResolveCoincidentTopology = vtkMapper::GetResolveCoincidentTopology();
-  float aStoredFactor, aStoredUnit; 
+  vtkFloatingPointType aStoredFactor, aStoredUnit; 
   vtkMapper::GetResolveCoincidentTopologyPolygonOffsetParameters(aStoredFactor,aStoredUnit);
 
   vtkMapper::SetResolveCoincidentTopologyToPolygonOffset();
-  float aFactor = myPolygonOffsetFactor, aUnits = myPolygonOffsetUnits;
+  vtkFloatingPointType aFactor = myPolygonOffsetFactor, aUnits = myPolygonOffsetUnits;
   if(myIsHighlited){
-    static float EPS = .01;
+    static vtkFloatingPointType EPS = .01;
     aUnits *= (1.0-EPS);
   }
   vtkMapper::SetResolveCoincidentTopologyPolygonOffsetParameters(aFactor,aUnits);
@@ -679,7 +745,11 @@ void SMESH_DeviceActor::Render(vtkRenderer *ren, vtkMapper* m){
 }
 
 
-void SMESH_DeviceActor::SetPolygonOffsetParameters(float factor, float units){
+void
+SMESH_DeviceActor
+::SetPolygonOffsetParameters(vtkFloatingPointType factor, 
+                            vtkFloatingPointType units)
+{
   myPolygonOffsetFactor = factor;
   myPolygonOffsetUnits = units;
 }
index 88da39f94b4a9ab9ce5ee42b917ea98df39457f3..8c5b108809623bdeb6351e6e5a76ee5230712289 100644 (file)
@@ -66,7 +66,7 @@ class SMESH_DeviceActor: public vtkLODActor{
   void SetStoreIDMapping(bool theStoreMapping);
 
   virtual int GetNodeObjId(int theVtkID);
-  virtual float* GetNodeCoord(int theObjID);
+  virtual vtkFloatingPointType* GetNodeCoord(int theObjID);
 
   virtual int GetElemObjId(int theVtkID);
   virtual vtkCell* GetElemCell(int theObjID);
@@ -74,8 +74,8 @@ class SMESH_DeviceActor: public vtkLODActor{
   virtual void SetTransform(VTKViewer_Transform* theTransform); 
   virtual unsigned long int GetMTime();
 
-  float GetShrinkFactor();
-  void  SetShrinkFactor(float value);
+  vtkFloatingPointType GetShrinkFactor();
+  void  SetShrinkFactor(vtkFloatingPointType value);
 
   bool IsShrunkable() { return myIsShrinkable;}
   bool IsShrunk() { return myIsShrunk;}
@@ -135,11 +135,17 @@ class SMESH_DeviceActor: public vtkLODActor{
   
   bool myIsHighlited;
 
-  float myPolygonOffsetFactor;
-  float myPolygonOffsetUnits;
+  vtkFloatingPointType myPolygonOffsetFactor;
+  vtkFloatingPointType myPolygonOffsetUnits;
 
-  void SetPolygonOffsetParameters(float factor, float units);
-  void GetPolygonOffsetParameters(float& factor, float& units){
+  void
+  SetPolygonOffsetParameters(vtkFloatingPointType factor, 
+                            vtkFloatingPointType units);
+
+  void
+  GetPolygonOffsetParameters(vtkFloatingPointType& factor, 
+                            vtkFloatingPointType& units)
+  {
     factor = myPolygonOffsetFactor;
     units = myPolygonOffsetUnits;
   }
index 84812a142956efa7e6aa2a66d8b87a6fa2a1d559..c7f59df94c43b71f33990db2e9d9e232d089656a 100644 (file)
 
 #include "SMESH_ExtractGeometry.h"
 
-#include "vtkCell.h"
-#include "vtkCellData.h"
-#include "vtkFloatArray.h"
-#include "vtkIdList.h"
-#include "vtkImplicitFunction.h"
-#include "vtkObjectFactory.h"
-#include "vtkPointData.h"
-#include "vtkUnstructuredGrid.h"
+#include <vtkCell.h>
+#include <vtkCellData.h>
+#include <vtkFloatArray.h>
+#include <vtkIdList.h>
+#include <vtkImplicitFunction.h>
+#include <vtkObjectFactory.h>
+#include <vtkPointData.h>
+#include <vtkUnstructuredGrid.h>
 
 using namespace std;
 
@@ -80,8 +80,8 @@ void SMESH_ExtractGeometry::Execute()
   vtkIdList *cellPts;
   vtkCell *cell;
   int numCellPts;
-  float *x;
-  float multiplier;
+  vtkFloatingPointType *x;
+  vtkFloatingPointType multiplier;
   vtkPoints *newPts;
   vtkIdList *newCellPts;
   vtkDataSet *input = this->GetInput();
@@ -156,7 +156,7 @@ void SMESH_ExtractGeometry::Execute()
     // To extract boundary cells, we have to create supplemental information
     if ( this->ExtractBoundaryCells )
       {
-      float val;
+      vtkFloatingPointType val;
       newScalars = vtkFloatArray::New();
       newScalars->SetNumberOfValues(numPts);
 
index 794229516d365211bf4786518c7eb33e41b66a06..cbbcdc0444e355af0dd1b8d1d76cac302039ba03 100644 (file)
 #include <vtkExtractGeometry.h>
 #include <vector>
 
+#include "VTKViewer.h"
 
-class SMESH_ExtractGeometry : public vtkExtractGeometry{
+class SMESH_ExtractGeometry : public vtkExtractGeometry
+{
 public:
   vtkTypeMacro(SMESH_ExtractGeometry,vtkExtractGeometry);
 
index 33aa1b0b6fbf6fc1bb6ee795c4160639cf4e72c9..ca0e7418ef165dd24c7bd0258e2cdca02fa0c847 100644 (file)
 #include "SMESH_ControlsDef.hxx"
 #include "SalomeApp_Application.h"
 #include "VTKViewer_ExtractUnstructuredGrid.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 #include CORBA_SERVER_HEADER(SMESH_Gen)
 #include CORBA_SERVER_HEADER(SALOME_Exception)
 
 #include <vtkCell.h>
 #include <vtkIdList.h>
-#include <vtkIntArray.h>
 #include <vtkCellArray.h>
 #include <vtkUnsignedCharArray.h>
 
@@ -418,7 +418,7 @@ void SMESH_VisualObjDef::buildElemPrs()
 
   // Insert cells in grid
   
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+  VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
   aCellLocationsArray->SetNumberOfComponents( 1 );
   aCellLocationsArray->SetNumberOfTuples( aNbCells );
   
index 5df2090e9abbf6bb74a520d9de7e39c21d042e58..acb74c7bc4279cc0798db77f041bbb662f1ba538 100644 (file)
@@ -141,6 +141,8 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
                                        const SMDS_MeshNode * n2, 
                                        int ID)
 {
+  if ( !n1 || !n2 ) return 0;
+
   SMDS_MeshEdge * edge=new SMDS_MeshEdge(n1,n2);
   if(myElementIDFactory->BindID(ID, edge)) {
     SMDS_MeshNode *node1,*node2;
@@ -193,7 +195,7 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 {
   SMDS_MeshFace * face=createTriangle(n1, n2, n3);
 
-  if (!registerElement(ID, face)) {
+  if (face && !registerElement(ID, face)) {
     RemoveElement(face, false);
     face = NULL;
   }
@@ -244,7 +246,7 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 {
   SMDS_MeshFace * face=createQuadrangle(n1, n2, n3, n4);
 
-  if (!registerElement(ID, face)) {
+  if (face && !registerElement(ID, face)) {
     RemoveElement(face, false);
     face = NULL;
   }
@@ -276,6 +278,8 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshEdge * e1,
 {
   if (!hasConstructionEdges())
     return NULL;
+  if ( !e1 || !e2 || !e3 ) return 0;
+
   SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3);
   myFaces.Add(face);
 
@@ -313,6 +317,7 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshEdge * e1,
 {
   if (!hasConstructionEdges())
     return NULL;
+  if ( !e1 || !e2 || !e3 || !e4 ) return 0;
   SMDS_MeshFace * face = new SMDS_FaceOfEdges(e1,e2,e3,e4);
   myFaces.Add(face);
 
@@ -374,7 +379,8 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n4,
                                             int ID)
 {
-  SMDS_MeshVolume* volume;
+  SMDS_MeshVolume* volume = 0;
+  if ( !n1 || !n2 || !n3 || !n4) return volume;
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
     SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n4);
@@ -456,7 +462,8 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n5,
                                             int ID)
 {
-  SMDS_MeshVolume* volume;
+  SMDS_MeshVolume* volume = 0;
+  if ( !n1 || !n2 || !n3 || !n4 || !n5) return volume;
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
     SMDS_MeshFace * f2=FindFaceOrCreate(n1,n2,n5);
@@ -542,7 +549,8 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n6,
                                             int ID)
 {
-  SMDS_MeshVolume* volume;
+  SMDS_MeshVolume* volume = 0;
+  if ( !n1 || !n2 || !n3 || !n4 || !n5 || !n6) return volume;
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3);
     SMDS_MeshFace * f2=FindFaceOrCreate(n4,n5,n6);
@@ -640,7 +648,8 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n8,
                                             int ID)
 {
-  SMDS_MeshVolume* volume;
+  SMDS_MeshVolume* volume = 0;
+  if ( !n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n7 || !n8) return volume;
   if(hasConstructionFaces()) {
     SMDS_MeshFace * f1=FindFaceOrCreate(n1,n2,n3,n4);
     SMDS_MeshFace * f2=FindFaceOrCreate(n5,n6,n7,n8);
@@ -697,6 +706,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
 {
   if (!hasConstructionFaces())
     return NULL;
+  if ( !f1 || !f2 || !f3 || !f4) return 0;
   SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4);
   myVolumes.Add(volume);
 
@@ -738,6 +748,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
 {
   if (!hasConstructionFaces())
     return NULL;
+  if ( !f1 || !f2 || !f3 || !f4 || !f5) return 0;
   SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5);
   myVolumes.Add(volume);
 
@@ -781,6 +792,7 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshFace * f1,
 {
   if (!hasConstructionFaces())
     return NULL;
+  if ( !f1 || !f2 || !f3 || !f4 || !f5 || !f6) return 0;
   SMDS_MeshVolume * volume = new SMDS_VolumeOfFaces(f1,f2,f3,f4,f5,f6);
   myVolumes.Add(volume);
 
@@ -824,6 +836,8 @@ SMDS_MeshFace* SMDS_Mesh::AddPolygonalFaceWithID
   }
   else
   {
+    for ( int i = 0; i < nodes.size(); ++i )
+      if ( !nodes[ i ] ) return 0;
     face = new SMDS_PolygonalFaceOfNodes(nodes);
     myFaces.Add(face);
   }
@@ -885,6 +899,8 @@ SMDS_MeshVolume* SMDS_Mesh::AddPolyhedralVolumeWithID
     MESSAGE("Error : Not implemented");
     return NULL;
   } else {
+    for ( int i = 0; i < nodes.size(); ++i )
+      if ( !nodes[ i ] ) return 0;
     volume = new SMDS_PolyhedralVolumeOfNodes(nodes, quantities);
     myVolumes.Add(volume);
   }
@@ -944,6 +960,7 @@ SMDS_MeshFace * SMDS_Mesh::createTriangle(const SMDS_MeshNode * node1,
                                           const SMDS_MeshNode * node2,
                                           const SMDS_MeshNode * node3)
 {
+  if ( !node1 || !node2 || !node3) return 0;
        if(hasConstructionEdges())
        {
                SMDS_MeshEdge *edge1, *edge2, *edge3;
@@ -972,6 +989,7 @@ SMDS_MeshFace * SMDS_Mesh::createQuadrangle(const SMDS_MeshNode * node1,
                                            const SMDS_MeshNode * node3,
                                            const SMDS_MeshNode * node4)
 {
+  if ( !node1 || !node2 || !node3 || !node4 ) return 0;
        if(hasConstructionEdges())
        {
                SMDS_MeshEdge *edge1, *edge2, *edge3, *edge4;
@@ -1270,6 +1288,7 @@ const SMDS_MeshEdge* SMDS_Mesh::FindEdge(const SMDS_MeshNode * node1,
 SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
                                            const SMDS_MeshNode * node2) 
 {
+  if ( !node1 || !node2) return 0;
   SMDS_MeshEdge * toReturn=NULL;
   toReturn=const_cast<SMDS_MeshEdge*>(FindEdge(node1,node2));
   if(toReturn==NULL) {
@@ -1291,7 +1310,6 @@ const SMDS_MeshEdge* SMDS_Mesh::FindEdge(int idnode1, int idnode2,
   const SMDS_MeshNode * node1=FindNode(idnode1);
   const SMDS_MeshNode * node2=FindNode(idnode2);
   const SMDS_MeshNode * node3=FindNode(idnode3);
-  if( (node1==NULL) || (node2==NULL)  || (node3==NULL) ) return NULL;
   return FindEdge(node1,node2,node3);
 }
 
@@ -1299,6 +1317,7 @@ const SMDS_MeshEdge* SMDS_Mesh::FindEdge(const SMDS_MeshNode * node1,
                                          const SMDS_MeshNode * node2,
                                          const SMDS_MeshNode * node3)
 {
+  if ( !node1 || !node2 || !node3 ) return 0;
   const SMDS_MeshEdge * toReturn = NULL;
   SMDS_ElemIteratorPtr it1 = node1->edgesIterator();
   while(it1->more()) {
@@ -1331,7 +1350,6 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
   const SMDS_MeshNode * node1=FindNode(idnode1);
   const SMDS_MeshNode * node2=FindNode(idnode2);
   const SMDS_MeshNode * node3=FindNode(idnode3);
-  if( (node1==NULL) || (node2==NULL) || (node3==NULL) ) return NULL;
   return FindFace(node1, node2, node3);
 }
 
@@ -1339,6 +1357,7 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
                                          const SMDS_MeshNode *node2,
                                          const SMDS_MeshNode *node3)
 {
+  if ( !node1 || !node2 || !node3 ) return 0;
   const SMDS_MeshFace * face;
   const SMDS_MeshElement * node;
   bool node2found, node3found;
@@ -1386,8 +1405,6 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
   const SMDS_MeshNode * node2=FindNode(idnode2);
   const SMDS_MeshNode * node3=FindNode(idnode3);
   const SMDS_MeshNode * node4=FindNode(idnode4);
-  if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) )
-    return NULL;
   return FindFace(node1, node2, node3, node4);
 }
 
@@ -1396,6 +1413,8 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
                                          const SMDS_MeshNode *node3,
                                          const SMDS_MeshNode *node4)
 {
+  if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) )
+    return NULL;
   const SMDS_MeshFace * face;
   const SMDS_MeshElement * node;
   bool node2found, node3found, node4found;
@@ -1448,8 +1467,6 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
   const SMDS_MeshNode * node4 = FindNode(idnode4);
   const SMDS_MeshNode * node5 = FindNode(idnode5);
   const SMDS_MeshNode * node6 = FindNode(idnode6);
-  if( (node1==NULL) || (node2==NULL) || (node3==NULL) ||
-      (node4==NULL) || (node5==NULL) || (node6==NULL) ) return NULL;
   return FindFace(node1, node2, node3, node4, node5, node6);
 }
 
@@ -1460,6 +1477,8 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
                                          const SMDS_MeshNode *node5,
                                          const SMDS_MeshNode *node6)
 {
+  if( (node1==NULL) || (node2==NULL) || (node3==NULL) ||
+      (node4==NULL) || (node5==NULL) || (node6==NULL) ) return NULL;
   const SMDS_MeshFace * face;
   const SMDS_MeshElement * node;
   SMDS_ElemIteratorPtr it1 = node1->facesIterator();
@@ -1501,9 +1520,6 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
   const SMDS_MeshNode * node6 = FindNode(idnode6);
   const SMDS_MeshNode * node7 = FindNode(idnode7);
   const SMDS_MeshNode * node8 = FindNode(idnode8);
-  if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) ||
-      (node5==NULL) || (node6==NULL) || (node7==NULL) || (node8==NULL) )
-    return NULL;
   return FindFace(node1, node2, node3, node4, node5, node6, node7, node8);
 }
 
@@ -1516,6 +1532,9 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
                                          const SMDS_MeshNode *node7,
                                          const SMDS_MeshNode *node8)
 {
+  if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) ||
+      (node5==NULL) || (node6==NULL) || (node7==NULL) || (node8==NULL) )
+    return NULL;
   const SMDS_MeshFace * face;
   const SMDS_MeshElement * node;
   SMDS_ElemIteratorPtr it1 = node1->facesIterator();
@@ -1577,6 +1596,8 @@ const SMDS_MeshFace* SMDS_Mesh::FindFace (std::vector<const SMDS_MeshNode *> nod
   set<const SMDS_MeshFace *> faces;
 
   for (int inode = 0; inode < nbNodes && isFound; inode++) {
+    if ( !nodes[ inode ]) return 0;
+    
     set<const SMDS_MeshFace *> new_faces;
 
     SMDS_ElemIteratorPtr itF = nodes[inode]->facesIterator();
@@ -2435,11 +2456,11 @@ SMDSAbs_ElementType SMDS_Mesh::GetElementType( const int id, const bool iselem )
 //=======================================================================
 SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(int n1, int n2, int n12, int ID) 
 {
-  SMDS_MeshNode* node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
-  SMDS_MeshNode* node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
-  SMDS_MeshNode* node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
-  if(!node1 || !node2 || !node12) return NULL;
-  return SMDS_Mesh::AddEdgeWithID(node1, node2, node12, ID);
+  return SMDS_Mesh::AddEdgeWithID
+    ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+     ID);
 }
 
 //=======================================================================
@@ -2462,6 +2483,7 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
                                        const SMDS_MeshNode * n12, 
                                        int ID)
 {
+  if ( !n1 || !n2 || !n12 ) return 0;
   SMDS_QuadraticEdge* edge = new SMDS_QuadraticEdge(n1,n2,n12);
   if(myElementIDFactory->BindID(ID, edge)) {
     SMDS_MeshNode *node1,*node2, *node12;
@@ -2503,15 +2525,14 @@ SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
                                         int n12,int n23,int n31, int ID)
 {
-  SMDS_MeshNode * node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1);
-  SMDS_MeshNode * node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2);
-  SMDS_MeshNode * node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3);
-  SMDS_MeshNode * node12 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12);
-  SMDS_MeshNode * node23 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23);
-  SMDS_MeshNode * node31 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n31);
-  if(!node1 || !node2 || !node3 || !node12 || !node23 || !node31) return NULL;
-  return SMDS_Mesh::AddFaceWithID(node1, node2, node3,
-                                  node12, node23, node31, ID);
+  return SMDS_Mesh::AddFaceWithID
+    ((SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12),
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23),
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n31),
+     ID);
 }
 
 //=======================================================================
@@ -2526,8 +2547,10 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                         const SMDS_MeshNode * n31, 
                                         int ID)
 {
+  if ( !n1 || !n2 || !n3 || !n12 || !n23 || !n31) return 0;
   if(hasConstructionEdges()) {
     // creation quadratic edges - not implemented
+    return 0;
   }
   SMDS_QuadraticFaceOfNodes* face =
     new SMDS_QuadraticFaceOfNodes(n1,n2,n3,n12,n23,n31);
@@ -2565,18 +2588,16 @@ SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
                                         int n12,int n23,int n34,int n41, int ID)
 {
-  SMDS_MeshNode * node1 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1);
-  SMDS_MeshNode * node2 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2);
-  SMDS_MeshNode * node3 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3);
-  SMDS_MeshNode * node4 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n4);
-  SMDS_MeshNode * node12 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12);
-  SMDS_MeshNode * node23 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23);
-  SMDS_MeshNode * node34 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n34);
-  SMDS_MeshNode * node41 = (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n41);
-  if(!node1 || !node2 || !node3 || !node4 ||
-     !node12 || !node23 || !node34 || !node41) return NULL;
-  return SMDS_Mesh::AddFaceWithID(node1, node2, node3, node4,
-                                  node12, node23, node34, node41, ID);
+  return SMDS_Mesh::AddFaceWithID
+    ((SMDS_MeshNode *)myNodeIDFactory->MeshElement(n1) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n2) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n3) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n4) ,
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n12),
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n23),
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n34),
+     (SMDS_MeshNode *)myNodeIDFactory->MeshElement(n41),
+     ID);
 }
 
 //=======================================================================
@@ -2593,6 +2614,7 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                         const SMDS_MeshNode * n41, 
                                         int ID)
 {
+  if ( !n1 || !n2 || !n3 || !n4 || !n12 || !n23 || !n34 || !n41) return 0;
   if(hasConstructionEdges()) {
     // creation quadratic edges - not implemented
   }
@@ -2638,24 +2660,20 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
                                             int n12,int n23,int n31,
                                             int n14,int n24,int n34, int ID)
 {
-  SMDS_MeshNode *node1, *node2, *node3, *node4, *node12, *node23;
-  SMDS_MeshNode *node31, *node14, *node24, *node34;
-  node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
-  node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
-  node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
-  node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
-  node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
-  node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
-  node31 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31);
-  node14 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14);
-  node24 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n24);
-  node34 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34);
-  if( !node1 || !node2 || !node3 || !node4 || !node12 || !node23 ||
-     !node31 || !node14 || !node24 || !node34 ) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node12, node23,
-                                    node31, node14, node24, node34, ID);
+  return SMDS_Mesh::AddVolumeWithID
+    ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n24),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34),
+     ID);
 }
-       
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order tetrahedron of 10 nodes
@@ -2672,8 +2690,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n34,
                                             int ID)
 {
+  if ( !n1 || !n2 || !n3 || !n4 || !n12 || !n23 || !n31 || !n14 || !n24 || !n34)
+    return 0;
   if(hasConstructionFaces()) {
     // creation quadratic faces - not implemented
+    return 0;
   }
   SMDS_QuadraticVolumeOfNodes * volume =
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
@@ -2721,30 +2742,23 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int
                                             int n12,int n23,int n34,int n41,
                                             int n15,int n25,int n35,int n45, int ID)
 {
-  SMDS_MeshNode *node1, *node2, *node3, *node4, *node5;
-  SMDS_MeshNode *node12, *node23, *node34, *node41;
-  SMDS_MeshNode *node15, *node25, *node35, *node45;
-  node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
-  node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
-  node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
-  node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
-  node5 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5);
-  node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
-  node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
-  node34 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34);
-  node41 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41);
-  node15 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15);
-  node25 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25);
-  node35 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n35);
-  node45 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45);
-  if( !node1 || !node2 || !node3 || !node4 || !node5 ||
-      !node12 || !node23 || !node34 || !node41 ||
-      !node15 || !node25 || !node35 || !node45 ) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5,
-                                    node12, node23, node34, node41,
-                                    node15, node25, node35, node45, ID);
+  return SMDS_Mesh::AddVolumeWithID
+    ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n35),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45),
+     ID);
 }
-       
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order pyramid of 13 nodes
@@ -2764,8 +2778,12 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n45,
                                             int ID)
 {
+  if (!n1 || !n2 || !n3 || !n4 || !n5 || !n12 || !n23 ||
+      !n34 || !n41 || !n15 || !n25 || !n35 || !n45)
+    return 0;
   if(hasConstructionFaces()) {
     // creation quadratic faces - not implemented
+    return 0;
   }
   SMDS_QuadraticVolumeOfNodes * volume =
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n12,n23,
@@ -2818,33 +2836,25 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
                                             int n45,int n56,int n64,
                                             int n14,int n25,int n36, int ID)
 {
-  SMDS_MeshNode *node1, *node2, *node3, *node4, *node5, *node6;
-  SMDS_MeshNode *node12, *node23, *node31;
-  SMDS_MeshNode *node45, *node56, *node64;
-  SMDS_MeshNode *node14, *node25, *node36;
-  node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
-  node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
-  node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
-  node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
-  node5 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5);
-  node6 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6);
-  node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
-  node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
-  node31 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31);
-  node45 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45);
-  node56 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56);
-  node64 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n64);
-  node14 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14);
-  node25 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25);
-  node36 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n36);
-  if( !node1 || !node2 || !node3 || !node4 || !node5 || !node6 ||
-      !node12 || !node23 || !node31 || !node45 || !node56 ||
-      !node64 || !node14 || !node25 || !node36 ) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4, node5, node6,
-                                    node12, node23, node31, node45, node56,
-                                    node64, node14, node25, node36, ID);
+  return SMDS_Mesh::AddVolumeWithID
+    ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6) ,
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n31),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n45),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n64),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n14),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n25),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n36),
+     ID);
 }
-       
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order Pentahedron with 15 nodes
@@ -2866,8 +2876,12 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n36,
                                             int ID)
 {
+  if (!n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n12 || !n23 ||
+      !n31 || !n45 || !n56 || !n64 || !n14 || !n25 || !n36)
+    return 0;
   if(hasConstructionFaces()) {
     // creation quadratic faces - not implemented
+    return 0;
   }
   SMDS_QuadraticVolumeOfNodes * volume =
     new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n6,n12,n23,n31,
@@ -2925,43 +2939,30 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
                                             int n56,int n67,int n78,int n85,
                                             int n15,int n26,int n37,int n48, int ID)
 {
-  SMDS_MeshNode *node1, *node2, *node3, *node4;
-  SMDS_MeshNode *node5, *node6, *node7, *node8;
-  SMDS_MeshNode *node12, *node23, *node34, *node41;
-  SMDS_MeshNode *node56, *node67, *node78, *node85;
-  SMDS_MeshNode *node15, *node26, *node37, *node48;
-  node1 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1);
-  node2 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2);
-  node3 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3);
-  node4 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4);
-  node5 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5);
-  node6 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6);
-  node7 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n7);
-  node8 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n8);
-  node12 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12);
-  node23 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23);
-  node34 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34);
-  node41 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41);
-  node56 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56);
-  node67 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n67);
-  node78 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n78);
-  node85 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n85);
-  node15 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15);
-  node26 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n26);
-  node37 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n37);
-  node48 = (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n48);
-  if( !node1 || !node2 || !node3 || !node4 ||
-      !node5 || !node6 || !node7 || !node8 ||
-      !node12 || !node23 || !node34 || !node41 ||
-      !node56 || !node67 || !node78 || !node85 ||
-      !node15 || !node26 || !node37 || !node48 ) return NULL;
-  return SMDS_Mesh::AddVolumeWithID(node1, node2, node3, node4,
-                                    node5, node6, node7, node8,
-                                    node12, node23, node34, node41,
-                                    node56, node67, node78, node85,
-                                    node15, node26, node37, node48, ID);
+  return SMDS_Mesh::AddVolumeWithID
+    ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n3),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n4),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n5),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n6),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n7),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n8),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n23),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n34),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n41),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n56),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n67),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n78),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n85),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n15),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n26),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n37),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n48),
+     ID);
 }
-       
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order Hexahedrons with 20 nodes
@@ -2988,7 +2989,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                             const SMDS_MeshNode * n48,
                                             int ID)
 {
+  if (!n1 || !n2 || !n3 || !n4 || !n5 || !n6 || !n7 || !n8 || !n12 || !n23 ||
+      !n34 || !n41 || !n56 || !n67 || !n78 || !n85 || !n15 || !n26 || !n37 || !n48)
+    return 0;
   if(hasConstructionFaces()) {
+    return 0;
     // creation quadratic faces - not implemented
   }
   SMDS_QuadraticVolumeOfNodes * volume =
index 83f073fdbcc1c2c529c43fe5f0c469dc18ec722f..fa15e0e5f81f50cade022508aadd078d44ce6c79 100644 (file)
@@ -218,3 +218,20 @@ bool SMDS_MeshElement::IsMediumNode(const SMDS_MeshNode* node) const
 {
   return false;
 }
+
+//================================================================================
+  /*!
+   * \brief Check if a node belongs to the element
+    * \param node - the node to check
+    * \retval int - node index within the element, -1 if not found
+   */
+//================================================================================
+
+int SMDS_MeshElement::GetNodeIndex( const SMDS_MeshNode* node ) const
+{
+  SMDS_ElemIteratorPtr nIt = nodesIterator();
+  for ( int i = 0; nIt->more(); ++i )
+    if ( nIt->next() == node )
+      return i;
+  return -1;
+}
index 67ac8f2473f36f7dd7fa00afcd795353a9102b4b..794c352f508d1fb5b94ce6414fd87401147909e8 100644 (file)
@@ -108,6 +108,13 @@ public:
     return ind;
   }
 
+  /*!
+   * \brief Check if a node belongs to the element
+    * \param node - the node to check
+    * \retval int - node index within the element, -1 if not found
+   */
+  int GetNodeIndex( const SMDS_MeshNode* node ) const;
+
 protected:
   SMDS_MeshElement(int ID=-1);
   virtual void Print(std::ostream & OS) const;
index 37893fab42bb46d6e4405b38d9e7f6f659f21165..a670deb5eaa5b7a87f74be0df12db8c07ba35dd3 100644 (file)
@@ -60,6 +60,8 @@ class SMDS_WNT_EXPORT SMDS_MeshGroup:public SMDS_MeshObject
        bool IsEmpty() const { return myElements.empty(); }
        int Extent() const { return myElements.size(); }
 
+       int SubGroupsNb() const { return myChildren.size(); }
+
         SMDSAbs_ElementType GetType() const { return myType; }
 
        bool Contains(const SMDS_MeshElement * theElem) const;
@@ -72,16 +74,27 @@ class SMDS_WNT_EXPORT SMDS_MeshGroup:public SMDS_MeshObject
         const SMDS_MeshElement* Next() const
         { return *(const_cast<TIterator&>(myIterator))++; }
 
+        void InitSubGroupsIterator() const
+        { const_cast<TGroupIterator&>(myGroupIterator) = myChildren.begin(); }
+
+        bool MoreSubGroups() const { return myGroupIterator != myChildren.end(); }
+
+        const SMDS_MeshGroup* NextSubGroup() const
+        { return *(const_cast<TGroupIterator&>(myGroupIterator))++; }
+
   private:
        SMDS_MeshGroup(SMDS_MeshGroup* theParent,
                        const SMDSAbs_ElementType theType = SMDSAbs_All);
 
         typedef std::set<const SMDS_MeshElement *>::const_iterator TIterator;
+        typedef std::list<const SMDS_MeshGroup *>::const_iterator TGroupIterator;
+
        const SMDS_Mesh *                       myMesh;
        SMDSAbs_ElementType                     myType;
        std::set<const SMDS_MeshElement *>      myElements;
        SMDS_MeshGroup *                        myParent;
        std::list<const SMDS_MeshGroup*>        myChildren;
         TIterator                               myIterator;
+        TGroupIterator                          myGroupIterator;
 };
 #endif
index 12c077a7dd797490dfdb996e2bd86edc5bccaa0e..13b54dd4d8b2e0d010851f4fca1c2ad638083602 100644 (file)
@@ -51,7 +51,8 @@ EXPORT_HEADERS= \
        SMESH_IndexedDataMapOfShapeIndexedMapOfShape.hxx \
        SMESH_DataMapOfElemPtrSequenceOfElemPtr.hxx \
        SMESH_SequenceOfElemPtr.hxx \
-       SMESH_SequenceOfNode.hxx
+       SMESH_SequenceOfNode.hxx \
+       SMESH_MesherHelper.hxx
 
 EXPORT_PYSCRIPTS =
 
@@ -69,7 +70,8 @@ LIB_SRC = SMESH_Gen.cxx SMESH_Mesh.cxx SMESH_subMesh.cxx \
          SMESH_MeshEditor.cxx \
          SMESH_Block.cxx \
          SMESH_Pattern.cxx \
-          SMESH_HypoFilter.cxx
+          SMESH_HypoFilter.cxx \
+         SMESH_MesherHelper.cxx
 
 LIB_SERVER_IDL = 
 
@@ -84,7 +86,7 @@ CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
            -I${MED_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
 CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
            -I${MED_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
-LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV
+LDFLAGS+= -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -L${OCC_KERNEL_LIBS} $(OCC_LDPATH)-lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV -lTKShHealing
 
 @CONCLUDE@
 
index 23c5041c787e8599077227603b55244d3e90454e..1426f061d433d966ebf04606e5b2e8251a96fc76 100644 (file)
@@ -184,10 +184,40 @@ int SMESH_Mesh::UNVToMesh(const char* theFileName)
   myReader.SetMeshId(-1);
   myReader.Perform();
   if(MYDEBUG){
-    MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
-    MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
-    MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
-    MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+    MESSAGE("UNVToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
+    MESSAGE("UNVToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
+    MESSAGE("UNVToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
+    MESSAGE("UNVToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+  }
+  SMDS_MeshGroup* aGroup = (SMDS_MeshGroup*) myReader.GetGroup();
+  if (aGroup != 0) {
+    TGroupNamesMap aGroupNames = myReader.GetGroupNamesMap();
+    //const TGroupIdMap& aGroupId = myReader.GetGroupIdMap();
+    aGroup->InitSubGroupsIterator();
+    while (aGroup->MoreSubGroups()) {
+      SMDS_MeshGroup* aSubGroup = (SMDS_MeshGroup*) aGroup->NextSubGroup();
+      std::string aName = aGroupNames[aSubGroup];
+      int aId;
+
+      SMESH_Group* aSMESHGroup = AddGroup( aSubGroup->GetType(), aName.c_str(), aId );
+      if ( aSMESHGroup ) {
+       if(MYDEBUG) MESSAGE("UNVToMesh - group added: "<<aName);      
+       SMESHDS_Group* aGroupDS = dynamic_cast<SMESHDS_Group*>( aSMESHGroup->GetGroupDS() );
+       if ( aGroupDS ) {
+         aGroupDS->SetStoreName(aName.c_str());
+         aSubGroup->InitIterator();
+         const SMDS_MeshElement* aElement = 0;
+         while (aSubGroup->More()) {
+           aElement = aSubGroup->Next();
+           if (aElement) {
+             aGroupDS->SMDSGroup().Add(aElement);
+           }
+         }
+         if (aElement)
+           aGroupDS->SetType(aElement->GetType());
+       }
+      }
+    }
   }
   return 1;
 }
@@ -242,7 +272,7 @@ int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName)
 
 int SMESH_Mesh::STLToMesh(const char* theFileName)
 {
-  if(MYDEBUG) MESSAGE("UNVToMesh - theFileName = "<<theFileName);
+  if(MYDEBUG) MESSAGE("STLToMesh - theFileName = "<<theFileName);
   if(_isShapeToMesh)
     throw SALOME_Exception(LOCALIZED("a shape to mesh has already been defined"));
   _isShapeToMesh = true;
@@ -252,10 +282,10 @@ int SMESH_Mesh::STLToMesh(const char* theFileName)
   myReader.SetMeshId(-1);
   myReader.Perform();
   if(MYDEBUG){
-    MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
-    MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
-    MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
-    MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+    MESSAGE("STLToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
+    MESSAGE("STLToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
+    MESSAGE("STLToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
+    MESSAGE("STLToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
   }
   return 1;
 }
@@ -918,6 +948,17 @@ void SMESH_Mesh::ExportUNV(const char *file) throw(SALOME_Exception)
   myWriter.SetFile(string(file));
   myWriter.SetMesh(_myMeshDS);
   myWriter.SetMeshId(_idDoc);
+  //  myWriter.SetGroups(_mapGroup);
+
+  for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
+    SMESH_Group*       aGroup   = it->second;
+    SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS();
+    if ( aGroupDS ) {
+      string aGroupName = aGroup->GetName();
+      aGroupDS->SetStoreName( aGroupName.c_str() );
+      myWriter.AddGroup( aGroupDS );
+    }
+  }
   myWriter.Perform();
 }
 
@@ -948,10 +989,21 @@ int SMESH_Mesh::NbNodes() throw(SALOME_Exception)
  *  
  */
 //=============================================================================
-int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
+int SMESH_Mesh::NbEdges(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbEdges();
+  if (order == ORDER_ANY)
+    return _myMeshDS->NbEdges();
+
+  int Nb = 0;
+  SMDS_EdgeIteratorPtr it = _myMeshDS->edgesIterator();
+  while (it->more()) {
+    const SMDS_MeshEdge* cur = it->next();
+    if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
+         order == ORDER_QUADRATIC && cur->IsQuadratic() )
+      Nb++;
+  }
+  return Nb;
 }
 
 //=============================================================================
@@ -959,27 +1011,40 @@ int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
  *  
  */
 //=============================================================================
-int SMESH_Mesh::NbFaces() throw(SALOME_Exception)
+int SMESH_Mesh::NbFaces(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbFaces();
+  if (order == ORDER_ANY)
+    return _myMeshDS->NbFaces();
+
+  int Nb = 0;
+  SMDS_FaceIteratorPtr it = _myMeshDS->facesIterator();
+  while (it->more()) {
+    const SMDS_MeshFace* cur = it->next();
+    if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
+         order == ORDER_QUADRATIC && cur->IsQuadratic() )
+      Nb++;
+  }
+  return Nb;
 }
 
 ///////////////////////////////////////////////////////////////////////////////
 /// Return the number of 3 nodes faces in the mesh. This method run in O(n)
 ///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
+int SMESH_Mesh::NbTriangles(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   int Nb = 0;
   
   SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-  //while(itFaces->more()) if(itFaces->next()->NbNodes()==3) Nb++;
-  const SMDS_MeshFace * curFace;
   while (itFaces->more()) {
-    curFace = itFaces->next();
+    const SMDS_MeshFace* curFace = itFaces->next();
+    int nbnod = curFace->NbNodes();
     if ( !curFace->IsPoly() && 
-        ( curFace->NbNodes()==3 || curFace->NbNodes()==6 ) ) Nb++;
+        ( order == ORDER_ANY && (nbnod==3 || nbnod==6) ||
+           order == ORDER_LINEAR && nbnod==3 ||
+           order == ORDER_QUADRATIC && nbnod==6 ) )
+      Nb++;
   }
   return Nb;
 }
@@ -987,18 +1052,20 @@ int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
 ///////////////////////////////////////////////////////////////////////////////
 /// Return the number of 4 nodes faces in the mesh. This method run in O(n)
 ///////////////////////////////////////////////////////////////////////////////
-int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception)
+int SMESH_Mesh::NbQuadrangles(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   int Nb = 0;
   
   SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
-  //while(itFaces->more()) if(itFaces->next()->NbNodes()==4) Nb++;
-  const SMDS_MeshFace * curFace;
   while (itFaces->more()) {
-    curFace = itFaces->next();
+    const SMDS_MeshFace* curFace = itFaces->next();
+    int nbnod = curFace->NbNodes();
     if ( !curFace->IsPoly() && 
-        ( curFace->NbNodes() == 4 || curFace->NbNodes()==8 ) ) Nb++;
+        ( order == ORDER_ANY && (nbnod==4 || nbnod==8) ||
+           order == ORDER_LINEAR && nbnod==4 ||
+           order == ORDER_QUADRATIC && nbnod==8 ) )
+      Nb++;
   }
   return Nb;
 }
@@ -1021,68 +1088,87 @@ int SMESH_Mesh::NbPolygons() throw(SALOME_Exception)
  *  
  */
 //=============================================================================
-int SMESH_Mesh::NbVolumes() throw(SALOME_Exception)
+int SMESH_Mesh::NbVolumes(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  return _myMeshDS->NbVolumes();
+  if (order == ORDER_ANY)
+    return _myMeshDS->NbVolumes();
+
+  int Nb = 0;
+  SMDS_VolumeIteratorPtr it = _myMeshDS->volumesIterator();
+  while (it->more()) {
+    const SMDS_MeshVolume* cur = it->next();
+    if ( order == ORDER_LINEAR && !cur->IsQuadratic() ||
+         order == ORDER_QUADRATIC && cur->IsQuadratic() )
+      Nb++;
+  }
+  return Nb;
 }
 
-int SMESH_Mesh::NbTetras() throw(SALOME_Exception)
+int SMESH_Mesh::NbTetras(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   int Nb = 0;
   SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==4) Nb++;
-  const SMDS_MeshVolume * curVolume;
   while (itVolumes->more()) {
-    curVolume = itVolumes->next();
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
     if ( !curVolume->IsPoly() && 
-        ( curVolume->NbNodes() == 4 || curVolume->NbNodes()==10 ) ) Nb++;
+        ( order == ORDER_ANY && (nbnod==4 || nbnod==10) ||
+           order == ORDER_LINEAR && nbnod==4 ||
+           order == ORDER_QUADRATIC && nbnod==10 ) )
+      Nb++;
   }
   return Nb;
 }
 
-int SMESH_Mesh::NbHexas() throw(SALOME_Exception)
+int SMESH_Mesh::NbHexas(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   int Nb = 0;
   SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==8) Nb++;
-  const SMDS_MeshVolume * curVolume;
   while (itVolumes->more()) {
-    curVolume = itVolumes->next();
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
     if ( !curVolume->IsPoly() && 
-        ( curVolume->NbNodes() == 8 || curVolume->NbNodes()==20 ) ) Nb++;
+        ( order == ORDER_ANY && (nbnod==8 || nbnod==20) ||
+           order == ORDER_LINEAR && nbnod==8 ||
+           order == ORDER_QUADRATIC && nbnod==20 ) )
+      Nb++;
   }
   return Nb;
 }
 
-int SMESH_Mesh::NbPyramids() throw(SALOME_Exception)
+int SMESH_Mesh::NbPyramids(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   int Nb = 0;
   SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==5) Nb++;
-  const SMDS_MeshVolume * curVolume;
   while (itVolumes->more()) {
-    curVolume = itVolumes->next();
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
     if ( !curVolume->IsPoly() && 
-        ( curVolume->NbNodes() == 5 || curVolume->NbNodes()==13 ) ) Nb++;
+        ( order == ORDER_ANY && (nbnod==5 || nbnod==13) ||
+           order == ORDER_LINEAR && nbnod==5 ||
+           order == ORDER_QUADRATIC && nbnod==13 ) )
+      Nb++;
   }
   return Nb;
 }
 
-int SMESH_Mesh::NbPrisms() throw(SALOME_Exception)
+int SMESH_Mesh::NbPrisms(ElementOrder order) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   int Nb = 0;
   SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
-  //while(itVolumes->more()) if(itVolumes->next()->NbNodes()==6) Nb++;
-  const SMDS_MeshVolume * curVolume;
   while (itVolumes->more()) {
-    curVolume = itVolumes->next();
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
     if ( !curVolume->IsPoly() && 
-        ( curVolume->NbNodes() == 6 || curVolume->NbNodes()==15 ) ) Nb++;
+        ( order == ORDER_ANY && (nbnod==6 || nbnod==15) ||
+           order == ORDER_LINEAR && nbnod==6 ||
+           order == ORDER_QUADRATIC && nbnod==15 ) )
+      Nb++;
   }
   return Nb;
 }
index 93802346db6121aba1e624e5e78950af771710b7..c377ed25b2f5dff22c43454427dc807db9ead4f1 100644 (file)
@@ -174,25 +174,34 @@ public:
   
   int NbNodes() throw(SALOME_Exception);
   
-  int NbEdges() throw(SALOME_Exception);
+  /*!
+   * ElementOrder points out entities of what order are requested
+   */
+  enum ElementOrder {
+    ORDER_ANY,          /*! entities of any order */
+    ORDER_LINEAR,       /*! entities of 1st order */
+    ORDER_QUADRATIC     /*! entities of 2nd order */
+  };
+
+  int NbEdges(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbFaces() throw(SALOME_Exception);
+  int NbFaces(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbTriangles() throw(SALOME_Exception);
+  int NbTriangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbQuadrangles() throw(SALOME_Exception);
+  int NbQuadrangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
 
   int NbPolygons() throw(SALOME_Exception);
   
-  int NbVolumes() throw(SALOME_Exception);
+  int NbVolumes(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbTetras() throw(SALOME_Exception);
+  int NbTetras(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbHexas() throw(SALOME_Exception);
+  int NbHexas(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
-  int NbPyramids() throw(SALOME_Exception);
+  int NbPyramids(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
 
-  int NbPrisms() throw(SALOME_Exception);
+  int NbPrisms(ElementOrder order = ORDER_ANY) throw(SALOME_Exception);
   
   int NbPolyhedrons() throw(SALOME_Exception);
   
index 9929164820f93b24fad299e489f41211fcc3c39c..4f335dcd4c17c049aa4448e592da540c887113fe 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "SMESH_subMesh.hxx"
 #include "SMESH_ControlsDef.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 #include "utilities.h"
 
@@ -65,6 +66,7 @@
 #include <GeomAdaptor_Surface.hxx>
 #include <ElCLib.hxx>
 #include <TColStd_ListOfInteger.hxx>
+#include <TopoDS_Face.hxx>
 
 #include <map>
 
@@ -102,6 +104,8 @@ myMesh( theMesh )
 bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
                                const bool         isNodes )
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
 
   SMESHDS_Mesh* aMesh = GetMeshDS();
   set< SMESH_subMesh *> smmap;
@@ -122,11 +126,8 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
       const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
       const SMDS_PositionPtr& aPosition = node->GetPosition();
       if ( aPosition.get() ) {
-        int aShapeID = aPosition->GetShapeId();
-        if ( aShapeID ) {
-          TopoDS_Shape aShape = aMesh->IndexToShape( aShapeID );
-          SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShape );
-          if ( sm )
+        if ( int aShapeID = aPosition->GetShapeId() ) {
+          if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( aShapeID ) )
             smmap.insert( sm );
         }
       }
@@ -146,6 +147,10 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
       (*smIt)->ComputeStateEngine( SMESH_subMesh::MESH_ENTITY_REMOVED );
   }
 
+  // Check if the whole mesh becomes empty
+  if ( SMESH_subMesh * sm = GetMesh()->GetSubMeshContaining( 1 ) )
+    sm->ComputeStateEngine( SMESH_subMesh::CHECK_COMPUTE_STATE );
+
   return true;
 }
 
@@ -157,6 +162,9 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
 
 int SMESH_MeshEditor::FindShape (const SMDS_MeshElement * theElem)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   SMESHDS_Mesh * aMesh = GetMeshDS();
   if ( aMesh->ShapeToMesh().IsNull() )
     return 0;
@@ -309,6 +317,9 @@ static bool GetNodesFromTwoTria(const SMDS_MeshElement * theTria1,
 bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshElement * theTria1,
                                     const SMDS_MeshElement * theTria2 )
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   if (!theTria1 || !theTria2)
     return false;
 
@@ -452,7 +463,14 @@ static bool findTriangles(const SMDS_MeshNode *    theNode1,
     if ( elem->GetType() == SMDSAbs_Face &&
          emap.find( elem ) != emap.end() )
       if ( theTria1 ) {
-        theTria2 = elem;
+        // theTria1 must be element with minimum ID
+        if( theTria1->GetID() < elem->GetID() ) {
+          theTria2 = elem;
+        }
+        else {
+          theTria2 = theTria1;
+          theTria1 = elem;
+        }
         break;
       }
       else {
@@ -472,6 +490,9 @@ static bool findTriangles(const SMDS_MeshNode *    theNode1,
 bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshNode * theNode1,
                                     const SMDS_MeshNode * theNode2)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE( "::InverseDiag()" );
 
   const SMDS_MeshElement *tr1, *tr2;
@@ -603,6 +624,9 @@ bool getQuadrangleNodes(const SMDS_MeshNode *    theQuadNodes [],
 bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
                                    const SMDS_MeshNode * theNode2)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE( "::DeleteDiag()" );
 
   const SMDS_MeshElement *tr1, *tr2;
@@ -622,6 +646,7 @@ bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
     //MESSAGE( endl << tr1 << tr2 );
 
     GetMeshDS()->ChangeElementNodes( tr1, aNodes, 4 );
+    myLastCreatedElems.Append(tr1);
     GetMeshDS()->RemoveElement( tr2 );
 
     //MESSAGE( endl << tr1 );
@@ -666,6 +691,7 @@ bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
   aNodes[7] = N1[5];
 
   GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+  myLastCreatedElems.Append(tr1);
   GetMeshDS()->RemoveElement( tr2 );
 
   // remove middle node (9)
@@ -681,6 +707,9 @@ bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
 
 bool SMESH_MeshEditor::Reorient (const SMDS_MeshElement * theElem)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   if (!theElem)
     return false;
   SMDS_ElemIteratorPtr it = theElem->nodesIterator();
@@ -784,9 +813,12 @@ static double getBadRate (const SMDS_MeshElement*               theElem,
 //           theCrit is used to select a diagonal to cut
 //=======================================================================
 
-bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> &       theElems,
+bool SMESH_MeshEditor::QuadToTri (map<int,const SMDS_MeshElement*> &   theElems,
                                   SMESH::Controls::NumericalFunctorPtr theCrit)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE( "::QuadToTri()" );
 
   if ( !theCrit.get() )
@@ -794,119 +826,135 @@ bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> &       theElems,
 
   SMESHDS_Mesh * aMesh = GetMeshDS();
 
-  set< const SMDS_MeshElement * >::iterator itElem;
+  Handle(Geom_Surface) surface;
+  SMESH_MesherHelper   helper( *GetMesh() );
+
+  map<int, const SMDS_MeshElement * >::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem || elem->GetType() != SMDSAbs_Face )
       continue;
+    if ( elem->NbNodes() != ( elem->IsQuadratic() ? 8 : 4 ))
+      continue;
 
-    if(elem->NbNodes()==4) {
+    // retrieve element nodes
+    const SMDS_MeshNode* aNodes [8];
+    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
+    int i = 0;
+    while ( itN->more() )
+      aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
 
-      // retrieve element nodes
-      const SMDS_MeshNode* aNodes [4];
-      SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-      int i = 0;
-      while ( itN->more() )
-        aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+    // compare two sets of possible triangles
+    double aBadRate1, aBadRate2; // to what extent a set is bad
+    SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
+    SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
+    aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
 
-      // compare two sets of possible triangles
-      double aBadRate1, aBadRate2; // to what extent a set is bad
-      SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
-      SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
-      aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
-      
-      SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
-      SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
-      aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
+    SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
+    SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
+    aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
 
-      int aShapeId = FindShape( elem );
-      //MESSAGE( "aBadRate1 = " << aBadRate1 << "; aBadRate2 = " << aBadRate2
-      //      << " ShapeID = " << aShapeId << endl << elem );
+    int aShapeId = FindShape( elem );
+    const SMDS_MeshElement* newElem = 0;
+
+    if( !elem->IsQuadratic() ) {
+
+      // split liner quadrangle
 
       if ( aBadRate1 <= aBadRate2 ) {
         // tr1 + tr2 is better
         aMesh->ChangeElementNodes( elem, aNodes, 3 );
-        //MESSAGE( endl << elem );
-
-        elem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
+        newElem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
       }
       else {
         // tr3 + tr4 is better
         aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
-        //MESSAGE( endl << elem );
-        
-        elem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
+        newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
       }
-      //MESSAGE( endl << elem );
-
-      // put a new triangle on the same shape
-      if ( aShapeId )
-        aMesh->SetMeshElementOnShape( elem, aShapeId );
     }
+    else {
 
-    if( elem->NbNodes()==8 && elem->IsQuadratic() ) {
+      // split qudratic quadrangle
+
+      // get surface elem is on
+      if ( aShapeId != helper.GetSubShapeID() ) {
+        surface.Nullify();
+        TopoDS_Shape shape;
+        if ( aShapeId > 0 )
+          shape = aMesh->IndexToShape( aShapeId );
+        if ( !shape.IsNull() && shape.ShapeType() == TopAbs_FACE ) {
+          TopoDS_Face face = TopoDS::Face( shape );
+          surface = BRep_Tool::Surface( face );
+          if ( !surface.IsNull() )
+            helper.SetSubShape( shape );
+        }
+      }
+      // get elem nodes
       const SMDS_MeshNode* aNodes [8];
+      const SMDS_MeshNode* inFaceNode = 0;
       SMDS_ElemIteratorPtr itN = elem->nodesIterator();
       int i = 0;
       while ( itN->more() ) {
         aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+        if ( !inFaceNode && helper.GetNodeUVneedInFaceNode() &&
+             aNodes[ i-1 ]->GetPosition()->GetTypeOfPosition() == SMDS_TOP_FACE )
+        {
+          inFaceNode = aNodes[ i-1 ];
+        } 
       }
-
-      // compare two sets of possible triangles
-      // use for comparing simple triangles (not quadratic)
-      double aBadRate1, aBadRate2; // to what extent a set is bad
-      SMDS_FaceOfNodes tr1 ( aNodes[0], aNodes[1], aNodes[2] );
-      SMDS_FaceOfNodes tr2 ( aNodes[2], aNodes[3], aNodes[0] );
-      aBadRate1 = getBadRate( &tr1, theCrit ) + getBadRate( &tr2, theCrit );
-
-      SMDS_FaceOfNodes tr3 ( aNodes[1], aNodes[2], aNodes[3] );
-      SMDS_FaceOfNodes tr4 ( aNodes[3], aNodes[0], aNodes[1] );
-      aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
-
-      int aShapeId = FindShape( elem );
-      
       // find middle point for (0,1,2,3)
-      // and create node in this point;
-      double x=0., y=0., z=0.;
-      for(i=0; i<4; i++) {
-        x += aNodes[i]->X();
-        y += aNodes[i]->Y();
-        z += aNodes[i]->Z();
+      // and create node in this point;
+      gp_XYZ p( 0,0,0 );
+      if ( surface.IsNull() ) {
+        for(i=0; i<4; i++)
+          p += gp_XYZ(aNodes[i]->X(), aNodes[i]->Y(), aNodes[i]->Z() );
+        p /= 4;
       }
-      const SMDS_MeshNode* newN = aMesh->AddNode(x/4, y/4, z/4);
-
+      else {
+        TopoDS_Face face = TopoDS::Face( helper.GetSubShape() );
+        gp_XY uv( 0,0 );
+        for(i=0; i<4; i++)
+          uv += helper.GetNodeUV( face, aNodes[i], inFaceNode );
+        uv /= 4.;
+        p = surface->Value( uv.X(), uv.Y() ).XYZ();
+      }
+      const SMDS_MeshNode* newN = aMesh->AddNode( p.X(), p.Y(), p.Z() );
+      myLastCreatedNodes.Append(newN);
+
+      // create a new element
+      const SMDS_MeshNode* N[6];
       if ( aBadRate1 <= aBadRate2 ) {
-        // tr1 + tr2 is better
-        const SMDS_MeshNode* N[6];
         N[0] = aNodes[0];
         N[1] = aNodes[1];
         N[2] = aNodes[2];
         N[3] = aNodes[4];
         N[4] = aNodes[5];
         N[5] = newN;
-        aMesh->ChangeElementNodes( elem, N, 6 );
-        elem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
-                              aNodes[6], aNodes[7], newN );
+        newElem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
+                                 aNodes[6], aNodes[7], newN );
       }
       else {
-        // tr3 + tr4 is better
-        const SMDS_MeshNode* N[6];
         N[0] = aNodes[1];
         N[1] = aNodes[2];
         N[2] = aNodes[3];
         N[3] = aNodes[5];
         N[4] = aNodes[6];
         N[5] = newN;
-        aMesh->ChangeElementNodes( elem, N, 6 );
-        elem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
-                              aNodes[7], aNodes[4], newN );
-      }
-      // put a new triangle on the same shape
-      if ( aShapeId ) {
-        aMesh->SetMeshElementOnShape( elem, aShapeId );
+        newElem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
+                                 aNodes[7], aNodes[4], newN );
       }
-    }
+      aMesh->ChangeElementNodes( elem, N, 6 );
+
+    } // qudratic case
+
+    // care of a new element
 
+    myLastCreatedElems.Append(newElem);
+    AddToSameGroups( newElem, elem, aMesh );
+
+    // put a new triangle on the same shape
+    if ( aShapeId )
+      aMesh->SetMeshElementOnShape( newElem, aShapeId );
   }
   return true;
 }
@@ -918,6 +966,9 @@ bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> &       theElems,
 int SMESH_MeshEditor::BestSplit (const SMDS_MeshElement*              theQuad,
                                  SMESH::Controls::NumericalFunctorPtr theCrit)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   if (!theCrit.get())
     return -1;
 
@@ -971,22 +1022,50 @@ void SMESH_MeshEditor::AddToSameGroups (const SMDS_MeshElement* elemToAdd,
   }
 }
 
+
+//=======================================================================
+//function : RemoveElemFromGroups
+//purpose  : Remove removeelem to the groups the elemInGroups belongs to
+//=======================================================================
+void SMESH_MeshEditor::RemoveElemFromGroups (const SMDS_MeshElement* removeelem,
+                                             SMESHDS_Mesh *          aMesh)
+{
+  const set<SMESHDS_GroupBase*>& groups = aMesh->GetGroups();
+  if (!groups.empty()) 
+  {
+    set<SMESHDS_GroupBase*>::const_iterator GrIt = groups.begin();
+    for (; GrIt != groups.end(); GrIt++) 
+    {
+      SMESHDS_Group* grp = dynamic_cast<SMESHDS_Group*>(*GrIt);
+      if (!grp || grp->IsEmpty()) continue;
+      grp->SMDSGroup().Remove(removeelem);
+    }
+  }
+}
+
+
 //=======================================================================
 //function : QuadToTri
 //purpose  : Cut quadrangles into triangles.
 //           theCrit is used to select a diagonal to cut
 //=======================================================================
 
-bool SMESH_MeshEditor::QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
-                                  const bool                          the13Diag)
+bool SMESH_MeshEditor::QuadToTri (std::map<int,const SMDS_MeshElement*> & theElems,
+                                  const bool                              the13Diag)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE( "::QuadToTri()" );
 
   SMESHDS_Mesh * aMesh = GetMeshDS();
 
-  set< const SMDS_MeshElement * >::iterator itElem;
+  Handle(Geom_Surface) surface;
+  SMESH_MesherHelper   helper( *GetMesh() );
+
+  map<int, const SMDS_MeshElement * >::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem || elem->GetType() != SMDSAbs_Face )
       continue;
     bool isquad = elem->NbNodes()==4 || elem->NbNodes()==8;
@@ -1010,56 +1089,89 @@ bool SMESH_MeshEditor::QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
         aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
         newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
       }
+      myLastCreatedElems.Append(newElem);
       // put a new triangle on the same shape and add to the same groups
       if ( aShapeId )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
       AddToSameGroups( newElem, elem, aMesh );
     }
 
+    // Quadratic quadrangle
+
     if( elem->NbNodes()==8 && elem->IsQuadratic() ) {
+
+      // get surface elem is on
+      int aShapeId = FindShape( elem );
+      if ( aShapeId != helper.GetSubShapeID() ) {
+        surface.Nullify();
+        TopoDS_Shape shape;
+        if ( aShapeId > 0 )
+          shape = aMesh->IndexToShape( aShapeId );
+        if ( !shape.IsNull() && shape.ShapeType() == TopAbs_FACE ) {
+          TopoDS_Face face = TopoDS::Face( shape );
+          surface = BRep_Tool::Surface( face );
+          if ( !surface.IsNull() )
+            helper.SetSubShape( shape );
+        }
+      }
+
       const SMDS_MeshNode* aNodes [8];
+      const SMDS_MeshNode* inFaceNode = 0;
       SMDS_ElemIteratorPtr itN = elem->nodesIterator();
       int i = 0;
       while ( itN->more() ) {
         aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+        if ( !inFaceNode && helper.GetNodeUVneedInFaceNode() &&
+             aNodes[ i-1 ]->GetPosition()->GetTypeOfPosition() == SMDS_TOP_FACE )
+        {
+          inFaceNode = aNodes[ i-1 ];
+        } 
       }
 
       // find middle point for (0,1,2,3)
-      // and create node in this point;
-      double x=0., y=0., z=0.;
-      for(i=0; i<4; i++) {
-        x += aNodes[i]->X();
-        y += aNodes[i]->Y();
-        z += aNodes[i]->Z();
+      // and create node in this point;
+      gp_XYZ p( 0,0,0 );
+      if ( surface.IsNull() ) {
+        for(i=0; i<4; i++)
+          p += gp_XYZ(aNodes[i]->X(), aNodes[i]->Y(), aNodes[i]->Z() );
+        p /= 4;
       }
-      const SMDS_MeshNode* newN = aMesh->AddNode(x/4, y/4, z/4);
+      else {
+        TopoDS_Face geomFace = TopoDS::Face( helper.GetSubShape() );
+        gp_XY uv( 0,0 );
+        for(i=0; i<4; i++)
+          uv += helper.GetNodeUV( geomFace, aNodes[i], inFaceNode );
+        uv /= 4.;
+        p = surface->Value( uv.X(), uv.Y() ).XYZ();
+      }
+      const SMDS_MeshNode* newN = aMesh->AddNode( p.X(), p.Y(), p.Z() );
+      myLastCreatedNodes.Append(newN);
 
-      int aShapeId = FindShape( elem );
+      // create a new element
       const SMDS_MeshElement* newElem = 0;
+      const SMDS_MeshNode* N[6];
       if ( the13Diag ) {
-        const SMDS_MeshNode* N[6];
         N[0] = aNodes[0];
         N[1] = aNodes[1];
         N[2] = aNodes[2];
         N[3] = aNodes[4];
         N[4] = aNodes[5];
         N[5] = newN;
-        aMesh->ChangeElementNodes( elem, N, 6 );
-        elem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
-                              aNodes[6], aNodes[7], newN );
+        newElem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
+                                 aNodes[6], aNodes[7], newN );
       }
       else {
-        const SMDS_MeshNode* N[6];
         N[0] = aNodes[1];
         N[1] = aNodes[2];
         N[2] = aNodes[3];
         N[3] = aNodes[5];
         N[4] = aNodes[6];
         N[5] = newN;
-        aMesh->ChangeElementNodes( elem, N, 6 );
-        elem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
-                              aNodes[7], aNodes[4], newN );
+        newElem = aMesh->AddFace(aNodes[3], aNodes[0], aNodes[1],
+                                 aNodes[7], aNodes[4], newN );
       }
+      myLastCreatedElems.Append(newElem);
+      aMesh->ChangeElementNodes( elem, N, 6 );
       // put a new triangle on the same shape and add to the same groups
       if ( aShapeId )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
@@ -1173,10 +1285,13 @@ class LinkID_Gen {
 //           fusion is still performed.
 //=======================================================================
 
-bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
+bool SMESH_MeshEditor::TriToQuad (map<int,const SMDS_MeshElement*> &       theElems,
                                   SMESH::Controls::NumericalFunctorPtr theCrit,
                                   const double                         theMaxAngle)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE( "::TriToQuad()" );
 
   if ( !theCrit.get() )
@@ -1199,9 +1314,9 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
   map< const SMDS_MeshElement*, set< NLink > >  mapEl_setLi;
   map< const SMDS_MeshElement*, set< NLink > >::iterator itEL;
 
-  set<const SMDS_MeshElement*>::iterator itElem;
+  map<int,const SMDS_MeshElement*>::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     //if ( !elem || elem->NbNodes() != 3 )
     //  continue;
     if(!elem || elem->GetType() != SMDSAbs_Face ) continue;
@@ -1392,8 +1507,16 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
           mapEl_setLi.erase( tr2 );
           mapLi_listEl.erase( link12 );
           if(tr1->NbNodes()==3) {
-            aMesh->ChangeElementNodes( tr1, n12, 4 );
-            aMesh->RemoveElement( tr2 );
+            if( tr1->GetID() < tr2->GetID() ) {
+              aMesh->ChangeElementNodes( tr1, n12, 4 );
+              myLastCreatedElems.Append(tr1);
+              aMesh->RemoveElement( tr2 );
+            }
+            else {
+              aMesh->ChangeElementNodes( tr2, n12, 4 );
+              myLastCreatedElems.Append(tr2);
+              aMesh->RemoveElement( tr1);
+            }
           }
           else {
             const SMDS_MeshNode* N1 [6];
@@ -1411,8 +1534,16 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
             aNodes[5] = N2[5];
             aNodes[6] = N2[3];
             aNodes[7] = N1[5];
-            GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
-            GetMeshDS()->RemoveElement( tr2 );
+            if( tr1->GetID() < tr2->GetID() ) {
+              GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+              myLastCreatedElems.Append(tr1);
+              GetMeshDS()->RemoveElement( tr2 );
+            }
+            else {
+              GetMeshDS()->ChangeElementNodes( tr2, aNodes, 8 );
+              myLastCreatedElems.Append(tr2);
+              GetMeshDS()->RemoveElement( tr1 );
+            }
             // remove middle node (9)
             GetMeshDS()->RemoveNode( N1[4] );
           }
@@ -1421,8 +1552,16 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
           mapEl_setLi.erase( tr3 );
           mapLi_listEl.erase( link13 );
           if(tr1->NbNodes()==3) {
-            aMesh->ChangeElementNodes( tr1, n13, 4 );
-            aMesh->RemoveElement( tr3 );
+            if( tr1->GetID() < tr2->GetID() ) {
+              aMesh->ChangeElementNodes( tr1, n13, 4 );
+              myLastCreatedElems.Append(tr1);
+              aMesh->RemoveElement( tr3 );
+            }
+            else {
+              aMesh->ChangeElementNodes( tr3, n13, 4 );
+              myLastCreatedElems.Append(tr3);
+              aMesh->RemoveElement( tr1 );
+            }
           }
           else {
             const SMDS_MeshNode* N1 [6];
@@ -1440,8 +1579,16 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
             aNodes[5] = N2[5];
             aNodes[6] = N2[3];
             aNodes[7] = N1[5];
-            GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
-            GetMeshDS()->RemoveElement( tr3 );
+            if( tr1->GetID() < tr2->GetID() ) {
+              GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+              myLastCreatedElems.Append(tr1);
+              GetMeshDS()->RemoveElement( tr3 );
+            }
+            else {
+              GetMeshDS()->ChangeElementNodes( tr3, aNodes, 8 );
+              myLastCreatedElems.Append(tr3);
+              GetMeshDS()->RemoveElement( tr1 );
+            }
             // remove middle node (9)
             GetMeshDS()->RemoveNode( N1[4] );
           }
@@ -1910,13 +2057,16 @@ static bool getClosestUV (Extrema_GenExtPS& projector,
 //           on edges and boundary nodes are always fixed.
 //=======================================================================
 
-void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
+void SMESH_MeshEditor::Smooth (map<int,const SMDS_MeshElement*> & theElems,
                                set<const SMDS_MeshNode*> &    theFixedNodes,
                                const SmoothMethod             theSmoothMethod,
                                const int                      theNbIterations,
                                double                         theTgtAspectRatio,
                                const bool                     the2D)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE((theSmoothMethod==LAPLACIAN ? "LAPLACIAN" : "CENTROIDAL") << "--::Smooth()");
 
   if ( theTgtAspectRatio < 1.0 )
@@ -1931,15 +2081,17 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
   if ( theElems.empty() ) {
     // add all faces to theElems
     SMDS_FaceIteratorPtr fIt = aMesh->facesIterator();
-    while ( fIt->more() )
-      theElems.insert( fIt->next() );
+    while ( fIt->more() ) {
+      const SMDS_MeshElement* face = fIt->next();
+      theElems.insert( make_pair(face->GetID(),face) );
+    }
   }
   // get all face ids theElems are on
   set< int > faceIdSet;
-  set< const SMDS_MeshElement* >::iterator itElem;
+  map<int, const SMDS_MeshElement* >::iterator itElem;
   if ( the2D )
     for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-      int fId = FindShape( *itElem );
+      int fId = FindShape( (*itElem).second );
       // check that corresponding submesh exists and a shape is face
       if (fId &&
           faceIdSet.find( fId ) == faceIdSet.end() &&
@@ -2002,7 +2154,7 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
       if ( faceSubMesh && nbElemOnFace == faceSubMesh->NbElements() )
         break; // all elements found
 
-      const SMDS_MeshElement* elem = (*itElem);
+      const SMDS_MeshElement* elem = (*itElem).second;
       if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() < 3 ||
           ( faceSubMesh && !faceSubMesh->Contains( elem ))) {
         ++itElem;
@@ -2377,6 +2529,9 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
     // move medium nodes of quadratic elements
     if ( isQuadratic )
     {
+      SMESH_MesherHelper helper( *GetMesh() );
+      if ( !face.IsNull() )
+        helper.SetSubShape( face );
       list< const SMDS_MeshElement* >::iterator elemIt = elemsOnFace.begin();
       for ( ; elemIt != elemsOnFace.end(); ++elemIt ) {
         const SMDS_QuadraticFaceOfNodes* QF =
@@ -2388,10 +2543,20 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
           while ( anIter->more() )
             Ns.push_back( anIter->next() );
           Ns.push_back( Ns[0] );
+          double x, y, z;
           for(int i=0; i<QF->NbNodes(); i=i+2) {
-            double x = (Ns[i]->X() + Ns[i+2]->X())/2;
-            double y = (Ns[i]->Y() + Ns[i+2]->Y())/2;
-            double z = (Ns[i]->Z() + Ns[i+2]->Z())/2;
+            if ( !surface.IsNull() ) {
+              gp_XY uv1 = helper.GetNodeUV( face, Ns[i], Ns[i+2] );
+              gp_XY uv2 = helper.GetNodeUV( face, Ns[i+2], Ns[i] );
+              gp_XY uv = ( uv1 + uv2 ) / 2.;
+              gp_Pnt xyz = surface->Value( uv.X(), uv.Y() );
+              x = xyz.X(); y = xyz.Y(); z = xyz.Z(); 
+            }
+            else {
+              x = (Ns[i]->X() + Ns[i+2]->X())/2;
+              y = (Ns[i]->Y() + Ns[i+2]->Y())/2;
+              z = (Ns[i]->Z() + Ns[i+2]->Z())/2;
+            }
             if( fabs( Ns[i+1]->X() - x ) > disttol ||
                 fabs( Ns[i+1]->Y() - y ) > disttol ||
                 fabs( Ns[i+1]->Z() - z ) > disttol ) {
@@ -2446,7 +2611,8 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
                          const SMDS_MeshElement*               elem,
                          const vector<TNodeOfNodeListMapItr> & newNodesItVec,
                          list<const SMDS_MeshElement*>&        newElems,
-                         const int nbSteps)
+                         const int nbSteps,
+                         SMESH_SequenceOfElemPtr& myLastCreatedElems)
 {
   // Loop on elem nodes:
   // find new nodes and detect same nodes indices
@@ -2739,6 +2905,7 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
 
     if ( aNewElem ) {
       newElems.push_back( aNewElem );
+      myLastCreatedElems.Append(aNewElem);
     }
 
     // set new prev nodes
@@ -2757,8 +2924,9 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
                        TNodeOfNodeListMap &          mapNewNodes,
                        TElemOfElemListMap &          newElemsMap,
                        TElemOfVecOfNnlmiMap &        elemNewNodesMap,
-                       set<const SMDS_MeshElement*>& elemSet,
-                       const int nbSteps)
+                       map<int,const SMDS_MeshElement*>& elemSet,
+                       const int nbSteps,
+                       SMESH_SequenceOfElemPtr& myLastCreatedElems)
 {
   ASSERT( newElemsMap.size() == elemNewNodesMap.size() );
 
@@ -2774,7 +2942,7 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
     while ( eIt->more() && nbInitElems < 2 ) {
       el = eIt->next();
       //if ( elemSet.find( eIt->next() ) != elemSet.end() )
-      if ( elemSet.find(el) != elemSet.end() )
+      if ( elemSet.find(el->GetID()) != elemSet.end() )
         nbInitElems++;
     }
     if ( nbInitElems < 2 ) {
@@ -2782,7 +2950,7 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
       if(!NotCreateEdge) {
         vector<TNodeOfNodeListMapItr> newNodesItVec( 1, nList );
         list<const SMDS_MeshElement*> newEdges;
-        sweepElement( aMesh, node, newNodesItVec, newEdges, nbSteps );
+        sweepElement( aMesh, node, newNodesItVec, newEdges, nbSteps, myLastCreatedElems );
       }
     }
   }
@@ -2799,23 +2967,25 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
     if ( elem->GetType() == SMDSAbs_Edge ) {
       if(!elem->IsQuadratic()) {
         // create a ceiling edge
-        aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
-                       vecNewNodes[ 1 ]->second.back() );
+        myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
+                                           vecNewNodes[ 1 ]->second.back()));
       }
       else {
         // create a ceiling edge
-        aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
-                       vecNewNodes[ 1 ]->second.back(),
-                       vecNewNodes[ 2 ]->second.back());
+        myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
+                                           vecNewNodes[ 1 ]->second.back(),
+                                           vecNewNodes[ 2 ]->second.back()));
       }
     }
     if ( elem->GetType() != SMDSAbs_Face )
       continue;
 
+    if(itElem->second.size()==0) continue;
+
     bool hasFreeLinks = false;
 
-    set<const SMDS_MeshElement*> avoidSet;
-    avoidSet.insert( elem );
+    map<int,const SMDS_MeshElement*> avoidSet;
+    avoidSet.insert( make_pair(elem->GetID(),elem) );
 
     set<const SMDS_MeshNode*> aFaceLastNodes;
     int iNode, nbNodes = vecNewNodes.size();
@@ -2832,12 +3002,12 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
           hasFreeLinks = true;
           // make an edge and a ceiling for a new edge
           if ( !aMesh->FindEdge( n1, n2 )) {
-            aMesh->AddEdge( n1, n2 );
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
           }
           n1 = vecNewNodes[ iNode ]->second.back();
           n2 = vecNewNodes[ iNext ]->second.back();
           if ( !aMesh->FindEdge( n1, n2 )) {
-            aMesh->AddEdge( n1, n2 );
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
           }
         }
       }
@@ -2856,13 +3026,13 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
           // find medium node
           const SMDS_MeshNode* n3 = vecNewNodes[ iNode+nbn ]->first;
           if ( !aMesh->FindEdge( n1, n2, n3 )) {
-            aMesh->AddEdge( n1, n2, n3 );
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
           }
           n1 = vecNewNodes[ iNode ]->second.back();
           n2 = vecNewNodes[ iNext ]->second.back();
           n3 = vecNewNodes[ iNode+nbn ]->second.back();
           if ( !aMesh->FindEdge( n1, n2, n3 )) {
-            aMesh->AddEdge( n1, n2, n3 );
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
           }
         }
       }
@@ -2910,19 +3080,19 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
             //switch ( vTool.NbFaceNodes( *ind ) ) {
             switch ( nbn ) {
             case 3:
-              aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ); break;
+              myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] )); break;
             case 4:
-              aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ); break;
+              myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] )); break;
             default:
               {
                 if( (*v)->IsQuadratic() ) {
                   if(nbn==6) {
-                    aMesh->AddFace(nodes[0], nodes[2], nodes[4],
-                                   nodes[1], nodes[3], nodes[5]); break;
+                    myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4],
+                                                       nodes[1], nodes[3], nodes[5])); break;
                   }
                   else {
-                      aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
-                                     nodes[1], nodes[3], nodes[5], nodes[7]);
+                      myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
+                                     nodes[1], nodes[3], nodes[5], nodes[7]));
                       break;
                   }
                 }
@@ -2932,7 +3102,7 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
                   for (int inode = 0; inode < nbPolygonNodes; inode++) {
                     polygon_nodes[inode] = nodes[inode];
                   }
-                  aMesh->AddPolygonalFace(polygon_nodes);
+                  myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
                 }
                 break;
               }
@@ -2958,12 +3128,12 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
       case 3:
         if (!hasFreeLinks ||
             !aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ]))
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
+          myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
         break;
       case 4:
         if (!hasFreeLinks ||
             !aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ]))
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] );
+          myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ));
         break;
       default:
         {
@@ -2972,16 +3142,16 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
               if (!hasFreeLinks ||
                   !aMesh->FindFace(nodes[0], nodes[2], nodes[4],
                                    nodes[1], nodes[3], nodes[5]) ) {
-                aMesh->AddFace(nodes[0], nodes[2], nodes[4],
-                               nodes[1], nodes[3], nodes[5]); break;
+                myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4],
+                                                   nodes[1], nodes[3], nodes[5])); break;
               }
             }
             else { // nbn==8
               if (!hasFreeLinks ||
                   !aMesh->FindFace(nodes[0], nodes[2], nodes[4], nodes[6],
                                    nodes[1], nodes[3], nodes[5], nodes[7]) )
-                aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
-                               nodes[1], nodes[3], nodes[5], nodes[7]);
+                myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
+                                                   nodes[1], nodes[3], nodes[5], nodes[7]));
             }
           }
           else {
@@ -2991,7 +3161,7 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
               polygon_nodes[inode] = nodes[inode];
             }
             if (!hasFreeLinks || !aMesh->FindFace(polygon_nodes))
-              aMesh->AddPolygonalFace(polygon_nodes);
+              myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
           }
         }
         break;
@@ -3005,12 +3175,15 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
+void SMESH_MeshEditor::RotationSweep(map<int,const SMDS_MeshElement*> & theElems,
                                      const gp_Ax1&                  theAxis,
                                      const double                   theAngle,
                                      const int                      theNbSteps,
                                      const double                   theTol)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE( "RotationSweep()");
   gp_Trsf aTrsf;
   aTrsf.SetRotation( theAxis, theAngle );
@@ -3027,9 +3200,9 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
   TElemOfElemListMap newElemsMap;
 
   // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
+  map<int, const SMDS_MeshElement* >::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem )
       continue;
     vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
@@ -3060,6 +3233,7 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
               aTrsf2.Transforms( coord[0], coord[1], coord[2] );
               //aTrsf.Transforms( coord[0], coord[1], coord[2] );
               newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+              myLastCreatedNodes.Append(newNode);
               listNewNodes.push_back( newNode );
               aTrsf2.Transforms( coord[0], coord[1], coord[2] );
               //aTrsf.Transforms( coord[0], coord[1], coord[2] );
@@ -3068,6 +3242,7 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
               aTrsf.Transforms( coord[0], coord[1], coord[2] );
             }
             newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+            myLastCreatedNodes.Append(newNode);
           }
           listNewNodes.push_back( newNode );
         }
@@ -3087,9 +3262,11 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
             for(int i = 0; i<theNbSteps; i++) {
               aTrsf2.Transforms( coord[0], coord[1], coord[2] );
               newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+              myLastCreatedNodes.Append(newNode);
               listNewNodes.push_back( newNode );
               aTrsf2.Transforms( coord[0], coord[1], coord[2] );
               newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+              myLastCreatedNodes.Append(newNode);
               listNewNodes.push_back( newNode );
             }
           }
@@ -3098,10 +3275,10 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], theNbSteps );
+    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], theNbSteps, myLastCreatedElems );
   }
 
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, theNbSteps );
+  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, theNbSteps, myLastCreatedElems );
 
 }
 
@@ -3116,6 +3293,9 @@ const SMDS_MeshNode* SMESH_MeshEditor::CreateNode(const double x,
                                                   const double tolnode,
                                                   SMESH_SequenceOfNode& aNodes)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   gp_Pnt P1(x,y,z);
   SMESHDS_Mesh * aMesh = myMesh->GetMeshDS();
 
@@ -3142,6 +3322,7 @@ const SMDS_MeshNode* SMESH_MeshEditor::CreateNode(const double x,
 
   // create new node and return it
   const SMDS_MeshNode* NewNode = aMesh->AddNode(x,y,z);
+  myLastCreatedNodes.Append(NewNode);
   return NewNode;
 }
 
@@ -3152,7 +3333,7 @@ const SMDS_MeshNode* SMESH_MeshEditor::CreateNode(const double x,
 //=======================================================================
 
 void SMESH_MeshEditor::ExtrusionSweep
-                    (set<const SMDS_MeshElement*> & theElems,
+                    (map<int,const SMDS_MeshElement*> & theElems,
                      const gp_Vec&                  theStep,
                      const int                      theNbSteps,
                      TElemOfElemListMap&            newElemsMap,
@@ -3178,12 +3359,15 @@ void SMESH_MeshEditor::ExtrusionSweep
 //=======================================================================
 
 void SMESH_MeshEditor::ExtrusionSweep
-                    (set<const SMDS_MeshElement*> & theElems,
+                    (map<int,const SMDS_MeshElement*> & theElems,
                      ExtrusParam&                   theParams,
                      TElemOfElemListMap&            newElemsMap,
                      const int                      theFlags,
                      const double                   theTolerance)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   int nbsteps = theParams.mySteps->Length();
@@ -3194,10 +3378,10 @@ void SMESH_MeshEditor::ExtrusionSweep
   //TElemOfVecOfMapNodesMap mapElemNewNodes;
 
   // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
+  map<int, const SMDS_MeshElement* >::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
     // check element type
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem )
       continue;
 
@@ -3237,6 +3421,7 @@ void SMESH_MeshEditor::ExtrusionSweep
             }
             else {
               const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
+              myLastCreatedNodes.Append(newNode);
               listNewNodes.push_back( newNode );
             }
           }
@@ -3252,6 +3437,7 @@ void SMESH_MeshEditor::ExtrusionSweep
           }
           else {
             const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+            myLastCreatedNodes.Append(newNode);
             listNewNodes.push_back( newNode );
             //vecNewNodes[i]=newNode;
           }
@@ -3276,6 +3462,7 @@ void SMESH_MeshEditor::ExtrusionSweep
               }
               else {
                 const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
+                myLastCreatedNodes.Append(newNode);
                 listNewNodes.push_back( newNode );
               }
               coord[0] = coord[0] + theParams.myDir.X()*theParams.mySteps->Value(i+1);
@@ -3288,6 +3475,7 @@ void SMESH_MeshEditor::ExtrusionSweep
               }
               else {
                 const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+                myLastCreatedNodes.Append(newNode);
                 listNewNodes.push_back( newNode );
               }
             }
@@ -3297,10 +3485,11 @@ void SMESH_MeshEditor::ExtrusionSweep
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], nbsteps );
+    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], nbsteps, myLastCreatedElems );
   }
+
   if( theFlags & EXTRUSION_FLAG_BOUNDARY ) {
-    makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps );
+    makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps, myLastCreatedElems );
   }
 }
 
@@ -3354,7 +3543,7 @@ protected:
 //purpose  :
 //=======================================================================
 SMESH_MeshEditor::Extrusion_Error
-  SMESH_MeshEditor::ExtrusionAlongTrack (std::set<const SMDS_MeshElement*> & theElements,
+  SMESH_MeshEditor::ExtrusionAlongTrack (std::map<int,const SMDS_MeshElement*> & theElements,
                                         SMESH_subMesh* theTrack,
                                         const SMDS_MeshNode* theN1,
                                         const bool theHasAngles,
@@ -3362,12 +3551,15 @@ SMESH_MeshEditor::Extrusion_Error
                                         const bool theHasRefPoint,
                                         const gp_Pnt& theRefPoint)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE("SMESH_MeshEditor::ExtrusionAlongTrack")
   int j, aNbTP, aNbE, aNb;
   double aT1, aT2, aT, aAngle, aX, aY, aZ;
   std::list<double> aPrms;
   std::list<double>::iterator aItD;
-  std::set< const SMDS_MeshElement* >::iterator itElem;
+  std::map<int, const SMDS_MeshElement* >::iterator itElem;
 
   Standard_Real aTx1, aTx2, aL2, aTolVec, aTolVec2;
   gp_Pnt aP3D, aV0;
@@ -3507,7 +3699,7 @@ SMESH_MeshEditor::Extrusion_Error
 
     itElem = theElements.begin();
     for ( ; itElem != theElements.end(); itElem++ ) {
-      const SMDS_MeshElement* elem = (*itElem);
+      const SMDS_MeshElement* elem = (*itElem).second;
 
       SMDS_ElemIteratorPtr itN = elem->nodesIterator();
       while ( itN->more() ) {
@@ -3536,7 +3728,7 @@ SMESH_MeshEditor::Extrusion_Error
 
   for ( itElem = theElements.begin(); itElem != theElements.end(); itElem++ ) {
     // check element type
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     aTypeE = elem->GetType();
     if ( !elem || ( aTypeE != SMDSAbs_Face && aTypeE != SMDSAbs_Edge ) )
       continue;
@@ -3615,12 +3807,14 @@ SMESH_MeshEditor::Extrusion_Error
             double y = ( aPN1.Y() + aPN0.Y() )/2.;
             double z = ( aPN1.Z() + aPN0.Z() )/2.;
             const SMDS_MeshNode* newNode = aMesh->AddNode(x,y,z);
+            myLastCreatedNodes.Append(newNode);
             listNewNodes.push_back( newNode );
           }
          aX = aPN1.X();
          aY = aPN1.Y();
          aZ = aPN1.Z();
          const SMDS_MeshNode* newNode = aMesh->AddNode( aX, aY, aZ );
+          myLastCreatedNodes.Append(newNode);
          listNewNodes.push_back( newNode );
 
          aPN0 = aPN1;
@@ -3646,6 +3840,7 @@ SMESH_MeshEditor::Extrusion_Error
               double y = ( N->Y() + P.Y() )/2.;
               double z = ( N->Z() + P.Z() )/2.;
               const SMDS_MeshNode* newN = aMesh->AddNode(x,y,z);
+              myLastCreatedNodes.Append(newN);
               aNodes[2*i] = newN;
               aNodes[2*i+1] = N;
               P = gp_XYZ(N->X(),N->Y(),N->Z());
@@ -3661,12 +3856,14 @@ SMESH_MeshEditor::Extrusion_Error
       newNodesItVec.push_back( nIt );
     }
     // make new elements
+    //sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
+    //              newNodesItVec[0]->second.size(), myLastCreatedElems );
     sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
-                  newNodesItVec[0]->second.size() );
+                  aNbTP-1, myLastCreatedElems );
   }
 
   makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElements,
-            aNbTP-1 );
+             aNbTP-1, myLastCreatedElems );
 
   return EXTR_OK;
 }
@@ -3676,10 +3873,13 @@ SMESH_MeshEditor::Extrusion_Error
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
+void SMESH_MeshEditor::Transform (map<int,const SMDS_MeshElement*> & theElems,
                                   const gp_Trsf&                 theTrsf,
                                   const bool                     theCopy)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   bool needReverse;
   switch ( theTrsf.Form() ) {
   case gp_PntMirror:
@@ -3697,12 +3897,12 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
 
   // elements sharing moved nodes; those of them which have all
   // nodes mirrored but are not in theElems are to be reversed
-  set<const SMDS_MeshElement*> inverseElemSet;
+  map<int,const SMDS_MeshElement*> inverseElemSet;
 
   // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
+  map<int, const SMDS_MeshElement* >::iterator itElem;
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem )
       continue;
 
@@ -3722,8 +3922,10 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
       coord[2] = node->Z();
       theTrsf.Transforms( coord[0], coord[1], coord[2] );
       const SMDS_MeshNode * newNode = node;
-      if ( theCopy )
+      if ( theCopy ) {
         newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+        myLastCreatedNodes.Append(newNode);
+      }
       else {
         aMesh->MoveNode( node, coord[0], coord[1], coord[2] );
         // node position on shape becomes invalid
@@ -3735,8 +3937,10 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
       // keep inverse elements
       if ( !theCopy && needReverse ) {
         SMDS_ElemIteratorPtr invElemIt = node->GetInverseElementIterator();
-        while ( invElemIt->more() )
-          inverseElemSet.insert( invElemIt->next() );
+        while ( invElemIt->more() ) {
+          const SMDS_MeshElement* iel = invElemIt->next(); 
+          inverseElemSet.insert( make_pair(iel->GetID(),iel) );
+        }
       }
     }
   }
@@ -3747,7 +3951,7 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
     return;
 
   if ( !inverseElemSet.empty()) {
-    set<const SMDS_MeshElement*>::iterator invElemIt = inverseElemSet.begin();
+    map<int,const SMDS_MeshElement*>::iterator invElemIt = inverseElemSet.begin();
     for ( ; invElemIt != inverseElemSet.end(); invElemIt++ )
       theElems.insert( *invElemIt );
   }
@@ -3772,7 +3976,7 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
   };
 
   for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
-    const SMDS_MeshElement* elem = (*itElem);
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem || elem->GetType() == SMDSAbs_Node )
       continue;
 
@@ -3805,8 +4009,9 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
             continue; // not all nodes transformed
 
           if ( theCopy ) {
-            aMesh->AddPolygonalFace(poly_nodes);
-          } else {
+            myLastCreatedElems.Append(aMesh->AddPolygonalFace(poly_nodes));
+          }
+          else {
             aMesh->ChangePolygonNodes(elem, poly_nodes);
           }
         }
@@ -3843,8 +4048,9 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
             continue; // not all nodes transformed
 
           if ( theCopy ) {
-            aMesh->AddPolyhedralVolume(poly_nodes, quantities);
-          } else {
+            myLastCreatedElems.Append(aMesh->AddPolyhedralVolume(poly_nodes, quantities));
+          }
+          else {
             aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
           }
         }
@@ -3917,50 +4123,50 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
       switch ( elemType ) {
       case SMDSAbs_Edge:
         if ( nbNodes == 2 )
-          aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] );
+          myLastCreatedElems.Append(aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] ));
         else
-          aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
+          myLastCreatedElems.Append(aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
         break;
       case SMDSAbs_Face:
         if ( nbNodes == 3 )
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] );
+          myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
         else if(nbNodes==4)
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]);
+          myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]));
         else if(nbNodes==6)
-          aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
-                         nodes[4], nodes[5]);
+          myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+                                             nodes[4], nodes[5]));
         else // nbNodes==8
-          aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
-                         nodes[4], nodes[5], nodes[6], nodes[7]);
+          myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+                                             nodes[4], nodes[5], nodes[6], nodes[7]));
         break;
       case SMDSAbs_Volume:
         if ( nbNodes == 4 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ] );
+          myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ] ));
         else if ( nbNodes == 8 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
-                            nodes[ 4 ], nodes[ 5 ], nodes[ 6 ] , nodes[ 7 ]);
+          myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
+                                               nodes[ 4 ], nodes[ 5 ], nodes[ 6 ] , nodes[ 7 ]));
         else if ( nbNodes == 6 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
-                            nodes[ 4 ], nodes[ 5 ]);
+          myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
+                                               nodes[ 4 ], nodes[ 5 ]));
         else if ( nbNodes == 5 )
-          aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
-                            nodes[ 4 ]);
+          myLastCreatedElems.Append(aMesh->AddVolume( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ],
+                                               nodes[ 4 ]));
         else if(nbNodes==10)
-          aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
-                           nodes[5], nodes[6], nodes[7], nodes[8], nodes[9]);
+          myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+                                               nodes[5], nodes[6], nodes[7], nodes[8], nodes[9]));
         else if(nbNodes==13)
-          aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
-                           nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
-                           nodes[10], nodes[11], nodes[12]);
+          myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+                                               nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
+                                               nodes[10], nodes[11], nodes[12]));
         else if(nbNodes==15)
-          aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
-                           nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
-                           nodes[10], nodes[11], nodes[12], nodes[13], nodes[14]);
+          myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+                                               nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
+                                               nodes[10], nodes[11], nodes[12], nodes[13], nodes[14]));
         else // nbNodes==20
-          aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
-                           nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
-                           nodes[10], nodes[11], nodes[12], nodes[13], nodes[14],
-                           nodes[15], nodes[16], nodes[17], nodes[18], nodes[19]);
+          myLastCreatedElems.Append(aMesh->AddVolume(nodes[0], nodes[1], nodes[2], nodes[3], nodes[4],
+                                               nodes[5], nodes[6], nodes[7], nodes[8], nodes[9],
+                                               nodes[10], nodes[11], nodes[12], nodes[13], nodes[14],
+                                               nodes[15], nodes[16], nodes[17], nodes[18], nodes[19]));
         break;
       default:;
       }
@@ -3984,6 +4190,9 @@ void SMESH_MeshEditor::FindCoincidentNodes (set<const SMDS_MeshNode*> & theNodes
                                             const double                theTolerance,
                                             TListOfListOfNodes &        theGroupsOfNodes)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   double tol2 = theTolerance * theTolerance;
 
   list<const SMDS_MeshNode*> nodes;
@@ -4017,7 +4226,10 @@ void SMESH_MeshEditor::FindCoincidentNodes (set<const SMDS_MeshNode*> & theNodes
           groupPtr = & theGroupsOfNodes.back();
           groupPtr->push_back( n1 );
         }
-        groupPtr->push_back( n2 );
+        if(groupPtr->front()>n2)
+          groupPtr->push_front( n2 );
+        else
+          groupPtr->push_back( n2 );
         it2 = nodes.erase( it2 );
         it2--;
       }
@@ -4115,6 +4327,9 @@ int SMESH_MeshEditor::SimplifyFace (const vector<const SMDS_MeshNode *> faceNode
 
 void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   TNodeNodeMap nodeNodeMap; // node to replace - new node
@@ -4202,6 +4417,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
                 poly_nodes[ii] = polygons_nodes[inode];
               }
               SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
+              myLastCreatedElems.Append(newElem);
               if (aShapeId)
                 aMesh->SetMeshElementOnShape(newElem, aShapeId);
             }
@@ -4316,6 +4532,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
                                curNodes[ 4 ],
                                curNodes[ 5 ],
                                curNodes[ iRepl[ 0 ] == 2 ? 1 : 2 ]);
+            myLastCreatedElems.Append(newElem);
             if ( aShapeId )
               aMesh->SetMeshElementOnShape( newElem, aShapeId );
             // 2. : reverse a bottom
@@ -4481,6 +4698,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
                                    curNodes[ind[ 3 ]],
                                    curNodes[ind[ 2 ]],
                                    curNodes[indTop[ 0 ]]);
+                myLastCreatedElems.Append(newElem);
                 if ( aShapeId )
                   aMesh->SetMeshElementOnShape( newElem, aShapeId );
                 isOk = true;
@@ -4546,6 +4764,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
                                                          curNodes[ i2 ],
                                                          curNodes[ i3d ],
                                                          curNodes[ i2t ]);
+            myLastCreatedElems.Append(newElem);
             if ( aShapeId )
               aMesh->SetMeshElementOnShape( newElem, aShapeId );
             isOk = true;
@@ -4642,6 +4861,35 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
 
 }
 
+
+// =================================================
+// class   : SortableElement
+// purpose : auxilary
+// =================================================
+class SortableElement : public set <const SMDS_MeshElement*>
+{
+ public:
+
+  SortableElement( const SMDS_MeshElement* theElem )
+    {
+      myID = theElem->GetID();
+      SMDS_ElemIteratorPtr nodeIt = theElem->nodesIterator();
+      while ( nodeIt->more() )
+        this->insert( nodeIt->next() );
+    }
+
+  const long GetID() const
+    { return myID; }
+
+  void SetID(const long anID) const
+    { myID = anID; }
+
+
+ private:
+  mutable long myID;
+};
+
+
 //=======================================================================
 //function : MergeEqualElements
 //purpose  : Remove all but one of elements built on the same nodes.
@@ -4649,6 +4897,9 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
 
 void SMESH_MeshEditor::MergeEqualElements()
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   SMDS_EdgeIteratorPtr   eIt = aMesh->edgesIterator();
@@ -4659,8 +4910,7 @@ void SMESH_MeshEditor::MergeEqualElements()
 
   for ( int iDim = 1; iDim <= 3; iDim++ ) {
 
-    set< set <const SMDS_MeshElement*> > setOfNodeSet;
-
+    set< SortableElement > setOfNodeSet;
     while ( 1 ) {
       // get next element
       const SMDS_MeshElement* elem = 0;
@@ -4673,16 +4923,21 @@ void SMESH_MeshEditor::MergeEqualElements()
       }
       if ( !elem ) break;
 
-      // get elem nodes
-      set <const SMDS_MeshElement*> nodeSet;
-      SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-      while ( nodeIt->more() )
-        nodeSet.insert( nodeIt->next() );
+      SortableElement SE(elem);
 
       // check uniqueness
-      bool isUnique = setOfNodeSet.insert( nodeSet ).second;
-      if ( !isUnique )
-        rmElemIds.push_back( elem->GetID() );
+      pair< set<SortableElement>::iterator, bool> pp = setOfNodeSet.insert(SE);
+      if( !(pp.second) ) {
+        set<SortableElement>::iterator itSE = pp.first;
+        SortableElement SEold = *itSE;
+        if( SEold.GetID() > SE.GetID() ) {
+          rmElemIds.push_back( SEold.GetID() );
+          (*itSE).SetID(SE.GetID());
+        }
+        else {
+          rmElemIds.push_back( SE.GetID() );
+        }
+      }
     }
   }
 
@@ -4699,17 +4954,17 @@ void SMESH_MeshEditor::MergeEqualElements()
 const SMDS_MeshElement*
   SMESH_MeshEditor::FindFaceInSet(const SMDS_MeshNode*                n1,
                                   const SMDS_MeshNode*                n2,
-                                  const set<const SMDS_MeshElement*>& elemSet,
-                                  const set<const SMDS_MeshElement*>& avoidSet)
+                                  const map<int,const SMDS_MeshElement*>& elemSet,
+                                  const map<int,const SMDS_MeshElement*>& avoidSet)
 
 {
   SMDS_ElemIteratorPtr invElemIt = n1->GetInverseElementIterator();
   while ( invElemIt->more() ) { // loop on inverse elements of n1
     const SMDS_MeshElement* elem = invElemIt->next();
     if (elem->GetType() != SMDSAbs_Face ||
-        avoidSet.find( elem ) != avoidSet.end() )
+        avoidSet.find( elem->GetID() ) != avoidSet.end() )
       continue;
-    if ( !elemSet.empty() && elemSet.find( elem ) == elemSet.end())
+    if ( !elemSet.empty() && elemSet.find( elem->GetID() ) == elemSet.end())
       continue;
     // get face nodes and find index of n1
     int i1, nbN = elem->NbNodes(), iNode = 0;
@@ -4750,6 +5005,7 @@ const SMDS_MeshElement*
         const SMDS_QuadraticFaceOfNodes* F =
           static_cast<const SMDS_QuadraticFaceOfNodes*>(elem);
         // use special nodes iterator
+        iNode = 0;
         SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
         while ( anIter->more() ) {
           faceNodes[iNode] = static_cast<const SMDS_MeshNode*>(anIter->next());
@@ -4780,9 +5036,9 @@ static const SMDS_MeshElement* findAdjacentFace(const SMDS_MeshNode* n1,
                                                 const SMDS_MeshNode* n2,
                                                 const SMDS_MeshElement* elem)
 {
-  set<const SMDS_MeshElement*> elemSet, avoidSet;
+  map<int,const SMDS_MeshElement*> elemSet, avoidSet;
   if ( elem )
-    avoidSet.insert ( elem );
+    avoidSet.insert ( make_pair(elem->GetID(),elem) );
   return SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
 }
 
@@ -4959,6 +5215,9 @@ SMESH_MeshEditor::Sew_Error
                                    const bool           toCreatePolygons,
                                    const bool           toCreatePolyedrs)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE("::SewFreeBorder()");
   Sew_Error aResult = SEW_OK;
 
@@ -5525,6 +5784,7 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
       int aShapeId = FindShape( theFace );
 
       SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
 
@@ -5597,6 +5857,7 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
         newElem = aMesh->AddFace (linkNodes[ i1++ ],
                                   linkNodes[ i2++ ],
                                   nodes[ iSplit < iBestQuad ? i4 : i3 ]);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
     }
@@ -5642,11 +5903,13 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
     if(nbFaceNodes==6) { // quadratic triangle
       SMDS_MeshElement* newElem =
         aMesh->AddFace(nodes[3],nodes[4],nodes[5]);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
       if(theFace->IsMediumNode(nodes[il1])) {
         // create quadrangle
         newElem = aMesh->AddFace(nodes[0],nodes[1],nodes[3],nodes[5]);
+        myLastCreatedElems.Append(newElem);
         if ( aShapeId && newElem )
           aMesh->SetMeshElementOnShape( newElem, aShapeId );
         n1 = 1;
@@ -5656,6 +5919,7 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
       else {
         // create quadrangle
         newElem = aMesh->AddFace(nodes[1],nodes[2],nodes[3],nodes[5]);
+        myLastCreatedElems.Append(newElem);
         if ( aShapeId && newElem )
           aMesh->SetMeshElementOnShape( newElem, aShapeId );
         n1 = 0;
@@ -5666,17 +5930,21 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
     else { // nbFaceNodes==8 - quadratic quadrangle
       SMDS_MeshElement* newElem =
         aMesh->AddFace(nodes[3],nodes[4],nodes[5]);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
       newElem = aMesh->AddFace(nodes[5],nodes[6],nodes[7]);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
       newElem = aMesh->AddFace(nodes[5],nodes[7],nodes[3]);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
       if(theFace->IsMediumNode(nodes[il1])) {
         // create quadrangle
         newElem = aMesh->AddFace(nodes[0],nodes[1],nodes[3],nodes[7]);
+        myLastCreatedElems.Append(newElem);
         if ( aShapeId && newElem )
           aMesh->SetMeshElementOnShape( newElem, aShapeId );
         n1 = 1;
@@ -5686,6 +5954,7 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
       else {
         // create quadrangle
         newElem = aMesh->AddFace(nodes[1],nodes[2],nodes[3],nodes[7]);
+        myLastCreatedElems.Append(newElem);
         if ( aShapeId && newElem )
           aMesh->SetMeshElementOnShape( newElem, aShapeId );
         n1 = 0;
@@ -5705,6 +5974,7 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
     for(i=1; i<nbn; i++) {
       SMDS_MeshElement* newElem =
         aMesh->AddFace(aNodes[i-1],aNodes[i],nodes[n3]);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
     }
@@ -5721,6 +5991,9 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
                                       const SMDS_MeshNode*        theBetweenNode2,
                                       list<const SMDS_MeshNode*>& theNodesToInsert)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   SMDS_ElemIteratorPtr invElemIt = theBetweenNode1->GetInverseElementIterator();
   while (invElemIt->more()) { // loop on inverse elements of theBetweenNode1
     const SMDS_MeshElement* elem = invElemIt->next();
@@ -5789,6 +6062,7 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
 
       SMDS_MeshElement* newElem =
         aMesh->AddPolyhedralVolume(poly_nodes, quantities);
+      myLastCreatedElems.Append(newElem);
       if (aShapeId && newElem)
         aMesh->SetMeshElementOnShape(newElem, aShapeId);
 
@@ -5797,19 +6071,350 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
   }
 }
 
+//=======================================================================
+//function : ConvertElemToQuadratic
+//purpose  :
+//=======================================================================
+void SMESH_MeshEditor::ConvertElemToQuadratic(SMESHDS_SubMesh *theSm,
+                                              SMESH_MesherHelper* theHelper,
+                                             const bool theForce3d)
+{
+  if( !theSm ) return;
+  SMESHDS_Mesh* meshDS = GetMeshDS();
+  SMDS_ElemIteratorPtr ElemItr = theSm->GetElements();
+  while(ElemItr->more())
+  {
+    const SMDS_MeshElement* elem = ElemItr->next();
+    if( !elem ) continue;
+
+    int id = elem->GetID();
+    int nbNodes = elem->NbNodes();
+    vector<const SMDS_MeshNode *> aNds (nbNodes);
+    
+    for(int i = 0; i < nbNodes; i++)
+    {
+      aNds[i] = elem->GetNode(i);
+    }
+
+    SMDSAbs_ElementType aType = elem->GetType();
+    const SMDS_MeshElement* NewElem = 0;
+
+    switch( aType )
+    {
+    case SMDSAbs_Edge :
+    {
+      meshDS->RemoveFreeElement(elem, theSm);  
+      NewElem = theHelper->AddQuadraticEdge(aNds[0], aNds[1], id, theForce3d);
+      break;
+    }
+    case SMDSAbs_Face :
+    {
+      if(elem->IsQuadratic()) continue;
+
+      meshDS->RemoveFreeElement(elem, theSm);
+      switch(nbNodes)
+      {
+      case 3:
+       NewElem = theHelper->AddFace(aNds[0], aNds[1], aNds[2], id, theForce3d);
+       break;
+      case 4:
+       NewElem = theHelper->AddFace(aNds[0], aNds[1], aNds[2], aNds[3], id, theForce3d);
+       break;
+      default:
+       continue;
+      }
+      break;  
+    }
+    case SMDSAbs_Volume :
+    {
+      if( elem->IsQuadratic() ) continue;
+
+      meshDS->RemoveFreeElement(elem, theSm);
+      switch(nbNodes)
+      {
+      case 4:
+       NewElem = theHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3], id, true);
+       break;
+      case 6:
+       NewElem = theHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3], aNds[4], aNds[5], id, true);
+       break;
+      case 8:
+       NewElem = theHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3],
+                                      aNds[4], aNds[5], aNds[6], aNds[7], id, true);
+       break;
+      default:
+       continue;
+      }
+      break;  
+    }
+    default :
+      continue;
+    }
+    if( NewElem )
+    {
+      AddToSameGroups( NewElem, elem, meshDS);
+      theSm->AddElement( NewElem );
+    }
+  }
+}
+
+//=======================================================================
+//function : ConvertToQuadratic
+//purpose  :
+//=======================================================================
+void SMESH_MeshEditor::ConvertToQuadratic(const bool theForce3d)
+{
+  SMESHDS_Mesh* meshDS = GetMeshDS();
+
+  SMESH_MesherHelper* aHelper = new SMESH_MesherHelper(*myMesh);
+  aHelper->SetKeyIsQuadratic( true );
+  const TopoDS_Shape& aShape = meshDS->ShapeToMesh();
+
+  if ( !aShape.IsNull() && GetMesh()->GetSubMeshContaining(aShape) )
+  {
+    SMESH_subMesh *aSubMesh = GetMesh()->GetSubMeshContaining(aShape);
+    
+    const map < int, SMESH_subMesh * >& aMapSM = aSubMesh->DependsOn();
+    map < int, SMESH_subMesh * >::const_iterator itsub;
+    for (itsub = aMapSM.begin(); itsub != aMapSM.end(); itsub++)
+    {
+      SMESHDS_SubMesh *sm = ((*itsub).second)->GetSubMeshDS();
+      aHelper->SetSubShape( (*itsub).second->GetSubShape() );
+      ConvertElemToQuadratic(sm, aHelper, theForce3d);
+    }
+    aHelper->SetSubShape( aSubMesh->GetSubShape() );
+    ConvertElemToQuadratic(aSubMesh->GetSubMeshDS(), aHelper, theForce3d);
+  }
+  else
+  {
+    SMDS_EdgeIteratorPtr aEdgeItr = meshDS->edgesIterator();
+    while(aEdgeItr->more())
+    {
+      const SMDS_MeshEdge* edge = aEdgeItr->next();
+      if(edge)
+      {
+       int id = edge->GetID();
+       const SMDS_MeshNode* n1 = edge->GetNode(0);
+       const SMDS_MeshNode* n2 = edge->GetNode(1);
+
+       RemoveElemFromGroups (edge, meshDS);
+       meshDS->SMDS_Mesh::RemoveFreeElement(edge);
+
+        const SMDS_QuadraticEdge* NewEdge = aHelper->AddQuadraticEdge(n1, n2, id, theForce3d);
+        AddToSameGroups(NewEdge, edge, meshDS);
+      }
+    }
+    SMDS_FaceIteratorPtr aFaceItr = meshDS->facesIterator();
+    while(aFaceItr->more())
+    {
+      const SMDS_MeshFace* face = aFaceItr->next();
+      if(!face || face->IsQuadratic() ) continue;
+      
+      int id = face->GetID();
+      int nbNodes = face->NbNodes();
+      vector<const SMDS_MeshNode *> aNds (nbNodes);
+
+      for(int i = 0; i < nbNodes; i++)
+      {
+       aNds[i] = face->GetNode(i);
+      }
+
+      RemoveElemFromGroups (face, meshDS); 
+      meshDS->SMDS_Mesh::RemoveFreeElement(face);
+
+      SMDS_MeshFace * NewFace = 0;
+      switch(nbNodes)
+      {
+      case 3:
+       NewFace = aHelper->AddFace(aNds[0], aNds[1], aNds[2], id, theForce3d);
+       break;
+      case 4:
+       NewFace = aHelper->AddFace(aNds[0], aNds[1], aNds[2], aNds[3], id, theForce3d);
+       break;
+      default:
+       continue;
+      }
+      AddToSameGroups(NewFace, face, meshDS);
+    }
+    SMDS_VolumeIteratorPtr aVolumeItr = meshDS->volumesIterator();
+    while(aVolumeItr->more())
+    {
+      const SMDS_MeshVolume* volume = aVolumeItr->next();
+      if(!volume || volume->IsQuadratic() ) continue;
+      
+      int id = volume->GetID();
+      int nbNodes = volume->NbNodes();
+      vector<const SMDS_MeshNode *> aNds (nbNodes);
+
+      for(int i = 0; i < nbNodes; i++)
+      {
+       aNds[i] = volume->GetNode(i);
+      }
+
+      RemoveElemFromGroups (volume, meshDS);
+      meshDS->SMDS_Mesh::RemoveFreeElement(volume);
+
+      SMDS_MeshVolume * NewVolume = 0;
+      switch(nbNodes)
+      {
+      case 4:
+       NewVolume = aHelper->AddVolume(aNds[0], aNds[1], aNds[2],
+                                       aNds[3], id, true );
+       break;
+      case 6:
+       NewVolume = aHelper->AddVolume(aNds[0], aNds[1], aNds[2],
+                                       aNds[3], aNds[4], aNds[5], id, true);
+       break;
+      case 8:
+       NewVolume = aHelper->AddVolume(aNds[0], aNds[1], aNds[2], aNds[3],
+                                      aNds[4], aNds[5], aNds[6], aNds[7], id, true);
+       break;
+      default:
+       continue;
+      }
+      AddToSameGroups(NewVolume, volume, meshDS);
+    }
+  }
+  delete aHelper;
+}
+
+//=======================================================================
+//function : RemoveQuadElem
+//purpose  :
+//=======================================================================
+void SMESH_MeshEditor::RemoveQuadElem(SMESHDS_SubMesh *theSm, 
+                                     SMDS_ElemIteratorPtr theItr,
+                                     RemoveQuadNodeMap& theRemoveNodeMap)
+{
+  SMESHDS_Mesh* meshDS = GetMeshDS();
+  while( theItr->more() )
+  {
+    const SMDS_MeshElement* elem = theItr->next();
+    if( elem )
+    {
+      if( !elem->IsQuadratic() )
+        continue;
+      
+      int id = elem->GetID();
+
+      int nbNodes = elem->NbNodes(), idx = 0;
+      vector<const SMDS_MeshNode *> aNds; 
+
+      for(int i = 0; i < nbNodes; i++)
+      {
+       const SMDS_MeshNode* n = elem->GetNode(i);
+
+       if( elem->IsMediumNode( n ) )
+       {
+         ItRemoveQuadNodeMap itRNM = theRemoveNodeMap.find( n );
+         if( itRNM == theRemoveNodeMap.end() )
+         {
+           theRemoveNodeMap.insert(RemoveQuadNodeMap::value_type( n,theSm ));
+         }
+       }
+       else 
+         aNds.push_back( n );
+      }
+
+      idx = aNds.size();
+      if( !idx ) continue;
+      SMDSAbs_ElementType aType = elem->GetType();      
+
+      //remove old quadratic elements
+      meshDS->RemoveFreeElement( elem, theSm );
+
+      SMDS_MeshElement * NewElem = 0;
+      switch(aType)
+      {
+        case SMDSAbs_Edge:
+         NewElem = meshDS->AddEdgeWithID( aNds[0], aNds[1] ,id );
+         break;
+       case SMDSAbs_Face:
+         if( idx==3 ) NewElem = meshDS->AddFaceWithID( aNds[0],
+                                   aNds[1], aNds[2], id );
+         if( idx==4 ) NewElem = meshDS->AddFaceWithID( aNds[0],
+                                  aNds[1], aNds[2], aNds[3],id );
+         break;
+       case SMDSAbs_Volume:
+         if( idx==4 ) NewElem = meshDS->AddVolumeWithID( aNds[0],
+                                  aNds[1], aNds[2], aNds[3], id );
+         if( idx==6 ) NewElem = meshDS->AddVolumeWithID( aNds[0],
+                                  aNds[1], aNds[2], aNds[3],
+                                  aNds[4], aNds[5], id );
+         if( idx==8 ) NewElem = meshDS->AddVolumeWithID(aNds[0],
+                                  aNds[1], aNds[2], aNds[3],
+                                  aNds[4], aNds[5], aNds[6],
+                                  aNds[7] ,id );
+         break;
+       default:
+         break;
+      }
+
+      AddToSameGroups(NewElem, elem, meshDS);
+      if( theSm )
+       theSm->AddElement( NewElem );
+    }
+  }
+}
+//=======================================================================
+//function : ConvertFromQuadratic
+//purpose  :
+//=======================================================================
+bool  SMESH_MeshEditor::ConvertFromQuadratic()
+{
+  SMESHDS_Mesh* meshDS = GetMeshDS();
+  RemoveQuadNodeMap aRemoveNodeMap;
+
+  const TopoDS_Shape& aShape = meshDS->ShapeToMesh();
+
+  if ( !aShape.IsNull() && GetMesh()->GetSubMeshContaining(aShape) )
+  {
+    SMESH_subMesh *aSubMesh = GetMesh()->GetSubMeshContaining(aShape);
+    
+    const map < int, SMESH_subMesh * >& aMapSM = aSubMesh->DependsOn();
+    map < int, SMESH_subMesh * >::const_iterator itsub;
+    for (itsub = aMapSM.begin(); itsub != aMapSM.end(); itsub++)
+    {
+      SMESHDS_SubMesh *sm = ((*itsub).second)->GetSubMeshDS();
+      if( sm )
+       RemoveQuadElem( sm, sm->GetElements(), aRemoveNodeMap );
+    }
+    SMESHDS_SubMesh *Sm = aSubMesh->GetSubMeshDS();
+    if( Sm )
+      RemoveQuadElem( Sm, Sm->GetElements(), aRemoveNodeMap );
+  }
+  else
+  {
+    SMESHDS_SubMesh *aSM = 0;
+    RemoveQuadElem( aSM, meshDS->elementsIterator(), aRemoveNodeMap );
+  }
+
+  //remove all quadratic nodes 
+  ItRemoveQuadNodeMap itRNM = aRemoveNodeMap.begin();
+  for ( ; itRNM != aRemoveNodeMap.end(); itRNM++ ) 
+  {
+    meshDS->RemoveFreeNode( (*itRNM).first, (*itRNM).second  );        
+  }
+
+  return true;
+}
+
 //=======================================================================
 //function : SewSideElements
 //purpose  :
 //=======================================================================
 
 SMESH_MeshEditor::Sew_Error
-  SMESH_MeshEditor::SewSideElements (set<const SMDS_MeshElement*>& theSide1,
-                                     set<const SMDS_MeshElement*>& theSide2,
+  SMESH_MeshEditor::SewSideElements (map<int,const SMDS_MeshElement*>& theSide1,
+                                     map<int,const SMDS_MeshElement*>& theSide2,
                                      const SMDS_MeshNode*          theFirstNode1,
                                      const SMDS_MeshNode*          theFirstNode2,
                                      const SMDS_MeshNode*          theSecondNode1,
                                      const SMDS_MeshNode*          theSecondNode2)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE ("::::SewSideElements()");
   if ( theSide1.size() != theSide2.size() )
     return SEW_DIFF_NB_OF_ELEMENTS;
@@ -5836,49 +6441,53 @@ SMESH_MeshEditor::Sew_Error
   set<const SMDS_MeshElement*> * faceSetPtr[] = { &faceSet1, &faceSet2 };
   set<const SMDS_MeshElement*>  * volSetPtr[] = { &volSet1,  &volSet2  };
   set<const SMDS_MeshNode*>    * nodeSetPtr[] = { &nodeSet1, &nodeSet2 };
-  set<const SMDS_MeshElement*> * elemSetPtr[] = { &theSide1, &theSide2 };
+  map<int,const SMDS_MeshElement*> * elemSetPtr[] = { &theSide1, &theSide2 };
   int iSide, iFace, iNode;
 
   for ( iSide = 0; iSide < 2; iSide++ ) {
     set<const SMDS_MeshNode*>    * nodeSet = nodeSetPtr[ iSide ];
-    set<const SMDS_MeshElement*> * elemSet = elemSetPtr[ iSide ];
+    map<int,const SMDS_MeshElement*> * elemSet = elemSetPtr[ iSide ];
     set<const SMDS_MeshElement*> * faceSet = faceSetPtr[ iSide ];
     set<const SMDS_MeshElement*> * volSet  = volSetPtr [ iSide ];
-    set<const SMDS_MeshElement*>::iterator vIt, eIt;
+    set<const SMDS_MeshElement*>::iterator vIt;
+    map<int,const SMDS_MeshElement*>::iterator eIt;
     set<const SMDS_MeshNode*>::iterator    nIt;
 
-  // -----------------------------------------------------------
-  // 1a. Collect nodes of existing faces
-  //     and build set of face nodes in order to detect missing
-  //     faces corresponing to sides of volumes
-  // -----------------------------------------------------------
+    // check that given nodes belong to given elements
+    const SMDS_MeshNode* n1 = ( iSide == 0 ) ? theFirstNode1 : theFirstNode2;
+    const SMDS_MeshNode* n2 = ( iSide == 0 ) ? theSecondNode1 : theSecondNode2;
+    int firstIndex = -1, secondIndex = -1;
+    for (eIt = elemSet->begin(); eIt != elemSet->end(); eIt++ ) {
+      const SMDS_MeshElement* elem = (*eIt).second;
+      if ( firstIndex  < 0 ) firstIndex  = elem->GetNodeIndex( n1 );
+      if ( secondIndex < 0 ) secondIndex = elem->GetNodeIndex( n2 );
+      if ( firstIndex > -1 && secondIndex > -1 ) break;
+    }
+    if ( firstIndex < 0 || secondIndex < 0 ) {
+      // we can simply return until temporary faces created
+      return (iSide == 0 ) ? SEW_BAD_SIDE1_NODES : SEW_BAD_SIDE2_NODES;
+    }
+
+    // -----------------------------------------------------------
+    // 1a. Collect nodes of existing faces
+    //     and build set of face nodes in order to detect missing
+    //     faces corresponing to sides of volumes
+    // -----------------------------------------------------------
 
     set< set <const SMDS_MeshNode*> > setOfFaceNodeSet;
 
     // loop on the given element of a side
     for (eIt = elemSet->begin(); eIt != elemSet->end(); eIt++ ) {
-      const SMDS_MeshElement* elem = *eIt;
+      //const SMDS_MeshElement* elem = *eIt;
+      const SMDS_MeshElement* elem = (*eIt).second;
       if ( elem->GetType() == SMDSAbs_Face ) {
         faceSet->insert( elem );
         set <const SMDS_MeshNode*> faceNodeSet;
-        if(elem->IsQuadratic()) {
-          const SMDS_QuadraticFaceOfNodes* F =
-            static_cast<const SMDS_QuadraticFaceOfNodes*>(elem);
-          // use special nodes iterator
-          SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
-          while( anIter->more() ) {
-            const SMDS_MeshNode* n = anIter->next();
-            nodeSet->insert( n );
-            faceNodeSet.insert( n );
-          }
-        }
-        else {
-          SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-          while ( nodeIt->more() ) {
-            const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-            nodeSet->insert( n );
-            faceNodeSet.insert( n );
-          }
+        SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
+        while ( nodeIt->more() ) {
+          const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+          nodeSet->insert( n );
+          faceNodeSet.insert( n );
         }
         setOfFaceNodeSet.insert( faceNodeSet );
       }
@@ -5947,10 +6556,7 @@ SMESH_MeshEditor::Sew_Error
               aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] );
             }
             else {
-              vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
-              for (int inode = 0; inode < nbNodes; inode++) {
-                poly_nodes[inode] = fNodes[inode];
-              }
+              vector<const SMDS_MeshNode *> poly_nodes ( fNodes, & fNodes[nbNodes]);
               aFreeFace = aMesh->FindFace(poly_nodes);
             }
           }
@@ -5963,10 +6569,7 @@ SMESH_MeshEditor::Sew_Error
               aFreeFace = aTmpFacesMesh.AddFace( fNodes[0],fNodes[1],fNodes[2],fNodes[3] );
             }
             else {
-              vector<const SMDS_MeshNode *> poly_nodes (nbNodes);
-              for (int inode = 0; inode < nbNodes; inode++) {
-                poly_nodes[inode] = fNodes[inode];
-              }
+              vector<const SMDS_MeshNode *> poly_nodes ( fNodes, & fNodes[nbNodes]);
               aFreeFace = aTmpFacesMesh.AddPolygonalFace(poly_nodes);
             }
           }
@@ -5992,7 +6595,7 @@ SMESH_MeshEditor::Sew_Error
                 const SMDS_MeshElement* e = invElemIt->next();
                 if ( faceSet->find( e ) != faceSet->end() )
                   nbSharedNodes++;
-                if ( elemSet->find( e ) != elemSet->end() )
+                if ( elemSet->find( e->GetID() ) != elemSet->end() )
                   nbSharedNodes++;
               }
             }
@@ -6009,10 +6612,10 @@ SMESH_MeshEditor::Sew_Error
             // choose a face most close to the bary center of the opposite side
             gp_XYZ aBC( 0., 0., 0. );
             set <const SMDS_MeshNode*> addedNodes;
-            set<const SMDS_MeshElement*> * elemSet2 = elemSetPtr[ 1 - iSide ];
+            map<int,const SMDS_MeshElement*> * elemSet2 = elemSetPtr[ 1 - iSide ];
             eIt = elemSet2->begin();
             for ( eIt = elemSet2->begin(); eIt != elemSet2->end(); eIt++ ) {
-              SMDS_ElemIteratorPtr nodeIt = (*eIt)->nodesIterator();
+              SMDS_ElemIteratorPtr nodeIt = (*eIt).second->nodesIterator();
               while ( nodeIt->more() ) { // loop on free face nodes
                 const SMDS_MeshNode* n =
                   static_cast<const SMDS_MeshNode*>( nodeIt->next() );
@@ -6362,7 +6965,7 @@ SMESH_MeshEditor::Sew_Error
         const SMDS_MeshElement* e = invElemIt->next();
         // get a new suite of nodes: make replacement
         int nbReplaced = 0, i = 0, nbNodes = e->NbNodes();
-        const SMDS_MeshNode* nodes[ 8 ];
+        vector< const SMDS_MeshNode*> nodes( nbNodes );
         SMDS_ElemIteratorPtr nIt = e->nodesIterator();
         while ( nIt->more() ) {
           const SMDS_MeshNode* n =
@@ -6378,7 +6981,7 @@ SMESH_MeshEditor::Sew_Error
         //         elemIDsToRemove.push_back( e->GetID() );
         //       else
         if ( nbReplaced )
-          aMesh->ChangeElementNodes( e, nodes, nbNodes );
+          aMesh->ChangeElementNodes( e, & nodes[0], nbNodes );
       }
     }
 
index 3805bfd844b591bbca74480b1f4378944bc9847c..d09fb2de4b5595fb0ad006c2184b80ba36b4c23f 100644 (file)
 #include "SMESH_Mesh.hxx"
 #include "SMESH_Controls.hxx"
 #include "SMESH_SequenceOfNode.hxx"
+#include "SMESH_SequenceOfElemPtr.hxx"
 #include "gp_Dir.hxx"
 #include "TColStd_HSequenceOfReal.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 #include <list>
 #include <map>
@@ -42,6 +44,9 @@
 typedef map<const SMDS_MeshElement*,
             list<const SMDS_MeshElement*> > TElemOfElemListMap;
 
+typedef map<const SMDS_MeshNode*, SMESHDS_SubMesh*> RemoveQuadNodeMap;
+typedef map<const SMDS_MeshNode*, SMESHDS_SubMesh*>::iterator ItRemoveQuadNodeMap;
+
 class SMDS_MeshElement;
 class SMDS_MeshFace;
 class SMDS_MeshNode;
@@ -88,7 +93,7 @@ class SMESH_MeshEditor {
    *                       is still performed; theMaxAngle is mesured in radians.
    * \retval bool - Success or not.
    */
-  bool TriToQuad (std::set<const SMDS_MeshElement*> &  theElems,
+  bool TriToQuad (std::map<int,const SMDS_MeshElement*> & theElems,
                   SMESH::Controls::NumericalFunctorPtr theCriterion,
                   const double                         theMaxAngle);
 
@@ -98,7 +103,7 @@ class SMESH_MeshEditor {
    * \param theCriterion - Is used to choose a diagonal for splitting.
    * \retval bool - Success or not.
    */
-  bool QuadToTri (std::set<const SMDS_MeshElement*> &  theElems,
+  bool QuadToTri (std::map<int,const SMDS_MeshElement*> &  theElems,
                   SMESH::Controls::NumericalFunctorPtr theCriterion);
 
   /*!
@@ -107,7 +112,7 @@ class SMESH_MeshEditor {
    * \param the13Diag - Is used to choose a diagonal for splitting.
    * \retval bool - Success or not.
    */
-  bool QuadToTri (std::set<const SMDS_MeshElement*> & theElems,
+  bool QuadToTri (std::map<int,const SMDS_MeshElement*> & theElems,
                   const bool                          the13Diag);
 
   /*!
@@ -122,7 +127,7 @@ class SMESH_MeshEditor {
 
   enum SmoothMethod { LAPLACIAN = 0, CENTROIDAL };
 
-  void Smooth (std::set<const SMDS_MeshElement*> & theElements,
+  void Smooth (std::map<int,const SMDS_MeshElement*> & theElements,
                std::set<const SMDS_MeshNode*> &    theFixedNodes,
                const SmoothMethod                  theSmoothMethod,
                const int                           theNbIterations,
@@ -138,7 +143,7 @@ class SMESH_MeshEditor {
   // on geometrical faces
 
 
-  void RotationSweep (std::set<const SMDS_MeshElement*> & theElements,
+  void RotationSweep (std::map<int,const SMDS_MeshElement*> & theElements,
                       const gp_Ax1&                       theAxis,
                       const double                        theAngle,
                       const int                           theNbSteps,
@@ -188,7 +193,7 @@ class SMESH_MeshEditor {
    *   EXTRUSION_FLAG_SEW is set
    */
   void ExtrusionSweep
-           (set<const SMDS_MeshElement*> & theElems,
+           (map<int,const SMDS_MeshElement*> & theElems,
             const gp_Vec&                  theStep,
             const int                      theNbSteps,
             TElemOfElemListMap&            newElemsMap,
@@ -205,7 +210,7 @@ class SMESH_MeshEditor {
    *   EXTRUSION_FLAG_SEW is set
    * param theParams - special structure for manage of extrusion
    */
-  void ExtrusionSweep (set<const SMDS_MeshElement*> & theElems,
+  void ExtrusionSweep (map<int,const SMDS_MeshElement*> & theElems,
                        ExtrusParam&                   theParams,
                        TElemOfElemListMap&            newElemsMap,
                        const int                      theFlags,
@@ -225,7 +230,7 @@ class SMESH_MeshEditor {
     EXTR_CANT_GET_TANGENT
     };
   
-  Extrusion_Error ExtrusionAlongTrack (std::set<const SMDS_MeshElement*> & theElements,
+  Extrusion_Error ExtrusionAlongTrack (std::map<int,const SMDS_MeshElement*> & theElements,
                                        SMESH_subMesh*                      theTrackPattern,
                                        const SMDS_MeshNode*                theNodeStart,
                                        const bool                          theHasAngles,
@@ -235,7 +240,7 @@ class SMESH_MeshEditor {
   // Generate new elements by extrusion of theElements along path given by theTrackPattern,
   // theHasAngles are the rotation angles, base point can be given by theRefPoint
 
-  void Transform (std::set<const SMDS_MeshElement*> & theElements,
+  void Transform (std::map<int,const SMDS_MeshElement*> & theElements,
                   const gp_Trsf&                      theTrsf,
                   const bool                          theCopy);
   // Move or copy theElements applying theTrsf to their nodes
@@ -312,8 +317,8 @@ class SMESH_MeshEditor {
   // nodes are inserted.
   // Return false, if sewing failed.
 
-  Sew_Error SewSideElements (std::set<const SMDS_MeshElement*>& theSide1,
-                             std::set<const SMDS_MeshElement*>& theSide2,
+  Sew_Error SewSideElements (std::map<int,const SMDS_MeshElement*>& theSide1,
+                             std::map<int,const SMDS_MeshElement*>& theSide2,
                              const SMDS_MeshNode*               theFirstNode1ToMerge,
                              const SMDS_MeshNode*               theFirstNode2ToMerge,
                              const SMDS_MeshNode*               theSecondNode1ToMerge,
@@ -339,6 +344,15 @@ class SMESH_MeshEditor {
   // insert theNodesToInsert into all volumes, containing link
   // theBetweenNode1 - theBetweenNode2, between theBetweenNode1 and theBetweenNode2.
 
+  void ConvertToQuadratic(const bool theForce3d);
+  //converts all mesh to quadratic one, deletes old elements, replacing 
+  //them with quadratic ones with the same id.
+
+  bool ConvertFromQuadratic();
+  //converts all mesh from quadratic to ordinary ones, deletes old quadratic elements, replacing 
+  //them with ordinary mesh elements with the same id.
+
+
 //  static int SortQuadNodes (const SMDS_Mesh * theMesh,
 //                            int               theNodeIds[] );
 //  // Set 4 nodes of a quadrangle face in a good order.
@@ -355,11 +369,15 @@ class SMESH_MeshEditor {
                                SMESHDS_Mesh *          aMesh);
   // Add elemToAdd to the groups the elemInGroups belongs to
 
+  static void RemoveElemFromGroups (const SMDS_MeshElement* removeelem,
+                                    SMESHDS_Mesh *          aMesh);
+  // remove elemToAdd from the groups 
+
   static const SMDS_MeshElement*
     FindFaceInSet(const SMDS_MeshNode*                     n1,
                   const SMDS_MeshNode*                     n2,
-                  const std::set<const SMDS_MeshElement*>& elemSet,
-                  const std::set<const SMDS_MeshElement*>& avoidSet);
+                  const std::map<int,const SMDS_MeshElement*>& elemSet,
+                  const std::map<int,const SMDS_MeshElement*>& avoidSet);
   // Return a face having linked nodes n1 and n2 and which is
   // - not in avoidSet,
   // - in elemSet provided that !elemSet.empty()
@@ -377,15 +395,42 @@ class SMESH_MeshEditor {
   // Return an index of the shape theElem is on
   // or zero if a shape not found
 
-
   SMESH_Mesh * GetMesh() { return myMesh; }
 
   SMESHDS_Mesh * GetMeshDS() { return myMesh->GetMeshDS(); }
 
- private:
+  SMESH_SequenceOfElemPtr GetLastCreatedNodes() { return myLastCreatedNodes; }
+
+  SMESH_SequenceOfElemPtr GetLastCreatedElems() { return myLastCreatedElems; }
+
+private:
+
+  void ConvertElemToQuadratic(SMESHDS_SubMesh *theSm,
+                              SMESH_MesherHelper* theHelper,
+                             const bool theForce3d);
+  //Auxiliary function for "ConvertToQuadratic" is intended to convert
+  //elements contained in submesh to quadratic
+
+  void RemoveQuadElem( SMESHDS_SubMesh *theSm,
+                      SMDS_ElemIteratorPtr theItr,
+                      RemoveQuadNodeMap& theRemoveNodeMap);
+  //Auxiliary function for "ConvertFromQuadratic" is intended to convert quadratic
+  //element to ordinary and for removing quadratic nodes
+
+private:
 
   SMESH_Mesh * myMesh;
 
+  /*!
+   * Sequence for keeping nodes created during last operation
+   */
+  SMESH_SequenceOfElemPtr myLastCreatedNodes;
+
+  /*!
+   * Sequence for keeping elements created during last operation
+   */
+  SMESH_SequenceOfElemPtr myLastCreatedElems;
+
 };
 
 #endif
diff --git a/src/SMESH/SMESH_MesherHelper.cxx b/src/SMESH/SMESH_MesherHelper.cxx
new file mode 100644 (file)
index 0000000..fbae68b
--- /dev/null
@@ -0,0 +1,698 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+// File:      SMESH_MesherHelper.cxx
+// Created:   15.02.06 15:22:41
+// Author:    Sergey KUUL
+// Copyright: Open CASCADE 2006
+
+
+#include "SMESH_MesherHelper.hxx"
+
+#include "SMDS_FacePosition.hxx" 
+#include "SMDS_EdgePosition.hxx"
+#include "SMESH_MeshEditor.hxx"
+
+#include <BRepAdaptor_Surface.hxx>
+#include <BRepTools.hxx>
+#include <BRep_Tool.hxx>
+#include <Geom2d_Curve.hxx>
+#include <Geom_Curve.hxx>
+#include <Geom_Surface.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopTools_MapOfShape.hxx>
+#include <gp_Pnt2d.hxx>
+#include <ShapeAnalysis.hxx>
+
+//=======================================================================
+//function : CheckShape
+//purpose  : 
+//=======================================================================
+
+bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
+{
+  SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+  // we can create quadratic elements only if all elements
+  // created on subshapes of given shape are quadratic
+  // also we have to fill myNLinkNodeMap
+  myCreateQuadratic = true;
+  mySeamShapeIds.clear();
+  TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
+  SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
+
+  TopExp_Explorer exp( aSh, subType );
+  for (; exp.More() && myCreateQuadratic; exp.Next()) {
+    if ( SMESHDS_SubMesh * subMesh = meshDS->MeshElements( exp.Current() )) {
+      if ( SMDS_ElemIteratorPtr it = subMesh->GetElements() ) {
+        while(it->more()) {
+          const SMDS_MeshElement* e = it->next();
+          if ( e->GetType() != elemType || !e->IsQuadratic() ) {
+            myCreateQuadratic = false;
+            break;
+          }
+          else {
+            // fill NLinkNodeMap
+            switch ( e->NbNodes() ) {
+            case 3:
+              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(2)); break;
+            case 6:
+              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(3));
+              AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(4));
+              AddNLinkNode(e->GetNode(2),e->GetNode(0),e->GetNode(5)); break;
+            case 8:
+              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(4));
+              AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(5));
+              AddNLinkNode(e->GetNode(2),e->GetNode(3),e->GetNode(6));
+              AddNLinkNode(e->GetNode(3),e->GetNode(0),e->GetNode(7));
+              break;
+            default:
+              myCreateQuadratic = false;
+              break;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  if(!myCreateQuadratic) {
+    myNLinkNodeMap.clear();
+  }
+  else {
+    SetSubShape( aSh );
+  }
+  return myCreateQuadratic;
+}
+
+//================================================================================
+/*!
+ * \brief Set geomerty to make elements on
+  * \param aSh - geomertic shape
+ */
+//================================================================================
+
+void SMESH_MesherHelper::SetSubShape(const int aShID)
+{
+  if ( aShID == myShapeID )
+    return;
+  if ( aShID > 1 )
+    SetSubShape( GetMesh()->GetMeshDS()->IndexToShape( aShID ));
+  else
+    SetSubShape( TopoDS_Shape() );
+}
+
+//================================================================================
+/*!
+ * \brief Set geomerty to make elements on
+  * \param aSh - geomertic shape
+ */
+//================================================================================
+
+void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
+{
+  if ( !myShape.IsNull() && !aSh.IsNull() && myShape.IsSame( aSh ))
+    return;
+
+  myShape = aSh;
+  mySeamShapeIds.clear();
+
+  if ( myShape.IsNull() ) {
+    myShapeID  = -1;
+    return;
+  }
+  SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+  myShapeID = meshDS->ShapeToIndex(aSh);
+
+  // treatment of periodic faces
+  if ( aSh.ShapeType() == TopAbs_FACE )
+  {
+    const TopoDS_Face& face = TopoDS::Face( aSh );
+    BRepAdaptor_Surface surface( face );
+    if ( surface.IsUPeriodic() || surface.IsVPeriodic() )
+    {
+      // look for a seam edge
+      for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
+        const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
+        if ( BRep_Tool::IsClosed( edge, face )) {
+          // initialize myPar1, myPar2 and myParIndex
+          if ( mySeamShapeIds.empty() ) {
+            gp_Pnt2d uv1, uv2;
+            BRep_Tool::UVPoints( edge, face, uv1, uv2 );
+            if ( Abs( uv1.Coord(1) - uv2.Coord(1) ) < Abs( uv1.Coord(2) - uv2.Coord(2) ))
+            {
+              myParIndex = 1; // U periodic
+              myPar1 = surface.FirstUParameter();
+              myPar2 = surface.LastUParameter();
+            }
+            else {
+              myParIndex = 2;  // V periodic
+              myPar1 = surface.FirstVParameter();
+              myPar2 = surface.LastVParameter();
+            }
+          }
+          // store shapes indices
+          mySeamShapeIds.insert( meshDS->ShapeToIndex( exp.Current() ));
+          for ( TopExp_Explorer v( exp.Current(), TopAbs_VERTEX ); v.More(); v.Next() )
+            mySeamShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
+        }
+      }
+    }
+  }
+}
+
+//================================================================================
+  /*!
+   * \brief Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
+    * \param F - the face
+    * \retval bool - return true if the face is periodic
+   */
+//================================================================================
+
+bool SMESH_MesherHelper::GetNodeUVneedInFaceNode(const TopoDS_Face& F) const
+{
+  if ( F.IsNull() ) return !mySeamShapeIds.empty();
+
+  if ( !F.IsNull() && !myShape.IsNull() && myShape.IsSame( F ))
+    return !mySeamShapeIds.empty();
+
+  Handle(Geom_Surface) aSurface = BRep_Tool::Surface( F );
+  if ( !aSurface.IsNull() )
+    return ( aSurface->IsUPeriodic() || aSurface->IsVPeriodic() );
+
+  return false;
+}
+
+//=======================================================================
+//function : IsMedium
+//purpose  : 
+//=======================================================================
+
+bool SMESH_MesherHelper::IsMedium(const SMDS_MeshNode*      node,
+                                 const SMDSAbs_ElementType typeToCheck)
+{
+  return SMESH_MeshEditor::IsMedium( node, typeToCheck );
+}
+
+//=======================================================================
+//function : AddNLinkNode
+//purpose  : 
+//=======================================================================
+/*!
+ * Auxilary function for filling myNLinkNodeMap
+ */
+void SMESH_MesherHelper::AddNLinkNode(const SMDS_MeshNode* n1,
+                                     const SMDS_MeshNode* n2,
+                                     const SMDS_MeshNode* n12)
+{
+  NLink link( n1, n2 );
+  if ( n1 > n2 ) link = NLink( n2, n1 );
+  // add new record to map
+  myNLinkNodeMap.insert( make_pair(link,n12));
+}
+
+//=======================================================================
+/*!
+ * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
+ * \param uv1 - UV on the seam
+ * \param uv2 - UV within a face
+ * \retval gp_Pnt2d - selected UV
+ */
+//=======================================================================
+
+gp_Pnt2d SMESH_MesherHelper::GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const
+{
+  double p1 = uv1.Coord( myParIndex );
+  double p2 = uv2.Coord( myParIndex );
+  double p3 = ( Abs( p1 - myPar1 ) < Abs( p1 - myPar2 )) ? myPar2 : myPar1;
+  if ( Abs( p2 - p1 ) > Abs( p2 - p3 ))
+    p1 = p3;
+  gp_Pnt2d result = uv1;
+  result.SetCoord( myParIndex, p1 );
+  return result;
+}
+
+//=======================================================================
+/*!
+ * \brief Return node UV on face
+ * \param F - the face
+ * \param n - the node
+ * \param n2 - a node of element being created located inside a face
+ * \retval gp_XY - resulting UV
+ * 
+ * Auxilary function called form GetMediumNode()
+ */
+//=======================================================================
+
+gp_XY SMESH_MesherHelper::GetNodeUV(const TopoDS_Face&   F,
+                                    const SMDS_MeshNode* n,
+                                    const SMDS_MeshNode* n2)
+{
+  gp_Pnt2d uv;
+  const SMDS_PositionPtr Pos = n->GetPosition();
+  if(Pos->GetTypeOfPosition()==SMDS_TOP_FACE) {
+    // node has position on face
+    const SMDS_FacePosition* fpos =
+      static_cast<const SMDS_FacePosition*>(n->GetPosition().get());
+    uv = gp_Pnt2d(fpos->GetUParameter(),fpos->GetVParameter());
+  }
+  else if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
+    // node has position on edge => it is needed to find
+    // corresponding edge from face, get pcurve for this
+    // edge and recieve value from this pcurve
+    const SMDS_EdgePosition* epos =
+      static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
+    SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+    int edgeID = Pos->GetShapeId();
+    TopoDS_Edge E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
+    double f, l;
+    TopLoc_Location loc;
+    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
+    uv = C2d->Value( epos->GetUParameter() );
+    // for a node on a seam edge select one of UVs on 2 pcurves
+    if ( n2 && mySeamShapeIds.find( edgeID ) != mySeamShapeIds.end() )
+      uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
+  }
+  else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
+    SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+    int vertexID = n->GetPosition()->GetShapeId();
+    const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
+    uv = BRep_Tool::Parameters( V, F );
+    if ( n2 && mySeamShapeIds.find( vertexID ) != mySeamShapeIds.end() )
+      uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
+  }
+  return uv.XY();
+}
+
+//=======================================================================
+/*!
+ * \brief Return node U on edge
+ * \param E - the Edge
+ * \param n - the node
+ * \retval double - resulting U
+ * 
+ * Auxilary function called form GetMediumNode()
+ */
+//=======================================================================
+
+double SMESH_MesherHelper::GetNodeU(const TopoDS_Edge&   E,
+                                    const SMDS_MeshNode* n)
+{
+  double param = 0;
+  const SMDS_PositionPtr Pos = n->GetPosition();
+  if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
+    const SMDS_EdgePosition* epos =
+      static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
+    param =  epos->GetUParameter();
+  }
+  else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
+    SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+    int vertexID = n->GetPosition()->GetShapeId();
+    const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
+    param =  BRep_Tool::Parameter( V, E );
+  }
+  return param;
+}
+
+//=======================================================================
+//function : GetMediumNode
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for search or creation medium node
+ */
+const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1,
+                                                       const SMDS_MeshNode* n2,
+                                                       bool force3d)
+{
+  TopAbs_ShapeEnum shapeType = myShape.IsNull() ? TopAbs_SHAPE : myShape.ShapeType();
+
+  NLink link(( n1 < n2 ? n1 : n2 ), ( n1 < n2 ? n2 : n1 ));
+  ItNLinkNode itLN = myNLinkNodeMap.find( link );
+  if ( itLN != myNLinkNodeMap.end() ) {
+    return (*itLN).second;
+  }
+  else {
+    // create medium node
+    SMDS_MeshNode* n12;
+    SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
+    int faceID = -1, edgeID = -1;
+    const SMDS_PositionPtr Pos1 = n1->GetPosition();
+    const SMDS_PositionPtr Pos2 = n2->GetPosition();
+  
+    if( myShape.IsNull() )
+    {
+      if( Pos1->GetTypeOfPosition()==SMDS_TOP_FACE ) {
+        faceID = Pos1->GetShapeId();
+      }
+      else if( Pos2->GetTypeOfPosition()==SMDS_TOP_FACE ) {
+        faceID = Pos2->GetShapeId();
+      }
+
+      if( Pos1->GetTypeOfPosition()==SMDS_TOP_EDGE ) {
+        edgeID = Pos1->GetShapeId();
+      }
+      if( Pos2->GetTypeOfPosition()==SMDS_TOP_EDGE ) {
+        edgeID = Pos2->GetShapeId();
+      }
+    }
+
+    if(!force3d) {
+      // we try to create medium node using UV parameters of
+      // nodes, else - medium between corresponding 3d points
+      if(faceID>-1 || shapeType == TopAbs_FACE) {
+       // obtaining a face and 2d points for nodes
+       TopoDS_Face F;
+       if( myShape.IsNull() )
+          F = TopoDS::Face(meshDS->IndexToShape(faceID));
+       else {
+          F = TopoDS::Face(myShape);
+          faceID = myShapeID;
+        }
+
+       gp_XY p1 = GetNodeUV(F,n1,n2);
+        gp_XY p2 = GetNodeUV(F,n2,n1);
+
+       //checking if surface is periodic
+       Handle(Geom_Surface) S = BRep_Tool::Surface(F);
+       Standard_Real UF,UL,VF,VL;
+       S->Bounds(UF,UL,VF,VL);
+
+       Standard_Real u,v;
+       Standard_Boolean isUPeriodic = S->IsUPeriodic();
+       if(isUPeriodic) {
+         Standard_Real UPeriod = S->UPeriod();
+         Standard_Real p2x = p2.X()+ShapeAnalysis::AdjustByPeriod(p2.X(),p1.X(),UPeriod);
+         Standard_Real pmid = (p1.X()+p2x)/2.;
+         u = pmid+ShapeAnalysis::AdjustToPeriod(pmid,UF,UL);
+       }
+       else 
+         u= (p1.X()+p2.X())/2.;
+
+       Standard_Boolean isVPeriodic = S->IsVPeriodic();
+       if(isVPeriodic) {
+         Standard_Real VPeriod = S->VPeriod();
+         Standard_Real p2y = p2.Y()+ShapeAnalysis::AdjustByPeriod(p2.Y(),p1.Y(),VPeriod);
+         Standard_Real pmid = (p1.Y()+p2y)/2.;
+         v = pmid+ShapeAnalysis::AdjustToPeriod(pmid,VF,VL);
+       }
+       else
+         v = (p1.Y()+p2.Y())/2.;
+
+        gp_Pnt P = S->Value(u, v);
+        n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
+        meshDS->SetNodeOnFace(n12, faceID, u, v);
+        myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+        return n12;
+      }
+      if (edgeID>-1 || shapeType == TopAbs_EDGE) {
+
+       TopoDS_Edge E;
+       if( myShape.IsNull() )
+          E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
+       else {
+          E = TopoDS::Edge(myShape);
+          edgeID = myShapeID;
+        }
+
+       double p1 = GetNodeU(E,n1);
+       double p2 = GetNodeU(E,n2);
+
+       double f,l;
+       Handle(Geom_Curve) C = BRep_Tool::Curve(E, f, l);
+       if(!C.IsNull()) {
+
+         Standard_Boolean isPeriodic = C->IsPeriodic();
+         double u;
+         if(isPeriodic) {
+           Standard_Real Period = C->Period();
+           Standard_Real p = p2+ShapeAnalysis::AdjustByPeriod(p2,p1,Period);
+           Standard_Real pmid = (p1+p)/2.;
+           u = pmid+ShapeAnalysis::AdjustToPeriod(pmid,C->FirstParameter(),C->LastParameter());
+         }
+         else
+           u = (p1+p2)/2.;
+
+          gp_Pnt P = C->Value( u );
+          n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
+          meshDS->SetNodeOnEdge(n12, edgeID, u);
+          myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+          return n12;
+       }
+      }
+    }
+    // 3d variant
+    double x = ( n1->X() + n2->X() )/2.;
+    double y = ( n1->Y() + n2->Y() )/2.;
+    double z = ( n1->Z() + n2->Z() )/2.;
+    n12 = meshDS->AddNode(x,y,z);
+    if(edgeID>-1)
+        meshDS->SetNodeOnEdge(n12, edgeID);
+    else if(faceID>-1)
+        meshDS->SetNodeOnFace(n12, faceID);
+    else
+      meshDS->SetNodeInVolume(n12, myShapeID);
+    myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
+    return n12;
+  }
+}
+
+//=======================================================================
+//function : AddQuadraticEdge
+//purpose  : 
+//=======================================================================
+/**
+ * Special function for creation quadratic edge
+ */
+SMDS_QuadraticEdge* SMESH_MesherHelper::AddQuadraticEdge(const SMDS_MeshNode* n1,
+                                                         const SMDS_MeshNode* n2,
+                                                         const int id,
+                                                        const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  
+  myCreateQuadratic = true;
+
+  if(id)
+    return  (SMDS_QuadraticEdge*)(meshDS->AddEdgeWithID(n1, n2, n12, id));
+  else
+    return  (SMDS_QuadraticEdge*)(meshDS->AddEdge(n1, n2, n12));
+}
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic triangle
+ */
+SMDS_MeshFace* SMESH_MesherHelper::AddFace(const SMDS_MeshNode* n1,
+                                           const SMDS_MeshNode* n2,
+                                           const SMDS_MeshNode* n3,
+                                           const int id,
+                                          const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return  meshDS->AddFaceWithID(n1, n2, n3, id);
+    else
+      return  meshDS->AddFace(n1, n2, n3);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+  if(id)
+    return  meshDS->AddFaceWithID(n1, n2, n3, n12, n23, n31, id);
+  else
+    return  meshDS->AddFace(n1, n2, n3, n12, n23, n31);
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic quadrangle
+ */
+SMDS_MeshFace* SMESH_MesherHelper::AddFace(const SMDS_MeshNode* n1,
+                                           const SMDS_MeshNode* n2,
+                                           const SMDS_MeshNode* n3,
+                                           const SMDS_MeshNode* n4,
+                                           const int id,
+                                          const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return  meshDS->AddFaceWithID(n1, n2, n3, n4, id);
+    else
+      return  meshDS->AddFace(n1, n2, n3, n4);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+  const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,force3d);
+
+  if(id)
+    return  meshDS->AddFaceWithID(n1, n2, n3, n4, n12, n23, n34, n41, id);
+  else
+    return  meshDS->AddFace(n1, n2, n3, n4, n12, n23, n34, n41);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+                                               const SMDS_MeshNode* n2,
+                                               const SMDS_MeshNode* n3,
+                                               const SMDS_MeshNode* n4,
+                                               const SMDS_MeshNode* n5,
+                                               const SMDS_MeshNode* n6,
+                                               const int id,
+                                              const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, id);
+    else
+      return meshDS->AddVolume(n1, n2, n3, n4, n5, n6);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+  const SMDS_MeshNode* n45 = GetMediumNode(n4,n5,force3d);
+  const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,force3d);
+  const SMDS_MeshNode* n64 = GetMediumNode(n6,n4,force3d);
+
+  const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,force3d);
+  const SMDS_MeshNode* n25 = GetMediumNode(n2,n5,force3d);
+  const SMDS_MeshNode* n36 = GetMediumNode(n3,n6,force3d);
+
+  if(id)
+    return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, 
+                                   n12, n23, n31, n45, n56, n64, n14, n25, n36, id);
+  else
+    return meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
+                             n12, n23, n31, n45, n56, n64, n14, n25, n36);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+                                               const SMDS_MeshNode* n2,
+                                               const SMDS_MeshNode* n3,
+                                               const SMDS_MeshNode* n4,
+                                               const int id, 
+                                              const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return meshDS->AddVolumeWithID(n1, n2, n3, n4, id);
+    else
+      return meshDS->AddVolume(n1, n2, n3, n4);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,force3d);
+
+  const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,force3d);
+  const SMDS_MeshNode* n24 = GetMediumNode(n2,n4,force3d);
+  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+
+  if(id)
+    return meshDS->AddVolumeWithID(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34, id);
+  else
+    return meshDS->AddVolume(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+/*!
+ * Special function for creation quadratic volume
+ */
+SMDS_MeshVolume* SMESH_MesherHelper::AddVolume(const SMDS_MeshNode* n1,
+                                               const SMDS_MeshNode* n2,
+                                               const SMDS_MeshNode* n3,
+                                               const SMDS_MeshNode* n4,
+                                               const SMDS_MeshNode* n5,
+                                               const SMDS_MeshNode* n6,
+                                               const SMDS_MeshNode* n7,
+                                               const SMDS_MeshNode* n8,
+                                               const int id,
+                                              const bool force3d)
+{
+  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
+  if(!myCreateQuadratic) {
+    if(id)
+      return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, id);
+    else
+      return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
+  }
+
+  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,force3d);
+  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,force3d);
+  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,force3d);
+  const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,force3d);
+
+  const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,force3d);
+  const SMDS_MeshNode* n67 = GetMediumNode(n6,n7,force3d);
+  const SMDS_MeshNode* n78 = GetMediumNode(n7,n8,force3d);
+  const SMDS_MeshNode* n85 = GetMediumNode(n8,n5,force3d);
+
+  const SMDS_MeshNode* n15 = GetMediumNode(n1,n5,force3d);
+  const SMDS_MeshNode* n26 = GetMediumNode(n2,n6,force3d);
+  const SMDS_MeshNode* n37 = GetMediumNode(n3,n7,force3d);
+  const SMDS_MeshNode* n48 = GetMediumNode(n4,n8,force3d);
+
+  if(id)
+    return meshDS->AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8,
+                                   n12, n23, n34, n41, n56, n67,
+                                   n78, n85, n15, n26, n37, n48, id);
+  else
+    return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8,
+                             n12, n23, n34, n41, n56, n67,
+                             n78, n85, n15, n26, n37, n48);
+}
+
+
diff --git a/src/SMESH/SMESH_MesherHelper.hxx b/src/SMESH/SMESH_MesherHelper.hxx
new file mode 100644 (file)
index 0000000..e6ec365
--- /dev/null
@@ -0,0 +1,265 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+// File:      SMESH_MesherHelper.hxx
+// Created:   15.02.06 14:48:09
+// Author:    Sergey KUUL
+// Copyright: Open CASCADE 2006
+
+
+#ifndef SMESH_MesherHelper_HeaderFile
+#define SMESH_MesherHelper_HeaderFile
+
+#include <SMESH_Mesh.hxx>
+#include <TopoDS_Shape.hxx>
+#include <SMDS_MeshNode.hxx>
+#include <TopoDS_Face.hxx>
+#include <gp_Pnt2d.hxx>
+#include <SMDS_QuadraticEdge.hxx>
+
+#include <map>
+
+typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> NLink;
+typedef map<NLink, const SMDS_MeshNode*> NLinkNodeMap;
+typedef map<NLink, const SMDS_MeshNode*>::iterator ItNLinkNode;
+
+/*!
+ * \brief It helps meshers to add elements
+ *
+ * It allow meshers not to care about creation of medium nodes
+ * when filling a quadratic mesh. Helper does it itself.
+ * It defines degree of elements to create when IsQuadraticSubMesh()
+ * is called.
+ */
+
+class SMESH_MesherHelper
+{
+ public:
+  // ---------- PUBLIC METHODS ----------
+
+  /// Empty constructor
+  SMESH_MesherHelper(SMESH_Mesh& theMesh)
+    { myMesh=(void *)&theMesh; myCreateQuadratic = false; myShapeID=-1;}
+
+  SMESH_Mesh* GetMesh() const
+    { return (SMESH_Mesh*)myMesh; }
+    
+  /// Copy constructor
+  //Standard_EXPORT SMESH_MesherHelper (const SMESH_MesherHelper& theOther);
+
+  /// Destructor
+  //Standard_EXPORT virtual ~SMESH_MesherHelper ();
+
+  /**
+   * Check submesh for given shape
+   * Check if all elements on this shape
+   * are quadratic, if yes => set true to myCreateQuadratic 
+   * (default value is false). Also fill myNLinkNodeMap
+   * Returns myCreateQuadratic
+   */
+  bool IsQuadraticSubMesh(const TopoDS_Shape& theShape);
+
+  /*!
+   * \brief Returns true if given node is medium
+    * \param n - node to check
+    * \param typeToCheck - type of elements containing the node to ask about node status
+    * \retval bool - check result
+   */
+  static bool IsMedium(const SMDS_MeshNode*      node,
+                       const SMDSAbs_ElementType typeToCheck = SMDSAbs_All);
+
+  /**
+   * Auxilary function for filling myNLinkNodeMap
+   */
+  void AddNLinkNode(const SMDS_MeshNode* n1,
+                    const SMDS_MeshNode* n2,
+                    const SMDS_MeshNode* n12);
+
+  /**
+   * Auxilary function for filling myNLinkNodeMap
+   */
+  void AddNLinkNodeMap(const NLinkNodeMap& aMap)
+    { myNLinkNodeMap.insert(aMap.begin(), aMap.end()); }
+
+  /**
+   * Returns myNLinkNodeMap
+   */
+  const NLinkNodeMap& GetNLinkNodeMap() { return myNLinkNodeMap; }
+
+  /*!
+   * \brief Return node UV on face
+    * \param F - the face
+    * \param n - the node
+    * \param inFaceNode - a node of element being created located inside a face
+    * \retval gp_XY - resulting UV
+   * 
+   * Auxilary function called form GetMediumNode()
+   */
+  gp_XY GetNodeUV(const TopoDS_Face&   F,
+                  const SMDS_MeshNode* n,
+                  const SMDS_MeshNode* inFaceNode=0);
+
+  /*!
+   * \brief Check if inFaceNode argument is necessary for call GetNodeUV(F,..)
+    * \param F - the face
+    * \retval bool - return true if the face is periodic
+    *
+    * if F is Null, answer about subshape set through IsQuadraticSubMesh() or
+    * SetSubShape()
+   */
+  bool GetNodeUVneedInFaceNode(const TopoDS_Face& F = TopoDS_Face()) const;
+
+  /*!
+   * \brief Return  U on edge
+    * \param F - the edge
+    * \param n - the node
+    * \retval double - resulting U
+   * 
+   * Auxilary function called from GetMediumNode()
+   */
+  double GetNodeU(const TopoDS_Edge&  E,
+                  const SMDS_MeshNode* n);
+
+
+  /**
+   * Special function for search or creation medium node
+   */
+  const SMDS_MeshNode* GetMediumNode(const SMDS_MeshNode* n1,
+                                     const SMDS_MeshNode* n2,
+                                     const bool force3d);
+
+  /**
+   * Special function for creation quadratic edge
+   */
+  SMDS_QuadraticEdge* AddQuadraticEdge(const SMDS_MeshNode* n1,
+                                       const SMDS_MeshNode* n2,
+                                       const int id = 0, 
+                                      const bool force3d = true);
+
+  /**
+   * Special function for creation quadratic triangle
+   */
+  SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
+                         const SMDS_MeshNode* n2,
+                         const SMDS_MeshNode* n3,
+                         const int id=0, 
+                        const bool force3d = false);
+
+  /**
+   * Special function for creation quadratic quadrangle
+   */
+  SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
+                         const SMDS_MeshNode* n2,
+                         const SMDS_MeshNode* n3,
+                         const SMDS_MeshNode* n4,
+                         const int id = 0,
+                        const bool force3d = false);
+
+  /**
+   * Special function for creation quadratic tetraahedron
+   */
+  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+                             const SMDS_MeshNode* n2,
+                             const SMDS_MeshNode* n3,
+                             const SMDS_MeshNode* n4,
+                             const int id = 0,
+                            const bool force3d = true);
+
+  /**
+   * Special function for creation quadratic pentahedron
+   */
+  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+                             const SMDS_MeshNode* n2,
+                             const SMDS_MeshNode* n3,
+                             const SMDS_MeshNode* n4,
+                             const SMDS_MeshNode* n5,
+                             const SMDS_MeshNode* n6,
+                             const int id = 0, 
+                            const bool force3d = true);
+
+  /**
+   * Special function for creation quadratic hexahedron
+   */
+  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
+                             const SMDS_MeshNode* n2,
+                             const SMDS_MeshNode* n3,
+                             const SMDS_MeshNode* n4,
+                             const SMDS_MeshNode* n5,
+                             const SMDS_MeshNode* n6,
+                             const SMDS_MeshNode* n7,
+                             const SMDS_MeshNode* n8,
+                             const int id = 0, 
+                            bool force3d = true);
+
+  
+  /*!
+   * \brief Set order of elements to create
+    * \param theBuildQuadratic - to build quadratic or not
+   * 
+   * To be used for quadratic elements creation without preceding
+   * IsQuadraticSubMesh() or AddQuadraticEdge() call
+   */
+  void SetKeyIsQuadratic(const bool theBuildQuadratic)
+  { myCreateQuadratic = theBuildQuadratic; }
+
+  /*!
+   * \brief Set shape to make elements on
+    * \param subShape, subShapeID - shape or its ID (==SMESHDS_Mesh::ShapeToIndex(shape))
+   */
+  void SetSubShape(const int           subShapeID);
+  void SetSubShape(const TopoDS_Shape& subShape);
+
+  /*!
+   * \brief Return shape or its ID, on which created elements are added
+    * \retval TopoDS_Shape, int - shape or its ID
+   */
+  int          GetSubShapeID() { return myShapeID; }
+  TopoDS_Shape GetSubShape()   { return myShape; }
+
+ protected:
+
+  /*!
+   * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
+    * \param uv1 - UV on the seam
+    * \param uv2 - UV within a face
+    * \retval gp_Pnt2d - selected UV
+   */
+  gp_Pnt2d GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
+
+ private:
+
+  void* myMesh;
+
+  int myShapeID;
+
+  // Key for creation quadratic faces
+  bool myCreateQuadratic;
+
+  // special map for using during creation quadratic faces
+  NLinkNodeMap myNLinkNodeMap;
+
+  std::set< int > mySeamShapeIds;
+  double          myPar1, myPar2; // bounds of a closed periodic surface
+  int             myParIndex;     // bounds' index (1-U, 2-V)
+  TopoDS_Shape    myShape;
+
+};
+
+
+#endif
index f6090b1a839a8c70b3fa378f4a9acbc30cd90eb0..b5d732f5887f79b20e6f59f9185c80a4347292e0 100644 (file)
@@ -509,34 +509,53 @@ static gp_XY project (const SMDS_MeshNode* theNode,
 }
 
 //=======================================================================
-//function : isMeshBoundToShape
-//purpose  : return true if all 2d elements are bound to shape
+//function : areNodesBound
+//purpose  : true if all nodes of faces are bound to shapes
 //=======================================================================
 
-static bool isMeshBoundToShape(SMESH_Mesh* theMesh)
+template <class TFaceIterator> bool areNodesBound( TFaceIterator & faceItr )
 {
-  // check faces binding
-  SMESHDS_Mesh * aMeshDS = theMesh->GetMeshDS();
-  SMESHDS_SubMesh * aMainSubMesh = aMeshDS->MeshElements( aMeshDS->ShapeToMesh() );
-  if ( aMeshDS->NbFaces() != aMainSubMesh->NbElements() )
-    return false;
-
-  // check face nodes binding
-  SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
-  while ( fIt->more() )
+  while ( faceItr->more() )
   {
-    SMDS_ElemIteratorPtr nIt = fIt->next()->nodesIterator();
+    SMDS_ElemIteratorPtr nIt = faceItr->next()->nodesIterator();
     while ( nIt->more() )
     {
       const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nIt->next() );
       SMDS_PositionPtr pos = node->GetPosition();
-      if ( !pos || !pos->GetShapeId() )
+      if ( !pos || !pos->GetShapeId() ) {
         return false;
+      }
     }
   }
   return true;
 }
 
+//=======================================================================
+//function : isMeshBoundToShape
+//purpose  : return true if all 2d elements are bound to shape
+//           if aFaceSubmesh != NULL, then check faces bound to it
+//           else check all faces in aMeshDS
+//=======================================================================
+
+static bool isMeshBoundToShape(SMESHDS_Mesh *     aMeshDS,
+                               SMESHDS_SubMesh *  aFaceSubmesh,
+                               const bool         isMainShape)
+{
+  if ( isMainShape ) {
+    // check that all faces are bound to aFaceSubmesh
+    if ( aMeshDS->NbFaces() != aFaceSubmesh->NbElements() )
+      return false;
+  }
+
+  // check face nodes binding
+  if ( aFaceSubmesh ) {
+    SMDS_ElemIteratorPtr fIt = aFaceSubmesh->GetElements();
+    return areNodesBound( fIt );
+  }
+  SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
+  return areNodesBound( fIt );
+}
+
 //=======================================================================
 //function : Load
 //purpose  : Create a pattern from the mesh built on <theFace>.
@@ -573,32 +592,53 @@ bool SMESH_Pattern::Load (SMESH_Mesh*        theMesh,
   for ( ; elIt != eList.end() ; elIt++ )
     if ( BRep_Tool::IsClosed( *elIt , face ))
       return setErrorCode( ERR_LOADF_CLOSED_FACE );
-  
+
+  // check that requested or needed projection is possible
+  bool isMainShape = theMesh->IsMainShape( face );
+  bool needProject = !isMeshBoundToShape( aMeshDS, fSubMesh, isMainShape );
+  bool canProject  = ( nbElems ? true : isMainShape );
+
+  if ( ( theProject || needProject ) && !canProject )
+    return setErrorCode( ERR_LOADF_CANT_PROJECT );
 
   Extrema_GenExtPS projector;
   GeomAdaptor_Surface aSurface( BRep_Tool::Surface( face ));
-  if ( theProject || nbElems == 0 )
+  if ( theProject || needProject )
     projector.Initialize( aSurface, 20,20, 1e-5,1e-5 );
 
   int iPoint = 0;
   TNodePointIDMap nodePointIDMap;
 
-  if ( nbElems == 0 || (theProject &&
-                        theMesh->IsMainShape( face ) &&
-                        !isMeshBoundToShape( theMesh )))
+  if ( needProject )
   {
-    MESSAGE("Project the whole mesh");
+    MESSAGE("Project the submesh");
     // ---------------------------------------------------------------
-    // The case where the whole mesh is projected to theFace
+    // The case where the submesh is projected to theFace
     // ---------------------------------------------------------------
 
-    // put nodes of all faces in the nodePointIDMap and fill myElemPointIDs
-    SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
-    while ( fIt->more() )
+    // get all faces
+    list< const SMDS_MeshElement* > faces;
+    if ( nbElems > 0 ) {
+      SMDS_ElemIteratorPtr fIt = fSubMesh->GetElements();
+      while ( fIt->more() ) {
+        const SMDS_MeshElement* f = fIt->next();
+        if ( f && f->GetType() == SMDSAbs_Face )
+          faces.push_back( f );
+      }
+    }
+    else {
+      SMDS_FaceIteratorPtr fIt = aMeshDS->facesIterator();
+      while ( fIt->more() )
+        faces.push_back( fIt->next() );
+    }
+
+    // put nodes of all faces into the nodePointIDMap and fill myElemPointIDs
+    list< const SMDS_MeshElement* >::iterator fIt = faces.begin();
+    for ( ; fIt != faces.end(); ++fIt )
     {
       myElemPointIDs.push_back( TElemDef() );
       TElemDef& elemPoints = myElemPointIDs.back();
-      SMDS_ElemIteratorPtr nIt = fIt->next()->nodesIterator();
+      SMDS_ElemIteratorPtr nIt = (*fIt)->nodesIterator();
       while ( nIt->more() )
       {
         const SMDS_MeshElement* node = nIt->next();
@@ -837,7 +877,21 @@ bool SMESH_Pattern::Load (SMESH_Mesh*        theMesh,
   double dU = maxU - minU, dV = maxV - minV;
   if ( dU <= DBL_MIN || dV <= DBL_MIN ) {
     Clear();
-    return setErrorCode( ERR_LOADF_NARROW_FACE );
+    bndBox.SetVoid();
+    // define where is the problem, in the face or in the mesh
+    TopExp_Explorer vExp( face, TopAbs_VERTEX );
+    for ( ; vExp.More(); vExp.Next() ) {
+      gp_Pnt2d uv = BRep_Tool::Parameters( TopoDS::Vertex( vExp.Current() ), face );
+      bndBox.Add( uv );
+    }
+    bndBox.Get( minU, minV, maxU, maxV );
+    dU = maxU - minU, dV = maxV - minV;
+    if ( dU <= DBL_MIN || dV <= DBL_MIN )
+      // face problem
+      return setErrorCode( ERR_LOADF_NARROW_FACE );
+    else
+      // mesh is projected onto a line, e.g.
+      return setErrorCode( ERR_LOADF_CANT_PROJECT );
   }
   double ratio = dU / dV, maxratio = 3, scale;
   int iCoord = 0;
@@ -3189,8 +3243,13 @@ void SMESH_Pattern::
   myPolyElems.reserve( myIdsOnBoundary.size() );
 
   // make a set of refined elements
-  set< const SMDS_MeshElement* > avoidSet, elemSet;
-  avoidSet.insert( myElements.begin(), myElements.end() );
+  map<int,const SMDS_MeshElement* > avoidSet, elemSet;
+  std::vector<const SMDS_MeshElement*>::iterator itv =  myElements.begin();
+  for(; itv!=myElements.end(); itv++) {
+    const SMDS_MeshElement* el = (*itv);
+    avoidSet.insert( make_pair(el->GetID(),el) );
+  }
+  //avoidSet.insert( myElements.begin(), myElements.end() );
 
   map< TNodeSet, list< list< int > > >::iterator indListIt, nn_IdList;
 
@@ -3220,7 +3279,7 @@ void SMESH_Pattern::
           SMESH_MeshEditor::FindFaceInSet( n1, n2, elemSet, avoidSet );
         if ( face )
         {
-          avoidSet.insert ( face );
+          avoidSet.insert ( make_pair(face->GetID(),face) );
           myPolyElems.push_back( face );
 
           // some links of <face> are split;
@@ -3341,7 +3400,7 @@ void SMESH_Pattern::
         while ( eIt->more() )
         {
           const SMDS_MeshElement* elem = eIt->next();
-          if ( !volTool.Set( elem ) || !avoidSet.insert( elem ).second )
+          if ( !volTool.Set( elem ) || !avoidSet.insert( make_pair(elem->GetID(),elem) ).second )
             continue; // skip faces or refined elements
           // add polyhedron definition
           myPolyhedronQuantities.push_back(vector<int> ());
@@ -3493,6 +3552,40 @@ bool SMESH_Pattern::
   return makePoly;
 }
 
+//=======================================================================
+//function : clearSubMesh
+//purpose  : 
+//=======================================================================
+
+static bool clearSubMesh( SMESH_Mesh*         theMesh,
+                          const TopoDS_Shape& theShape)
+{
+  bool removed = false;
+  if ( SMESH_subMesh * aSubMesh = theMesh->GetSubMeshContaining( theShape ))
+  {
+    if ( aSubMesh->GetSubMeshDS() ) {
+      removed =
+        aSubMesh->GetSubMeshDS()->NbElements() || aSubMesh->GetSubMeshDS()->NbNodes();
+      aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
+    }
+  }
+  else {
+    SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
+    if ( SMESHDS_SubMesh* aSubMeshDS = aMeshDS->MeshElements( theShape ))
+    {
+      SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
+      removed = eIt->more();
+      while ( eIt->more() )
+        aMeshDS->RemoveElement( eIt->next() );
+      SMDS_NodeIteratorPtr nIt = aSubMeshDS->GetNodes();
+      removed = removed || nIt->more();
+      while ( nIt->more() )
+        aMeshDS->RemoveNode( static_cast<const SMDS_MeshNode*>( nIt->next() ));
+    }
+  }
+  return removed;
+}
+
 //=======================================================================
 //function : clearMesh
 //purpose  : clear mesh elements existing on myShape in theMesh
@@ -3503,20 +3596,11 @@ void SMESH_Pattern::clearMesh(SMESH_Mesh* theMesh) const
 
   if ( !myShape.IsNull() )
   {
-    if ( SMESH_subMesh * aSubMesh = theMesh->GetSubMesh/*Containing*/( myShape ))
-    {
-      aSubMesh->ComputeStateEngine( SMESH_subMesh::CLEAN );
-    }
-    else {
-      SMESHDS_Mesh* aMeshDS = theMesh->GetMeshDS();
-      if ( SMESHDS_SubMesh* aSubMeshDS = aMeshDS->MeshElements( myShape ))
+    if ( !clearSubMesh( theMesh, myShape ) && !myIs2D ) { // myShape is SHELL but volumes may be bound to SOLID
+      TopTools_ListIteratorOfListOfShape it( theMesh->GetAncestors( myShape ));
+      for (; it.More() && it.Value().ShapeType() == TopAbs_SOLID; it.Next())
       {
-        SMDS_ElemIteratorPtr eIt = aSubMeshDS->GetElements();
-        while ( eIt->more() )
-          aMeshDS->RemoveElement( eIt->next() );
-        SMDS_NodeIteratorPtr nIt = aSubMeshDS->GetNodes();
-        while ( nIt->more() )
-          aMeshDS->RemoveNode( static_cast<const SMDS_MeshNode*>( nIt->next() ));
+        clearSubMesh( theMesh, it.Value() );
       }
     }
   }
@@ -4010,6 +4094,8 @@ bool SMESH_Pattern::findBoundaryPoints()
 
   MESSAGE(" findBoundaryPoints() ");
 
+  myNbKeyPntInBoundary.clear();
+
   if ( myIs2D )
   {
     set< TPoint* > pointsInElems;
index e49b498ecb838b6868d403333fb2b0b3feeadee6..b9688216c34bc0432b9c47e4c6057fedd51addef 100644 (file)
@@ -157,6 +157,7 @@ class SMESH_Pattern {
     // Load(face)
     ERR_LOADF_NARROW_FACE, // too narrow face
     ERR_LOADF_CLOSED_FACE, // closed face
+    ERR_LOADF_CANT_PROJECT, // impossible to project nodes
     // Load(volume)
     ERR_LOADV_BAD_SHAPE, // volume is not a brick of 6 faces
     ERR_LOADV_COMPUTE_PARAMS, // cant compute point parameters
index a2c73ac6dbe793d38b1725d89d872fed4a9971e7..13423354e3e970966276fa0291dd3aa4afea7516 100644 (file)
@@ -186,22 +186,30 @@ bool SMESH_subMesh::SubMeshesComputed()
   //MESSAGE("SMESH_subMesh::SubMeshesComputed");
   const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
 
+  int myDim = SMESH_Gen::GetShapeDim( _subShape );
+  int dimToCheck = myDim - 1;
   bool subMeshesComputed = true;
   map < int, SMESH_subMesh * >::const_iterator itsub;
   for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
   {
     SMESH_subMesh *sm = (*itsub).second;
+    const TopoDS_Shape & ss = sm->GetSubShape();
+    // MSV 07.04.2006: restrict checking to myDim-1 only. Ex., there is no sense
+    // in checking of existence of edges if the algo needs only faces. Moreover,
+    // degenerated edges may have no submesh, as after computing NETGEN_2D.
+    int dim = SMESH_Gen::GetShapeDim( ss );
+    if (dim < dimToCheck)
+      continue;
     SMESHDS_SubMesh * ds = sm->GetSubMeshDS();
     // PAL10974.
     // There are some tricks with compute states, e.g. Penta_3D leaves
     // one face with READY_TO_COMPUTE state in order to be able to
     // recompute 3D when a locale triangle hypo changes (see PAL7428).
     // So we check if mesh is really present
-    //bool computeOk = (sm->GetComputeState() == COMPUTE_OK);
-    bool computeOk = ( ds && ( ds->GetNodes()->more() || ds->GetElements()->more() ));
+    bool computeOk = (sm->GetComputeState() == COMPUTE_OK ||
+                      (ds && ( ds->GetNodes()->more() || ds->GetElements()->more() )));
     if (!computeOk)
     {
-      const TopoDS_Shape & ss = sm->GetSubShape();
       int type = ss.ShapeType();
 
       subMeshesComputed = false;
@@ -634,6 +642,19 @@ SMESH_Hypothesis::Hypothesis_Status
         ret = SMESH_Hypothesis::HYP_CONCURENT;
       }
     } // Serve Propagation of 1D hypothesis
+    else // event == REMOVE_ALGO
+    {
+      SMESH_Algo* algo = dynamic_cast<SMESH_Algo*> (anHyp);
+      if (!algo->NeedDescretBoundary())
+      {
+        // clean all mesh in the tree of the current submesh;
+        // we must perform it now because later
+        // we will have no information about the type of the removed algo
+        CleanDependants();
+       ComputeStateEngine( CLEAN );
+        CleanDependsOn();
+      }
+    }
   }
 
   // ------------------
@@ -1038,9 +1059,6 @@ SMESH_Hypothesis::Hypothesis_Status
 void SMESH_subMesh::CleanDependsOn()
 {
   //MESSAGE("SMESH_subMesh::CleanDependsOn");
-  // **** parcourir les ancetres dans l'ordre de dépendance
-
-  ComputeStateEngine(CLEAN);
 
   const map < int, SMESH_subMesh * >&dependson = DependsOn();
   map < int, SMESH_subMesh * >::const_iterator its;
@@ -1169,10 +1187,12 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
   case NOT_READY:
     switch (event)
     {
-    case MODIF_HYP:            // nothing to do
-      break;
+    case MODIF_HYP:
     case MODIF_ALGO_STATE:
-      if (_algoState == HYP_OK)
+      algo = gen->GetAlgo((*_father), _subShape);
+      if (algo && !algo->NeedDescretBoundary())
+        CleanDependsOn(); // clean sub-meshes with event CLEAN
+      if (event == MODIF_ALGO_STATE && _algoState == HYP_OK)
       {
         _computeState = READY_TO_COMPUTE;
       }
@@ -1205,11 +1225,14 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
   case READY_TO_COMPUTE:
     switch (event)
     {
-    case MODIF_HYP:            // nothing to do
-      break;
+    case MODIF_HYP:
     case MODIF_ALGO_STATE:
-      _computeState = NOT_READY;
       algo = gen->GetAlgo((*_father), _subShape);
+      if (algo && !algo->NeedDescretBoundary())
+        CleanDependsOn(); // clean sub-meshes with event CLEAN
+      if (event == MODIF_HYP)
+       break;            // nothing else to do when MODIF_HYP
+      _computeState = NOT_READY;
       if (algo)
       {
         ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
@@ -1240,16 +1263,18 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
         // compute
         CleanDependants();
         RemoveSubMeshElementsAndNodes();
-        try {
-          if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
-            ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
-          else
-            ret = algo->Compute((*_father), _subShape);
-        }
-        catch (Standard_Failure) {
-          MESSAGE( "Exception in algo->Compute() ");
-          ret = false;
-        }
+       {
+         try {
+           if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
+             ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
+           else
+             ret = algo->Compute((*_father), _subShape);
+         }
+         catch (Standard_Failure) {
+           MESSAGE( "Exception in algo->Compute() ");
+           ret = false;
+         }
+       }
         if (!ret)
         {
           MESSAGE("problem in algo execution: failed to compute");
@@ -1259,6 +1284,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
 
 #ifdef _DEBUG_
           // Show vertices location of a failed shape
+          cout << algo->GetName() << " failed on shape with the following vertices:" << endl;
           TopTools_IndexedMapOfShape vMap;
           TopExp::MapShapes( _subShape, TopAbs_VERTEX, vMap );
           for ( int iv = 1; iv <= vMap.Extent(); ++iv ) {
index f6667a1b293aa44e6ec9b33570e48971c66e16e7..53ccca66569e468317e322f1eb525472456361f6 100644 (file)
@@ -63,18 +63,27 @@ static int MYDEBUG = 0;
 namespace
 {
 
+  //=======================================================================
+  //function : FindNode
+  //=======================================================================
   inline const SMDS_MeshNode* FindNode(const SMDS_Mesh* theMesh, int theId){
     if(const SMDS_MeshNode* anElem = theMesh->FindNode(theId)) return anElem;
     EXCEPTION(runtime_error,"SMDS_Mesh::FindNode - cannot find a SMDS_MeshNode for ID = "<<theId);
   }
 
 
+  //=======================================================================
+  //function : FindElement
+  //=======================================================================
   inline const SMDS_MeshElement* FindElement(const SMDS_Mesh* theMesh, int theId){
     if(const SMDS_MeshElement* anElem = theMesh->FindElement(theId)) return anElem;
     EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot find a SMDS_MeshElement for ID = "<<theId);
   }
 
 
+  //=======================================================================
+  //function : AddNodesWithID
+  //=======================================================================
   inline void AddNodesWithID(SMDS_Mesh* theMesh, 
                             SMESH::log_array_var& theSeq,
                             CORBA::Long theId)
@@ -95,6 +104,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddEdgesWithID
+  //=======================================================================
   inline void AddEdgesWithID(SMDS_Mesh* theMesh, 
                             SMESH::log_array_var& theSeq,
                             CORBA::Long theId)
@@ -113,6 +125,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddTriasWithID
+  //=======================================================================
   inline void AddTriasWithID(SMDS_Mesh* theMesh, 
                             SMESH::log_array_var& theSeq,
                             CORBA::Long theId)
@@ -120,7 +135,7 @@ namespace
     const SMESH::long_array& anIndexes = theSeq[theId].indexes;
     CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
     if(4*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
+      EXCEPTION(runtime_error,"AddTriasWithID - 4*aNbElems != anIndexes.length()");
     for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
       SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
                                                        anIndexes[anIndexId+2],
@@ -132,6 +147,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddQuadsWithID
+  //=======================================================================
   inline void AddQuadsWithID(SMDS_Mesh* theMesh, 
                             SMESH::log_array_var theSeq,
                             CORBA::Long theId)
@@ -139,7 +157,7 @@ namespace
     const SMESH::long_array& anIndexes = theSeq[theId].indexes;
     CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
     if(5*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
+      EXCEPTION(runtime_error,"AddQuadsWithID - 4*aNbElems != anIndexes.length()");
     for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
       SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
                                                        anIndexes[anIndexId+2],
@@ -152,6 +170,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddPolygonsWithID
+  //=======================================================================
   inline void AddPolygonsWithID(SMDS_Mesh* theMesh, 
                                 SMESH::log_array_var& theSeq,
                                 CORBA::Long theId)
@@ -176,6 +197,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddTetrasWithID
+  //=======================================================================
   inline void AddTetrasWithID(SMDS_Mesh* theMesh, 
                              SMESH::log_array_var& theSeq,
                              CORBA::Long theId)
@@ -183,7 +207,7 @@ namespace
     const SMESH::long_array& anIndexes = theSeq[theId].indexes;
     CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
     if(5*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 5*aNbElems != anIndexes.length()");
+      EXCEPTION(runtime_error,"AddTetrasWithID - 5*aNbElems != anIndexes.length()");
     for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
       SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
                                                          anIndexes[anIndexId+2],
@@ -196,6 +220,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddPiramidsWithID
+  //=======================================================================
   inline void AddPiramidsWithID(SMDS_Mesh* theMesh, 
                                SMESH::log_array_var& theSeq,
                                CORBA::Long theId)
@@ -203,7 +230,7 @@ namespace
     const SMESH::long_array& anIndexes = theSeq[theId].indexes;
     CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
     if(6*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 6*aNbElems != anIndexes.length()");
+      EXCEPTION(runtime_error,"AddPiramidsWithID - 6*aNbElems != anIndexes.length()");
     for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=6){
       SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
                                                          anIndexes[anIndexId+2],
@@ -217,6 +244,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddPrismsWithID
+  //=======================================================================
   inline void AddPrismsWithID(SMDS_Mesh* theMesh, 
                              SMESH::log_array_var& theSeq,
                              CORBA::Long theId)
@@ -224,7 +254,7 @@ namespace
     const SMESH::long_array& anIndexes = theSeq[theId].indexes;
     CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
     if(7*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 7*aNbElems != anIndexes.length()");
+      EXCEPTION(runtime_error,"AddPrismsWithID - 7*aNbElems != anIndexes.length()");
     for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
       SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
                                                          anIndexes[anIndexId+2],
@@ -239,6 +269,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddHexasWithID
+  //=======================================================================
   inline void AddHexasWithID(SMDS_Mesh* theMesh, 
                             SMESH::log_array_var& theSeq,
                             CORBA::Long theId)
@@ -246,7 +279,7 @@ namespace
     const SMESH::long_array& anIndexes = theSeq[theId].indexes;
     CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
     if(9*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 9*aNbElems != anIndexes.length()");
+      EXCEPTION(runtime_error,"AddHexasWithID - 9*aNbElems != anIndexes.length()");
     for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
       SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
                                                          anIndexes[anIndexId+2],
@@ -263,6 +296,9 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddPolyhedronsWithID
+  //=======================================================================
   inline void AddPolyhedronsWithID (SMDS_Mesh* theMesh, 
                                     SMESH::log_array_var& theSeq,
                                     CORBA::Long theId)
@@ -294,6 +330,217 @@ namespace
   }
 
 
+  //=======================================================================
+  //function : AddQuadEdgesWithID
+  //=======================================================================
+  inline void AddQuadEdgesWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var& theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(4*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadEdgeWithID - 4*aNbElems != aCoords.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
+      SMDS_MeshElement* anElem = theMesh->AddEdgeWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddEdgeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadTriasWithID
+  //=======================================================================
+  inline void AddQuadTriasWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var& theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(7*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadTriasWithID - 7*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
+      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId+4],
+                                                       anIndexes[anIndexId+5],
+                                                       anIndexes[anIndexId+6],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadQuadsWithID
+  //=======================================================================
+  inline void AddQuadQuadsWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(9*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadQuadsWithID - 9*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
+      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
+                                                       anIndexes[anIndexId+2],
+                                                       anIndexes[anIndexId+3],
+                                                       anIndexes[anIndexId+4],
+                                                       anIndexes[anIndexId+5],
+                                                       anIndexes[anIndexId+6],
+                                                       anIndexes[anIndexId+7],
+                                                       anIndexes[anIndexId+8],
+                                                       anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadTetrasWithID
+  //=======================================================================
+  inline void AddQuadTetrasWithID(SMDS_Mesh* theMesh, 
+                                  SMESH::log_array_var& theSeq,
+                                  CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(11*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadTetrasWithID - 11*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=11){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadPiramidsWithID
+  //=======================================================================
+  inline void AddQuadPiramidsWithID(SMDS_Mesh* theMesh, 
+                                    SMESH::log_array_var& theSeq,
+                                    CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(14*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadPiramidsWithID - 14*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=14){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId+11],
+                                                         anIndexes[anIndexId+12],
+                                                         anIndexes[anIndexId+13],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadPentasWithID
+  //=======================================================================
+  inline void AddQuadPentasWithID(SMDS_Mesh* theMesh, 
+                                  SMESH::log_array_var& theSeq,
+                                  CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(16*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadPentasWithID - 16*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=16){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId+11],
+                                                         anIndexes[anIndexId+12],
+                                                         anIndexes[anIndexId+13],
+                                                         anIndexes[anIndexId+14],
+                                                         anIndexes[anIndexId+15],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : AddQuadHexasWithID
+  //=======================================================================
+  inline void AddQuadHexasWithID(SMDS_Mesh* theMesh, 
+                                 SMESH::log_array_var& theSeq,
+                                 CORBA::Long theId)
+  {
+    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
+    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
+    if(21*aNbElems != anIndexes.length())
+      EXCEPTION(runtime_error,"AddQuadHexasWithID - 21*aNbElems != anIndexes.length()");
+    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=21){
+      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
+                                                         anIndexes[anIndexId+2],
+                                                         anIndexes[anIndexId+3],
+                                                         anIndexes[anIndexId+4],
+                                                         anIndexes[anIndexId+5],
+                                                         anIndexes[anIndexId+6],
+                                                         anIndexes[anIndexId+7],
+                                                         anIndexes[anIndexId+8],
+                                                         anIndexes[anIndexId+9],
+                                                         anIndexes[anIndexId+10],
+                                                         anIndexes[anIndexId+11],
+                                                         anIndexes[anIndexId+12],
+                                                         anIndexes[anIndexId+13],
+                                                         anIndexes[anIndexId+14],
+                                                         anIndexes[anIndexId+15],
+                                                         anIndexes[anIndexId+16],
+                                                         anIndexes[anIndexId+17],
+                                                         anIndexes[anIndexId+18],
+                                                         anIndexes[anIndexId+19],
+                                                         anIndexes[anIndexId+20],
+                                                         anIndexes[anIndexId]);
+      if(!anElem)
+       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
+    }
+  }
+
+
+  //=======================================================================
+  //function : ChangePolyhedronNodes
+  //=======================================================================
   inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh, 
                                      SMESH::log_array_var& theSeq,
                                      CORBA::Long theId)
@@ -466,6 +713,14 @@ SMESH_Client::Update(bool theIsClear)
         case SMESH::ADD_HEXAHEDRON : AddHexasWithID      ( mySMDSMesh, aSeq, anId ); break;
         case SMESH::ADD_POLYHEDRON : AddPolyhedronsWithID( mySMDSMesh, aSeq, anId ); break;
 
+        case SMESH::ADD_QUADEDGE       : AddQuadEdgesWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADTRIANGLE   : AddQuadTriasWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADQUADRANGLE : AddQuadQuadsWithID   ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADTETRAHEDRON: AddQuadTetrasWithID  ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADPYRAMID    : AddQuadPiramidsWithID( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADPENTAHEDRON: AddQuadPentasWithID  ( mySMDSMesh, aSeq, anId ); break;
+        case SMESH::ADD_QUADHEXAHEDRON : AddQuadHexasWithID   ( mySMDSMesh, aSeq, anId ); break;
+
         case SMESH::REMOVE_NODE:
           for( ; anElemId < aNbElems; anElemId++ )
             mySMDSMesh->RemoveNode( FindNode( mySMDSMesh, anIndexes[anElemId] ) );
index 9c7dfa4a96e9ae2984f0e6d9dda4cc5dbee5aacd..c193e91d0f956fd9fdd6765b19a1ef7f3ed5adfd 100644 (file)
@@ -113,7 +113,8 @@ bool SMESHDS_Group::Remove (const int theID)
   return true;
 }
 
-//=======================================================================
+
+//======================================================================
 //function : Clear
 //purpose  : 
 //=======================================================================
index c1d3cc45c57837ba80a211819b53d54db8c78341..6fab4c837e60032d7db8d8c99a02c9d9bc66be2a 100644 (file)
@@ -46,10 +46,12 @@ using namespace std;
 //purpose  : 
 //=======================================================================
 SMESHDS_Mesh::SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode):
+  myMeshID(theMeshID),
   myIsEmbeddedMode(theIsEmbeddedMode),
-  myMeshID(theMeshID)
+  myCurSubID(-1)
 {
   myScript = new SMESHDS_Script(theIsEmbeddedMode);
+  myCurSubMesh = 0;
 }
 
 //=======================================================================
@@ -711,7 +713,8 @@ void SMESHDS_Mesh::RemoveFreeNode(const SMDS_MeshNode * n, SMESHDS_SubMesh * sub
 
   // Rm from sub-mesh
   // Node should belong to only one sub-mesh
-  subMesh->RemoveNode(n);
+  if( subMesh )
+    subMesh->RemoveNode(n);
 
   SMDS_Mesh::RemoveFreeElement(n);
 }
@@ -768,7 +771,8 @@ void SMESHDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elt, SMESHDS_SubMe
 
   // Rm from sub-mesh
   // Element should belong to only one sub-mesh
-  subMesh->RemoveElement(elt);
+  if( subMesh )
+    subMesh->RemoveElement(elt);
 
   SMDS_Mesh::RemoveFreeElement(elt);
 }
@@ -846,7 +850,8 @@ bool SMESHDS_Mesh::add(const SMDS_MeshElement* elem, SMESHDS_SubMesh* subMesh )
 void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
                                    const TopoDS_Shell & S)
 {
-  add( aNode, getSubmesh(S) );
+  if ( add( aNode, getSubmesh(S) ))
+    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
 }
 //=======================================================================
 //function : SetNodeOnVolume
@@ -855,7 +860,8 @@ void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
 void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
                                    const TopoDS_Solid & S)
 {
-  add( aNode, getSubmesh(S) );
+  if ( add( aNode, getSubmesh(S) ))
+    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
 }
 
 //=======================================================================
@@ -1140,7 +1146,8 @@ int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 //=======================================================================
 void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
 {
-  add( aNode, getSubmesh( Index ));
+  if ( add( aNode, getSubmesh( Index )))
+    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( Index );
 }
 
 //=======================================================================
index 3f2b012541112226b1ed377bef41ff95bac15a35..de9883a9725e7edcdaae74de0ba4127f58a8d26c 100644 (file)
@@ -89,6 +89,10 @@ SMESHDS_Command* SMESHDS_Script::getCommand(const SMESHDS_CommandType aType)
 //=======================================================================
 void SMESHDS_Script::AddNode(int NewNodeID, double x, double y, double z)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddNode)->AddNode(NewNodeID, x, y, z);
 }
 
index 3549bc3d2ce40a7ed9ab808dfaab2d17fa4fbd5c..8d4c875a531fe391408fc336aa0b480b860c33d6 100644 (file)
@@ -53,7 +53,9 @@ LIB_CLIENT_IDL = SALOME_Exception.idl \
                 SALOME_Component.idl \
                 SMESH_Filter.idl \
                 SMESH_Pattern.idl \
-                SALOME_GenericObj.idl
+                SALOME_GenericObj.idl \
+                SALOME_Comm.idl \
+                MED.idl
 
 # header files 
 EXPORT_HEADERS= SMESH_Type.h \
index 0ec4d156919457ca105883d8d654b72608cfb8e0..f600730c8b9b797b462416b9069c7a7e8ac91ca9 100644 (file)
@@ -70,8 +70,6 @@ LIB_SRC =     SMESHGUI.cxx \
                SMESHGUI_Swig.cxx \
                SMESHGUI_MoveNodesDlg.cxx \
                SMESHGUI_AddMeshElementDlg.cxx \
-               SMESHGUI_EditHypothesesDlg.cxx \
-               SMESHGUI_CreateHypothesesDlg.cxx \
                SMESHGUI_XmlHandler.cxx \
                SMESHGUI_Filter.cxx \
                SMESHGUI_FilterDlg.cxx \
@@ -98,7 +96,6 @@ LIB_SRC =     SMESHGUI.cxx \
                SMESHGUI_FilterUtils.cxx \
                SMESHGUI_PatternUtils.cxx \
                SMESHGUI_HypothesesUtils.cxx \
-               SMESHGUI_PrecisionDlg.cxx \
                SMESHGUI_VTKUtils.cxx \
                SMESHGUI_Selection.cxx \
                SMESHGUI_CreatePolyhedralVolumeDlg.cxx \
@@ -110,7 +107,9 @@ LIB_SRC =   SMESHGUI.cxx \
                SMESHGUI_Displayer.cxx \
                SMESHGUI_Hypotheses.cxx \
                SMESHGUI_ShapeByMeshDlg.cxx \
-               SMESHGUI_AddQuadraticElementDlg.cxx
+               SMESHGUI_AddQuadraticElementDlg.cxx \
+               SMESHGUI_ConvToQuadDlg.cxx \
+               SMESHGUI_ConvToQuadOp.cxx
 
 LIB_MOC = \
                SMESHGUI.h \
@@ -131,8 +130,6 @@ LIB_MOC = \
                SMESHGUI_Preferences_SelectionDlg.h \
                SMESHGUI_MoveNodesDlg.h \
                SMESHGUI_AddMeshElementDlg.h \
-               SMESHGUI_EditHypothesesDlg.h \
-               SMESHGUI_CreateHypothesesDlg.h \
                SMESHGUI_FilterDlg.h \
                SMESHGUI_FilterLibraryDlg.h \
                SMESHGUI_SingleEditDlg.h \
@@ -148,7 +145,6 @@ LIB_MOC = \
                SMESHGUI_TranslationDlg.h \
                SMESHGUI_SymmetryDlg.h \
                SMESHGUI_SewingDlg.h \
-               SMESHGUI_PrecisionDlg.h \
                SMESHGUI_MergeNodesDlg.h \
                SMESHGUI_EditMeshDlg.h \
                SMESHGUI_CreatePolyhedralVolumeDlg.h \
@@ -159,7 +155,9 @@ LIB_MOC = \
                SMESHGUI_MeshOp.h \
                SMESHGUI_Hypotheses.h \
                SMESHGUI_ShapeByMeshDlg.h \
-               SMESHGUI_AddQuadraticElementDlg.h
+               SMESHGUI_AddQuadraticElementDlg.h \
+               SMESHGUI_ConvToQuadDlg.h \
+               SMESHGUI_ConvToQuadOp.h
 
 
 LIB_CLIENT_IDL = SALOME_Exception.idl \
index b8d0b6bd8ad00bfc1a44014d2e1f5428e3e51782..c5e3a6adc6ac080eb3c83ddc5f8a86b114ee40b5 100644 (file)
@@ -42,8 +42,6 @@
 #include "SMESHGUI_MoveNodesDlg.h"
 #include "SMESHGUI_AddMeshElementDlg.h"
 #include "SMESHGUI_AddQuadraticElementDlg.h"
-#include "SMESHGUI_EditHypothesesDlg.h"
-#include "SMESHGUI_CreateHypothesesDlg.h"
 #include "SMESHGUI_FilterDlg.h"
 #include "SMESHGUI_FilterLibraryDlg.h"
 #include "SMESHGUI_SingleEditDlg.h"
@@ -62,9 +60,9 @@
 #include "SMESHGUI_MergeNodesDlg.h"
 #include "SMESHGUI_EditMeshDlg.h"
 #include "SMESHGUI_MeshPatternDlg.h"
-#include "SMESHGUI_PrecisionDlg.h"
 #include "SMESHGUI_Selection.h"
 #include "SMESHGUI_CreatePolyhedralVolumeDlg.h"
+#include "SMESHGUI_ConvToQuadOp.h"
 #include "SMESHGUI_MeshOp.h"
 #include "SMESHGUI_Displayer.h"
 
@@ -460,28 +458,28 @@ namespace{
              anActor->SetRepresentation(SMESH_Actor::ePoint);
              break;
            case 1132:{
-             float color[3];
+             vtkFloatingPointType color[3];
              anActor->GetSufaceColor(color[0], color[1], color[2]);
              int c0 = int (color[0] * 255);
              int c1 = int (color[1] * 255);
              int c2 = int (color[2] * 255);
              QColor c(c0, c1, c2);
 
-             float edgecolor[3];
+             vtkFloatingPointType edgecolor[3];
              anActor->GetEdgeColor(edgecolor[0], edgecolor[1], edgecolor[2]);
              c0 = int (edgecolor[0] * 255);
              c1 = int (edgecolor[1] * 255);
              c2 = int (edgecolor[2] * 255);
              QColor e(c0, c1, c2);
 
-             float backfacecolor[3];
+             vtkFloatingPointType backfacecolor[3];
              anActor->GetBackSufaceColor(backfacecolor[0], backfacecolor[1], backfacecolor[2]);
              c0 = int (backfacecolor[0] * 255);
              c1 = int (backfacecolor[1] * 255);
              c2 = int (backfacecolor[2] * 255);
              QColor b(c0, c1, c2);
 
-             float nodecolor[3];
+             vtkFloatingPointType nodecolor[3];
              anActor->GetNodeColor(nodecolor[0], nodecolor[1], nodecolor[2]);
              c0 = int (nodecolor[0] * 255);
              c1 = int (nodecolor[1] * 255);
@@ -492,7 +490,7 @@ namespace{
              if(Edgewidth == 0)
                Edgewidth = 1;
              int intValue = int(anActor->GetNodeSize());
-             float Shrink = anActor->GetShrinkFactor();
+             vtkFloatingPointType Shrink = anActor->GetShrinkFactor();
 
              SMESHGUI_Preferences_ColorDlg *aDlg =
                new SMESHGUI_Preferences_ColorDlg( SMESHGUI::GetSMESHGUI(), "" );
@@ -509,26 +507,26 @@ namespace{
                QColor nodecolor = aDlg->GetColor(3);
                QColor backfacecolor = aDlg->GetColor(4);
                /* actor color and backface color */
-               anActor->SetSufaceColor(float (color.red()) / 255.,
-                                        float (color.green()) / 255.,
-                                        float (color.blue()) / 255.);
-               anActor->SetBackSufaceColor(float (backfacecolor.red()) / 255.,
-                                            float (backfacecolor.green()) / 255.,
-                                            float (backfacecolor.blue()) / 255.);
+               anActor->SetSufaceColor(vtkFloatingPointType (color.red()) / 255.,
+                                       vtkFloatingPointType (color.green()) / 255.,
+                                       vtkFloatingPointType (color.blue()) / 255.);
+               anActor->SetBackSufaceColor(vtkFloatingPointType (backfacecolor.red()) / 255.,
+                                           vtkFloatingPointType (backfacecolor.green()) / 255.,
+                                           vtkFloatingPointType (backfacecolor.blue()) / 255.);
 
                /* edge color */
-               anActor->SetEdgeColor(float (edgecolor.red()) / 255.,
-                                      float (edgecolor.green()) / 255.,
-                                      float (edgecolor.blue()) / 255.);
+               anActor->SetEdgeColor(vtkFloatingPointType (edgecolor.red()) / 255.,
+                                     vtkFloatingPointType (edgecolor.green()) / 255.,
+                                     vtkFloatingPointType (edgecolor.blue()) / 255.);
 
                /* Shrink factor and size edges */
                anActor->SetShrinkFactor(aDlg->GetIntValue(3) / 100.);
                anActor->SetLineWidth(aDlg->GetIntValue(1));
 
                /* Nodes color and size */
-               anActor->SetNodeColor(float (nodecolor.red()) / 255.,
-                              float (nodecolor.green()) / 255.,
-                                      float (nodecolor.blue()) / 255.);
+               anActor->SetNodeColor(vtkFloatingPointType (nodecolor.red()) / 255.,
+                                     vtkFloatingPointType (nodecolor.green()) / 255.,
+                                     vtkFloatingPointType (nodecolor.blue()) / 255.);
                anActor->SetNodeSize(aDlg->GetIntValue(2));
 
                delete aDlg;
@@ -732,72 +730,81 @@ namespace{
     SALOME_ListIteratorOfListIO It(selected);
 
     aStudyBuilder->NewCommand();  // There is a transaction
-    for(; It.More(); It.Next()){
+    for(; It.More(); It.Next()){ // loop on selected IO's
       Handle(SALOME_InteractiveObject) IObject = It.Value();
-      if(IObject->hasEntry()){
-       _PTR(SObject) SO = aStudy->FindObjectID(IObject->getEntry());
+      if(IObject->hasEntry()) {
+       _PTR(SObject) aSO = aStudy->FindObjectID(IObject->getEntry());
 
        // disable removal of "SMESH" component object
-       if(SO->FindAttribute(anAttr, "AttributeIOR")){
+       if(aSO->FindAttribute(anAttr, "AttributeIOR")){
          anIOR = anAttr;
          if ( !strcmp( (char*)anIOR->Value().c_str(), engineIOR().latin1() ) )
            continue;
        }
 
-       /* Erase child graphical objects */
-       _PTR(ChildIterator) it = aStudy->NewChildIterator(SO);
-       for(it->InitEx(true); it->More(); it->Next()){
-         _PTR(SObject) CSO = it->Value();
-         if(CSO->FindAttribute(anAttr, "AttributeIOR")){
-           anIOR = anAttr;
+        // put the whole hierarchy of sub-objects of the selected SO into a list and
+        // then treat them all starting from the deepest objects (at list back)
 
+        list< _PTR(SObject) > listSO;
+        listSO.push_back( aSO );
+        list< _PTR(SObject) >::iterator itSO = listSO.begin();
+        for ( ; itSO != listSO.end(); ++itSO ) {
+          _PTR(ChildIterator) it = aStudy->NewChildIterator( *itSO );
+          for (it->InitEx(false); it->More(); it->Next())
+            listSO.push_back( it->Value() );
+        }
+
+        // treat SO's in the list starting from the back
+
+        list< _PTR(SObject) >::reverse_iterator ritSO = listSO.rbegin();
+        for ( ; ritSO != listSO.rend(); ++ritSO ) {
+          _PTR(SObject) SO = *ritSO;
+          if ( !SO ) continue;
+          string anEntry = SO->GetID();
+
+          /** Erase graphical object **/
+         if(SO->FindAttribute(anAttr, "AttributeIOR")){
            QPtrVector<SUIT_ViewWindow> aViews = vm->getViews();
            for(int i = 0; i < nbSf; i++){
              SUIT_ViewWindow *sf = aViews[i];
-             CORBA::String_var anEntry = CSO->GetID().c_str();
-             if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.in())){
+             if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,anEntry.c_str())){
                SMESH::RemoveActor(sf,anActor);
              }
            }
          }
-       }
-
-       /* Erase main graphical object */
-       QPtrVector<SUIT_ViewWindow> aViews = vm->getViews();
-       for(int i = 0; i < nbSf; i++){
-         SUIT_ViewWindow *sf = aViews[i];
-         if(SMESH_Actor* anActor = SMESH::FindActorByEntry(sf,IObject->getEntry())){
-           SMESH::RemoveActor(sf,anActor);
-         }
-       }
 
-       // Remove object(s) from data structures
-       _PTR(SObject) obj = aStudy->FindObjectID(IObject->getEntry());
-       if(obj){
-         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( obj ) );
-         SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( obj ) );
-          QString objType = CheckTypeObject(IObject);
-         if ( !aGroup->_is_nil() ) {                          // DELETE GROUP
-           SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
-           aMesh->RemoveGroup( aGroup );
-         }
-         else if ( !aSubMesh->_is_nil() ) {                   // DELETE SUBMESH
-           SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
-           aMesh->RemoveSubMesh( aSubMesh );
-         }
-         else if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
-            SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
-           aStudyBuilder->RemoveObjectWithChildren( obj );
-         }
-         else {// default action: remove SObject from the study
-           // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
-           //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
-           //op->start();
-           aStudyBuilder->RemoveObjectWithChildren( obj );
-           //op->finish();
-         }
-       }
+          /** Remove an object from data structures **/
+          SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( SO ));
+          SMESH::SMESH_subMesh_var   aSubMesh = SMESH::SMESH_subMesh::_narrow( SMESH::SObjectToObject( SO ));
+          if ( !aGroup->_is_nil() ) {                          // DELETE GROUP
+            SMESH::SMESH_Mesh_var aMesh = aGroup->GetMesh();
+            aMesh->RemoveGroup( aGroup );
+          }
+          else if ( !aSubMesh->_is_nil() ) {                   // DELETE SUBMESH
+            SMESH::SMESH_Mesh_var aMesh = aSubMesh->GetFather();
+            aMesh->RemoveSubMesh( aSubMesh );
 
+            _PTR(SObject) aMeshSO = SMESH::FindSObject(aMesh);
+            if (aMeshSO)
+              SMESH::ModifiedMesh(aMeshSO, false);
+          }
+          else {
+            IObject = new SALOME_InteractiveObject
+              ( anEntry.c_str(), engineIOR().latin1(), SO->GetName().c_str() );
+            QString objType = CheckTypeObject(IObject);
+            if ( objType == "Hypothesis" || objType == "Algorithm" ) {// DELETE HYPOTHESIS
+              SMESH::RemoveHypothesisOrAlgorithmOnMesh(IObject);
+              aStudyBuilder->RemoveObjectWithChildren( SO );
+            }
+            else {// default action: remove SObject from the study
+              // san - it's no use opening a transaction here until UNDO/REDO is provided in SMESH
+              //SUIT_Operation *op = new SALOMEGUI_ImportOperation(myActiveStudy);
+              //op->start();
+              aStudyBuilder->RemoveObjectWithChildren( SO );
+              //op->finish();
+            }
+          }
+       } /* listSO back loop */
       } /* IObject->hasEntry() */
     } /* more/next */
     aStudyBuilder->CommitCommand();
@@ -834,6 +841,7 @@ SalomeApp_Module( "SMESH" )
   }
 
   myActiveDialogBox = 0;
+  myFilterLibraryDlg = 0;
   myState = -1;
   myDisplayer = 0;
 
@@ -1480,6 +1488,20 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       }
       break;
     }
+  case 417: // Convert mesh to quadratic
+    {
+    startOperation( 417 );
+      /*      if (checkLock(aStudy)) break;
+      if (vtkwnd) {
+       EmitSignalDeactivateDialog();
+       new SMESHGUI_ConvToQuadDlg();
+      } else {
+       SUIT_MessageBox::warn1(desktop(),
+                               tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+                               tr("SMESH_BUT_OK"));
+                              }*/
+      break;
+    }
   case 801:                                     // CREATE GROUP
     {
       if ( !vtkwnd )
@@ -2063,7 +2085,11 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       aTypes.append( SMESH::FACE );
       aTypes.append( SMESH::VOLUME );
     }
-    new SMESHGUI_FilterLibraryDlg( this, SMESH::GetDesktop( this ), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+    if (!myFilterLibraryDlg)
+      myFilterLibraryDlg = new SMESHGUI_FilterLibraryDlg( this, SMESH::GetDesktop( this ), aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+    else if (myFilterLibraryDlg->isHidden())
+      myFilterLibraryDlg->Init( aTypes, SMESHGUI_FilterLibraryDlg::EDIT );
+    myFilterLibraryDlg->raise();
   }
   break;
 
@@ -2334,6 +2360,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction(  414, "REVOLUTION",      "ICON_REVOLUTION" );
   createSMESHAction(  415, "MAP",             "ICON_MAP" );
   createSMESHAction(  416, "EXTRUSION_ALONG", "ICON_EXTRUSION_ALONG" );
+  createSMESHAction(  417, "CONV_TO_QUAD",    "ICON_CONV_TO_QUAD" );
   createSMESHAction(  200, "RESET" );
   createSMESHAction(  201, "SCALAR_BAR_PROP" );
   createSMESHAction(  211, "WIRE",           "ICON_WIRE", 0, true );
@@ -2480,6 +2507,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createMenu( 416, modifyId, -1 );
   createMenu( 414, modifyId, -1 );
   createMenu( 415, modifyId, -1 );
+  createMenu( 417, modifyId, -1 );
 
   createMenu( 214, viewId, -1 );
 
@@ -2564,6 +2592,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createTool( 416, modifyTb );
   createTool( 414, modifyTb );
   createTool( 415, modifyTb );
+  createTool( 417, modifyTb );
 
   createTool( 214, dispModeTb );
 
@@ -2741,7 +2770,7 @@ void SMESHGUI::initialize( CAM_Application* app )
 
   popupMgr()->insert( action( 6003 ), anId, -1 ); // FREE_BORDER
   popupMgr()->setRule( action( 6003 ), aMeshInVtkHasEdges, true );
-  popupMgr()->setRule( action( 6003 ), "controlMode = 'eFreeEdges'", false );
+  popupMgr()->setRule( action( 6003 ), "controlMode = 'eFreeBorders'", false );
 
   popupMgr()->insert( action( 6001 ), anId, -1 ); // LENGTH
   popupMgr()->setRule( action( 6001 ), aMeshInVtkHasEdges, true );
@@ -2755,7 +2784,7 @@ void SMESHGUI::initialize( CAM_Application* app )
 
   popupMgr()->insert( action( 6002 ), anId, -1 ); // FREE_EDGE
   popupMgr()->setRule( action( 6002 ), aMeshInVtkHasFaces, true );
-  popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeBorders'", false );
+  popupMgr()->setRule( action( 6002 ), "controlMode = 'eFreeEdges'", false );
 
   popupMgr()->insert( action( 6018 ), anId, -1 ); // LENGTH_2D
   popupMgr()->setRule( action( 6018 ), aMeshInVtkHasFaces, true );
@@ -3210,6 +3239,9 @@ LightApp_Operation* SMESHGUI::createOperation( const int id ) const
     case 704: // Edit mesh/sub-mesh
       op = new SMESHGUI_MeshOp( false );
     break;
+    case 417: //convert to quadratic
+      op = new SMESHGUI_ConvToQuadOp();
+    break;
     default:
     break;
   }
index 9626e4358b923689573c11c2d1b541d562507609..2115e2650f617d0e04ed13b8ad39e52035eb10f7 100644 (file)
@@ -48,6 +48,8 @@ class LightApp_Operation;
 class SalomeApp_Study;
 class LightApp_SelectionMgr;
 
+class SMESHGUI_FilterLibraryDlg;
+
 
 //=================================================================================
 // class    : SMESHGUI
@@ -138,6 +140,8 @@ private :
   int                              myState;
   QMap<int,QString>                myRules;
   LightApp_Displayer*              myDisplayer;
+
+  SMESHGUI_FilterLibraryDlg*       myFilterLibraryDlg;
 };
 
 #endif
index df2bb4df18227499a267cbd2d308177a8aa19966..28eba22e9b073334e862ee200bc06cb13f1e2bb9 100644 (file)
@@ -39,6 +39,8 @@
 #include "SMESH_Actor.h"
 
 #include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
 
 #include "SVTK_Selection.h"
 #include "SVTK_Selector.h"
@@ -119,7 +121,7 @@ namespace SMESH {
       myPreviewActor->VisibilityOff();
       myPreviewActor->SetMapper(myMapper);
 
-      float anRGB[3];
+      vtkFloatingPointType anRGB[3];
       vtkProperty* aProp = vtkProperty::New();
       GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
       aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
@@ -243,20 +245,34 @@ SMESHGUI_AddMeshElementDlg::SMESHGUI_AddMeshElementDlg( SMESHGUI* theModule,
   }
 
   QString elemName;
-  if (myNbNodes == 2)
+  if (myNbNodes == 2) {
     elemName = "EDGE";
-  else if (myNbNodes == 3)
+    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_edges";
+  }
+  else if (myNbNodes == 3) {
     elemName = "TRIANGLE";
+    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_triangles";
+  }
   else if (myNbNodes == 4)
-    if (myElementType == SMDSAbs_Face)
+    if (myElementType == SMDSAbs_Face) {
       elemName = "QUADRANGLE";
-    else
+      myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_quadrangles";
+    }
+    else {
       elemName = "TETRAS";
-  else if (myNbNodes == 8)
+      myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_tetrahedrons";
+    }
+  else if (myNbNodes == 8) {
     elemName = "HEXAS";
-  else if (myElementType == SMDSAbs_Face){
+    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_hexahedrons";
+  }
+  else if (myElementType == SMDSAbs_Face) {
     elemName = "POLYGON";
     myIsPoly = true;
+    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polygons";
+  }
+  else if (myElementType == SMDSAbs_Volume) {
+    myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polyhedrons";
   }
   
   QString iconName      = tr(QString("ICON_DLG_%1").arg(elemName));
@@ -326,6 +342,11 @@ SMESHGUI_AddMeshElementDlg::SMESHGUI_AddMeshElementDlg( SMESHGUI* theModule,
   buttonOk->setAutoDefault(TRUE);
   buttonOk->setDefault(TRUE);
   GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
+
   SMESHGUI_AddMeshElementDlgLayout->addWidget(GroupButtons, 2, 0);
 
   /***************************************************************/
@@ -400,6 +421,7 @@ void SMESHGUI_AddMeshElementDlg::Init()
   connect(buttonOk, SIGNAL(clicked()),     SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()),   SLOT(ClickOnHelp()));
 
   connect(SelectButtonC1A1, SIGNAL(clicked()), SLOT(SetEditCurrentArgument()));
   connect(LineEditC1A1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
@@ -446,8 +468,14 @@ void SMESHGUI_AddMeshElementDlg::ClickOnApply()
     switch (myElementType) {
     case SMDSAbs_Edge:
       aMeshEditor->AddEdge(anArrayOfIdeces.inout()); break;
-    case SMDSAbs_Face:
-      aMeshEditor->AddFace(anArrayOfIdeces.inout()); break;
+    case SMDSAbs_Face:{
+      if(myIsPoly)
+       aMeshEditor->AddPolygonalFace(anArrayOfIdeces.inout());
+      else
+       aMeshEditor->AddFace(anArrayOfIdeces.inout());
+      break;
+
+    }
     case SMDSAbs_Volume:
       aMeshEditor->AddVolume(anArrayOfIdeces.inout()); break;
     default:;
@@ -497,6 +525,23 @@ void SMESHGUI_AddMeshElementDlg::ClickOnCancel()
   return;
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddMeshElementDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : onTextChange()
 // purpose  :
index 33f8a3d3ab6b745713a7febfda6f88bb980e802e..d91e8853bf9eb4e6ac4fe65516d4a12ebf928326 100644 (file)
@@ -106,6 +106,7 @@ private:
     QPushButton * buttonOk;
     QPushButton * buttonCancel;
     QPushButton * buttonApply;
+    QPushButton * buttonHelp;
     QGroupBox   * GroupC1;
     QLabel      * TextLabelC1A1;
     QPushButton * SelectButtonC1A1;
@@ -113,11 +114,14 @@ private:
 
     QCheckBox   * Reverse;
 
+    QString       myHelpFileName;
+
 private slots:
 
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 7d692cfbcb5456a3808f035ec2c300ae269ccafe..ac7ff0b8330c28b8fb0c1c86d86ba20f171327a9 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #include "SMESHGUI_AddQuadraticElementDlg.h"
 
 #include "SMESHGUI.h"
@@ -11,6 +30,8 @@
 #include "SMESH_Actor.h"
 
 #include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
 
 #include "SVTK_Selection.h"
 #include "SVTK_Selector.h"
@@ -90,6 +111,21 @@ namespace SMESH {
       conn = aConn;
       break;
     }
+    case QUAD_EDGE: {
+      static int aConn[] = {1,0,2};
+      conn = aConn;
+      break;
+    }
+    case QUAD_TRIANGLE: {
+      static int aConn[] = {0,2,1,5,4,3};
+      conn = aConn;
+      break;
+    }
+    case QUAD_QUADRANGLE: {
+      static int aConn[] = {0,3,2,1,7,6,5,4};
+      conn = aConn;
+      break;
+    }
     default:;
     }
     if ( !conn ) {
@@ -113,7 +149,7 @@ namespace SMESH {
     vtkUnstructuredGrid* myGrid;
     //vtkProperty* myBackProp, *myProp;
 
-    float anRGB[3], aBackRGB[3];
+    vtkFloatingPointType myRGB[3], myBackRGB[3];
 
   public:
     TElementSimulation (SalomeApp_Application* theApplication)
@@ -136,14 +172,14 @@ namespace SMESH {
       myPreviewActor->SetMapper(myMapper);
 
       vtkProperty* myProp = vtkProperty::New();
-      GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
-      myProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
+      GetColor( "SMESH", "fill_color", myRGB[0], myRGB[1], myRGB[2], QColor( 0, 170, 255 ) );
+      myProp->SetColor( myRGB[0], myRGB[1], myRGB[2] );
       myPreviewActor->SetProperty( myProp );
       myProp->Delete();
 
       vtkProperty* myBackProp = vtkProperty::New();
-      GetColor( "SMESH", "backface_color", aBackRGB[0], aBackRGB[1], aBackRGB[2], QColor( 0, 0, 255 ) );
-      myBackProp->SetColor( aBackRGB[0], aBackRGB[1], aBackRGB[2] );
+      GetColor( "SMESH", "backface_color", myBackRGB[0], myBackRGB[1], myBackRGB[2], QColor( 0, 0, 255 ) );
+      myBackProp->SetColor( myBackRGB[0], myBackRGB[1], myBackRGB[2] );
       myPreviewActor->SetBackfaceProperty( myBackProp );
       myBackProp->Delete();
 
@@ -193,12 +229,12 @@ namespace SMESH {
       // take care of orientation
       if ( aType == VTK_CONVEX_POINT_SET ) {
         if ( theReverse && theMode == VTK_SURFACE ) {
-          //myPreviewActor->GetProperty()->SetColor( aBackRGB[0], aBackRGB[1], aBackRGB[2] );
+          //myPreviewActor->GetProperty()->SetColor( myBackRGB[0], myBackRGB[1], myBackRGB[2] );
         }
       }
       else {
-        // VTK cell connectivity opposites the MED one
-        if ( !theReverse ) {
+        // VTK cell connectivity opposites the MED one for volumic elements
+        if ( theIds.size() > 8 ? !theReverse : theReverse ) {
           ReverseConnectivity( theIds, theType );
         }
       }
@@ -223,7 +259,7 @@ namespace SMESH {
       // restore normal orientation
       if ( aType == VTK_CONVEX_POINT_SET ) {
         if ( theReverse  && theMode == VTK_SURFACE ) {
-          //myPreviewActor->GetProperty()->SetColor( anRGB[0], anRGB[1], anRGB[2] );
+          //myPreviewActor->GetProperty()->SetColor( myRGB[0], myRGB[1], myRGB[2] );
         }
       }
     }
@@ -421,6 +457,10 @@ SMESHGUI_AddQuadraticElementDlg::SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theM
   buttonOk->setAutoDefault(TRUE);
   buttonOk->setDefault(TRUE);
   aGroupButtonsLayout->addWidget(buttonOk, 0, 0);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  aGroupButtonsLayout->addWidget(buttonHelp, 0, 4);
 
   aDialogLayout->addWidget(GroupButtons, 2, 0);
 
@@ -456,30 +496,37 @@ void SMESHGUI_AddQuadraticElementDlg::Init()
   case QUAD_EDGE:
     aNumRows = 1;
     myNbCorners = 2;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_edges
     break;
   case QUAD_TRIANGLE:
     aNumRows = 3;
     myNbCorners = 3;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_triangles
     break;
   case QUAD_QUADRANGLE:
     aNumRows = 4;
     myNbCorners = 4;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_quadrangles
     break;
   case QUAD_TETRAHEDRON:
     aNumRows = 6;
     myNbCorners = 4;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_tetrahedrons
     break;
   case QUAD_PYRAMID:
     aNumRows = 8;
     myNbCorners = 5;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pyramids
     break;
   case QUAD_PENTAHEDRON:
     aNumRows = 9;
     myNbCorners = 6;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_pentahedrons
     break; 
   case QUAD_HEXAHEDRON:
     aNumRows = 12;
     myNbCorners = 8;
+    myHelpFileName = "/adding_quadratic_nodes_and_elements.htm#?"; //Adding_hexahedrons
     break;
   }
     
@@ -521,6 +568,7 @@ void SMESHGUI_AddQuadraticElementDlg::Init()
   connect(buttonOk, SIGNAL(clicked()),     SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()),   SLOT(ClickOnHelp()));
 
   connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
   connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
@@ -636,6 +684,23 @@ void SMESHGUI_AddQuadraticElementDlg::ClickOnCancel()
   return;
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_AddQuadraticElementDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : onTextChange()
 // purpose  :
index 2d1fa863124371418ccb6409a64c7070c2229afb..987a98c0a81528ad54f654819172a5e6e9bbc9ae 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 #ifndef DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
 #define DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
 
@@ -78,7 +97,10 @@ private:
     QPushButton*  buttonOk;
     QPushButton*  buttonCancel;
     QPushButton*  buttonApply;
-   
+    QPushButton * buttonHelp;
+
+    QString       myHelpFileName;
+
 private slots:
   
     void onTextChange(const QString&);
@@ -89,6 +111,7 @@ private slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCorners() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 7551df818a0d5a70d5a93bce657424f1eca558d3..7770056ac61d92c549a69fbbe99a501b8a1a9511 100644 (file)
 
 #include "SUIT_Session.h"
 #include "SUIT_OverrideCursor.h"
+#include "SUIT_MessageBox.h"
 
 #include "SALOME_ListIO.hxx"
 #include "SALOME_InteractiveObject.hxx"
 #include "SALOME_ListIteratorOfListIO.hxx"
 
-#include "SalomeApp_Application.h"
+#include "LightApp_Application.h"
 #include "LightApp_SelectionMgr.h"
 
 #include "SVTK_Selector.h"
@@ -158,7 +159,7 @@ protected:
     myActor->SetInfinitive(true);
     myActor->SetMapper(myMapper);
 
-    float anRGB[3];
+    vtkFloatingPointType anRGB[3];
     vtkProperty* aProp = vtkProperty::New();
     SMESH::GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
     aProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
@@ -324,6 +325,10 @@ SMESHGUI_ClippingDlg::SMESHGUI_ClippingDlg (SMESHGUI* theModule,
   buttonOk->setAutoDefault(TRUE);
   buttonOk->setDefault(TRUE);
   GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
 
   SMESHGUI_ClippingDlgLayout->addWidget(GroupPlanes,      0, 0);
   SMESHGUI_ClippingDlgLayout->addWidget(GroupParameters,  1, 0);
@@ -344,6 +349,8 @@ SMESHGUI_ClippingDlg::SMESHGUI_ClippingDlg (SMESHGUI* theModule,
   myIsSelectPlane = false;
   onSelectionChanged();
 
+  myHelpFileName = "clipping.htm";
+
   // signals and slots connections :
   connect(ComboBoxPlanes, SIGNAL(activated(int)), this, SLOT(onSelectPlane(int)));
   connect(buttonNew, SIGNAL(clicked()), this, SLOT(ClickOnNew()));
@@ -357,6 +364,7 @@ SMESHGUI_ClippingDlg::SMESHGUI_ClippingDlg (SMESHGUI* theModule,
   connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
   connect(mySelectionMgr,  SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
   /* to close dialog if study frame change */
@@ -425,6 +433,23 @@ void SMESHGUI_ClippingDlg::ClickOnCancel()
   close();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_ClippingDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : onSelectionChanged()
 // purpose  : Called when selection is changed
@@ -631,18 +656,18 @@ void SMESHGUI_ClippingDlg::SetCurrentPlaneParam()
 
   OrientedPlane* aPlane = myPlanes[aCurPlaneIndex].GetPointer();
 
-  float aNormal[3];
+  vtkFloatingPointType aNormal[3];
   SMESH::Orientation anOrientation;
-  float aDir[3][3] = {{0, 0, 0}, {0, 0, 0}};
+  vtkFloatingPointType aDir[3][3] = {{0, 0, 0}, {0, 0, 0}};
   {
     static double aCoeff = vtkMath::Pi()/180.0;
 
-    float aRot[2] = {getRotation1(), getRotation2()};
+    vtkFloatingPointType aRot[2] = {getRotation1(), getRotation2()};
     aPlane->myAngle[0] = aRot[0];
     aPlane->myAngle[1] = aRot[1];
 
-    float anU[2] = {cos(aCoeff*aRot[0]), cos(aCoeff*aRot[1])};
-    float aV[2] = {sqrt(1.0-anU[0]*anU[0]), sqrt(1.0-anU[1]*anU[1])};
+    vtkFloatingPointType anU[2] = {cos(aCoeff*aRot[0]), cos(aCoeff*aRot[1])};
+    vtkFloatingPointType aV[2] = {sqrt(1.0-anU[0]*anU[0]), sqrt(1.0-anU[1]*anU[1])};
     aV[0] = aRot[0] > 0? aV[0]: -aV[0];
     aV[1] = aRot[1] > 0? aV[1]: -aV[1];
 
@@ -690,37 +715,37 @@ void SMESHGUI_ClippingDlg::SetCurrentPlaneParam()
   myActor->SetPlaneParam(aNormal, getDistance(), aPlane);
 
   vtkDataSet* aDataSet = myActor->GetInput();
-  float *aPnt = aDataSet->GetCenter();
+  vtkFloatingPointType *aPnt = aDataSet->GetCenter();
 
-  float* anOrigin = aPlane->GetOrigin();
-  float aDel = aDataSet->GetLength()/2.0;
+  vtkFloatingPointType* anOrigin = aPlane->GetOrigin();
+  vtkFloatingPointType aDel = aDataSet->GetLength()/2.0;
 
-  float aDelta[2][3] = {{aDir[0][0]*aDel, aDir[0][1]*aDel, aDir[0][2]*aDel},
-                       {aDir[1][0]*aDel, aDir[1][1]*aDel, aDir[1][2]*aDel}};
-  float aParam, aPnt0[3], aPnt1[3], aPnt2[3];
+  vtkFloatingPointType aDelta[2][3] = {{aDir[0][0]*aDel, aDir[0][1]*aDel, aDir[0][2]*aDel},
+                                      {aDir[1][0]*aDel, aDir[1][1]*aDel, aDir[1][2]*aDel}};
+  vtkFloatingPointType aParam, aPnt0[3], aPnt1[3], aPnt2[3];
 
-  float aPnt01[3] = {aPnt[0] - aDelta[0][0] - aDelta[1][0],
-                    aPnt[1] - aDelta[0][1] - aDelta[1][1],
-                    aPnt[2] - aDelta[0][2] - aDelta[1][2]};
-  float aPnt02[3] = {aPnt01[0] + aNormal[0],
-                     aPnt01[1] + aNormal[1],
-                     aPnt01[2] + aNormal[2]};
+  vtkFloatingPointType aPnt01[3] = {aPnt[0] - aDelta[0][0] - aDelta[1][0],
+                                   aPnt[1] - aDelta[0][1] - aDelta[1][1],
+                                   aPnt[2] - aDelta[0][2] - aDelta[1][2]};
+  vtkFloatingPointType aPnt02[3] = {aPnt01[0] + aNormal[0],
+                                   aPnt01[1] + aNormal[1],
+                                   aPnt01[2] + aNormal[2]};
   vtkPlane::IntersectWithLine(aPnt01,aPnt02,aNormal,anOrigin,aParam,aPnt0);
 
-  float aPnt11[3] = {aPnt[0] - aDelta[0][0] + aDelta[1][0],
-                    aPnt[1] - aDelta[0][1] + aDelta[1][1],
-                    aPnt[2] - aDelta[0][2] + aDelta[1][2]};
-  float aPnt12[3] = {aPnt11[0] + aNormal[0],
-                    aPnt11[1] + aNormal[1],
-                    aPnt11[2] + aNormal[2]};
+  vtkFloatingPointType aPnt11[3] = {aPnt[0] - aDelta[0][0] + aDelta[1][0],
+                                   aPnt[1] - aDelta[0][1] + aDelta[1][1],
+                                   aPnt[2] - aDelta[0][2] + aDelta[1][2]};
+  vtkFloatingPointType aPnt12[3] = {aPnt11[0] + aNormal[0],
+                                   aPnt11[1] + aNormal[1],
+                                   aPnt11[2] + aNormal[2]};
   vtkPlane::IntersectWithLine(aPnt11,aPnt12,aNormal,anOrigin,aParam,aPnt1);
 
-  float aPnt21[3] = {aPnt[0] + aDelta[0][0] - aDelta[1][0],
-                    aPnt[1] + aDelta[0][1] - aDelta[1][1],
-                    aPnt[2] + aDelta[0][2] - aDelta[1][2]};
-  float aPnt22[3] = {aPnt21[0] + aNormal[0],
-                    aPnt21[1] + aNormal[1],
-                    aPnt21[2] + aNormal[2]};
+  vtkFloatingPointType aPnt21[3] = {aPnt[0] + aDelta[0][0] - aDelta[1][0],
+                                   aPnt[1] + aDelta[0][1] - aDelta[1][1],
+                                   aPnt[2] + aDelta[0][2] - aDelta[1][2]};
+  vtkFloatingPointType aPnt22[3] = {aPnt21[0] + aNormal[0],
+                                   aPnt21[1] + aNormal[1],
+                                   aPnt21[2] + aNormal[2]};
   vtkPlane::IntersectWithLine(aPnt21,aPnt22,aNormal,anOrigin,aParam,aPnt2);
 
   vtkPlaneSource* aPlaneSource = aPlane->myPlaneSource;
index bc4bab595580c113f268a30aa5964826cef552c2..a9629699f14a45f063d449173c04d048ec3a3a65 100644 (file)
@@ -111,8 +111,10 @@ private:
     QPushButton*      buttonOk;
     QPushButton*      buttonCancel;
     QPushButton*      buttonApply;
+    QPushButton*      buttonHelp;
 
     bool myIsSelectPlane;
+    QString myHelpFileName;
 
 public slots:
 
@@ -126,6 +128,7 @@ public slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
 };
 
 #endif // DIALOGBOX_TRANSPARENCYDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.cxx
new file mode 100644 (file)
index 0000000..1f53247
--- /dev/null
@@ -0,0 +1,130 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadDlg.cxx
+*  Module : SMESH
+*/
+
+#include <SMESHGUI_ConvToQuadDlg.h>
+#include <SUIT_Session.h>
+
+#include <qgroupbox.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+
+SMESHGUI_ConvToQuadDlg::SMESHGUI_ConvToQuadDlg()
+: SMESHGUI_Dialog( 0, false, true )
+{
+
+  setCaption( tr( "CAPTION" ) );
+
+  // Create top controls  
+  QGroupBox* aGrp = new QGroupBox( 3, Qt::Horizontal, mainFrame() );
+  aGrp->setFrameStyle( QFrame::NoFrame );
+  aGrp->setInsideMargin( 0 );
+
+  // mesh
+  createObject( tr( "MESH" ), aGrp, 0 );
+
+  //Create check box
+   myMedNdsOnGeom = new QCheckBox( tr( "MEDIUMNDS" ), mainFrame() );
+
+  //Create RadioButtons
+  myBG = new QButtonGroup( 2, Qt::Vertical, "", mainFrame() );
+  myBG->setExclusive( true );
+  
+  myRB1 = new QRadioButton( myBG );  
+  myRB1->setText( tr( "RADIOBTN_1" ) );
+  myRB1->setChecked( true );
+
+  myRB2 = new QRadioButton( myBG );  
+  myRB2->setText( tr( "RADIOBTN_2" ) );
+
+  // Fill layout
+  QVBoxLayout* aLay = new QVBoxLayout( mainFrame(), 5, 5 );
+  aLay->addWidget( aGrp );
+  aLay->addWidget( myMedNdsOnGeom );
+  aLay->addWidget( myBG );
+  
+  connect(myBG, SIGNAL( clicked( int ) ), this, SIGNAL( onClicked( int ) ) );
+}
+
+SMESHGUI_ConvToQuadDlg::~SMESHGUI_ConvToQuadDlg()
+{
+}
+
+bool SMESHGUI_ConvToQuadDlg::IsMediumNdsOnGeom() const
+{
+  return !myMedNdsOnGeom->isChecked();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetMediumNdsOnGeom(const bool theCheck)
+{
+  myMedNdsOnGeom->setChecked(theCheck);
+}
+
+bool SMESHGUI_ConvToQuadDlg::IsEnabledCheck() const
+{
+  return myMedNdsOnGeom->isEnabled();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledCheck( const bool theCheck )
+{
+  myMedNdsOnGeom->setEnabled( theCheck );
+}
+
+int SMESHGUI_ConvToQuadDlg::CurrentRB( )
+{
+  return myBG->selectedId();
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledControls( const bool theCheck )
+{
+  myBG->setEnabled( theCheck );
+  myMedNdsOnGeom->setEnabled( theCheck );
+  setButtonEnabled( theCheck, QtxDialog::OK | QtxDialog::Apply );
+}
+
+void SMESHGUI_ConvToQuadDlg::SetEnabledRB( const int idx, const bool theCheck ) 
+{
+  if(idx)
+  {
+    myRB2->setEnabled( theCheck );
+    myRB1->setEnabled( !theCheck );
+    myRB1->setChecked( true );
+  }
+  else
+  {
+    myRB1->setEnabled( theCheck );
+    myRB2->setEnabled( !theCheck );
+    myRB2->setChecked( true );
+  }
+  emit onClicked( myBG->selectedId() );
+}
+
+
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h b/src/SMESHGUI/SMESHGUI_ConvToQuadDlg.h
new file mode 100644 (file)
index 0000000..596b823
--- /dev/null
@@ -0,0 +1,81 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadDlg.h
+*  Module : SMESH
+*/
+
+
+#ifndef SMESHGUI_ConvToQuadDlg_H
+#define SMESHGUI_ConvToQuadDlg_H
+
+#include "SMESHGUI_Dialog.h"
+/*#include <qframe.h>
+#include <qstringlist.h>
+#include <qmap.h>*/
+
+//idl headers
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+class QCheckBox;
+class QRadioButton;
+class QButtonGroup;
+
+class SMESHGUI_ConvToQuadDlg : public SMESHGUI_Dialog
+{ 
+  Q_OBJECT       
+        
+public:
+           SMESHGUI_ConvToQuadDlg();
+  virtual ~SMESHGUI_ConvToQuadDlg();
+
+  bool     IsMediumNdsOnGeom() const;
+  void     SetMediumNdsOnGeom(const bool theCheck);
+  bool     IsEnabledCheck() const;
+  void     SetEnabledCheck( const bool theCheck );
+  void     SetEnabledGroup( const bool theCheck );
+  void     SetEnabledControls( const bool theCheck );
+  void     SetEnabledRB( const int idx, const bool theCheck );
+  int      CurrentRB();//returns the ID of the selected toggle button
+
+signals:
+  void     onClicked( int );
+
+private:
+
+  QCheckBox* myMedNdsOnGeom;
+  QButtonGroup* myBG;
+  QRadioButton* myRB1;
+  QRadioButton* myRB2;
+
+};
+
+#endif
+
+
+
+
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.cxx
new file mode 100644 (file)
index 0000000..a88743f
--- /dev/null
@@ -0,0 +1,286 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadOp.h
+*  Module : SMESHGUI
+*/
+
+#include "SMESHGUI_ConvToQuadOp.h"
+#include "SMESHGUI_ConvToQuadDlg.h"
+
+#include "SMESHGUI.h"
+#include "SMESHGUI_Utils.h"
+
+#include "SMESH_TypeFilter.hxx"
+
+#include "SalomeApp_Tools.h"
+
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_UpdateFlags.h"
+       
+//================================================================================
+/*!
+ * \brief Constructor
+ *
+ * Initialize operation
+*/
+//================================================================================
+SMESHGUI_ConvToQuadOp::SMESHGUI_ConvToQuadOp()
+  : SMESHGUI_SelectionOp(), 
+    myDlg( 0 )
+{
+}
+
+//================================================================================
+/*!
+ * \brief Destructor
+*/
+//================================================================================
+SMESHGUI_ConvToQuadOp::~SMESHGUI_ConvToQuadOp()
+{
+  if ( myDlg )
+    delete myDlg;
+}
+
+//================================================================================
+/*!
+ * \brief Gets dialog of this operation
+  * \retval LightApp_Dialog* - pointer to dialog of this operation
+*/
+//================================================================================
+LightApp_Dialog* SMESHGUI_ConvToQuadOp::dlg() const
+{
+  return myDlg;
+}
+
+//================================================================================
+/*!
+ * \brief Creates dialog if necessary and shows it
+ *
+ * Virtual method redefined from base class called when operation is started creates
+ * dialog if necessary and shows it, activates selection
+ */
+//================================================================================
+void SMESHGUI_ConvToQuadOp::startOperation()
+{
+  if( !myDlg )
+  {
+    myDlg = new SMESHGUI_ConvToQuadDlg( );
+  }
+  connect( myDlg, SIGNAL( onClicked( int ) ), SLOT( ConnectRadioButtons( int ) ) );
+
+  SMESHGUI_SelectionOp::startOperation();
+
+  myDlg->SetMediumNdsOnGeom( false );
+  myDlg->activateObject( 0 );
+  myDlg->show();
+
+  selectionDone();
+}
+
+//================================================================================
+/*!
+ * \brief Updates dialog's look and feel
+ *
+ * Virtual method redefined from the base class updates dialog's look and feel
+ */
+//================================================================================
+void SMESHGUI_ConvToQuadOp::selectionDone()
+{
+  if ( !dlg()->isShown() )
+    return;
+
+  SMESHGUI_SelectionOp::selectionDone();
+  try
+  {
+    QString anMeshEntry = myDlg->selectedObject( 0 );
+    _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+    if ( !pMesh ) return;
+
+    SMESH::SMESH_Mesh_var mesh =
+    SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );  
+
+    if( mesh->_is_nil() )
+    {
+      myDlg->SetEnabledControls( false );
+    }
+    else if( ConsistMesh( mesh ) == SMESHGUI_ConvToQuadOp::Quadratic )
+    {
+      myDlg->SetEnabledRB( 0, false );
+    }
+    else if( ConsistMesh( mesh ) == SMESHGUI_ConvToQuadOp::Linear )
+    {
+      myDlg->SetEnabledRB( 1, false );
+    }
+    else 
+    {
+      myDlg->SetEnabledControls( true );
+    }
+  }
+  catch ( const SALOME::SALOME_Exception& S_ex )
+  {
+    SalomeApp_Tools::QtCatchCorbaException( S_ex );
+  }
+  catch ( ... )
+  {
+  }
+}
+
+//================================================================================
+/*!
+ * \brief Creates selection filter
+  * \param theId - identifier of current selection widget
+  * \retval SUIT_SelectionFilter* - pointer to the created filter or null
+ *
+ * Creates selection filter in accordance with identifier of current selection widget
+ */
+//================================================================================
+SUIT_SelectionFilter* SMESHGUI_ConvToQuadOp::createFilter( const int theId ) const
+{
+  if ( theId == 0 )
+    return new SMESH_TypeFilter( MESH );
+  else
+    return 0;
+}
+
+//================================================================================
+/*!
+ * \brief Edits mesh
+ *
+ * Virtual slot redefined from the base class called when "Apply" button is clicked
+ */
+//================================================================================
+bool SMESHGUI_ConvToQuadOp::onApply()
+{
+
+  QString aMess;
+
+  QString anMeshEntry = myDlg->selectedObject( 0 );
+  _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+  if ( !pMesh )
+  {
+    dlg()->show();
+    SUIT_MessageBox::warn1( myDlg,
+        tr( "SMESH_WRN_WARNING" ), tr("MESH_IS_NOT_SELECTED"), tr( "SMESH_BUT_OK" ) );
+   
+    return false;
+  }
+
+  SMESH::SMESH_Mesh_var mesh =
+  SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );  
+
+  if( CORBA::is_nil(mesh) )
+  {
+    SUIT_MessageBox::warn1( myDlg,
+        tr( "SMESH_WRN_WARNING" ), tr("REF_IS_NULL"), tr( "SMESH_BUT_OK" ) );
+
+    return false;
+  } 
+
+  bool aResult = false;
+
+  try
+  {
+    SMESH::SMESH_MeshEditor_var aEditor = mesh->GetMeshEditor();
+    if( !myDlg->CurrentRB() )
+    {
+      bool aParam = true;
+      if( myDlg->IsEnabledCheck() )
+       aParam = myDlg->IsMediumNdsOnGeom();
+
+      aEditor->ConvertToQuadratic( aParam );
+      aResult = true; 
+    }
+    else
+    {
+      aResult = aEditor->ConvertFromQuadratic();
+    }
+  }
+  catch ( const SALOME::SALOME_Exception& S_ex )
+  {
+    SalomeApp_Tools::QtCatchCorbaException( S_ex );
+    aResult = false;
+  }
+  catch ( ... )
+  {
+    aResult = false;
+  }
+  if( aResult )
+  {
+    update( UF_ObjBrowser | UF_Model | UF_Viewer );
+    selectionDone();
+  }
+  return aResult;
+}
+
+//================================================================================
+/*! ConsistMesh
+ *  Determines, what elements this mesh contains. 
+ */
+//================================================================================
+SMESHGUI_ConvToQuadOp::MeshType SMESHGUI_ConvToQuadOp::ConsistMesh( const SMESH::SMESH_Mesh_var& mesh) const
+{
+  int nbAllElem = 0, nbQEdges =0, nbQFaces =0, nbQVolum = 0;
+  int nbEdges = 0, nbFaces = 0, nbVolum = 0;
+
+  nbAllElem = (int)mesh->NbElements();
+  nbQEdges = (int)mesh->NbEdgesOfOrder(SMESH::ORDER_QUADRATIC);
+  nbQFaces = (int)mesh->NbFacesOfOrder(SMESH::ORDER_QUADRATIC);
+  nbQVolum = (int)mesh->NbVolumesOfOrder(SMESH::ORDER_QUADRATIC);
+
+  nbEdges = (int)mesh->NbEdgesOfOrder(SMESH::ORDER_LINEAR);
+  nbFaces = (int)mesh->NbFacesOfOrder(SMESH::ORDER_LINEAR);
+  nbVolum = (int)mesh->NbVolumesOfOrder(SMESH::ORDER_LINEAR);
+
+  if( nbAllElem == (nbQEdges+nbQFaces+nbQVolum) )
+    return SMESHGUI_ConvToQuadOp::Quadratic;
+  else if ( nbAllElem == (nbEdges+nbFaces+nbVolum) )
+    return SMESHGUI_ConvToQuadOp::Linear;
+  else 
+    return SMESHGUI_ConvToQuadOp::Comp;
+}
+
+
+void SMESHGUI_ConvToQuadOp::ConnectRadioButtons( int id )
+{
+  QString anMeshEntry = myDlg->selectedObject( 0 );
+  _PTR(SObject) pMesh = studyDS()->FindObjectID( anMeshEntry.latin1() );
+  if ( !pMesh ) return;
+
+  SMESH::SMESH_Mesh_var mesh =
+    SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );  
+
+  GEOM::GEOM_Object_var mainGeom;
+  mainGeom = mesh->GetShapeToMesh();
+
+  if( id || mainGeom->_is_nil() )
+    myDlg->SetEnabledCheck( false );
+  else
+    myDlg->SetEnabledCheck( true );
+}
+
+
diff --git a/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h b/src/SMESHGUI/SMESHGUI_ConvToQuadOp.h
new file mode 100644 (file)
index 0000000..bc862f9
--- /dev/null
@@ -0,0 +1,70 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
+/**
+*  SMESH SMESHGUI
+*
+*  Copyright (C) 2005  CEA/DEN, EDF R&D
+*
+*
+*
+*  File   : SMESHGUI_ConvToQuadOp.h
+*  Module : SMESHGUI
+*/
+
+#ifndef SMESHGUI_ConvToQuadOp_H
+#define SMESHGUI_ConvToQuadOp_H
+
+#include <SMESHGUI_SelectionOp.h>
+//#include <qstringlist.h>
+
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+
+class SMESHGUI_ConvToQuadDlg;
+
+class SMESHGUI_ConvToQuadOp : public SMESHGUI_SelectionOp
+{ 
+  Q_OBJECT
+
+public:      
+enum MeshType{ Comp = 0, Linear, Quadratic };
+
+public:
+  SMESHGUI_ConvToQuadOp();
+  virtual ~SMESHGUI_ConvToQuadOp();
+  
+  virtual LightApp_Dialog*       dlg() const;  
+
+protected:
+  virtual void                   startOperation();
+  virtual void                   selectionDone();
+  virtual SUIT_SelectionFilter*  createFilter( const int ) const;
+  MeshType                       ConsistMesh( const SMESH::SMESH_Mesh_var& ) const;
+
+protected slots:
+  virtual bool                   onApply();
+  void                           ConnectRadioButtons( int);
+
+private:
+  SMESHGUI_ConvToQuadDlg*        myDlg;
+};
+
+#endif
+
diff --git a/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx b/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx
deleted file mode 100644 (file)
index 4f97f99..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  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   : SMESHGUI_CreateHypothesesDlg.cxx
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_CreateHypothesesDlg.h"
-
-#include "SMESHGUI_HypothesesUtils.h"
-#include "SMESHGUI_Hypotheses.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "utilities.h"
-
-// QT Includes
-#include <qbuttongroup.h>
-#include <qgroupbox.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qlistview.h>
-#include <qheader.h>
-
-using namespace std;
-
-//=================================================================================
-// function : SMESHGUI_CreateHypothesesDlg()
-// purpose  : Constructs a SMESHGUI_CreateHypothesesDlg which is a child of 'parent', with the
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_CreateHypothesesDlg::SMESHGUI_CreateHypothesesDlg (SMESHGUI* theModule,
-                                                            const char* name,
-                                                            bool modal,
-                                                            bool isAlgo)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-               WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-       myIsAlgo(isAlgo),
-       mySMESHGUI( theModule )
-{
-  if (!name)
-    setName("SMESHGUI_CreateHypothesesDlg");
-  setCaption(isAlgo ? tr("SMESH_CREATE_ALGORITHMS" ) : tr("SMESH_CREATE_HYPOTHESES" ));
-  setSizeGripEnabled(TRUE);
-
-  QGridLayout* SMESHGUI_CreateHypothesesDlgLayout = new QGridLayout(this);
-  SMESHGUI_CreateHypothesesDlgLayout->setSpacing(6);
-  SMESHGUI_CreateHypothesesDlgLayout->setMargin(11);
-
-  /***************************************************************/
-  GroupAlgorithms = new QGroupBox(this, "GroupAlgorithms");
-  GroupAlgorithms->setTitle(isAlgo ? tr("SMESH_AVAILABLE_ALGORITHMS") : tr("SMESH_AVAILABLE_HYPOTHESES"));
-  GroupAlgorithms->setColumnLayout(0, Qt::Vertical);
-  GroupAlgorithms->layout()->setSpacing(0);
-  GroupAlgorithms->layout()->setMargin(0);
-
-  QGridLayout* hypLayout = new QGridLayout(GroupAlgorithms->layout());
-  hypLayout->setGeometry(QRect(12, 18, 139, 250));
-  hypLayout->setAlignment(Qt::AlignTop);
-  hypLayout->setSpacing(6);
-  hypLayout->setMargin(11);
-
-  ListAlgoDefinition = new QListView(GroupAlgorithms, "ListAlgoDefinition");
-  ListAlgoDefinition->setMinimumSize(400, 200);
-  ListAlgoDefinition->addColumn("");
-  ListAlgoDefinition->header()->hide();
-  ListAlgoDefinition->setSelectionMode(QListView::Single);
-  ListAlgoDefinition->setResizeMode(QListView::AllColumns);
-  ListAlgoDefinition->setRootIsDecorated(true);
-
-  hypLayout->addWidget(ListAlgoDefinition, 0, 0);
-  SMESHGUI_CreateHypothesesDlgLayout->addWidget(GroupAlgorithms, 0, 0);
-
-  /***************************************************************/
-  GroupButtons = new QGroupBox(this, "GroupButtons");
-  GroupButtons->setColumnLayout(0, Qt::Vertical);
-  GroupButtons->layout()->setSpacing(0);
-  GroupButtons->layout()->setMargin(0);
-  QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-  GroupButtonsLayout->setAlignment(Qt::AlignTop);
-  GroupButtonsLayout->setSpacing(6);
-  GroupButtonsLayout->setMargin(11);
-
-  buttonApply = new QPushButton(GroupButtons, "buttonApply");
-  buttonApply->setText(tr("SMESH_BUT_CREATE" ));
-  buttonApply->setAutoDefault(TRUE);
-  buttonApply->setDefault(FALSE);
-  buttonApply->setEnabled(FALSE);
-  GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
-  QSpacerItem* spacer_9 = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
-  GroupButtonsLayout->addItem(spacer_9, 0, 2);
-
-  buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
-  buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
-  buttonCancel->setAutoDefault(TRUE);
-  buttonCancel->setDefault(TRUE);
-  buttonCancel->setEnabled(TRUE);
-  GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
-  SMESHGUI_CreateHypothesesDlgLayout->addWidget(GroupButtons, 1, 0);
-  /***************************************************************/
-
-  Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_CreateHypothesesDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_CreateHypothesesDlg::~SMESHGUI_CreateHypothesesDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  InitAlgoDefinition();
-
-  /* signals and slots connections */
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-  connect(buttonApply , SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-
-//  connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  connect(ListAlgoDefinition, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged()));
-  connect(ListAlgoDefinition, SIGNAL(doubleClicked(QListViewItem*)), this, SLOT(onDoubleClicked(QListViewItem*)));
-
-  this->show();
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return;
-  QListViewItem* item = ListAlgoDefinition->selectedItem();
-  if (!item)
-    return;
-  QString aHypType = item->text(1);
-  MESSAGE("Apply " << aHypType);
-  char* sHypType = (char*)aHypType.latin1();
-
-  HypothesisData* aHypData = SMESH::GetHypothesisData(sHypType);
-  if (!aHypData)
-    return;
-  QString aClientLibName = aHypData->ClientLibName;
-  MESSAGE("Client lib name = " << aClientLibName);
-
-  if (aClientLibName == "") {
-    // Call hypothesis creation server method (without GUI)
-    QString aHypName = aHypData->Label;
-    SMESH::CreateHypothesis(sHypType, aHypName, myIsAlgo);
-  } else {
-    // Get hypotheses creator client (GUI)
-    SMESHGUI_GenericHypothesisCreator* aCreator =
-      SMESH::GetHypothesisCreator(sHypType);
-
-    if( aCreator )
-      // Create hypothesis/algorithm
-      aCreator->create( myIsAlgo, this );
-    else
-    {
-      // report about error
-    }
-  }
-
-//  buttonApply->setEnabled(FALSE);
-  return;
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupButtons->setEnabled(true);
-  return;
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::enterEvent (QEvent*)
-{
-  ActivateThisDialog();
-  return;
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::closeEvent (QCloseEvent* e)
-{
-  mySMESHGUI->ResetState();
-  QDialog::closeEvent(e);
-}
-
-//=================================================================================
-// function : onSelectionChanged()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::onSelectionChanged()
-{
-  QListViewItem* item = ListAlgoDefinition->selectedItem();
-  buttonApply->setEnabled(item && item->depth() > 0);
-}
-
-//=================================================================================
-// function : onDoubleClicked()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::onDoubleClicked (QListViewItem* i)
-{
-  if (i && i->depth() > 0)
-    this->ClickOnApply();
-}
-
-//=================================================================================
-// function : InitAlgoDefinition()
-// purpose  :
-//=================================================================================
-void SMESHGUI_CreateHypothesesDlg::InitAlgoDefinition()
-{
-  ListAlgoDefinition->clear();
-  QStringList HypList = SMESH::GetAvailableHypotheses(myIsAlgo);
-  for (int i = 0; i < HypList.count(); ++i) {
-    HypothesisData* aHypData = SMESH::GetHypothesisData(HypList[i]);
-    QListViewItem* parentItem = 0;
-    QListViewItem* childItem = ListAlgoDefinition->firstChild();
-    while (childItem) {
-      if (childItem->text(0) == aHypData->PluginName) {
-       parentItem = childItem;
-       break;
-      }
-      childItem = childItem->nextSibling();
-    }
-    if (!parentItem)
-      parentItem = new QListViewItem(ListAlgoDefinition, aHypData->PluginName);
-    parentItem->setOpen(true);
-    QListViewItem* aItem = new QListViewItem(parentItem, aHypData->Label, HypList[i]);
-    QPixmap aPixMap (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr(aHypData->IconId)));
-    if (!aPixMap.isNull())
-      aItem->setPixmap(0, aPixMap);
-  }
-}
diff --git a/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h b/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.h
deleted file mode 100644 (file)
index e2bb65a..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  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   : SMESHGUI_CreateHypothesesDlg.h
-//  Author : Julia DOROVSKIKH
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_CREATE_HYPOTHESES_H
-#define DIALOGBOX_CREATE_HYPOTHESES_H
-
-// QT Includes
-#include <qvariant.h>
-#include <qdialog.h>
-#include <qstringlist.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <map>
-#include <string>
-
-class QButtonGroup;
-class QGroupBox;
-class QPushButton;
-class QListView;
-class QListViewItem;
-class SMESHGUI;
-
-//=================================================================================
-// class    : SMESHGUI_CreateHypothesesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_CreateHypothesesDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_CreateHypothesesDlg (SMESHGUI*,
-                                 const char* name = 0,
-                                 bool modal = FALSE,
-                                 bool isAlgo = FALSE);
-    ~SMESHGUI_CreateHypothesesDlg ();
-
-private:
-
-    void Init() ;
-    void closeEvent( QCloseEvent* e ) ;
-    void enterEvent ( QEvent * ) ;
-
-    void InitAlgoDefinition();
-
-    SMESHGUI*     mySMESHGUI;
-    bool          myIsAlgo;
-
-    QGroupBox*    GroupButtons;
-    QPushButton*  buttonCancel;
-    QPushButton*  buttonApply;
-
-    QGroupBox* GroupAlgorithms;
-    QListView* ListAlgoDefinition;
-
-private slots:
-
-    void ClickOnCancel();
-    void ClickOnApply();
-    void ActivateThisDialog() ;
-
-    void onSelectionChanged();
-    void onDoubleClicked(QListViewItem*);
-};
-
-#endif // DIALOGBOX_CREATE_HYPOTHESES_H
index d2f316fda323ae3c4837619f02fe6a90ba0abfdc..5545054d96285d9f009ad399bd9a82247419532b 100755 (executable)
 #include "SUIT_ResourceMgr.h"\r
 #include "SUIT_Desktop.h"\r
 #include "SUIT_FileDlg.h"\r
+#include "SUIT_Session.h"\r
+#include "SUIT_MessageBox.h"\r
 \r
 #include "SalomeApp_Study.h"\r
+#include "LightApp_Application.h"\r
 #include "LightApp_DataOwner.h"\r
 #include "LightApp_SelectionMgr.h"\r
 #include "SalomeApp_Tools.h"\r
@@ -105,6 +108,8 @@ SMESHGUI_CreatePatternDlg::SMESHGUI_CreatePatternDlg( SMESHGUI*   theModule,
   if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
     mySelector = aViewWindow->GetSelector();\r
 \r
+  myHelpFileName = "pattern_mapping.htm";\r
+\r
   Init(theType);\r
 }\r
 \r
@@ -185,6 +190,7 @@ QFrame* SMESHGUI_CreatePatternDlg::createButtonFrame (QWidget* theParent)
   myOkBtn    = new QPushButton(tr("SMESH_BUT_OK"    ), aFrame);\r
   mySaveBtn  = new QPushButton(tr("SAVE"            ), aFrame);\r
   myCloseBtn = new QPushButton(tr("SMESH_BUT_CANCEL"), aFrame);\r
+  myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);\r
 \r
   QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);\r
 \r
@@ -194,10 +200,12 @@ QFrame* SMESHGUI_CreatePatternDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(mySaveBtn);\r
   aLay->addItem(aSpacer);\r
   aLay->addWidget(myCloseBtn);\r
+  aLay->addWidget(myHelpBtn);\r
 \r
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));\r
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));\r
   connect(mySaveBtn, SIGNAL(clicked()), SLOT(onSave()));\r
+  connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));\r
 \r
   return aFrame;\r
 }\r
@@ -463,6 +471,23 @@ void SMESHGUI_CreatePatternDlg::onClose()
   emit Close();\r
 }\r
 \r
+//=================================================================================\r
+// function : onHelp()\r
+// purpose  :\r
+//=================================================================================\r
+void SMESHGUI_CreatePatternDlg::onHelp()\r
+{\r
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());\r
+  if (app) \r
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);\r
+  else {\r
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),\r
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").\r
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),\r
+                          QObject::tr("BUT_OK"));\r
+  }\r
+}\r
+\r
 //=======================================================================\r
 // function : loadFromObject()\r
 // purpose  : Load pattern from geom object corresponding to the mesh/submesh\r
@@ -491,6 +516,7 @@ bool SMESHGUI_CreatePatternDlg::loadFromObject (const bool theMess)
       if      (aCode == SMESH::SMESH_Pattern::ERR_LOAD_EMPTY_SUBMESH  ) aMess = tr("ERR_LOAD_EMPTY_SUBMESH");\r
       else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_NARROW_FACE   ) aMess = tr("ERR_LOADF_NARROW_FACE");\r
       else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CLOSED_FACE   ) aMess = tr("ERR_LOADF_CLOSED_FACE");\r
+      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CANT_PROJECT   ) aMess = tr("ERR_LOADF_CANT_PROJECT");\r
       else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_BAD_SHAPE     ) aMess = tr("ERR_LOADV_BAD_SHAPE");\r
       else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_COMPUTE_PARAMS) aMess = tr("ERR_LOADV_COMPUTE_PARAMS");\r
       else                                                              aMess = tr("ERROR_OF_CREATION");\r
index 84a0cbd34ea1cbf9e60efa2a6442580cfe34c8c7..1c2c714c24e855340d61e570bd9e3e7e04b7fb13 100755 (executable)
@@ -90,6 +90,7 @@ private slots:
   void                     onOk();
   void                     onSave();
   void                     onClose();
+  void                     onHelp();
 
   void                     onDeactivate();
 
@@ -116,6 +117,7 @@ private:
   QPushButton*             myOkBtn;
   QPushButton*             mySaveBtn;
   QPushButton*             myCloseBtn;
+  QPushButton*             myHelpBtn;
 
   QButtonGroup*            myTypeGrp;
   QRadioButton*            mySwitch2d;
@@ -141,6 +143,8 @@ private:
 
   SMESH::SMESH_Pattern_var myPattern;
   bool                     myIsLoaded;
+
+  QString                  myHelpFileName;
 };
 
 #endif
index 02ac5a08dba68cc6459ba0f262daeca24d6ba254..5a8f950a7310deb0432e4475b4bafdae2d363282 100644 (file)
 #include "SMDS_Mesh.hxx"
 
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "SalomeApp_Application.h"
 #include "SalomeApp_Study.h"
 #include "SUIT_Desktop.h"
 #include "SUIT_MessageBox.h"
+#include "LightApp_Application.h"
 #include "LightApp_SelectionMgr.h"
 #include "utilities.h"
 
@@ -112,12 +115,12 @@ class TPolySimulation{
       myPreviewActor->SetMapper( myMapper );
       myPreviewActor->SetRepresentation( 3 );
 
-      float anRGB[3];
+      vtkFloatingPointType anRGB[3];
       vtkProperty* aProp = vtkProperty::New();
       GetColor( "SMESH", "selection_element_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
       aProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
       myPreviewActor->SetProperty( aProp );
-      float aFactor,aUnits;
+      vtkFloatingPointType aFactor,aUnits;
       myPreviewActor->SetResolveCoincidentTopology(true);
       myPreviewActor->GetPolygonOffsetParameters(aFactor,aUnits);
       myPreviewActor->SetPolygonOffsetParameters(aFactor,0.2*aUnits);
@@ -249,6 +252,11 @@ SMESHGUI_CreatePolyhedralVolumeDlg::SMESHGUI_CreatePolyhedralVolumeDlg( SMESHGUI
   buttonOk->setAutoDefault( TRUE );
   buttonOk->setDefault( TRUE );
   GroupButtonsLayout->addWidget( buttonOk, 0, 0 );
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
+
   SMESHGUI_CreatePolyhedralVolumeDlgLayout->addWidget( GroupButtons, 2, 0 );
 
   /***************************************************************/
@@ -315,6 +323,8 @@ SMESHGUI_CreatePolyhedralVolumeDlg::SMESHGUI_CreatePolyhedralVolumeDlg( SMESHGUI
   RadioButton1->setChecked( TRUE );
  
   mySMESHGUI->SetActiveDialogBox( (QDialog*)this ) ;
+
+  myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_polyhedrons?";
   
   Init();
 }
@@ -348,6 +358,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::Init()
   connect(buttonOk, SIGNAL( clicked() ),     SLOT( ClickOnOk() ) );
   connect(buttonCancel, SIGNAL( clicked() ), SLOT( ClickOnCancel() ) ) ;
   connect(buttonApply, SIGNAL( clicked() ),  SLOT(ClickOnApply() ) );
+  connect(buttonHelp, SIGNAL(clicked()),     SLOT(ClickOnHelp() ) );
 
   connect( GroupConstructors, SIGNAL(clicked(int) ), SLOT( ConstructorsClicked(int) ) );
   connect(SelectElementsButton, SIGNAL( clicked() ), SLOT( SetEditCurrentArgument() ) ) ;
@@ -560,6 +571,23 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnCancel()
   reject() ;
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 //function : onTextChange
 //purpose  : 
index be9dca196ae2331ffd09d7192d407ea9c0f15992..b7d07df220b1c9a41b8b5e0dc12b8cdc421396bb 100644 (file)
@@ -98,6 +98,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupContent;
     QLabel* TextLabelIds;
     QPushButton* SelectElementsButton;
@@ -106,6 +107,8 @@ private:
     QLabel* myFacesByNodesLabel;
     QPushButton* AddButton;
     QPushButton* RemoveButton;
+
+    QString myHelpFileName;
        
     public slots:
 
@@ -119,6 +122,7 @@ private:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 44373571f92f169a0c4c3bd905b1193a49bf606c..69723cca2e5180919d2ac49f0a04f711b9a427d6 100644 (file)
 #include "SMESH_TypeFilter.hxx"
 
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
 #include "LightApp_SelectionMgr.h"
 
 #include "SALOME_ListIO.hxx"
@@ -90,6 +93,8 @@ SMESHGUI_DeleteGroupDlg::SMESHGUI_DeleteGroupDlg (SMESHGUI* theModule):
 
   aDlgLay->setStretchFactor(aMainFrame, 1);
 
+  myHelpFileName = "deleting_groups.htm";
+
   Init();
 }
 
@@ -122,6 +127,7 @@ QFrame* SMESHGUI_DeleteGroupDlg::createButtonFrame (QWidget* theParent)
   myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
   myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
   myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+  myHelpBtn  = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
 
   QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
@@ -131,11 +137,13 @@ QFrame* SMESHGUI_DeleteGroupDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(myApplyBtn);
   aLay->addItem(aSpacer);
   aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
 
   // connect signals and slots
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
   connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+  connect(myHelpBtn,  SIGNAL(clicked()), SLOT(onHelp()));
 
   return aFrame;
 }
@@ -241,6 +249,23 @@ void SMESHGUI_DeleteGroupDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_DeleteGroupDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : onSelectionDone()
 // purpose  : SLOT called when selection changed
index f944b302040573dfa0217c238bdf4d954841f94d..baf88c398c57936d77e26b51d6225c48935afbef 100644 (file)
@@ -67,6 +67,7 @@ private slots:
   void                    onOk();
   bool                    onApply();
   void                    onClose();
+  void                    onHelp();
 
   void                    onDeactivate();
 
@@ -83,6 +84,7 @@ private:
   QPushButton*            myOkBtn;
   QPushButton*            myApplyBtn;
   QPushButton*            myCloseBtn;
+  QPushButton*            myHelpBtn;
   QListBox*               myListBox;
 
   SMESHGUI*               mySMESHGUI;
@@ -90,6 +92,8 @@ private:
 
   QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
   bool                                   myBlockSelection;
+
+  QString                 myHelpFileName;
 };
 
 #endif
index 73c92abe2aeb1baf463d9a564c19b5ec26dc3f14..00a2b4e7e8678e718eb7097ce2a93997fe532ac9 100644 (file)
@@ -44,7 +44,7 @@ class SMESHGUI_Dialog : public LightApp_Dialog
   Q_OBJECT
   
 public:
-  SMESHGUI_Dialog( QWidget* = 0, const bool = false, const bool = false, const int = OK | Close | Apply );
+  SMESHGUI_Dialog( QWidget* = 0, const bool = false, const bool = false, const int = OK | Close | Apply | Help );
   virtual ~SMESHGUI_Dialog();
 
   virtual void show();
diff --git a/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx b/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx
deleted file mode 100644 (file)
index 9c16af4..0000000
+++ /dev/null
@@ -1,960 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_EditHypothesesDlg.cxx
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#include "SMESHGUI_EditHypothesesDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_Utils.h"
-#include "SMESHGUI_GEOMGenUtils.h"
-#include "SMESHGUI_HypothesesUtils.h"
-
-#include "SMESH_TypeFilter.hxx"
-#include "SMESH_NumberFilter.hxx"
-
-#include "SALOME_ListIO.hxx"
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SALOMEDSClient_Study.hxx"
-#include "SALOMEDSClient_AttributeIOR.hxx"
-#include "SALOMEDSClient_AttributeName.hxx"
-
-#include "SUIT_Session.h"
-#include "SUIT_OverrideCursor.h"
-#include "SUIT_Operation.h"
-#include "SUIT_Desktop.h"
-
-#include "utilities.h"
-
-#include "SVTK_ViewModel.h"
-
-// QT Includes
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-
-using namespace std;
-
-//VRV: porting on Qt 3.0.5
-#if QT_VERSION >= 0x030005
-#include <qlistbox.h>
-#endif
-//VRV: porting on Qt 3.0.5
-
-class ListBoxIOR : public QListBoxText
-{
-public:
-  enum { RTTI_IOR = 1000 };
-
-public:
-  ListBoxIOR (QListBox* listbox,
-              const char* ior,
-              const QString& text = QString::null)
-  : QListBoxText(listbox, text), myIOR(ior) {}
-  virtual ~ListBoxIOR() {};
-  virtual int rtti() const { return RTTI_IOR; }
-  const char* GetIOR() { return myIOR.c_str(); }
-
-private:
-  string myIOR;
-};
-
-#define ALLOW_CHANGE_SHAPE 0
-
-int findItem (QListBox* listBox, const string& ior)
-{
-  for (int i = 0; i < listBox->count(); i++) {
-    if (listBox->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(listBox->item(i));
-      if (anItem && ior == string(anItem->GetIOR()))
-       return i;
-    }
-  }
-  return -1;
-}
-
-//=================================================================================
-// function : SMESHGUI_EditHypothesesDlg()
-// purpose  : Constructs a SMESHGUI_EditHypothesesDlg which is a child of 'parent', with the
-//            name 'name' and widget flags set to 'f'.
-//            The dialog will by default be modeless, unless you set 'modal' to
-//            TRUE to construct a modal dialog.
-//=================================================================================
-SMESHGUI_EditHypothesesDlg::SMESHGUI_EditHypothesesDlg (SMESHGUI* theModule, const char* name,
-                                                        bool modal, WFlags fl)
-     : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
-                WStyle_Title | WStyle_SysMenu | WDestructiveClose),
-    myImportedMesh(false),
-    mySMESHGUI( theModule ),
-    mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
-{
-    QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
-    if (!name)
-      setName("SMESHGUI_EditHypothesesDlg");
-    setCaption(tr("SMESH_EDIT_HYPOTHESES"));
-    setSizeGripEnabled(TRUE);
-    QGridLayout* SMESHGUI_EditHypothesesDlgLayout = new QGridLayout(this);
-    SMESHGUI_EditHypothesesDlgLayout->setSpacing(6);
-    SMESHGUI_EditHypothesesDlgLayout->setMargin(11);
-
-    /***************************************************************/
-    GroupC1 = new QGroupBox(tr("SMESH_ARGUMENTS"), this, "GroupC1");
-    GroupC1->setColumnLayout(0, Qt::Vertical);
-    GroupC1->layout()->setSpacing(0);
-    GroupC1->layout()->setMargin(0);
-    QGridLayout* GroupC1Layout = new QGridLayout(GroupC1->layout());
-    GroupC1Layout->setAlignment(Qt::AlignTop);
-    GroupC1Layout->setSpacing(6);
-    GroupC1Layout->setMargin(11);
-
-    TextLabelC1A1 = new QLabel(tr("SMESH_OBJECT_MESHorSUBMESH"), GroupC1, "TextLabelC1A1");
-    GroupC1Layout->addWidget(TextLabelC1A1, 0, 0);
-    SelectButtonC1A1 = new QPushButton(GroupC1, "SelectButtonC1A1");
-    SelectButtonC1A1->setPixmap(image0);
-    GroupC1Layout->addWidget(SelectButtonC1A1, 0, 1);
-    LineEditC1A1 = new QLineEdit(GroupC1, "LineEditC1A1");
-    LineEditC1A1->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
-
-    TextLabelC1A2 = new QLabel(tr("SMESH_OBJECT_GEOM"), GroupC1, "TextLabelC1A2");
-    GroupC1Layout->addWidget(TextLabelC1A2, 1, 0);
-    SelectButtonC1A2 = new QPushButton(GroupC1, "SelectButtonC1A2");
-    SelectButtonC1A2->setPixmap(image0);
-    SelectButtonC1A2->setToggleButton(FALSE);
-    GroupC1Layout->addWidget(SelectButtonC1A2, 1, 1);
-    LineEditC1A2 = new QLineEdit(GroupC1, "LineEditC1A2");
-    LineEditC1A2->setReadOnly(true);
-    GroupC1Layout->addWidget(LineEditC1A2, 1, 2);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupC1, 0, 0);
-
-    /***************************************************************/
-    GroupHypotheses = new QGroupBox(tr("SMESH_HYPOTHESES"), this, "GroupHypotheses");
-    GroupHypotheses->setColumnLayout(0, Qt::Vertical);
-    GroupHypotheses->layout()->setSpacing(0);
-    GroupHypotheses->layout()->setMargin(0);
-    QGridLayout* grid_3 = new QGridLayout(GroupHypotheses->layout());
-    grid_3->setAlignment(Qt::AlignTop);
-    grid_3->setSpacing(6);
-    grid_3->setMargin(11);
-
-    TextHypDefinition = new QLabel(tr("SMESH_AVAILABLE"), GroupHypotheses, "TextHypDefinition");
-    grid_3->addWidget(TextHypDefinition, 0, 0);
-
-    ListHypDefinition = new QListBox(GroupHypotheses, "ListHypDefinition");
-    ListHypDefinition->setMinimumSize(100, 100);
-    grid_3->addWidget(ListHypDefinition, 1, 0);
-
-    TextHypAssignation = new QLabel(tr("SMESH_EDIT_USED"), GroupHypotheses, "TextHypAssignation");
-    grid_3->addWidget(TextHypAssignation, 0, 1);
-
-    ListHypAssignation = new QListBox(GroupHypotheses, "ListHypAssignation");
-    ListHypAssignation->setMinimumSize(100, 100);
-    grid_3->addWidget(ListHypAssignation, 1, 1);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupHypotheses, 1, 0);
-
-    /***************************************************************/
-    GroupAlgorithms = new QGroupBox(tr("SMESH_ADD_ALGORITHM"), this, "GroupAlgorithms");
-    GroupAlgorithms->setColumnLayout(0, Qt::Vertical);
-    GroupAlgorithms->layout()->setSpacing(0);
-    GroupAlgorithms->layout()->setMargin(0);
-    QGridLayout* grid_4 = new QGridLayout(GroupAlgorithms->layout());
-    grid_4->setAlignment(Qt::AlignTop);
-    grid_4->setSpacing(6);
-    grid_4->setMargin(11);
-
-    TextAlgoDefinition = new QLabel(tr("SMESH_AVAILABLE"), GroupAlgorithms, "TextAlgoDefinition");
-    grid_4->addWidget(TextAlgoDefinition, 0, 0);
-
-    ListAlgoDefinition = new QListBox(GroupAlgorithms, "ListAlgoDefinition");
-    ListAlgoDefinition->setMinimumSize(100, 100);
-    grid_4->addWidget(ListAlgoDefinition, 1, 0);
-
-    TextAlgoAssignation = new QLabel(tr("SMESH_EDIT_USED"), GroupAlgorithms, "TextAlgoAssignation");
-    grid_4->addWidget(TextAlgoAssignation, 0, 1);
-
-    ListAlgoAssignation = new QListBox(GroupAlgorithms, "ListAlgoAssignation");
-    ListAlgoAssignation ->setMinimumSize(100, 100);
-    grid_4->addWidget(ListAlgoAssignation, 1, 1);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupAlgorithms, 2, 0);
-
-    /***************************************************************/
-    GroupButtons = new QGroupBox(this, "GroupButtons");
-    GroupButtons->setColumnLayout(0, Qt::Vertical);
-    GroupButtons->layout()->setSpacing(0);
-    GroupButtons->layout()->setMargin(0);
-    QGridLayout* GroupButtonsLayout = new QGridLayout(GroupButtons->layout());
-    GroupButtonsLayout->setAlignment(Qt::AlignTop);
-    GroupButtonsLayout->setSpacing(6);
-    GroupButtonsLayout->setMargin(11);
-
-    buttonOk = new QPushButton(tr("SMESH_BUT_OK"), GroupButtons, "buttonOk");
-    buttonOk->setAutoDefault(TRUE);
-    buttonOk->setDefault(FALSE);
-    GroupButtonsLayout->addWidget(buttonOk, 0, 0);
-
-    buttonApply = new QPushButton(tr("SMESH_BUT_APPLY"), GroupButtons, "buttonApply");
-    buttonApply->setAutoDefault(TRUE);
-    buttonApply->setDefault(FALSE);
-    GroupButtonsLayout->addWidget(buttonApply, 0, 1);
-
-    GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
-
-    buttonCancel = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons, "buttonCancel");
-    buttonCancel->setAutoDefault(TRUE);
-    buttonCancel->setDefault(TRUE);
-    buttonCancel->setEnabled(TRUE);
-    GroupButtonsLayout->addWidget(buttonCancel, 0, 3);
-
-    SMESHGUI_EditHypothesesDlgLayout->addWidget(GroupButtons, 4, 0);
-
-    /***************************************************************/
-    Init();
-}
-
-//=================================================================================
-// function : ~SMESHGUI_EditHypothesesDlg()
-// purpose  : Destroys the object and frees any allocated resources
-//=================================================================================
-SMESHGUI_EditHypothesesDlg::~SMESHGUI_EditHypothesesDlg()
-{
-  // no need to delete child widgets, Qt does it all for us
-}
-
-//=================================================================================
-// function : Init()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::Init()
-{
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-
-  InitHypDefinition();
-  InitAlgoDefinition();
-
-  //myGeomFilter = new SALOME_TypeFilter ("GEOM");
-  TColStd_MapOfInteger allTypesMap;
-  for (int i = 0; i < 10; i++)
-    allTypesMap.Add(i);
-  myGeomFilter          = new SMESH_NumberFilter ("GEOM", TopAbs_SHAPE, 0, allTypesMap);
-  myMeshOrSubMeshFilter = new SMESH_TypeFilter (MESHorSUBMESH);
-
-  myGeomShape = GEOM::GEOM_Object::_nil();
-  myMesh = SMESH::SMESH_Mesh::_nil();
-  mySubMesh = SMESH::SMESH_subMesh::_nil();
-
-  /* signals and slots connections */
-  connect(buttonOk,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
-  connect(buttonApply,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
-  connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
-
-  connect(SelectButtonC1A1, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-  connect(SelectButtonC1A2, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
-
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),      this, SLOT(SelectionIntoArgument()));
-  connect(mySMESHGUI,     SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
-  connect(mySMESHGUI,     SIGNAL(SignalCloseAllDialogs()),        this, SLOT(ClickOnCancel()));
-
-  connect(ListHypAssignation,  SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(removeItem(QListBoxItem*)));
-  connect(ListAlgoAssignation, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(removeItem(QListBoxItem*)));
-
-  connect(ListHypDefinition,  SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(addItem(QListBoxItem*)));
-  connect(ListAlgoDefinition, SIGNAL(doubleClicked(QListBoxItem*)), this, SLOT(addItem(QListBoxItem*)));
-
-  this->show();
-
-  LineEditC1A1->setFocus();
-  myEditCurrentArgument = LineEditC1A1;
-  mySelectionMgr->clearFilters();
-  mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
-
-  SelectionIntoArgument();
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : ClickOnOk()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ClickOnOk()
-{
-  if (ClickOnApply())
-    ClickOnCancel();
-}
-
-//=================================================================================
-// function : ClickOnApply()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::ClickOnApply()
-{
-  if (mySMESHGUI->isActiveStudyLocked())
-    return false;
-
-  bool aRes = false;
-
-  SUIT_OverrideCursor wc;
-
-  SUIT_Operation* op = new SUIT_Operation
-    (SUIT_Session::session()->activeApplication());
-
-  // start transaction
-  op->start();
-
-  if (!myMesh->_is_nil())
-    aRes = StoreMesh();
-  else if (!mySubMesh->_is_nil())
-    aRes = StoreSubMesh();
-
-  if (true/*aRes*/) { // abort desynchronizes contents of a Study and a mesh on server
-    // commit transaction
-    op->commit();
-    InitHypAssignation();
-    InitAlgoAssignation();
-  } else {
-    // abort transaction
-    op->abort();
-  }
-
-  UpdateControlState();
-  mySMESHGUI->updateObjBrowser();
-
-  return aRes;
-}
-
-//=================================================================================
-// function : ClickOnCancel()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ClickOnCancel()
-{
-  close();
-}
-
-//=================================================================================
-// function : SelectionIntoArgument()
-// purpose  : Called when selection as changed or other case
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::SelectionIntoArgument()
-{
-  QString aString = "";
-
-  SALOME_ListIO aList;
-  mySelectionMgr->selectedObjects(aList,SVTK_Viewer::Type());
-
-  int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString);
-
-  if (myEditCurrentArgument == LineEditC1A1) {
-    if (nbSel != 1) {
-      myMesh    = SMESH::SMESH_Mesh::_nil();
-      mySubMesh = SMESH::SMESH_subMesh::_nil();
-      aString   = "";
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(IO);
-      if (myMesh->_is_nil()) {
-       mySubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(IO);
-       if (mySubMesh->_is_nil()) {
-         aString = "";
-       }
-      }
-    }
-    myEditCurrentArgument->setText(aString);
-
-    // InitGeom() will try to retrieve a shape from myMesh or mySubMesh
-    myGeomShape = GEOM::GEOM_Object::_nil();
-    InitGeom();
-
-    myImportedMesh = myGeomShape->_is_nil();
-
-    InitHypAssignation();
-    InitAlgoAssignation();
-
-  } else if (myEditCurrentArgument == LineEditC1A2) {
-    if (nbSel != 1) {
-      myGeomShape = GEOM::GEOM_Object::_nil();
-    } else {
-      Handle(SALOME_InteractiveObject) IO = aList.First();
-      myGeomShape = SMESH::IObjectToInterface<GEOM::GEOM_Object>(IO);
-    }
-    InitGeom();
-  }
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : SetEditCurrentArgument()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::SetEditCurrentArgument()
-{
-  QPushButton* send = (QPushButton*)sender();
-  if(send == SelectButtonC1A1) {
-    LineEditC1A1->setFocus();
-    myEditCurrentArgument = LineEditC1A1;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myMeshOrSubMeshFilter);
-  } else if (send == SelectButtonC1A2) {
-    LineEditC1A2->setFocus();
-    myEditCurrentArgument = LineEditC1A2;
-    mySelectionMgr->clearFilters();
-    mySelectionMgr->installFilter(myGeomFilter);
-  }
-  SelectionIntoArgument();
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::DeactivateActiveDialog()
-{
-  if (GroupC1->isEnabled()) {
-    disconnect(mySelectionMgr, 0, this, 0);
-    GroupC1->setEnabled(false);
-    GroupButtons->setEnabled(false);
-  }
-}
-
-//=================================================================================
-// function : ActivateThisDialog()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::ActivateThisDialog()
-{
-  mySMESHGUI->EmitSignalDeactivateDialog();
-  GroupC1->setEnabled(true);
-  GroupButtons->setEnabled(true);
-  connect (mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
-}
-
-//=================================================================================
-// function : enterEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::enterEvent (QEvent*)
-{
-  if (!GroupC1->isEnabled())
-    ActivateThisDialog();
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::closeEvent (QCloseEvent* e)
-{
-  disconnect(mySelectionMgr, 0, this, 0);
-  mySMESHGUI->ResetState();
-  mySelectionMgr->clearFilters();
-  QDialog::closeEvent(e);
-}
-
-//=======================================================================
-// function : IsOld()
-// purpose  :
-//=======================================================================
-bool SMESHGUI_EditHypothesesDlg::IsOld (QListBoxItem* hypItem)
-{
-  if (hypItem->rtti() == ListBoxIOR::RTTI_IOR) {
-    ListBoxIOR* hyp = (ListBoxIOR*) hypItem;
-    return (myMapOldHypos.find(hyp->GetIOR()) != myMapOldHypos.end() ||
-            myMapOldAlgos.find(hyp->GetIOR()) != myMapOldAlgos.end());
-  }
-
-  return false;
-}
-
-//=================================================================================
-// function : removeItem()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::removeItem (QListBoxItem* item)
-{
-  const QObject* aSender = sender();
-
-  if (!item) return;
-
-  if (aSender == ListHypAssignation) {
-    myNbModification += IsOld(item) ? 1 : -1;
-    ListHypAssignation->removeItem(ListHypAssignation->index(item));
-  }
-  else if (aSender == ListAlgoAssignation) {
-    myNbModification += IsOld(item) ? 1 : -1;
-    ListAlgoAssignation->removeItem(ListAlgoAssignation->index(item));
-  }
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : addItem()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::addItem (QListBoxItem* item)
-{
-  const QObject* aSender = sender();
-
-  if (!item) return;
-
-  ListBoxIOR* i = 0;
-  if (item->rtti() == ListBoxIOR::RTTI_IOR)
-    i = (ListBoxIOR*)item;
-  if (!i) return;
-
-  bool isFound = false;
-
-  ListBoxIOR* anItem;
-  if (aSender == ListHypDefinition) {
-    for (int j = 0, n = ListHypAssignation->count(); !isFound && j < n; j++) {
-      if (ListHypAssignation->item(j)->rtti() == ListBoxIOR::RTTI_IOR) {
-       anItem = (ListBoxIOR*)ListHypAssignation->item(j);
-       isFound = !strcmp(anItem->GetIOR(), i->GetIOR());
-      }
-    }
-    if (!isFound)
-      anItem = new ListBoxIOR (ListHypAssignation,
-                               CORBA::string_dup(i->GetIOR()),
-                               CORBA::string_dup(i->text().latin1()));
-
-  } else if (aSender == ListAlgoDefinition) {
-    for (int j = 0, n = ListAlgoAssignation->count(); !isFound && j < n; j++) {
-      if (ListAlgoAssignation->item(j)->rtti() == ListBoxIOR::RTTI_IOR) {
-       anItem = (ListBoxIOR*)ListAlgoAssignation->item(j);
-       isFound = !strcmp(anItem->GetIOR(), i->GetIOR());
-      }
-    }
-    if (!isFound)
-      anItem = new ListBoxIOR (ListAlgoAssignation,
-                               CORBA::string_dup(i->GetIOR()),
-                               CORBA::string_dup(i->text().latin1()));
-  } else {
-  }
-
-  if (!isFound)
-    myNbModification += IsOld(item) ? -1 : 1;
-
-  UpdateControlState();
-}
-
-//=================================================================================
-// function : InitHypDefinition()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitHypDefinition()
-{
-  ListHypDefinition->clear();
-
-  _PTR(SComponent) father = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
-  if (!father)
-    return;
-
-  _PTR(SObject)          HypothesisRoot;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  //int Tag_HypothesisRoot = 1;
-  if (father->FindSubObject(1, HypothesisRoot)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(HypothesisRoot);
-    ListBoxIOR* anItem;
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->FindAttribute(anAttr, "AttributeName")) {
-        aName = anAttr;
-        if (Obj->FindAttribute(anAttr, "AttributeIOR")) {
-          anIOR = anAttr;
-          anItem = new ListBoxIOR (ListHypDefinition,
-                                   anIOR->Value().c_str(),
-                                   aName->Value().c_str());
-        }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitHypAssignation()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitHypAssignation()
-{
-  myNbModification = 0;
-
-  myMapOldHypos.clear();
-  ListHypAssignation->clear();
-  if (myImportedMesh)
-    return;
-
-  _PTR(SObject)          aMorSM, AHR, aRef;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  if (!myMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(myMesh);
-  else if (!mySubMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(mySubMesh);
-
-  if (aMorSM && aMorSM->FindSubObject(2, AHR)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(AHR);
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->ReferencedObject(aRef)) {
-        if (aRef->FindAttribute(anAttr, "AttributeName")) {
-          aName = anAttr;
-         if (aRef->FindAttribute(anAttr, "AttributeIOR")) {
-            anIOR = anAttr;
-           ListBoxIOR* anItem = new ListBoxIOR (ListHypAssignation,
-                                                anIOR->Value().c_str(),
-                                                aName->Value().c_str());
-           myMapOldHypos[ anIOR->Value() ] = ListHypAssignation->index(anItem);
-         }
-       }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitAlgoDefinition()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitAlgoDefinition()
-{
-  ListAlgoDefinition->clear();
-
-  _PTR(SComponent) father = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
-  if (!father)
-    return;
-
-  _PTR(SObject)          AlgorithmsRoot;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  if (father->FindSubObject (2, AlgorithmsRoot)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(AlgorithmsRoot);
-    ListBoxIOR* anItem;
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->FindAttribute(anAttr, "AttributeName")) {
-        aName = anAttr;
-        if (Obj->FindAttribute(anAttr, "AttributeIOR")) {
-          anIOR = anAttr;
-          anItem = new ListBoxIOR (ListAlgoDefinition,
-                                   anIOR->Value().c_str(),
-                                   aName->Value().c_str());
-        }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitAlgoAssignation()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitAlgoAssignation()
-{
-  myMapOldAlgos.clear();
-  ListAlgoAssignation->clear();
-  if (myImportedMesh)
-    return;
-
-  _PTR(SObject)          aMorSM, AHR, aRef;
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  _PTR(AttributeIOR)     anIOR;
-
-  if (!myMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(myMesh);
-  else if (!mySubMesh->_is_nil())
-    aMorSM = SMESH::FindSObject(mySubMesh);
-
-  if (aMorSM && aMorSM->FindSubObject(3, AHR)) {
-    _PTR(ChildIterator) it =
-      SMESH::GetActiveStudyDocument()->NewChildIterator(AHR);
-    for (; it->More();it->Next()) {
-      _PTR(SObject) Obj = it->Value();
-      if (Obj->ReferencedObject(aRef)) {
-        if (aRef->FindAttribute(anAttr, "AttributeName")) {
-         aName = anAttr;
-         if (aRef->FindAttribute(anAttr, "AttributeIOR")) {
-           anIOR = anAttr;
-           ListBoxIOR* anItem = new ListBoxIOR (ListAlgoAssignation,
-                                                anIOR->Value().c_str(),
-                                                aName->Value().c_str());
-           myMapOldAlgos[ anIOR->Value() ] = ListAlgoAssignation->index(anItem);
-         }
-       }
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : InitGeom()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::InitGeom()
-{
-  LineEditC1A2->setText("");
-
-  if (myGeomShape->_is_nil() && !myMesh->_is_nil()) {
-    _PTR(SObject) aMesh = SMESH::FindSObject(myMesh);
-    if (aMesh)
-      myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMesh);
-  }
-  if (myGeomShape->_is_nil() && !mySubMesh->_is_nil()) {
-    _PTR(SObject) aSubMesh = SMESH::FindSObject(mySubMesh);
-    if (aSubMesh)
-      myGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aSubMesh);
-  }
-
-  _PTR(GenericAttribute) anAttr;
-  _PTR(AttributeName)    aName;
-  if (!myGeomShape->_is_nil() && (!myMesh->_is_nil() || !mySubMesh->_is_nil())) {
-    _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-    //_PTR(SObject) aSO = aStudy->FindObjectIOR(aStudy->ConvertObjectToIOR(myGeomShape));
-    _PTR(SObject) aSO = aStudy->FindObjectID(myGeomShape->GetStudyEntry());
-    if (aSO) {
-      if (aSO->FindAttribute(anAttr, "AttributeName")) {
-       aName = anAttr;
-       LineEditC1A2->setText(QString(aName->Value().c_str()));
-      }
-    }
-  }
-}
-
-//=================================================================================
-// function : UpdateControlState()
-// purpose  :
-//=================================================================================
-void SMESHGUI_EditHypothesesDlg::UpdateControlState()
-{
-  // asl the check of "count" is commented because of PAL9787
-  bool isEnabled = (!myMesh->_is_nil() && !myGeomShape->_is_nil() /*&&
-                    ListHypAssignation->count() && ListAlgoAssignation->count()*/ )
-    ||
-      (!mySubMesh->_is_nil() && !myGeomShape->_is_nil() /*&&
-       (ListHypAssignation->count() || ListAlgoAssignation->count())*/);
-
-  buttonOk   ->setEnabled(myNbModification && isEnabled && !myImportedMesh);
-  buttonApply->setEnabled(myNbModification && isEnabled && !myImportedMesh);
-
-  SelectButtonC1A2   ->setEnabled(ALLOW_CHANGE_SHAPE && !myImportedMesh);
-  LineEditC1A2       ->setEnabled(ALLOW_CHANGE_SHAPE && !myImportedMesh);
-  ListHypDefinition  ->setEnabled(!myImportedMesh);
-  ListHypAssignation ->setEnabled(!myImportedMesh);
-  ListAlgoDefinition ->setEnabled(!myImportedMesh);
-  ListAlgoAssignation->setEnabled(!myImportedMesh);
-}
-
-//=================================================================================
-// function : StoreMesh()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::StoreMesh()
-{
-  MapIOR anOldHypos, aNewHypos;
-  if (myGeomShape->_is_nil())
-    return false;
-
-  // 1. Check whether the geometric shape has changed
-  _PTR(SObject) aMeshSO = SMESH::FindSObject(myMesh);
-  GEOM::GEOM_Object_var aIniGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aMeshSO);
-  bool bShapeChanged = aIniGeomShape->_is_nil() ||
-                       !aIniGeomShape->_is_equivalent(myGeomShape);
-  if (bShapeChanged) {
-    // VSR : TODO : Set new shape - not supported yet by SMESH engine
-    // 1. remove all old hypotheses and algorithms and also submeshes
-    // 2. set new shape
-  }
-
-  int nbFail = 0;
-  MapIOR::iterator it;
-
-  // 2. remove not used hypotheses from the mesh
-  for (it = myMapOldHypos.begin(); it != myMapOldHypos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListHypAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp =
-        SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()) {
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 3. remove not used algorithms from the mesh
-  for (it = myMapOldAlgos.begin(); it != myMapOldAlgos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListAlgoAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp =
-        SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()) {
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 4. Add new algorithms
-  for (int i = 0; i < ListAlgoAssignation->count(); i++) {
-    if (ListAlgoAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListAlgoAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldAlgos.find(ior) == myMapOldAlgos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp =
-            SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()) {
-           if (!SMESH::AddHypothesisOnMesh(myMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-
-  // 5. Add new hypotheses
-  for (int i = 0; i < ListHypAssignation->count(); i++) {
-    if (ListHypAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListHypAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldHypos.find(ior) == myMapOldHypos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp =
-            SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()) {
-           if (!SMESH::AddHypothesisOnMesh(myMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-  return (nbFail == 0);
-}
-
-//=================================================================================
-// function : StoreSubMesh()
-// purpose  :
-//=================================================================================
-bool SMESHGUI_EditHypothesesDlg::StoreSubMesh()
-{
-  MapIOR anOldHypos, aNewHypos;
-  if (myGeomShape->_is_nil())
-    return false;
-
-  // 1. Check whether the geometric shape has changed
-  _PTR(SObject) aSubMeshSO = SMESH::FindSObject(mySubMesh);
-  GEOM::GEOM_Object_var aIniGeomShape = SMESH::GetShapeOnMeshOrSubMesh(aSubMeshSO);
-  bool bShapeChanged = aIniGeomShape->_is_nil() || !aIniGeomShape->_is_equivalent(myGeomShape);
-  if (bShapeChanged) {
-    // VSR : TODO : Set new shape - not supported yet by engine
-    // 1. remove all old hypotheses and algorithms
-    // 2. set new shape
-  }
-  int nbFail = 0;
-  MapIOR::iterator it;
-
-  // 2. remove not used hypotheses from the submesh
-  for (it = myMapOldHypos.begin(); it != myMapOldHypos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListHypAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()) {
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aSubMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 3. remove not used algorithms from the submesh
-  for (it = myMapOldAlgos.begin(); it != myMapOldAlgos.end(); ++it) {
-    string ior = it->first;
-    int index = findItem(ListAlgoAssignation, ior);
-    if (index < 0) {
-      SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-      if (!aHyp->_is_nil()){
-       if (!SMESH::RemoveHypothesisOrAlgorithmOnMesh(aSubMeshSO, aHyp))
-         nbFail++;
-      }
-    }
-  }
-
-  // 4. Add new algorithms
-  for (int i = 0; i < ListAlgoAssignation->count(); i++) {
-    if (ListAlgoAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListAlgoAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldAlgos.find(ior) == myMapOldAlgos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()){
-           if (!SMESH::AddHypothesisOnSubMesh(mySubMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-
-  // 5. Add new hypotheses
-  for (int i = 0; i < ListHypAssignation->count(); i++) {
-    if (ListHypAssignation->item(i)->rtti() == ListBoxIOR::RTTI_IOR) {
-      ListBoxIOR* anItem = (ListBoxIOR*)(ListHypAssignation->item(i));
-      if (anItem) {
-       string ior = anItem->GetIOR();
-       if (myMapOldHypos.find(ior) == myMapOldHypos.end()) {
-         SMESH::SMESH_Hypothesis_var aHyp = SMESH::IORToInterface<SMESH::SMESH_Hypothesis>(ior.c_str());
-         if (!aHyp->_is_nil()){
-           if (!SMESH::AddHypothesisOnSubMesh(mySubMesh, aHyp))
-             nbFail++;
-         }
-       }
-      }
-    }
-  }
-  return (nbFail == 0);
-}
diff --git a/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h b/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.h
deleted file mode 100644 (file)
index 6fe085d..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_EditHypothesesDlg.h
-//  Author : Nicolas REJNERI
-//  Module : SMESH
-//  $Header$
-
-#ifndef DIALOGBOX_EDIT_HYPOTHESES_H
-#define DIALOGBOX_EDIT_HYPOTHESES_H
-
-//#include "SMESH_TypeFilter.hxx"
-#include "SUIT_SelectionFilter.h"
-#include "LightApp_SelectionMgr.h"
-
-// QT Includes
-#include <qdialog.h>
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(GEOM_Gen)
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-#include <map>
-#include <string>
-
-class QGroupBox;
-class QLabel;
-class QLineEdit;
-class QPushButton;
-class QListBox;
-class QListBoxItem;
-class SMESHGUI;
-
-typedef map<std::string, int> MapIOR;
-
-//=================================================================================
-// class    : SMESHGUI_EditHypothesesDlg
-// purpose  :
-//=================================================================================
-class SMESHGUI_EditHypothesesDlg : public QDialog
-{
-    Q_OBJECT
-
-public:
-    SMESHGUI_EditHypothesesDlg (SMESHGUI*,
-                               const char* name = 0,
-                               bool modal = FALSE,
-                               WFlags fl = 0);
-    ~SMESHGUI_EditHypothesesDlg();
-
-protected:
-    virtual void closeEvent (QCloseEvent*);
-    virtual void enterEvent (QEvent*);
-
-private:
-    void Init();
-
-    void InitHypDefinition();
-    void InitAlgoDefinition();
-    void InitHypAssignation();
-    void InitAlgoAssignation();
-
-    void InitGeom();
-
-    void UpdateControlState();
-
-    bool StoreMesh();
-    bool StoreSubMesh();
-
-    bool IsOld(QListBoxItem* hypItem);
-
-private:
-    SMESHGUI*                     mySMESHGUI;
-    LightApp_SelectionMgr*        mySelectionMgr;
-
-    GEOM::GEOM_Object_var         myGeomShape;
-    QLineEdit*                    myEditCurrentArgument; 
-
-    SMESH::SMESH_Mesh_var         myMesh;
-    SMESH::SMESH_subMesh_var      mySubMesh;
-
-    //Handle(SALOME_TypeFilter)     myGeomFilter;
-    //Handle(SMESH_TypeFilter)      myMeshOrSubMeshFilter;
-    SUIT_SelectionFilter*         myGeomFilter;
-    SUIT_SelectionFilter*         myMeshOrSubMeshFilter;
-
-    MapIOR                        myMapOldHypos, myMapOldAlgos;
-    int                           myNbModification;
-
-    bool                          myImportedMesh;
-
-    QGroupBox*    GroupButtons;
-    QPushButton*  buttonOk;
-    QPushButton*  buttonApply;
-    QPushButton*  buttonCancel;
-
-    QGroupBox*    GroupC1;
-    QLabel*       TextLabelC1A1;
-    QPushButton*  SelectButtonC1A1;
-    QLineEdit*    LineEditC1A1;
-    QLabel*       TextLabelC1A2;
-    QPushButton*  SelectButtonC1A2;
-    QLineEdit*    LineEditC1A2;
-
-    QGroupBox*    GroupHypotheses;
-    QLabel*       TextHypDefinition;
-    QListBox*     ListHypDefinition;
-    QLabel*       TextHypAssignation;
-    QListBox*     ListHypAssignation;
-
-    QGroupBox*    GroupAlgorithms;
-    QLabel*       TextAlgoDefinition;
-    QListBox*     ListAlgoDefinition;
-    QLabel*       TextAlgoAssignation;
-    QListBox*     ListAlgoAssignation;
-
-private slots:
-    void ClickOnOk();
-    bool ClickOnApply();
-    void ClickOnCancel();
-    void SetEditCurrentArgument();
-    void SelectionIntoArgument();
-    void DeactivateActiveDialog();
-    void ActivateThisDialog();
-
-    void removeItem(QListBoxItem*);
-    void addItem(QListBoxItem*);
-};
-
-#endif // DIALOGBOX_EDIT_HYPOTHESES_H
index 0109f1da34b62c1952bb9ae3206a1d202f6d857f..6ba65dd80b96ecad43c2693f326c9eb96dc12295 100644 (file)
@@ -28,6 +28,9 @@
 
 #include "SUIT_Desktop.h"
 #include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SALOME_ListIO.hxx"
 
@@ -103,6 +106,10 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton (GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -149,6 +156,8 @@ SMESHGUI_EditMeshDlg::SMESHGUI_EditMeshDlg (SMESHGUI* theModule,
   GroupMeshLayout->addWidget(LineEditMesh, 0, 2);
   DlgLayout->addWidget(GroupMesh, 1, 0);
 
+  myHelpFileName = "merge_elements.htm";
+
   Init(); // Initialisations
 }
 
@@ -178,6 +187,7 @@ void SMESHGUI_EditMeshDlg::Init()
   connect(buttonOk    , SIGNAL(clicked()), this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply , SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp,   SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
 
   connect(SelectButton, SIGNAL(clicked()), this, SLOT(SelectionIntoArgument()));
 
@@ -242,6 +252,23 @@ void SMESHGUI_EditMeshDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_EditMeshDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection as changed or other case
index 839b3fd7c4665f3d4a8174ef1032ea5dfa6ffdd3..19069bf21bc15f686ec7eaf5859db63d3ee6d363 100644 (file)
@@ -80,6 +80,7 @@ class SMESHGUI_EditMeshDlg : public QDialog
   QPushButton* buttonOk;
   QPushButton* buttonCancel;
   QPushButton* buttonApply;
+  QPushButton* buttonHelp;
 
   QGroupBox* GroupMesh;
   QLabel* TextLabelMesh;
@@ -92,10 +93,13 @@ class SMESHGUI_EditMeshDlg : public QDialog
   QGridLayout* GroupButtonsLayout;
   QGridLayout* GroupMeshLayout;
 
+  QString myHelpFileName;
+
  private slots:
   void ClickOnOk();
   void ClickOnCancel();
   void ClickOnApply();
+  void ClickOnHelp();
   void SelectionIntoArgument();
   void DeactivateActiveDialog();
   void ActivateThisDialog();
index 47b8e91ed8e82df4b16e0fac65d3d6110bfd5416..bf2aa33060a7678c96039eb3261bcde672bad70d 100644 (file)
@@ -48,6 +48,9 @@
 #include "SUIT_OverrideCursor.h"
 #include "SUIT_Desktop.h"
 #include "SUIT_MessageBox.h"
+#include "SUIT_Session.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
@@ -295,10 +298,14 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   CloseButton = new QPushButton(tr("SMESH_BUT_CLOSE"), GroupButtons);
   CloseButton->setAutoDefault(true);
 
+  HelpButton = new QPushButton(tr("SMESH_BUT_HELP"), GroupButtons);
+  HelpButton->setAutoDefault(true);
+
   // layouting
   GroupButtonsLayout->addWidget(OkButton,    0, 0);
   GroupButtonsLayout->addWidget(ApplyButton, 0, 1);
   GroupButtonsLayout->addWidget(CloseButton, 0, 3);
+  GroupButtonsLayout->addWidget(HelpButton, 0, 4);
   GroupButtonsLayout->addColSpacing(2, 10);
   GroupButtonsLayout->setColStretch(2, 10);
 
@@ -330,6 +337,8 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   myElementsFilter = new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
   myPathMeshFilter = new SMESH_TypeFilter (MESH);
 
+  myHelpFileName = "extrusion_along_a_path.htm";
+
   Init();
 
   /***************************************************************/
@@ -337,6 +346,7 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   connect(OkButton,     SIGNAL(clicked()), this, SLOT(ClickOnOk()));
   connect(CloseButton,  SIGNAL(clicked()), this, SLOT(reject()));
   connect(ApplyButton,  SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(HelpButton,   SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
 
   connect(AddAngleButton,    SIGNAL(clicked()), this, SLOT(OnAngleAdded()));
   connect(RemoveAngleButton, SIGNAL(clicked()), this, SLOT(OnAngleRemoved()));
@@ -654,6 +664,23 @@ void SMESHGUI_ExtrusionAlongPathDlg::ClickOnOk()
     reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_ExtrusionAlongPathDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : reject()
 // purpose  : Called when dialog box is closed
index 57f7be3b7f22b17474be87d974f9be3fd0a2ec2f..7bbb8ce23fe2aae406ee7430c19f57e2e00cc469 100644 (file)
@@ -142,6 +142,9 @@ private:
   QPushButton*      OkButton;
   QPushButton*      ApplyButton;
   QPushButton*      CloseButton;
+  QPushButton*      HelpButton;
+
+  QString           myHelpFileName;
 
 protected slots:
   void reject();
@@ -150,6 +153,7 @@ private slots:
   void ConstructorsClicked (int);
   void ClickOnOk();
   bool ClickOnApply();
+  void ClickOnHelp();
   void SetEditCurrentArgument();
   void SelectionIntoArgument();
   void DeactivateActiveDialog();
index 7860471d78079611f5090fca23ea01b1785e4cce..16916a826e74b22238530c9f9102bb11292df244 100644 (file)
@@ -46,6 +46,9 @@
 #include "SUIT_OverrideCursor.h"
 #include "SUIT_Desktop.h"
 #include "SUIT_MessageBox.h"
+#include "SUIT_Session.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
@@ -134,6 +137,10 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -246,6 +253,8 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
+  myHelpFileName = "extrusion.htm";
+
   Init();
 
   /***************************************************************/
@@ -253,8 +262,14 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
-  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
+  connect(buttonHelp, SIGNAL(clicked()),  this, SLOT(ClickOnHelp()));
+
+  // to update state of the Ok & Apply buttons
+  connect(SpinBox_Dx, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+  connect(SpinBox_Dy, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
+  connect(SpinBox_Dz, SIGNAL(valueChanged(double)), SLOT(CheckIsEnable()));
 
+  connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
   connect(SelectElementsButton, SIGNAL (clicked()),            this, SLOT(SetEditCurrentArgument()));
   connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
   connect(mySelectionMgr, SIGNAL(currentSelectionChanged()),   this, SLOT(SelectionIntoArgument()));
@@ -292,9 +307,6 @@ void SMESHGUI_ExtrusionDlg::Init (bool ResetControls)
   myElementsId = "";
   myNbOkElements = 0;
 
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
   myActor = 0;
   myMesh = SMESH::SMESH_Mesh::_nil();
 
@@ -307,6 +319,25 @@ void SMESHGUI_ExtrusionDlg::Init (bool ResetControls)
     CheckBoxMesh->setChecked(false);
     onSelectMesh(false);
   }
+
+  CheckIsEnable();
+}
+
+//=================================================================================
+// function : CheckIsEnable()
+// purpose  : Check whether the Ok and Apply buttons should be enabled or not
+//=================================================================================
+void SMESHGUI_ExtrusionDlg::CheckIsEnable()
+{
+  double aX = SpinBox_Dx->GetValue();
+  double aY = SpinBox_Dy->GetValue();
+  double aZ = SpinBox_Dz->GetValue();
+  double aModule = sqrt(aX*aX + aY*aY + aZ*aZ);
+  
+  bool anIsEnable = myNbOkElements > 0 && aModule > 1.0E-38;
+
+  buttonOk->setEnabled(anIsEnable);
+  buttonApply->setEnabled(anIsEnable);
 }
 
 //=================================================================================
@@ -417,6 +448,23 @@ void SMESHGUI_ExtrusionDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_ExtrusionDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : onTextChange()
 // purpose  :
@@ -434,9 +482,6 @@ void SMESHGUI_ExtrusionDlg::onTextChange (const QString& theNewText)
   if (send == LineEditElements)
     myNbOkElements = 0;
 
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
-
   // hilight entered elements/nodes
   SMDS_Mesh* aMesh = 0;
   if (myActor)
@@ -461,10 +506,7 @@ void SMESHGUI_ExtrusionDlg::onTextChange (const QString& theNewText)
     }
   }
 
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
+  CheckIsEnable();
 
   myBusy = false;
 }
@@ -490,8 +532,6 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
 
   myEditCurrentArgument->setText(aString);
   myNbOkElements = 0;
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
   myBusy = false;
 
   // get selected mesh
@@ -593,10 +633,7 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
   myBusy = false;
 
   // OK
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
+  CheckIsEnable();
 }
 
 //=================================================================================
index 935a2716c81d2ff44b06fb35a8711d6564dc5693..3e2d421c0519c555d52c0caa4a24dbb06f12f832 100644 (file)
@@ -111,12 +111,17 @@ private:
   QPushButton*      buttonOk;
   QPushButton*      buttonCancel;
   QPushButton*      buttonApply;
+  QPushButton*      buttonHelp;
+
+  QString           myHelpFileName;
 
 private slots:
   void ConstructorsClicked (int);
+  void CheckIsEnable();
   void ClickOnOk();
   bool ClickOnApply();
   void ClickOnCancel();
+  void ClickOnHelp();
   void SetEditCurrentArgument();
   void SelectionIntoArgument();
   void DeactivateActiveDialog();
index 19b3fcb1ab62d0a354d550b888be0701a19603a0..e1c486fd70dea65a6e86156f008b5aa55ef78945 100755 (executable)
@@ -225,7 +225,8 @@ bool SMESHGUI_QuadrangleFilter::IsValid( const int theCellId ) const
   SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
   const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
 
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 4;
+  return anElem && anElem->GetType() == SMDSAbs_Face &&
+    ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 8 : 4 ));
 }
 
 //=======================================================================
@@ -244,7 +245,8 @@ bool SMESHGUI_QuadrangleFilter::IsObjValid( const int theObjId ) const
   SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
   const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
 
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 4;
+  return anElem && anElem->GetType() == SMDSAbs_Face &&
+    ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 8  : 4 ));
 }
 
 //=======================================================================
@@ -302,7 +304,8 @@ bool SMESHGUI_TriangleFilter::IsValid( const int theCellId ) const
   SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
   const SMDS_MeshElement* anElem = aMesh->FindElement( anActor->GetElemObjId( theCellId ) );
 
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 3;
+  return anElem && anElem->GetType() == SMDSAbs_Face &&
+    ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 6  : 3 ));
 }
 
 //=======================================================================
@@ -321,7 +324,8 @@ bool SMESHGUI_TriangleFilter::IsObjValid( const int theObjId ) const
   SMDS_Mesh* aMesh = anActor->GetObject()->GetMesh();
   const SMDS_MeshElement* anElem = aMesh->FindElement( theObjId );
 
-  return anElem && anElem->GetType() == SMDSAbs_Face && anElem->NbNodes() == 3;
+  return anElem && anElem->GetType() == SMDSAbs_Face &&
+    ( anElem->NbNodes() == ( anElem->IsQuadratic() ? 6  : 3 ));
 }
 
 //=======================================================================
index 547eae30bdd6738d74cdb75442be1e0f6775b83d..d04574b23a51a831d6459007d3a18bc7a38f1241 100755 (executable)
 
 #include "SUIT_Desktop.h"
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
-#include "SalomeApp_Application.h"
+#include "LightApp_Application.h"
 #include "SalomeApp_Tools.h"
 #include "SalomeApp_Study.h"
 
@@ -1695,6 +1697,8 @@ void SMESHGUI_FilterDlg::construct (const QValueList<int>& theTypes)
 
   aDlgLay->setStretchFactor(myMainFrame, 1);
 
+  myHelpFileName = "selection_filter_library.htm";
+
   Init(myTypes);
 }
 
@@ -1790,11 +1794,13 @@ QFrame* SMESHGUI_FilterDlg::createButtonFrame (QWidget* theParent)
 
   myButtons[ BTN_Cancel ] = new QPushButton(tr("SMESH_BUT_CANCEL"), aGrp);
   myButtons[ BTN_Close  ] = new QPushButton(tr("SMESH_BUT_CLOSE"), aGrp);
+  myButtons[ BTN_Help  ] = new QPushButton(tr("SMESH_BUT_HELP"), aGrp);
 
   connect(myButtons[ BTN_OK     ], SIGNAL(clicked()), SLOT(onOk()));
   connect(myButtons[ BTN_Cancel ], SIGNAL(clicked()), SLOT(onClose()));
   connect(myButtons[ BTN_Close  ], SIGNAL(clicked()), SLOT(onClose()));
   connect(myButtons[ BTN_Apply  ], SIGNAL(clicked()), SLOT(onApply()));
+  connect(myButtons[ BTN_Help   ], SIGNAL(clicked()), SLOT(onHelp()));
 
   updateMainButtons();
 
@@ -1939,6 +1945,23 @@ void SMESHGUI_FilterDlg::onClose()
   return;
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_FilterDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : SMESHGUI_FilterDlg::onDeactivate
 // Purpose : SLOT called when dialog must be deativated
index d74fc689cb59f590c4a9e101adc4f9e419083e76..5c1cfd5b56aad8d9934eb542d241ebf4ae667b04 100755 (executable)
@@ -221,7 +221,7 @@ class SMESHGUI_FilterDlg : public QDialog
   enum { Mesh, Selection, Dialog, None };
 
   // Buttons
-  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close };
+  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close, BTN_Help };
 
 public:
                             SMESHGUI_FilterDlg( SMESHGUI*,
@@ -251,6 +251,7 @@ private slots:
   void                      onOk();
   bool                      onApply();
   void                      onClose();
+  void                      onHelp();
   void                      onDeactivate();
   void                      onSelectionDone();
   void                      onCriterionChanged (const int, const int);
@@ -309,6 +310,8 @@ private:
   QMap< int, SMESH::Filter_var > myFilter;
   QMap< int, bool >              myInsertState;
   QMap< int, int  >              myApplyToState;
+
+  QString                   myHelpFileName;
 };
 
 #endif
index 75b97b4c6819313313dfcee59ba6936ea3feb996..52ff8d24d344c37384d03decfc6cbac5139e7513 100644 (file)
@@ -34,6 +34,9 @@
 #include "SUIT_Session.h"
 #include "SUIT_Desktop.h"
 #include "SUIT_FileDlg.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 // QT Includes
 #include <qapplication.h>
@@ -99,7 +102,7 @@ SMESHGUI_FilterLibraryDlg::SMESHGUI_FilterLibraryDlg (SMESHGUI* theModule,
                                                       const QValueList<int>& theTypes,
                                                       const int              theMode,
                                                       const char*            theName)
-     : QDialog( parent, theName, true, WStyle_Customize |
+     : QDialog( parent, theName, false, WStyle_Customize |
                 WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
      mySMESHGUI( theModule )
 {
@@ -144,6 +147,8 @@ void SMESHGUI_FilterLibraryDlg::construct (const QValueList<int>& theTypes,
 
   aDlgLay->setStretchFactor(myMainFrame, 1);
 
+  myHelpFileName = "selection_filter_library.htm";
+  
   Init(myTypes, myMode);
 }
 
@@ -244,11 +249,13 @@ QFrame* SMESHGUI_FilterLibraryDlg::createButtonFrame (QWidget* theParent)
 
   myButtons[ BTN_Cancel ] = new QPushButton(tr("SMESH_BUT_CANCEL"), aGrp);
   myButtons[ BTN_Close  ] = new QPushButton(tr("SMESH_BUT_CLOSE"), aGrp);
+  myButtons[ BTN_Help  ] = new QPushButton(tr("SMESH_BUT_HELP"), aGrp);
 
   connect(myButtons[ BTN_OK     ], SIGNAL(clicked()), SLOT(onOk()));
   connect(myButtons[ BTN_Cancel ], SIGNAL(clicked()), SLOT(onClose()));
   connect(myButtons[ BTN_Close  ], SIGNAL(clicked()), SLOT(onClose()));
   connect(myButtons[ BTN_Apply  ], SIGNAL(clicked()), SLOT(onApply()));
+  connect(myButtons[ BTN_Help   ], SIGNAL(clicked()), SLOT(onHelp()));
 
   QMap<int, QPushButton*>::iterator anIter;
   for (anIter = myButtons.begin(); anIter != myButtons.end(); ++anIter)
@@ -461,6 +468,23 @@ void SMESHGUI_FilterLibraryDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_FilterLibraryDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : SMESHGUI_FilterLibraryDlg::onDeactivate
 // Purpose : SLOT called when dialog must be deativated
index 8fbc6f9981cc6cc7a0d5525442cd43f8c96281a5..8fd9700b062d9496e2935a45e96fdf323313f685 100644 (file)
@@ -53,7 +53,7 @@ class SMESHGUI_FilterLibraryDlg : public QDialog
   Q_OBJECT
   
   // Buttons
-  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close };
+  enum { BTN_OK, BTN_Cancel, BTN_Apply, BTN_Close, BTN_Help };
 
   class Dialog;
   
@@ -94,6 +94,7 @@ private slots:
   void                        onOk();
   bool                        onApply();
   void                        onClose();
+  void                        onHelp();
 
   void                        onDeactivate();
   
@@ -152,6 +153,7 @@ private:
   QString                     myCurrFilterName;
   int                         myCurrFilter;
 
+  QString                     myHelpFileName;
 };
 
 #endif
index 84c05cac3aa0a4ed6ea4c028e6eefbc8956451fa..3f83a3ea610a6c0cd07773931b4bfaf8f7cafbeb 100644 (file)
 
 #include "SUIT_Desktop.h"
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "SalomeApp_Tools.h"
+#include "LightApp_Application.h"
 #include "SALOMEDSClient_Study.hxx"
 #include "SALOME_ListIO.hxx"
 #include "SALOME_ListIteratorOfListIO.hxx"
@@ -73,6 +76,8 @@
 #include <qmemarray.h>
 #include <qwidgetstack.h>
 
+#include <QtxIntSpinBox.h>
+
 // STL includes
 #include <vector>
 #include <algorithm>
@@ -144,10 +149,14 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
 
   QPixmap image0 (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
 
-  if (create)
+  if (create) {
     setCaption(tr("SMESH_CREATE_GROUP_TITLE"));
-  else
+    myHelpFileName = "/files/creating_groups.htm";
+  }
+  else {
     setCaption(tr("SMESH_EDIT_GROUP_TITLE"));
+    myHelpFileName = "/files/editing_groups.htm";
+  }
 
   setSizeGripEnabled(TRUE);
 
@@ -297,23 +306,18 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   myWGStack->addWidget( wg2, myGrpTypeGroup->id(rb2) );
 
   /***************************************************************/
-  QGroupBox* aColorBox = new QGroupBox(this, "color box");
+  QGroupBox* aColorBox = new QGroupBox(2, Qt::Horizontal, this, "color box");
   aColorBox->setTitle(tr("SMESH_SET_COLOR"));
 
   mySelectColorGroup = new QCheckBox(aColorBox, "color checkbox");
   mySelectColorGroup->setText(tr("SMESH_CHECK_COLOR"));
-  mySelectColorGroup->setMinimumSize(50, 0);
-  
-  myColorGroupLine = new QLineEdit(aColorBox, "color line");
-  myColorGroupLine->setReadOnly(false);
-  onSelectColorGroup(false);
   
-  /***************************************************************/
-  QHBoxLayout* aColorLayout = new QHBoxLayout(aColorBox, 15, 20);
-  aColorLayout->setAutoAdd(false);
+  myColorSpinBox = new QtxIntSpinBox( aColorBox );
+  myColorSpinBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+  myColorSpinBox->setMinValue( 0 );
+  myColorSpinBox->setMaxValue( 9999 );
   
-  aColorLayout->addWidget(mySelectColorGroup);
-  aColorLayout->addWidget(myColorGroupLine);
+  onSelectColorGroup(false);
   
   /***************************************************************/
   
@@ -332,11 +336,15 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   QPushButton* aCloseBtn = new QPushButton(aButtons, "close");
   aCloseBtn->setText(tr("SMESH_BUT_CLOSE"));
   aCloseBtn->setAutoDefault(true);
+  QPushButton* aHelpBtn = new QPushButton(aButtons, "help");
+  aHelpBtn->setText(tr("SMESH_BUT_HELP"));
+  aHelpBtn->setAutoDefault(true);
 
   aBtnLayout->addWidget(aOKBtn);
   aBtnLayout->addWidget(aApplyBtn);
   aBtnLayout->addStretch();
   aBtnLayout->addWidget(aCloseBtn);
+  aBtnLayout->addWidget(aHelpBtn);
 
   /***************************************************************/
   aMainLayout->addWidget(meshGroupLab,    0, 0);
@@ -372,11 +380,12 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   connect(myGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGeomGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(mySelectColorGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectColorGroup(bool)));
-  connect(myColorGroupLine, SIGNAL(textChanged(const QString&)), this, SLOT(onNbColorsChanged(const QString&)));
+  connect(myColorSpinBox, SIGNAL(valueChanged(const QString&)), this, SLOT(onNbColorsChanged(const QString&)));
   
   connect(aOKBtn, SIGNAL(clicked()), this, SLOT(onOK()));
   connect(aApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
   connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(onClose()));
+  connect(aHelpBtn, SIGNAL(clicked()), this, SLOT(onHelp()));
 
   /* Init selection */
   mySMESHGUI->SetActiveDialogBox(this);
@@ -452,13 +461,12 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
 void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
 {
   myMesh = theGroup->GetMesh();
-
+  
   myName->setText(theGroup->GetName());
   myName->home(false);
 
-  myColorGroupLine->setText(QString::number(theGroup->GetColorNumber()));
-  myColorGroupLine->home(false);
-
+  myColorSpinBox->setValue( theGroup->GetColorNumber() );
+  
   myMeshGroupLine->setText(theGroup->GetName());
 
   int aType = 0;
@@ -674,25 +682,25 @@ bool SMESHGUI_GroupDlg::onApply()
       myGroup = SMESH::AddGroup(myMesh, aType, myName->text());
       myGroup->Add(anIdList.inout());
       
-      int aColorNumber = myColorGroupLine->text().toInt();
+      int aColorNumber = myColorSpinBox->value();
       myGroup->SetColorNumber(aColorNumber);
       
       _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroup);
 
-      SMESH::setFileName (aMeshGroupSO, myColorGroupLine->text());
+      SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
       
-      SMESH::setFileType (aMeshGroupSO,"COULEURGROUP");
+      SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
       
       /* init for next operation */
       myName->setText("");
-      myColorGroupLine->setText("");
+      myColorSpinBox->setValue(0);
       myElements->clear();
       myGroup = SMESH::SMESH_Group::_nil();
 
     } else {
       myGroup->SetName(myName->text());
         
-      int aColorNumber = myColorGroupLine->text().toInt();
+      int aColorNumber = myColorSpinBox->value();
       myGroup->SetColorNumber(aColorNumber);
 
       QValueList<int> aAddList;
@@ -751,25 +759,25 @@ bool SMESHGUI_GroupDlg::onApply()
       
       myGroupOnGeom = myMesh->CreateGroupFromGEOM(aType, myName->text(),myGeomGroup);
       
-      int aColorNumber = myColorGroupLine->text().toInt();
+      int aColorNumber = myColorSpinBox->value();
       myGroupOnGeom->SetColorNumber(aColorNumber);
       
       _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroupOnGeom);
       
-      SMESH::setFileName (aMeshGroupSO, myColorGroupLine->text());
+      SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
       
-      SMESH::setFileType (aMeshGroupSO,"COULEURGROUP");
+      SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
       
       /* init for next operation */
       myName->setText("");
-      myColorGroupLine->setText("");
+      myColorSpinBox->setValue(0);
       myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
     }
     else
       {
        myGroupOnGeom->SetName(myName->text());
         
-       int aColorNumber = myColorGroupLine->text().toInt();
+       int aColorNumber = myColorSpinBox->value();
        myGroupOnGeom->SetColorNumber(aColorNumber);
       }
     
@@ -854,6 +862,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
 
       if (aNbSel != 1 ) {
         myGroup = SMESH::SMESH_Group::_nil();
+       myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil(); 
         myMesh = SMESH::SMESH_Mesh::_nil();
         myIsBusy = false;
         return;
@@ -890,12 +899,14 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
        }
         myIsBusy = false;
         myCurrentLineEdit = 0;
+
+       myGroup = SMESH::SMESH_Group::_nil();
+       myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
+       
         init(aGroup);
         myIsBusy = true;
         mySelectSubMesh->setEnabled(true);
         mySelectGroup->setEnabled(true);
-        myGeomGroupBtn->setEnabled(true);
-        myGeomGroupLine->setEnabled(true);
       }
       myCurrentLineEdit = 0;
       myIsBusy = false;
@@ -1105,16 +1116,10 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on)
 //=================================================================================
 void SMESHGUI_GroupDlg::onSelectColorGroup(bool on)
 {
-  if (on) {
-    setSelectionMode(7);
-  }
-  else {
-    myColorGroupLine->setText("");
-    myCurrentLineEdit = 0;
-    if (myTypeId != -1)
-      setSelectionMode(myTypeId);
-  }
-  myColorGroupLine->setEnabled(on);
+  if (!on)
+    myColorSpinBox->setValue(0);
+  
+  myColorSpinBox->setEnabled(on);
 }
 
 //=================================================================================
@@ -1541,6 +1546,23 @@ void SMESHGUI_GroupDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : SMESHGUI_GroupDlg::onDeactivate
 // purpose  : SLOT called when dialog must be deativated
index 3d741d43d0eb6a25034436d7842262ee24349272..b78709be2639d8b357fe5d4da722bb2cb45514ea 100644 (file)
@@ -48,6 +48,7 @@ class QListBox;
 class QPushButton;
 class QCheckBox;
 class QWidgetStack;
+class QtxIntSpinBox;
 class SMESHGUI;
 class SMESH_Actor;
 class SMESHGUI_FilterDlg;
@@ -87,6 +88,7 @@ private slots:
     void onOK();
     void onClose();
     bool onApply();
+    void onHelp();
     void onDeactivate();
 
     void onListSelectionChanged();
@@ -144,7 +146,7 @@ private:
     QLineEdit*                    myGroupLine;
 
     QCheckBox*                    mySelectColorGroup;
-    QLineEdit*                    myColorGroupLine;
+    QtxIntSpinBox*                myColorSpinBox;
 
     QCheckBox*                    mySelectGeomGroup;
     QPushButton*                  myGeomGroupBtn;
@@ -167,6 +169,8 @@ private:
     SMESHGUI_FilterDlg*           myFilterDlg;
 
     bool                          myCreate, myIsBusy;
+
+    QString                       myHelpFileName;
 };
 
 #endif // DIALOGBOX_GROUP_H
index a43bb38ade2de02fb51af301ddd4476f6359396d..d607b9daff336030dac7cb9061d1dcc930a772ff 100644 (file)
 
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "LightApp_SelectionMgr.h"
 #include "SVTK_Selection.h"
@@ -72,9 +76,18 @@ SMESHGUI_GroupOpDlg::SMESHGUI_GroupOpDlg( SMESHGUI* theModule, const int theMode
 {
   myMode = theMode;
 
-  if (myMode == UNION) setCaption(tr("UNION_OF_TWO_GROUPS"));
-  else if (myMode == INTERSECT) setCaption(tr("INTERSECTION_OF_TWO_GROUPS"));
-  else setCaption(tr("CUT_OF_TWO_GROUPS"));
+  if (myMode == UNION) {
+    setCaption(tr("UNION_OF_TWO_GROUPS"));
+    myHelpFileName = "/files/using_operations_on_groups.htm#Union";
+  }
+  else if (myMode == INTERSECT) {
+    setCaption(tr("INTERSECTION_OF_TWO_GROUPS"));
+    myHelpFileName = "/files/using_operations_on_groups.htm#Intersection";
+  }
+  else {
+    setCaption(tr("CUT_OF_TWO_GROUPS"));
+    myHelpFileName = "/files/using_operations_on_groups.htm#Cut";
+  }
 
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
 
@@ -139,6 +152,7 @@ QFrame* SMESHGUI_GroupOpDlg::createButtonFrame (QWidget* theParent)
   myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
   myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
   myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+  myHelpBtn  = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
 
   QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
@@ -148,11 +162,13 @@ QFrame* SMESHGUI_GroupOpDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(myApplyBtn);
   aLay->addItem(aSpacer);
   aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
 
   // connect signals and slots
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
   connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+  connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
 
   return aFrame;
 }
@@ -291,6 +307,23 @@ void SMESHGUI_GroupOpDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupOpDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : SMESHGUI_GroupOpDlg::onSelectionDone
 // Purpose : SLOT called when selection changed
index 7a62a35b31bb2ba2d0e3524c38b045cce633423b..6d4bb2f91b8dc83532ba08fc01068b743feada06 100644 (file)
@@ -70,6 +70,7 @@ private slots:
   void                      onOk();
   bool                      onApply();
   void                      onClose();
+  void                      onHelp();
 
   void                      onDeactivate();
   void                      onSelectionDone();
@@ -87,6 +88,7 @@ private:
   QPushButton*              myOkBtn;
   QPushButton*              myApplyBtn;
   QPushButton*              myCloseBtn;
+  QPushButton*              myHelpBtn;
   
   QLineEdit*                myNameEdit;
   QLineEdit*                myEdit1;
@@ -104,6 +106,8 @@ private:
   SMESH::SMESH_GroupBase_var    myGroup1;
   SMESH::SMESH_GroupBase_var    myGroup2;
   
+  QString                   myHelpFileName;
+  
 };
 
 #endif
index 6926df448de536fb44cb2805724580b9a1310c81..a5da9b73a817b84201e88abe8ee2e6c77158f18d 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #include "SMESHGUI_Hypotheses.h"
 #include "SMESHGUI.h"
@@ -8,8 +27,15 @@
 #include <SALOMEDSClient_Study.hxx>
 #include <utilities.h>
 
+#include <SMESHGUI.h>
+
 #include <QtxIntSpinBox.h>
 
+#include <SUIT_Session.h>
+#include <SUIT_MessageBox.h>
+
+#include <LightApp_Application.h>
+
 #include <qframe.h>
 #include <qlayout.h>
 #include <qlineedit.h>
@@ -344,7 +370,7 @@ bool SMESHGUI_GenericHypothesisCreator::getParamFromCustomWidget( StdParam& , QW
 
 
 SMESHGUI_HypothesisDlg::SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreator* creator, QWidget* parent )
-: QtxDialog( parent, "", true, true, QtxDialog::OKCancel ),
+: QtxDialog( parent, "", true, true ),
   myCreator( creator )
 {
   setMinimumSize( 300, height() );
@@ -366,6 +392,29 @@ SMESHGUI_HypothesisDlg::SMESHGUI_HypothesisDlg( SMESHGUI_GenericHypothesisCreato
   titLay->addStretch( 1 );
 
   myLayout->addWidget( titFrame, 0 );
+
+  QString aHypType = creator->hypType();
+  if ( aHypType == "LocalLength" )
+    myHelpFileName = "/files/arithmetic_1d.htm#Average_length";
+  else if ( aHypType == "Arithmetic1D")
+    myHelpFileName = "/files/arithmetic_1d.htm#arithmetic_1D";
+  else if ( aHypType == "MaxElementArea")
+    myHelpFileName = "/files/max._element_area_hypothesis.htm";
+  else if ( aHypType == "MaxElementVolume")
+    myHelpFileName = "/files/max._element_volume_hypothsis.htm";
+  else if ( aHypType == "StartEndLength")
+    myHelpFileName = "/files/arithmetic_1d.htm#start_and_end_length";
+  else if ( aHypType == "Deflection1D")
+    myHelpFileName = "/files/arithmetic_1d.htm#deflection_1D";
+  else if ( aHypType == "AutomaticLength")
+    myHelpFileName = "/files/arithmetic_1d.htm#automatic_length";
+  else if ( aHypType == "NumberOfSegments")
+    myHelpFileName = "/files/arithmetic_1d.htm#Number_of_elements";
+  else
+    myHelpFileName = "";
+
+  connect( this, SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
+
 }
 
 SMESHGUI_HypothesisDlg::~SMESHGUI_HypothesisDlg()
@@ -387,6 +436,21 @@ void SMESHGUI_HypothesisDlg::accept()
     QtxDialog::accept();
 }
 
+void SMESHGUI_HypothesisDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) {
+    SMESHGUI* aSMESHGUI = dynamic_cast<SMESHGUI*>( app->activeModule() );
+    app->onHelpContextModule(aSMESHGUI ? app->moduleName(aSMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  }
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 void SMESHGUI_HypothesisDlg::setHIcon( const QPixmap& p )
 {
   myIconLabel->setPixmap( p );  
index d47422a4a1c1456c24803f42b90c47c6ac9d5474..47546d233799bf99b9ac7522d74520c3db2b96b9 100644 (file)
@@ -113,11 +113,13 @@ public:
 
 protected slots:
   virtual void accept();
+  void onHelp(); 
 
 private:
   SMESHGUI_GenericHypothesisCreator*   myCreator;
   QVBoxLayout*                         myLayout;
   QLabel                              *myIconLabel, *myTypeLabel;
+  QString                              myHelpFileName;
 };
 
 /*!
@@ -126,22 +128,31 @@ private:
 class HypothesisData
 {
  public:
-  HypothesisData( const QString& thePluginName,
+  HypothesisData( const QString& theTypeName,
+                  const QString& thePluginName,
                   const QString& theServerLibName,
                   const QString& theClientLibName,
                   const QString& theLabel,
                   const QString& theIconId,
                   const QValueList<int>& theDim,
-                  const bool theIsAux ) 
-: PluginName( thePluginName ),
-  ServerLibName( theServerLibName ),
-  ClientLibName( theClientLibName ),
-  Label( theLabel ),
-  IconId( theIconId ),
-  Dim( theDim ),
-  IsAux( theIsAux )
- {};
-
+                  const bool theIsAux,
+                  const QStringList& theNeededHypos,
+                  const QStringList& theOptionalHypos,
+                  const QStringList& theInputTypes,
+                  const QStringList& theOutputTypes)
+    : TypeName( theTypeName ),
+    PluginName( thePluginName ),
+    ServerLibName( theServerLibName ),
+    ClientLibName( theClientLibName ),
+    Label( theLabel ),
+    IconId( theIconId ),
+    Dim( theDim ),
+    IsAux( theIsAux ),
+    NeededHypos( theNeededHypos ), OptionalHypos( theOptionalHypos ),
+    InputTypes( theInputTypes ), OutputTypes( theOutputTypes )
+    {};
+
+ QString TypeName;        //!< hypothesis type name
  QString PluginName;      //!< plugin name
  QString ServerLibName;   //!< server library name
  QString ClientLibName;   //!< client library name
@@ -149,6 +160,12 @@ class HypothesisData
  QString IconId;          //!< icon identifier
  QValueList<int> Dim;     //!< list of supported dimensions (see SMESH::Dimension enumeration)
  bool IsAux;              //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
+
+ // for algorithm only: dependencies algo <-> algo and algo -> hypos
+ QStringList NeededHypos;  //!< list of obligatory hypotheses
+ QStringList OptionalHypos;//!< list of optional hypotheses
+ QStringList InputTypes;   //!< list of element types required as a prerequisite
+ QStringList OutputTypes;  //!< list of types of generated elements
 };
 
 /*!
index 5f4d6d2f418756cac85fda695112aaa621f6d54a..556dc5591ffda71982444351eefd0765be1905b0 100644 (file)
@@ -250,17 +250,50 @@ namespace SMESH{
     // Init list of available hypotheses, if needed
     InitAvailableHypotheses();
 
-    if (myHypothesesMap.find(aHypType) == myHypothesesMap.end()) {
-      if (myAlgorithmsMap.find(aHypType) != myAlgorithmsMap.end()) {
-       aHypData = myAlgorithmsMap[aHypType];
-      }
+    THypothesisDataMap::iterator type_data = myHypothesesMap.find(aHypType);
+    if (type_data != myHypothesesMap.end()) {
+      aHypData = type_data->second;
     }
     else {
-      aHypData = myHypothesesMap[aHypType];
+      type_data = myAlgorithmsMap.find(aHypType);
+      if (type_data != myAlgorithmsMap.end())
+        aHypData = type_data->second;
     }
     return aHypData;
   }
 
+  bool IsAvailableHypothesis(const HypothesisData* algoData,
+                             const QString&        hypType,
+                             bool&                 isAuxiliary)
+  {
+    isAuxiliary = false;
+    if ( !algoData )
+      return false;
+    if ( algoData->NeededHypos.contains( hypType ))
+      return true;
+    if ( algoData->OptionalHypos.contains( hypType)) {
+      isAuxiliary = true;
+      return true;
+    }
+    return false;
+  }
+
+  bool IsCompatibleAlgorithm(const HypothesisData* algo1Data,
+                             const HypothesisData* algo2Data)
+  {
+    if ( !algo1Data || !algo2Data )
+      return false;
+    const HypothesisData* algoIn = algo1Data, *algoMain = algo2Data;
+    if ( algoIn->Dim.first() > algoMain->Dim.first() ) {
+      algoIn = algo2Data; algoMain = algo1Data;
+    }
+    // look for any output type of algoIn between input types of algoMain
+    QStringList::const_iterator inElemType = algoIn->OutputTypes.begin();
+    for ( ; inElemType != algoIn->OutputTypes.end(); ++inElemType )
+      if ( algoMain->InputTypes.contains( *inElemType ))
+        return true;
+    return false;
+  }
 
   SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType)
   {
index 2fb920af91c60e99f87f4ee7322916b5a17685b3..15767b0f7aa476b42f5851a44c8cc26c97837d90 100644 (file)
@@ -61,6 +61,13 @@ namespace SMESH{
 
   HypothesisData* GetHypothesisData(const char* aHypType);
 
+  bool IsAvailableHypothesis(const HypothesisData* algoData,
+                             const QString&        hypType,
+                             bool&                 isOptional);
+
+  bool IsCompatibleAlgorithm(const HypothesisData* algo1Data,
+                             const HypothesisData* algo2Data);
+
   SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType);
 
   SMESH::SMESH_Hypothesis_ptr CreateHypothesis(const char* aHypType,
index d089d8cbd690d64ed7d242303135cadd85d1bb21..7378a87ce6e3e79e5baf636a861b389457cdd0e4 100644 (file)
 #include "GEOMBase.h"
 
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
@@ -129,6 +133,10 @@ SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char*
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -257,6 +265,7 @@ SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char*
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()),   this, SLOT(ClickOnHelp()));
 
   connect(SelectMeshButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
   connect(DetectButton, SIGNAL (clicked()), this, SLOT(onDetect()));
@@ -281,6 +290,8 @@ SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char*
 
   // Init Mesh field from selection
   SelectionIntoArgument();
+
+  myHelpFileName = "/files/merging_nodes.htm";
 }
 
 //=================================================================================
@@ -364,6 +375,23 @@ void SMESHGUI_MergeNodesDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_MergeNodesDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : onEditNodesGroup()
 // purpose  :
index 457259574062e0f0a27e5c72957650ca1cf582f0..151ce9b153ad842bc77cbdf86c4dfc57052eb5ea 100644 (file)
@@ -98,6 +98,7 @@ private:
     QPushButton*      buttonOk;
     QPushButton*      buttonCancel;
     QPushButton*      buttonApply;
+    QPushButton*      buttonHelp;
     QGroupBox*        GroupMesh;
     QGroupBox*        GroupCoincident;
     QGroupBox*        GroupEdit;
@@ -112,12 +113,15 @@ private:
     QListView*        ListCoincident;
     QListBox*         ListEdit;
     SMESHGUI_SpinBox* SpinBoxTolerance;
+
+    QString           myHelpFileName;
    
 private slots:
 
     void ClickOnOk();
     void ClickOnCancel();
     bool ClickOnApply();
+    void ClickOnHelp();
     void updateControls();
     void onDetect();
     void onSelectNodesGroup();
index a9dbbcaa1e54b24814f24c38716fc10337d51d8a..e05e2022df3ef9fe44b8edaed9bc4761a9aa68d0 100644 (file)
@@ -115,6 +115,7 @@ SMESHGUI_MeshTab::SMESHGUI_MeshTab( QWidget* theParent )
     connect( myEditHyp[ i ], SIGNAL( clicked() ), SLOT( onEditHyp() ) );
     connect( myHyp[ i ], SIGNAL( activated( int ) ), SLOT( onHyp( int ) ) );
   }
+  connect( myHyp[ Algo ], SIGNAL( activated( int ) ), SLOT( onHyp( int ) ) );
   
   // Initialize controls
   
@@ -141,6 +142,8 @@ SMESHGUI_MeshTab::~SMESHGUI_MeshTab()
 void SMESHGUI_MeshTab::setAvailableHyps( const int theId, const QStringList& theHyps )
 {
   myAvailableHyps[ theId ] = theHyps;
+
+  bool enable = ! theHyps.isEmpty();
   if ( theId == Algo )
   {
     myHyp[ Algo ]->clear();
@@ -148,6 +151,11 @@ void SMESHGUI_MeshTab::setAvailableHyps( const int theId, const QStringList& the
     myHyp[ Algo ]->insertStringList( theHyps );
     myHyp[ Algo ]->setCurrentItem( 0 );
   }
+  else {
+    myCreateHyp[ theId ]->setEnabled( enable );
+    myEditHyp[ theId ]->setEnabled( false );
+  }
+  myHyp[ theId ]->setEnabled( enable );
 }
 
 //================================================================================
@@ -167,6 +175,7 @@ void SMESHGUI_MeshTab::setExistingHyps( const int theId, const QStringList& theH
     myHyp[ theId ]->insertItem( tr( "NONE" ) );
     myHyp[ theId ]->insertStringList( theHyps );
     myHyp[ theId ]->setCurrentItem( 0 );
+    myHyp[ theId ]->setEnabled( !theHyps.isEmpty() );
     myEditHyp[ theId ]->setEnabled( false );
   }
 }
@@ -186,6 +195,7 @@ void SMESHGUI_MeshTab::addHyp( const int theId, const QString& theHyp )
   myHyp[ theId ]->insertItem( theHyp );
   myHyp[ theId ]->setCurrentItem( myHyp[ theId ]->count() - 1 );
   myEditHyp[ theId ]->setEnabled( true );
+  myHyp[ theId ]->setEnabled( true );
 }
 
 //================================================================================
@@ -288,22 +298,27 @@ void SMESHGUI_MeshTab::onEditHyp()
 {
   const QObject* aSender = sender();
   int aHypType = aSender == myEditHyp[ MainHyp ] ? MainHyp : AddHyp;
-  emit editHyp( aHypType, myHyp[ aHypType ]->currentItem() );
+  emit editHyp( aHypType, myHyp[ aHypType ]->currentItem() - 1 );  // - 1 because there is NONE on the top
 }
 
 //================================================================================
 /*!
  * \brief Updates "Edit hypothesis" button state
  * 
- * SLOT called when current hypothesis changed disables "Edit hypothesis" button
- * if current hypothesis is <None>, enables otherwise
+ * SLOT called when current hypothesis changed. Disables "Edit hypothesis" button
+ * if current hypothesis is <None>, enables otherwise.
+ * If an algorithm changed, emits selectAlgo( theIndex ) signal
  */
 //================================================================================
 void SMESHGUI_MeshTab::onHyp( int theIndex )
 {
   const QObject* aSender = sender();
-  int anIndex = aSender == myHyp[ MainHyp ] ? MainHyp : AddHyp;
-  myEditHyp[ anIndex ]->setEnabled( theIndex > 0 );
+  if ( aSender == myHyp[ Algo ] )
+    emit selectAlgo( theIndex - 1 ); // - 1 because there is NONE on the top
+  else {
+    int anIndex = aSender == myHyp[ MainHyp ] ? MainHyp : AddHyp;
+    myEditHyp[ anIndex ]->setEnabled( theIndex > 0 );
+  }
 }
 
 //================================================================================
@@ -379,9 +394,9 @@ SMESHGUI_MeshDlg::SMESHGUI_MeshDlg( const bool theToCreate, const bool theIsMesh
   myTabs[ Dim1D ] = new SMESHGUI_MeshTab( myTabWg );
   myTabs[ Dim2D ] = new SMESHGUI_MeshTab( myTabWg );
   myTabs[ Dim3D ] = new SMESHGUI_MeshTab( myTabWg );
-  myTabWg->addTab( myTabs[ Dim1D ], tr( "DIM_1D" ) );
-  myTabWg->addTab( myTabs[ Dim2D ], tr( "DIM_2D" ) );
   myTabWg->addTab( myTabs[ Dim3D ], tr( "DIM_3D" ) );
+  myTabWg->addTab( myTabs[ Dim2D ], tr( "DIM_2D" ) );
+  myTabWg->addTab( myTabs[ Dim1D ], tr( "DIM_1D" ) );
 
   // Hypotheses Sets
   myHypoSetPopup = new QPopupMenu();
@@ -462,7 +477,7 @@ void SMESHGUI_MeshDlg::reset()
 //================================================================================    
 void SMESHGUI_MeshDlg::setCurrentTab( const int theId  )
 {
-  myTabWg->setCurrentPage( theId );
+  myTabWg->setCurrentPage( Dim3D - theId );
 }
 
 //================================================================================
@@ -474,13 +489,16 @@ void SMESHGUI_MeshDlg::setCurrentTab( const int theId  )
 
 void SMESHGUI_MeshDlg::setMaxHypoDim( const int maxDim )
 {
-  for ( int i = Dim1D; i <= Dim3D; ++i ) {
-    int dim = i + 1;
-    bool enable = ( dim <= maxDim );
+  const int DIM = maxDim - 1;
+  for ( int dim = Dim1D; dim <= Dim3D; ++dim ) {
+    bool enable = ( dim <= DIM );
     if ( !enable )
-      myTabs[ i ]->reset();
-    myTabWg->setTabEnabled( myTabs[ i ], enable );
+      myTabs[ dim ]->reset();
+    myTabWg->setTabEnabled( myTabs[ dim ], enable );
   }
+  // deselect desabled tab
+  if ( !myTabWg->isTabEnabled( myTabWg->currentPage() ))
+    setCurrentTab( DIM - 1 );
 }
 
 //================================================================================
index f12773bd100f3ca1f0d5c7af8c4db64800fd7bfc..0e97c8c30abc3f9e149e29f1b18daa45abb28149 100644 (file)
@@ -129,6 +129,8 @@ signals:
   //!< Emited when "Create hypothesis" button clicked
   void                         editHyp( const int theHypType, const int theIndex );
   //!< Emited when "Edit hypothesis" button clicked
+  void                         selectAlgo( const int theIndex );
+  //!< Emited when an algorithm is selected
   
 private slots:  
 
@@ -150,7 +152,3 @@ private:
 };
 
 #endif
-
-
-
-
index b1956dce0db591517d2f7762f24296f3299d6049..d9fb08d3bb4f6e42a26804951323e9e5b2e22eb1 100644 (file)
 #include "SUIT_Desktop.h"
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_OverrideCursor.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
 #include "SALOMEDSClient_Study.hxx"
 #include "SALOME_ListIO.hxx"
 
@@ -131,10 +134,23 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
   myMeshNbNodes    = new QLabel(myMeshWidget, "myMeshNbNodes");
   myMeshNbNodes->setMinimumWidth(100);
 
+  // --> header with orders
+  QLabel* myMeshOrder0Lab = new QLabel(tr("SMESH_MESHINFO_ORDER0"), myMeshWidget, "myMeshOrder0Lab");
+  QLabel* myMeshOrder1Lab = new QLabel(tr("SMESH_MESHINFO_ORDER1"), myMeshWidget, "myMeshOrder1Lab");
+  QLabel* myMeshOrder2Lab = new QLabel(tr("SMESH_MESHINFO_ORDER2"), myMeshWidget, "myMeshOrder2Lab");
+  QFont fnti = myMeshOrder0Lab->font(); fnti.setItalic(true);
+  myMeshOrder0Lab->setFont(fnti);
+  myMeshOrder1Lab->setFont(fnti);
+  myMeshOrder2Lab->setFont(fnti);
+
   // --> edges
   QLabel* myMeshNbEdgesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), myMeshWidget, "myMeshNbEdgesLab");
   myMeshNbEdges    = new QLabel(myMeshWidget, "myMeshNbEdges");
   myMeshNbEdges->setMinimumWidth(100);
+  myMeshNbEdges1   = new QLabel(myMeshWidget, "myMeshNbEdges1");
+  myMeshNbEdges1->setMinimumWidth(100);
+  myMeshNbEdges2   = new QLabel(myMeshWidget, "myMeshNbEdges2");
+  myMeshNbEdges2->setMinimumWidth(100);
 
   // --> faces
   myMeshFacesGroup = new QGroupBox(tr("SMESH_MESHINFO_FACES"), myMeshWidget, "myMeshFacesGroup");
@@ -150,16 +166,30 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
   myMeshNbFaces    = new QLabel(myMeshFacesGroup, "myMeshNbFaces");
   myMeshNbFaces->setMinimumWidth(100);
   myMeshNbFaces->setFont(fnt);
+  myMeshNbFaces1   = new QLabel(myMeshFacesGroup, "myMeshNbFaces1");
+  myMeshNbFaces1->setMinimumWidth(100);
+  myMeshNbFaces1->setFont(fnt);
+  myMeshNbFaces2   = new QLabel(myMeshFacesGroup, "myMeshNbFaces2");
+  myMeshNbFaces2->setMinimumWidth(100);
+  myMeshNbFaces2->setFont(fnt);
 
   // --> faces --> triangles
   QLabel* myMeshNbTrianglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TRIANGLES")), myMeshFacesGroup, "myMeshNbTrianglesLab");
   myMeshNbTriangles    = new QLabel(myMeshFacesGroup, "myMeshNbTriangles");
   myMeshNbTriangles->setMinimumWidth(100);
+  myMeshNbTriangles1   = new QLabel(myMeshFacesGroup, "myMeshNbTriangles1");
+  myMeshNbTriangles1->setMinimumWidth(100);
+  myMeshNbTriangles2   = new QLabel(myMeshFacesGroup, "myMeshNbTriangles2");
+  myMeshNbTriangles2->setMinimumWidth(100);
 
   // --> faces --> quadrangles
   QLabel* myMeshNbQuadranglesLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_QUADRANGLES")), myMeshFacesGroup, "myMeshNbQuadranglesLab");
   myMeshNbQuadrangles    = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles");
   myMeshNbQuadrangles->setMinimumWidth(100);
+  myMeshNbQuadrangles1   = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles1");
+  myMeshNbQuadrangles1->setMinimumWidth(100);
+  myMeshNbQuadrangles2   = new QLabel(myMeshFacesGroup, "myMeshNbQuadrangles2");
+  myMeshNbQuadrangles2->setMinimumWidth(100);
 
   // --> faces --> polygons
   QLabel* myMeshNbPolygonesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYGONES" ) ), myMeshFacesGroup, "myMeshNbPolygonesLab" );
@@ -168,10 +198,16 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
 
   myMeshFacesGroupLayout->addWidget(myMeshNbFacesLab,       0, 0);
   myMeshFacesGroupLayout->addWidget(myMeshNbFaces,          0, 1);
+  myMeshFacesGroupLayout->addWidget(myMeshNbFaces1,         0, 2);
+  myMeshFacesGroupLayout->addWidget(myMeshNbFaces2,         0, 3);
   myMeshFacesGroupLayout->addWidget(myMeshNbTrianglesLab,   1, 0);
   myMeshFacesGroupLayout->addWidget(myMeshNbTriangles,      1, 1);
+  myMeshFacesGroupLayout->addWidget(myMeshNbTriangles1,     1, 2);
+  myMeshFacesGroupLayout->addWidget(myMeshNbTriangles2,     1, 3);
   myMeshFacesGroupLayout->addWidget(myMeshNbQuadranglesLab, 2, 0);
   myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles,    2, 1);
+  myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles1,   2, 2);
+  myMeshFacesGroupLayout->addWidget(myMeshNbQuadrangles2,   2, 3);
   myMeshFacesGroupLayout->addWidget( myMeshNbPolygonesLab,   3, 0 );
   myMeshFacesGroupLayout->addWidget( myMeshNbPolygones,      3, 1 );
   
@@ -189,26 +225,48 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
   myMeshNbVolumes    = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes");
   myMeshNbVolumes->setMinimumWidth(100);
   myMeshNbVolumes->setFont(fnt);
+  myMeshNbVolumes1   = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes1");
+  myMeshNbVolumes1->setMinimumWidth(100);
+  myMeshNbVolumes1->setFont(fnt);
+  myMeshNbVolumes2   = new QLabel(myMeshVolumesGroup, "myMeshNbVolumes2");
+  myMeshNbVolumes2->setMinimumWidth(100);
+  myMeshNbVolumes2->setFont(fnt);
 
   // --> volumes --> tetrahedrons
   QLabel* myMeshNbTetraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_TETRAS")), myMeshVolumesGroup, "myMeshNbTetraLab");
   myMeshNbTetra    = new QLabel(myMeshVolumesGroup, "myMeshNbTetra");
   myMeshNbTetra->setMinimumWidth(100);
+  myMeshNbTetra1   = new QLabel(myMeshVolumesGroup, "myMeshNbTetra1");
+  myMeshNbTetra1->setMinimumWidth(100);
+  myMeshNbTetra2   = new QLabel(myMeshVolumesGroup, "myMeshNbTetra2");
+  myMeshNbTetra2->setMinimumWidth(100);
 
   // --> volumes --> hexahedrons
   QLabel* myMeshNbHexaLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAS")), myMeshVolumesGroup, "myMeshNbHexaLab");
   myMeshNbHexa    = new QLabel(myMeshVolumesGroup, "myMeshNbHexa");
-  myMeshNbHexaLab->setMinimumWidth(100);
+  myMeshNbHexa->setMinimumWidth(100);
+  myMeshNbHexa1   = new QLabel(myMeshVolumesGroup, "myMeshNbHexa1");
+  myMeshNbHexa1->setMinimumWidth(100);
+  myMeshNbHexa2   = new QLabel(myMeshVolumesGroup, "myMeshNbHexa2");
+  myMeshNbHexa2->setMinimumWidth(100);
 
   // --> volumes --> prisms
   QLabel* myMeshNbPrismLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PRISMS")), myMeshVolumesGroup, "myMeshNbPrismLab");
   myMeshNbPrism    = new QLabel(myMeshVolumesGroup, "myMeshNbPrism");
   myMeshNbPrism->setMinimumWidth(100);
+  myMeshNbPrism1   = new QLabel(myMeshVolumesGroup, "myMeshNbPrism1");
+  myMeshNbPrism1->setMinimumWidth(100);
+  myMeshNbPrism2   = new QLabel(myMeshVolumesGroup, "myMeshNbPrism2");
+  myMeshNbPrism2->setMinimumWidth(100);
 
   // --> volumes --> pyramids
   QLabel* myMeshNbPyraLab = new QLabel(COLONIZE(tr("SMESH_MESHINFO_PYRAS")), myMeshVolumesGroup, "myMeshNbPyraLab");
   myMeshNbPyra    = new QLabel(myMeshVolumesGroup, "myMeshNbPyra");
   myMeshNbPyra->setMinimumWidth(100);
+  myMeshNbPyra1   = new QLabel(myMeshVolumesGroup, "myMeshNbPyra1");
+  myMeshNbPyra1->setMinimumWidth(100);
+  myMeshNbPyra2   = new QLabel(myMeshVolumesGroup, "myMeshNbPyra2");
+  myMeshNbPyra2->setMinimumWidth(100);
 
   // --> volumes --> polyherones
   QLabel* myMeshNbPolyhedronesLab = new QLabel( COLONIZE( tr( "SMESH_MESHINFO_POLYEDRES" ) ), myMeshVolumesGroup, "myMeshNbPolyhedronLab" );
@@ -217,14 +275,24 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
 
   myMeshVolumesGroupLayout->addWidget(myMeshNbVolumesLab, 0, 0);
   myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes,    0, 1);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes1,   0, 2);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbVolumes2,   0, 3);
   myMeshVolumesGroupLayout->addWidget(myMeshNbTetraLab,   1, 0);
   myMeshVolumesGroupLayout->addWidget(myMeshNbTetra,      1, 1);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbTetra1,     1, 2);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbTetra2,     1, 3);
   myMeshVolumesGroupLayout->addWidget(myMeshNbHexaLab,    2, 0);
   myMeshVolumesGroupLayout->addWidget(myMeshNbHexa,       2, 1);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbHexa1,      2, 2);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbHexa2,      2, 3);
   myMeshVolumesGroupLayout->addWidget(myMeshNbPrismLab,   3, 0);
   myMeshVolumesGroupLayout->addWidget(myMeshNbPrism,      3, 1);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbPrism1,     3, 2);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbPrism2,     3, 3);
   myMeshVolumesGroupLayout->addWidget(myMeshNbPyraLab,    4, 0);
   myMeshVolumesGroupLayout->addWidget(myMeshNbPyra,       4, 1);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbPyra1,      4, 2);
+  myMeshVolumesGroupLayout->addWidget(myMeshNbPyra2,      4, 3);
   myMeshVolumesGroupLayout->addWidget( myMeshNbPolyhedronesLab,    5, 0 );
   myMeshVolumesGroupLayout->addWidget( myMeshNbPolyhedrones,       5, 1 );
 
@@ -233,11 +301,16 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
   aMeshLayout->addMultiCellWidget(line1,   1, 1, 0, 1);
   aMeshLayout->addWidget(myMeshNbNodesLab,       2, 0);
   aMeshLayout->addWidget(myMeshNbNodes,          2, 1);
-  aMeshLayout->addWidget(myMeshNbEdgesLab,       3, 0);
-  aMeshLayout->addWidget(myMeshNbEdges,          3, 1);
-  aMeshLayout->addMultiCellWidget(myMeshFacesGroup,   4, 4, 0, 1);
-  aMeshLayout->addMultiCellWidget(myMeshVolumesGroup, 5, 5, 0, 1);
-  aMeshLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding), 6, 0);
+  aMeshLayout->addWidget(myMeshOrder0Lab,        3, 1);
+  aMeshLayout->addWidget(myMeshOrder1Lab,        3, 2);
+  aMeshLayout->addWidget(myMeshOrder2Lab,        3, 3);
+  aMeshLayout->addWidget(myMeshNbEdgesLab,       4, 0);
+  aMeshLayout->addWidget(myMeshNbEdges,          4, 1);
+  aMeshLayout->addWidget(myMeshNbEdges1,         4, 2);
+  aMeshLayout->addWidget(myMeshNbEdges2,         4, 3);
+  aMeshLayout->addMultiCellWidget(myMeshFacesGroup,   5, 5, 0, 3);
+  aMeshLayout->addMultiCellWidget(myMeshVolumesGroup, 6, 6, 0, 3);
+  aMeshLayout->addItem(new QSpacerItem(6, 6, QSizePolicy::Minimum, QSizePolicy::Expanding), 7, 0);
 
   // submesh
   mySubMeshWidget = new QWidget(myWGStack);
@@ -344,12 +417,15 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
   myButtonsGroupLayout->setAlignment(Qt::AlignTop);
   myButtonsGroupLayout->setSpacing(6); myButtonsGroupLayout->setMargin(11);
 
-  // buttons --> OK button
+  // buttons --> OK and Help buttons
   myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup, "myOkBtn");
   myOkBtn->setAutoDefault(TRUE); myOkBtn->setDefault(TRUE);
-  myButtonsGroupLayout->addStretch();
+  myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP" ), myButtonsGroup, "myHelpBtn");
+  myHelpBtn->setAutoDefault(TRUE);
+
   myButtonsGroupLayout->addWidget(myOkBtn);
   myButtonsGroupLayout->addStretch();
+  myButtonsGroupLayout->addWidget(myHelpBtn);
 
   aTopLayout->addLayout(aSelectLayout);
   aTopLayout->addWidget(myWGStack);
@@ -359,6 +435,7 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
 
   // connect signals
   connect(myOkBtn,                 SIGNAL(clicked()),                      this, SLOT(close()));
+  connect( myHelpBtn,              SIGNAL(clicked()),                      this, SLOT(onHelp()));
   connect(mySelectBtn,             SIGNAL(clicked()),                      this, SLOT(onStartSelection()));
   connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()),        this, SLOT(close()));
   connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
@@ -368,6 +445,8 @@ SMESHGUI_MeshInfosDlg::SMESHGUI_MeshInfosDlg (SMESHGUI* theModule,
 
   // init dialog with current selection
   onSelectionChanged();
+
+  myHelpFileName = "/files/viewing_mesh_info.htm#advanced_infos";
 }
 
 //=================================================================================
@@ -406,15 +485,33 @@ void SMESHGUI_MeshInfosDlg::DumpMeshInfos()
          myMeshName->setText(aSO->GetName().c_str());
          myMeshNbNodes->setNum((int)aMesh->NbNodes());
          myMeshNbEdges->setNum((int)aMesh->NbEdges());
+         myMeshNbEdges1->setNum((int)aMesh->NbEdgesOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbEdges2->setNum((int)aMesh->NbEdgesOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbFaces->setNum((int)aMesh->NbFaces());
+         myMeshNbFaces1->setNum((int)aMesh->NbFacesOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbFaces2->setNum((int)aMesh->NbFacesOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbTriangles->setNum((int)aMesh->NbTriangles());
+         myMeshNbTriangles1->setNum((int)aMesh->NbTrianglesOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbTriangles2->setNum((int)aMesh->NbTrianglesOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbQuadrangles->setNum((int)aMesh->NbQuadrangles());
+         myMeshNbQuadrangles1->setNum((int)aMesh->NbQuadranglesOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbQuadrangles2->setNum((int)aMesh->NbQuadranglesOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbPolygones->setNum( (int)aMesh->NbPolygons() );
          myMeshNbVolumes->setNum((int)aMesh->NbVolumes());
+         myMeshNbVolumes1->setNum((int)aMesh->NbVolumesOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbVolumes2->setNum((int)aMesh->NbVolumesOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbTetra->setNum((int)aMesh->NbTetras());
+         myMeshNbTetra1->setNum((int)aMesh->NbTetrasOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbTetra2->setNum((int)aMesh->NbTetrasOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbHexa->setNum((int)aMesh->NbHexas());
+         myMeshNbHexa1->setNum((int)aMesh->NbHexasOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbHexa2->setNum((int)aMesh->NbHexasOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbPrism->setNum((int)aMesh->NbPrisms());
+         myMeshNbPrism1->setNum((int)aMesh->NbPrismsOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbPrism2->setNum((int)aMesh->NbPrismsOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbPyra->setNum((int)aMesh->NbPyramids());
+         myMeshNbPyra1->setNum((int)aMesh->NbPyramidsOfOrder(SMESH::ORDER_LINEAR));
+         myMeshNbPyra2->setNum((int)aMesh->NbPyramidsOfOrder(SMESH::ORDER_QUADRATIC));
          myMeshNbPolyhedrones->setNum( (int)aMesh->NbPolyhedrons() );
          return;
        }
@@ -524,3 +621,20 @@ void SMESHGUI_MeshInfosDlg::onStartSelection()
   myStartSelection = true;
   mySelectLab->setText(tr("INF_SELECT_OBJECT"));
 }
+
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_MeshInfosDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
index 4ff11f1d9c3ea6789eff61fcd9af904c04d656b4..d06d3903324a2a1954bd16f87306973cc2346ed7 100644 (file)
@@ -61,6 +61,7 @@ private slots:
     void DeactivateActiveDialog() ;
     void ActivateThisDialog();
     void onStartSelection();
+    void onHelp();
 
 private:
     SMESHGUI*               mySMESHGUI;
@@ -77,17 +78,35 @@ private:
     QLabel*       myMeshName;
     QLabel*       myMeshNbNodes;
     QLabel*       myMeshNbEdges;
+    QLabel*       myMeshNbEdges1;
+    QLabel*       myMeshNbEdges2;
     QGroupBox*    myMeshFacesGroup;
     QLabel*       myMeshNbFaces;
+    QLabel*       myMeshNbFaces1;
+    QLabel*       myMeshNbFaces2;
     QLabel*       myMeshNbTriangles;
+    QLabel*       myMeshNbTriangles1;
+    QLabel*       myMeshNbTriangles2;
     QLabel*       myMeshNbQuadrangles;
+    QLabel*       myMeshNbQuadrangles1;
+    QLabel*       myMeshNbQuadrangles2;
     QLabel*       myMeshNbPolygones;
     QGroupBox*    myMeshVolumesGroup;
     QLabel*       myMeshNbVolumes;
+    QLabel*       myMeshNbVolumes1;
+    QLabel*       myMeshNbVolumes2;
     QLabel*       myMeshNbTetra;
+    QLabel*       myMeshNbTetra1;
+    QLabel*       myMeshNbTetra2;
     QLabel*       myMeshNbHexa;
+    QLabel*       myMeshNbHexa1;
+    QLabel*       myMeshNbHexa2;
     QLabel*       myMeshNbPyra;
+    QLabel*       myMeshNbPyra1;
+    QLabel*       myMeshNbPyra2;
     QLabel*       myMeshNbPrism;
+    QLabel*       myMeshNbPrism1;
+    QLabel*       myMeshNbPrism2;
     QLabel*       myMeshNbPolyhedrones;
 
     QWidget*      mySubMeshWidget;
@@ -104,8 +123,11 @@ private:
     QLabel*       myGroupType;
     QLabel*       myGroupNb;
 
-    QGroupBox*   myButtonsGroup;
-    QPushButton* myOkBtn;
+    QGroupBox*    myButtonsGroup;
+    QPushButton*  myOkBtn;
+    QPushButton*  myHelpBtn;
+
+    QString       myHelpFileName;
 };
 
 #endif // SMESHGUI_MESHINFOSDLG_H
index 1bf664dfd35217daae8274445f434ecd47a45a9b..896e7f80100ede653edb832fac55b96ccc81370a 100644 (file)
@@ -96,7 +96,7 @@ SMESHGUI_MeshOp::SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh )
   myToCreate( theToCreate ),
   myIsMesh( theIsMesh ),
   myDlg( 0 ),
-  myShapeByMeshDlg( 0 )
+  myShapeByMeshOp( 0 )
 {
   if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
     GeometryGUI::InitGeomGen();
@@ -141,6 +141,7 @@ bool SMESHGUI_MeshOp::onApply()
   QString aMess;
   if ( !isValid( aMess ) )
   {
+    dlg()->show();
     if ( aMess != "" )
       SUIT_MessageBox::warn1( myDlg,
         tr( "SMESH_WRN_WARNING" ), aMess, tr( "SMESH_BUT_OK" ) );
@@ -202,31 +203,39 @@ void SMESHGUI_MeshOp::startOperation()
     for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
     {
       connect( myDlg->tab( i ), SIGNAL( createHyp( const int, const int ) ),
-              this, SLOT( onCreateHyp( const int, const int) ) );
+              this, SLOT( onCreateHyp( const int, const int ) ) );
       connect( myDlg->tab( i ), SIGNAL( editHyp( const int, const int ) ),
-              this, SLOT( onEditHyp( const int, const int) ) );
+              this, SLOT( onEditHyp( const int, const int ) ) );
+      connect( myDlg->tab( i ), SIGNAL( selectAlgo( const int ) ),
+              this, SLOT( onAlgoSelected( const int ) ) );
     }
     connect( myDlg, SIGNAL( hypoSet( const QString& )), SLOT( onHypoSet( const QString& )));
     connect( myDlg, SIGNAL( geomSelectionByMesh( bool )), SLOT( onGeomSelectionByMesh( bool )));
+
+    if ( myToCreate ) 
+      if ( myIsMesh ) myHelpFileName = "/files/constructing_meshes.htm";
+      else myHelpFileName = "/files/constructing_submeshes.htm";
+    else myHelpFileName = "files/reassigning_hypotheses_and_algorithms.htm";
   }
   SMESHGUI_SelectionOp::startOperation();
 
-  // iterate through dimensions and get available and existing algoritms and hypotheses,
+  // iterate through dimensions and get available algoritms,
   // set them to the dialog
-  int i, j;
   _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-  for ( i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
+  for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
   {
     SMESHGUI_MeshTab* aTab = myDlg->tab( i );
-    QStringList anAvailable, anExisting;
-    for ( j = Algo; j <= AddHyp; j++ )
-    {
-      availableHyps( i, j, anAvailable );
-      existingHyps( i, j, aFather, anExisting, myExistingHyps[ i ][ j ] );
-
-      aTab->setAvailableHyps( j, anAvailable );
-      aTab->setExistingHyps( j, anExisting );
-    }
+    QStringList hypList;
+    // clear available hypotheses
+    aTab->setAvailableHyps( MainHyp, hypList );
+    aTab->setAvailableHyps( AddHyp, hypList );
+    aTab->setExistingHyps( MainHyp, hypList );
+    aTab->setExistingHyps( AddHyp, hypList );
+    myExistingHyps[ i ][ MainHyp ].clear();
+    myExistingHyps[ i ][ AddHyp ].clear();
+    // set algos
+    availableHyps( i, Algo, hypList, myAvailableHypData[i][Algo] );
+    aTab->setAvailableHyps( Algo, hypList );
   }
   if ( myToCreate )
   {
@@ -238,10 +247,12 @@ void SMESHGUI_MeshOp::startOperation()
 
   myDlg->setHypoSets( SMESH::GetHypothesesSets() );
 
+  myDlg->setCurrentTab( SMESH::DIM_3D );
+  myDlg->show();
+
   selectionDone();
 
-  myDlg->setCurrentTab( SMESH::DIM_1D );
-  myDlg->show();
+  myIgnoreAlgoSelection = false;
 }
 
 //================================================================================
@@ -348,6 +359,7 @@ _PTR(SObject) SMESHGUI_MeshOp::getSubmeshByGeom() const
       case GEOM::COMPOUND: tag = SUBMESH_ON_COMPOUND_TAG; break;
       default:;
       }
+      _PTR(GenericAttribute) anAttr;
       _PTR(SObject) aSubmeshRoot;
       _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
       if ( pMesh->FindSubObject( tag, aSubmeshRoot ) )
@@ -356,6 +368,8 @@ _PTR(SObject) SMESHGUI_MeshOp::getSubmeshByGeom() const
         for (; smIter->More(); smIter->Next() )
         {
           _PTR(SObject) aSmObj = smIter->Value();
+          if ( ! aSmObj->FindAttribute( anAttr, "AttributeIOR" ))
+            continue;
           _PTR(ChildIterator) anIter1 = aStudy->NewChildIterator(aSmObj);
           for (; anIter1->More(); anIter1->Next()) {
             _PTR(SObject) pGeom2 = anIter1->Value();
@@ -379,7 +393,7 @@ _PTR(SObject) SMESHGUI_MeshOp::getSubmeshByGeom() const
 //================================================================================
 void SMESHGUI_MeshOp::selectionDone()
 {
-  if ( myShapeByMeshDlg && myShapeByMeshDlg->isShown() )
+  if ( !dlg()->isShown() )
     return;
 
   SMESHGUI_SelectionOp::selectionDone();
@@ -427,6 +441,7 @@ void SMESHGUI_MeshOp::selectionDone()
     }
     myDlg->setMaxHypoDim( shapeDim );
 
+
     if ( !myToCreate ) // edition: read hypotheses
     {
       QString anObjEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Obj );
@@ -465,8 +480,9 @@ void SMESHGUI_MeshOp::selectionDone()
         }
         else
         {
-          selectObject( _PTR(SObject)() );
           myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
+          selectObject( _PTR(SObject)() );
+          selectionDone();
         }
       }
 
@@ -477,7 +493,7 @@ void SMESHGUI_MeshOp::selectionDone()
         SMESH::SMESH_Mesh_var mesh = SMESH::SObjectToInterface<SMESH::SMESH_Mesh>( pMesh );
         if ( !mesh->_is_nil() )
           enable = ( shapeDim > 1 ) && ( mesh->NbEdges() > 0 );
-      }            
+      }
       myDlg->setGeomPopupEnabled( enable );
     }
   }
@@ -574,6 +590,31 @@ bool SMESHGUI_MeshOp::isValid( QString& theMess ) const
   return true;
 }
 
+//================================================================================
+/*!
+ * \brief check compatibility of the algorithm and another algorithm or hypothesis
+  * \param theAlgoData - algorithm data
+  * \param theHypData - hypothesis data
+  * \param theHypType - hypothesis type
+  * \param theHypTypeName - hypothesis type name, must be provided if 2-nd arg is not algo
+  * \retval bool - check result
+ */
+//================================================================================
+
+static bool isCompatible(const HypothesisData* theAlgoData,
+                         const HypothesisData* theHypData,
+                         const int             theHypType)
+{
+  if ( !theAlgoData )
+    return true;
+
+  if ( theHypType == SMESHGUI_MeshOp::Algo )
+    return SMESH::IsCompatibleAlgorithm( theAlgoData, theHypData );
+
+  bool isOptional;
+  return ( SMESH::IsAvailableHypothesis( theAlgoData, theHypData->TypeName, isOptional ));
+}
+
 //================================================================================
 /*!
  * \brief Gets available hypotheses or algorithms
@@ -581,22 +622,31 @@ bool SMESHGUI_MeshOp::isValid( QString& theMess ) const
   * \param theHypType - specifies whether algorims or hypotheses or additional ones
   * are retrieved (possible values are in HypType enumeration)
   * \param theHyps - Output list of hypotheses' names
+  * \param theAlgoData - to select hypos able to be used by this algo (optional)
  *
  * Gets available hypotheses or algorithm in accordance with input parameters
  */
 //================================================================================
-void SMESHGUI_MeshOp::availableHyps( const int theDim,
-                                     const int theHypType,
-                                     QStringList& theHyps ) const
+void SMESHGUI_MeshOp::availableHyps( const int       theDim,
+                                     const int       theHypType,
+                                     QStringList&    theHyps,
+                                     THypDataList&   theDataList,
+                                     HypothesisData* theAlgoData ) const
 {
+  theDataList.clear();
   theHyps.clear();
-  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses(
-    theHypType == Algo , theDim, theHypType == AddHyp );
+  bool isAlgo = ( theHypType == Algo );
+  bool isAux  = ( theHypType == AddHyp );
+  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux );
+
   QStringList::const_iterator anIter;
   for ( anIter = aHypTypeNameList.begin(); anIter != aHypTypeNameList.end(); ++anIter )
   {
     HypothesisData* aData = SMESH::GetHypothesisData( *anIter );
-    theHyps.append( aData->Label );
+    if ( isCompatible ( theAlgoData, aData, theHypType )) {
+      theDataList.append( aData );
+      theHyps.append( aData->Label );
+    }
   }
 }
 
@@ -607,8 +657,10 @@ void SMESHGUI_MeshOp::availableHyps( const int theDim,
   * \param theHypType - specifies whether algorims or hypotheses or additional ones
   * are retrieved (possible values are in HypType enumeration)
   * \param theFather - start object for finding ( may be component, mesh, or sub-mesh )
+  * \param theDataList - output list of hypotheses data
   * \param theHyps - output list of names.
   * \param theHypVars - output list of variables.
+  * \param theAlgoData - to select hypos able to be used by this algo (optional)
  *
  * Gets existing (i.e. already created) hypotheses or algorithm in accordance with
  * input parameters
@@ -618,7 +670,8 @@ void SMESHGUI_MeshOp::existingHyps( const int theDim,
                                     const int theHypType,
                                     _PTR(SObject) theFather,
                                     QStringList& theHyps,
-                                    QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars )
+                                    QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars,
+                                    HypothesisData* theAlgoData)
 {
   // Clear hypoheses list
   theHyps.clear();
@@ -627,6 +680,8 @@ void SMESHGUI_MeshOp::existingHyps( const int theDim,
   if ( !theFather )
     return;
 
+  const bool isAux  = ( theHypType == AddHyp );
+
   _PTR(SObject)          aHypRoot;
   _PTR(GenericAttribute) anAttr;
   _PTR(AttributeName)    aName;
@@ -666,8 +721,10 @@ void SMESHGUI_MeshOp::existingHyps( const int theDim,
             QString aHypType( aHypVar->GetName() );
             HypothesisData* aData = SMESH::GetHypothesisData( aHypType );
             if ( ( theDim == -1 || aData->Dim.contains( theDim ) ) &&
-                 ( theHypType == AddHyp ) == aData->IsAux )
+                 ( isCompatible ( theAlgoData, aData, theHypType )) &&
+                 ( isAux == aData->IsAux ))
             {
+              //theDataList.append( aData );
               theHyps.append( aName->Value().c_str() );
               theHypVars.append( aHypVar );
             }
@@ -740,78 +797,96 @@ SMESHGUI_MeshOp::getInitParamsHypothesis( const QString& aHypType,
 
 //================================================================================
 /*!
- * \brief Calls plugin methods for hypothesis creation
-  * \param theHypType - specifies whether main hypotheses or additional ones
-  * are created
+ * \Brief Returns tab dimention  
+  * \param tab - the tab in the dlg
+  * \param dlg - my dialogue
+  * \retval int - dimention
+ */
+//================================================================================
+
+static int getTabDim (const QObject* tab, SMESHGUI_MeshDlg* dlg )
+{
+  int aDim = -1;
+  for (int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++)
+    if (tab == dlg->tab(i))
+      aDim = i;
+  return aDim;
+}
+
+//================================================================================
+/*!
+ * \brief Create hypothesis
+  * \param theHypType - hypothesis category (main or additional)
   * \param theIndex - index of type of hypothesis to be cerated
  *
- * Speicfies dimension of hypothesis to be created (using sender() method), specifies
- * its type and calls plugin methods for hypothesis creation
+ * Specifies dimension of hypothesis to be created (using sender() method),
+ * specifies its type and calls method for hypothesis creation
  */
 //================================================================================
 void SMESHGUI_MeshOp::onCreateHyp( const int theHypType, const int theIndex )
 {
-  // Speicfies dimension of hypothesis to be created
-  const QObject* aSender = sender();
-  int aDim = -1;
-  for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
-    if ( aSender == myDlg->tab( i ) )
-      aDim = i;
-  if ( aDim == -1 )
+  // Specifies dimension of hypothesis to be created
+  int aDim = getTabDim( sender(), myDlg );
+  if (aDim == -1)
     return;
 
-  // Speicfies type of hypothesis to be created
-  QStringList aHypTypeNames = SMESH::GetAvailableHypotheses( false , aDim, theHypType == AddHyp );
-  if ( theIndex < 0 || theIndex >= aHypTypeNames.count() )
+  // Specifies type of hypothesis to be created
+  THypDataList& dataList = myAvailableHypData[ aDim ][ theHypType ];
+  if (theIndex < 0 || theIndex >= dataList.count())
     return;
+  QString aHypTypeName = dataList[ theIndex ]->TypeName;
 
-  QString aHypTypeName = aHypTypeNames[ theIndex ];
-  HypothesisData* aData = SMESH::GetHypothesisData( aHypTypeName.latin1() );
-  if ( aData == 0 )
+  // Create hypothesis
+  createHypothesis(aDim, theHypType, aHypTypeName);
+}
+
+//================================================================================
+/*!
+ *  Create hypothesis and update dialog.
+ *  \param theDim - dimension of hypothesis to be created
+ *  \param theType - hypothesis category (algorithm, hypothesis, additional hypothesis)
+ *  \param theTypeName - specifies hypothesis to be created
+ */
+//================================================================================
+void SMESHGUI_MeshOp::createHypothesis (const int theDim,
+                                        const int theType,
+                                        const QString& theTypeName)
+{
+  HypothesisData* aData = SMESH::GetHypothesisData(theTypeName.latin1());
+  if (!aData)
     return;
 
-  QString aClientLibName = aData->ClientLibName;
-  QStringList anOldHyps;
-  _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-  existingHyps( aDim, theHypType, aFather, anOldHyps, myExistingHyps[ aDim ][ theHypType ] );
+  // existing hypos
+  int nbHyp = myExistingHyps[theDim][theType].count();
 
-  if ( aClientLibName == "" )
-  {
+  QString aClientLibName = aData->ClientLibName;
+  if (aClientLibName == "") {
     // Call hypothesis creation server method (without GUI)
-    QString aHypName = aData->Label;
-    SMESH::CreateHypothesis( aHypTypeName, aHypName, false );
-  }
-  else
-  {
+    SMESH::CreateHypothesis(theTypeName, aData->Label, false);
+  } else {
     // Get hypotheses creator client (GUI)
-    SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator( aHypTypeName );
+    SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(theTypeName);
 
     // Create hypothesis
-    if ( aCreator )
-    {
+    if (aCreator) {
       // When create or edit a submesh, try to initialize a new hypothesis
       // with values used to mesh a subshape
       SMESH::SMESH_Hypothesis_var initParamHyp =
-        getInitParamsHypothesis( aHypTypeName, aData->ServerLibName );
-
-      if ( initParamHyp->_is_nil() )
-        aCreator->create( false, myDlg );
-      else
-        aCreator->create( initParamHyp, myDlg );
-    }
-    else
-    {
-      SMESH::CreateHypothesis( aHypTypeName, aData->Label, false );
+        getInitParamsHypothesis(theTypeName, aData->ServerLibName);
+      aCreator->create(initParamHyp, myDlg);
+    } else {
+      SMESH::CreateHypothesis(theTypeName, aData->Label, false);
     }
   }
 
+  _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
+
+  HypothesisData* algoData = hypData( theDim, Algo, currentHyp( theDim, Algo ));
   QStringList aNewHyps;
-  aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-  existingHyps( aDim, theHypType, aFather, aNewHyps, myExistingHyps[ aDim ][ theHypType ] );
-  if ( aNewHyps.count() > anOldHyps.count() )
-  {
-    for ( int i = anOldHyps.count(); i < aNewHyps.count(); i++ )
-      myDlg->tab( aDim )->addHyp( theHypType, aNewHyps[ i ] );
+  existingHyps(theDim, theType, aFather, aNewHyps, myExistingHyps[theDim][theType], algoData);
+  if (aNewHyps.count() > nbHyp) {
+    for (int i = nbHyp; i < aNewHyps.count(); i++)
+      myDlg->tab(theDim)->addHyp(theType, aNewHyps[i]);
   }
 }
 
@@ -828,16 +903,14 @@ void SMESHGUI_MeshOp::onCreateHyp( const int theHypType, const int theIndex )
 void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
 {
   // Speicfies dimension of hypothesis to be created
-  const QObject* aSender = sender();
-  int aDim = -1;
-  for ( int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++ )
-    if ( aSender == myDlg->tab( i ) )
-      aDim = i;
-  if ( aDim == -1 )
+  int aDim = getTabDim( sender(), myDlg );
+  if (aDim == -1)
     return;
 
   QValueList<SMESH::SMESH_Hypothesis_var> aList = myExistingHyps[ aDim ][ theHypType ];
-  SMESH::SMESH_Hypothesis_var aHyp = aList[ theIndex - 1 ];
+  if ( theIndex < 0 || theIndex >= aList.count() )
+    return;
+  SMESH::SMESH_Hypothesis_var aHyp = aList[ theIndex ];
   if ( aHyp->_is_nil() )
     return;
 
@@ -849,96 +922,238 @@ void SMESHGUI_MeshOp::onEditHyp( const int theHypType, const int theIndex )
 
 //================================================================================
 /*!
- * \brief Creates and selects hypothesis of hypotheses set 
-  * \param theSetName - The name of hypotheses set
+ * \brief access to hypothesis data 
+  * \param theDim - hyp dimension
+  * \param theHypType - hyp type (Algo,MainHyp or AddHyp)
+  * \param theIndex - index in the list
+  * \retval HypothesisData* - result data, may be 0
  */
 //================================================================================
 
-void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
+HypothesisData* SMESHGUI_MeshOp::hypData( const int theDim,
+                                          const int theHypType,
+                                          const int theIndex)
 {
-  HypothesesSet* aHypoSet = SMESH::GetHypothesesSet( theSetName );
-  if ( !aHypoSet ) return;
+  if ( theDim     > -1 && theDim     < 3 &&
+       theHypType > -1 && theHypType < NbHypTypes &&
+       theIndex   > -1 && theIndex   < myAvailableHypData[ theDim ][ theHypType ].count() )
+    return myAvailableHypData[ theDim ][ theHypType ][ theIndex ];
+  return 0;
+}
+
+//================================================================================
+/*!
+ * \brief Set available algos and hypos according to the selected algorithm
+  * \param theIndex - algorithm index
+ */
+//================================================================================
+
+void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
+                                      const int theDim )
+{
+  if ( myIgnoreAlgoSelection )
+    return;
 
-  for ( int aHypType = Algo; aHypType < AddHyp; aHypType++ )
+  int aDim = theDim < 0 ? getTabDim( sender(), myDlg ): theDim;
+  if (aDim == -1)
+    return;
+
+  // find highest available dimension, all algos of this dimension are available for choice
+  int aTopDim = -1;
+  for (int i = SMESH::DIM_1D; i <= SMESH::DIM_3D; i++)
+    if (isAccessibleDim( i ))
+      aTopDim = i;
+  if (aTopDim == -1)
+    return;
+
+  const bool isSubmesh = ( myToCreate ? !myIsMesh : myDlg->isObjectShown( SMESHGUI_MeshDlg::Mesh ));
+
+  HypothesisData* algoData = hypData( aDim, Algo, theIndex );
+  HypothesisData* algoByDim[3];
+  algoByDim[ aDim ] = algoData;
+
+  QStringList anAvailable;
+  if ( !algoData ) { // all algos becomes available
+    availableHyps( aDim, Algo, anAvailable, myAvailableHypData[ aDim ][ Algo ]);
+    myDlg->tab( aDim )->setAvailableHyps( Algo, anAvailable );
+  }
+
+  // check that algorithms of other dimentions are compatible with
+  // the selected one
+
+   // 2 loops: backward and forward from algo dimension
+  for ( int forward = false; forward <= true; ++forward )
   {
-    bool isAlgo = (aHypType == Algo);
+    int dim = aDim + 1, lastDim = SMESH::DIM_3D, dir = 1;
+    if ( !forward ) {
+      dim = aDim - 1; lastDim = SMESH::DIM_1D; dir = -1;
+    }
+    HypothesisData* prevAlgo = algoData;
+    bool noCompatible = false;
+    for ( ; dim * dir <= lastDim * dir ; dim += dir )
+    {
+      if ( !isAccessibleDim( dim ))
+        continue;
+      if ( noCompatible ) { // the selected algo has no compatible ones
+        anAvailable.clear();
+        myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
+        myAvailableHypData[dim][Algo].clear();
+        algoByDim[ dim ] = 0;
+        continue;
+      }
+      // get currently selected algo
+      int algoIndex = currentHyp( dim, Algo );
+      HypothesisData* curAlgo = hypData( dim, Algo, algoIndex );
+      if ( curAlgo ) { // some algo selected
+        if ( !isCompatible( prevAlgo, curAlgo, Algo ))
+          curAlgo = 0;
+      }
+      // set new available algoritms
+      availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], prevAlgo );
+      HypothesisData* soleCompatible = 0;
+      if ( anAvailable.count() == 1 )
+        soleCompatible = myAvailableHypData[dim][Algo][0];
+      if ( dim == aTopDim && prevAlgo ) // all available algoritms should be selectable any way
+        availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], 0 );
+      myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
+      noCompatible = anAvailable.isEmpty();
+
+      // restore previously selected algo
+      algoIndex = myAvailableHypData[dim][Algo].findIndex( curAlgo );
+      if ( !isSubmesh && algoIndex < 0 && soleCompatible )
+        // select the sole compatible algo
+        algoIndex = myAvailableHypData[dim][Algo].findIndex( soleCompatible );
+      setCurrentHyp( dim, Algo, algoIndex );
+
+      // remember current algo
+      prevAlgo = algoByDim[ dim ] = hypData( dim, Algo, algoIndex );
+    }
+  }
 
-    // clear all hyps
-    for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
-      setCurrentHyp( dim, aHypType, -1 );
+  // set hypotheses corresponding to the found algoritms
 
-    // set hyps from the set
-    
-    QStringList* aHypoList = isAlgo ? & aHypoSet->AlgoList : & aHypoSet->HypoList;
-    for ( int i = 0, n = aHypoList->count(); i < n; i++ )
+  _PTR(SObject) pObj = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
+
+  for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
+  {
+    if ( !isAccessibleDim( dim ))
+      continue;
+    for ( int type = MainHyp; type < NbHypTypes; type++ )
     {
+      myAvailableHypData[ dim ][ type ].clear();
+      QStringList anAvailable, anExisting;
+
+      HypothesisData* curAlgo = algoByDim[ dim ];
+      int hypIndex = currentHyp( dim, type );
+
+      SMESH::SMESH_Hypothesis_var curHyp;
+      if ( hypIndex >= 0 && hypIndex < myExistingHyps[ dim ][ type ].count() )
+        curHyp = myExistingHyps[ dim ][ type ][ hypIndex ];
+
+      if ( !myToCreate && !curAlgo && !curHyp->_is_nil() ) { // edition, algo not selected
+        // try to find algo by selected hypothesis in order to keep it selected
+        bool algoDeselectedByUser = ( theDim < 0 && aDim == dim );
+        QString curHypType = curHyp->GetName();
+        if ( !algoDeselectedByUser &&
+             myObjHyps[ dim ][ type ].count() > 0 &&
+             curHypType == myObjHyps[ dim ][ type ][ 0 ]->GetName())
+        {
+          HypothesisData* hypData = SMESH::GetHypothesisData( curHyp->GetName() );
+          for ( int i = 0 ; i < myAvailableHypData[ dim ][ Algo ].count(); ++i ) {
+            curAlgo = myAvailableHypData[ dim ][ Algo ][ i ];
+            if ( curAlgo && hypData && isCompatible( curAlgo, hypData, type ))
+              break;
+            else
+              curAlgo = 0;
+          }
+        }
+      }
+      // get hyps compatible with curAlgo
+      if ( curAlgo )
+      {
+        // check if a selected hyp is compatible with the curAlgo
+        if ( !curHyp->_is_nil() ) {
+          HypothesisData* hypData = SMESH::GetHypothesisData( curHyp->GetName() );
+          if ( !isCompatible( curAlgo, hypData, type ))
+            curHyp = SMESH::SMESH_Hypothesis::_nil();
+        }
+        existingHyps( dim, type, pObj, anExisting, myExistingHyps[ dim ][ type ], curAlgo);
+        availableHyps( dim, type, anAvailable, myAvailableHypData[ dim ][ type ], curAlgo);
+      }
+      // set list of hypotheses
+      myDlg->tab( dim )->setAvailableHyps( type, anAvailable );
+      myDlg->tab( dim )->setExistingHyps( type, anExisting );
+
+      // set current existing hypothesis
+      if ( !curHyp->_is_nil() && !anExisting.isEmpty() )
+        hypIndex = this->find( curHyp, myExistingHyps[ dim ][ type ]);
+      else
+        hypIndex = -1;
+      if ( !isSubmesh && hypIndex < 0 && anExisting.count() == 1 ) {
+        // none is yet selected => select the sole existing if it is not optional
+        QString hypTypeName = myExistingHyps[ dim ][ type ][ 0 ]->GetName();
+        bool isOptional = true;
+        if ( algoByDim[ dim ] &&
+             SMESH::IsAvailableHypothesis( algoByDim[ dim ], hypTypeName, isOptional ) &&
+             !isOptional )
+          hypIndex = 0;
+      }
+      setCurrentHyp( dim, type, hypIndex );
+    }
+  }
+}
+
+//================================================================================
+/*!
+ * \brief Creates and selects hypothesis of hypotheses set 
+ * \param theSetName - The name of hypotheses set
+ */
+//================================================================================
+void SMESHGUI_MeshOp::onHypoSet( const QString& theSetName )
+{
+  HypothesesSet* aHypoSet = SMESH::GetHypothesesSet(theSetName);
+  if (!aHypoSet) return;
+
+  // clear all hyps
+  for (int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++) {
+    setCurrentHyp(dim, Algo, -1);
+    setCurrentHyp(dim, AddHyp, -1);
+    setCurrentHyp(dim, MainHyp, -1);
+  }
+
+  for (int aHypType = Algo; aHypType < AddHyp; aHypType++) {
+    bool isAlgo = (aHypType == Algo);
+
+    // set hyps from the set
+    QStringList* aHypoList = isAlgo ? &aHypoSet->AlgoList : &aHypoSet->HypoList;
+    for (int i = 0, n = aHypoList->count(); i < n; i++) {
       const QString& aHypoTypeName = (*aHypoList)[ i ];
-      HypothesisData* aHypData = SMESH::GetHypothesisData( aHypoTypeName );
-      if ( !aHypData )
+      HypothesisData* aHypData = SMESH::GetHypothesisData(aHypoTypeName);
+      if (!aHypData)
        continue;
 
       int aDim = aHypData->Dim[0];
       // create or/and set
-      int index = -1;
-      if ( isAlgo )
-      {
-        QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, aDim );
-        index = aHypTypeNameList.findIndex( aHypoTypeName );
-        if ( index < 0 ) continue;
-        setCurrentHyp ( aDim, aHypType, index );
-      }
-      else
-      {
-        // try to find an existing hypo
-        QValueList<SMESH::SMESH_Hypothesis_var> & aList = myExistingHyps[ aDim ][ aHypType ];
-        int /*iHyp = 0,*/ nbHyp = aList.count();
-//         for ( ; iHyp < nbHyp; ++iHyp )
-//         {
-//           SMESH::SMESH_Hypothesis_var aHyp = aList[ iHyp ];
-//           if ( !aHyp->_is_nil() && aHypoTypeName == aHyp->GetName() ) {
-//             index = iHyp;
-//             break;
-//           }
-//         }
-        if ( index >= 0 ) // found
-        {
-          // select the found hypothesis
-          setCurrentHyp ( aDim, aHypType, index );
+      if (isAlgo) {
+        int index = myAvailableHypData[aDim][Algo].findIndex( aHypData );
+        if ( index < 0 ) {
+          QStringList anAvailable;
+          availableHyps( aDim, Algo, anAvailable, myAvailableHypData[aDim][Algo] );
+          myDlg->tab( aDim )->setAvailableHyps( Algo, anAvailable );
+          index = myAvailableHypData[aDim][Algo].findIndex( aHypData );
         }
-        else
-        {
-          // create a hypothesis
-          QString aClientLibName = aHypData->ClientLibName;
-          if ( aClientLibName == "" ) {
-            // Call hypothesis creation server method (without GUI)
-            SMESH::CreateHypothesis( aHypoTypeName, aHypData->Label, isAlgo );
-          }
-          else {
-            // Get hypotheses creator client (GUI)
-            SMESHGUI_GenericHypothesisCreator* aCreator =
-              SMESH::GetHypothesisCreator( aHypoTypeName );
-            if ( aCreator )
-            {
-              // When create or edit a submesh, try to initialize a new hypothesis
-              // with values used to mesh a subshape
-              SMESH::SMESH_Hypothesis_var initParamHyp =
-                getInitParamsHypothesis( aHypoTypeName, aHypData->ServerLibName );
-              aCreator->create( initParamHyp, myDlg );
-            }
-            else
-            {
-              SMESH::CreateHypothesis( aHypoTypeName, aHypData->Label, isAlgo );
-            }
-          }
-          QStringList aNewHyps;
-          _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
-          existingHyps( aDim, aHypType, aFather, aNewHyps, aList );
-          if ( aList.count() > nbHyp )
-          {
-            for ( int i = nbHyp; i < aNewHyps.count(); i++ )
-              myDlg->tab( aDim )->addHyp( aHypType, aNewHyps[ i ] );
-          }
+        setCurrentHyp( aDim, Algo, index );
+        onAlgoSelected( index, aDim );
+      }
+      else {
+        bool mainHyp = true;
+        int index = myAvailableHypData[aDim][MainHyp].findIndex( aHypData );
+        if ( index < 0 ) {
+          mainHyp = false;
+          index = myAvailableHypData[aDim][AddHyp].findIndex( aHypData );
         }
+        if (index >= 0)
+          createHypothesis(aDim, mainHyp ? MainHyp : AddHyp, aHypoTypeName);
       }
     } // loop on hypos in the set
   } // loop on algo/hypo
@@ -1055,6 +1270,12 @@ bool SMESHGUI_MeshOp::createSubMesh( QString& theMess )
       }
     }
   }
+
+  // deselect geometry: next submesh sould be created on other subshape
+  myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
+  selectObject( _PTR(SObject)() );
+  selectionDone();
+
   return true;
 }
 
@@ -1080,7 +1301,7 @@ int SMESHGUI_MeshOp::currentHyp( const int theDim, const int theHypType ) const
   * \retval bool - result
  */
 //================================================================================
-bool SMESHGUI_MeshOp::isAccessibleDim( const int theDim) const
+bool SMESHGUI_MeshOp::isAccessibleDim( const int theDim ) const
 {
   return myDlg->tab( theDim )->isEnabled();
 }
@@ -1099,7 +1320,9 @@ void SMESHGUI_MeshOp::setCurrentHyp( const int theDim,
                                      const int theHypType,
                                      const int theIndex )
 {
+  myIgnoreAlgoSelection = true;
   myDlg->tab( theDim )->setCurrentHyp( theHypType, theIndex + 1 );
+  myIgnoreAlgoSelection = false;
 }
 
 //================================================================================
@@ -1141,11 +1364,20 @@ void SMESHGUI_MeshOp::setDefaultName() const
 SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
 {
   SMESH::SMESH_Hypothesis_var anAlgoVar;
+
+  // get type of the selected algo
   int aHypIndex = currentHyp( theDim, Algo );
-  QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( true, theDim, false );
-  if ( aHypIndex < 0 || aHypIndex >= aHypTypeNameList.count() )
+  THypDataList& dataList = myAvailableHypData[ theDim ][ Algo ];
+  if ( aHypIndex < 0 || aHypIndex >= dataList.count())
     return anAlgoVar;
-  QString aHypName = aHypTypeNameList[ aHypIndex ];
+  QString aHypName = dataList[ aHypIndex ]->TypeName;
+
+  // get existing algoritms
+  _PTR(SObject) pObj = SMESH::GetActiveStudyDocument()->FindComponent("SMESH");
+  QStringList tmp;
+  existingHyps( theDim, Algo, pObj, tmp, myExistingHyps[ theDim ][ Algo ]);
+
+  // look for anexisting algo of such a type
   QValueList<SMESH::SMESH_Hypothesis_var>& aHypVarList = myExistingHyps[ theDim ][ Algo ];
   QValueList<SMESH::SMESH_Hypothesis_var>::iterator anIter;
   for ( anIter = aHypVarList.begin(); anIter != aHypVarList.end(); anIter++ )
@@ -1157,20 +1389,23 @@ SMESH::SMESH_Hypothesis_var SMESHGUI_MeshOp::getAlgo( const int theDim )
       break;
     }
   }
-  if ( anAlgoVar->_is_nil() )
-  {
+
+  if (anAlgoVar->_is_nil()) {
     HypothesisData* aHypData = SMESH::GetHypothesisData( aHypName );
-    if ( aHypData )
-    {
+    if (aHypData) {
       QString aClientLibName = aHypData->ClientLibName;
-      if ( aClientLibName == "" )
-        SMESH::CreateHypothesis( aHypName, aHypData->Label, true );
-      else
-      {
-        SMESHGUI_GenericHypothesisCreator* aCreator =
-          SMESH::GetHypothesisCreator( aHypName );
-        if ( aCreator )
-          aCreator->create( true, myDlg );
+      if (aClientLibName == "") {
+        // Call hypothesis creation server method (without GUI)
+        SMESH::CreateHypothesis(aHypName, aHypData->Label, true);
+      } else {
+        // Get hypotheses creator client (GUI)
+        SMESHGUI_GenericHypothesisCreator* aCreator = SMESH::GetHypothesisCreator(aHypName);
+
+        // Create algorithm
+        if (aCreator)
+          aCreator->create(true, myDlg);
+        else
+          SMESH::CreateHypothesis(aHypName, aHypData->Label, true);
       }
       QStringList tmpList;
       _PTR(SComponent) aFather = SMESH::GetActiveStudyDocument()->FindComponent( "SMESH" );
@@ -1231,41 +1466,60 @@ void SMESHGUI_MeshOp::readMesh()
   }
 
   // Get hypotheses and algorithms assigned to the mesh/sub-mesh
+  QStringList anExisting;
   for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
   {
     // get algorithm
-    QStringList anExisting;
-    int aHypIndex = -1;
     existingHyps( dim, Algo, pObj, anExisting, myObjHyps[ dim ][ Algo ] );
+    // find algo index among available ones
+    int aHypIndex = -1;
     if ( myObjHyps[ dim ][ Algo ].count() > 0 )
     {
       SMESH::SMESH_Hypothesis_var aVar = myObjHyps[ dim ][ Algo ].first();
       QString aHypTypeName = aVar->GetName();
-
-      QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( true , dim, false );
-      for ( int i = 0, n = aHypTypeNameList.count(); i < n; i++ )
-        if ( aHypTypeName == aHypTypeNameList[ i ] )
-        {
-          aHypIndex = i;
-          break;
-        }
+      HypothesisData* algoData = SMESH::GetHypothesisData( aHypTypeName );
+      aHypIndex = myAvailableHypData[ dim ][ Algo ].findIndex ( algoData );
+//       if ( aHypIndex < 0 && algoData ) {
+//         // assigned algo is incompatible with other algorithms
+//         myAvailableHypData[ dim ][ Algo ].push_back( algoData );
+//         aHypIndex = myAvailableHypData[ dim ][ hypType ].count() - 1;
+//       }
     }
     setCurrentHyp( dim, Algo, aHypIndex );
+    // set existing and available hypothesis according to the selected algo
+    onAlgoSelected( aHypIndex, dim );
+  }
 
-    // get hypotheses
+  // get hypotheses
+  bool hypWithoutAlgo = false;
+  for ( int dim = SMESH::DIM_1D; dim <= SMESH::DIM_3D; dim++ )
+  {
     for ( int hypType = MainHyp; hypType <= AddHyp; hypType++ )
     {
       // get hypotheses
       existingHyps( dim, hypType, pObj, anExisting, myObjHyps[ dim ][ hypType ] );
-      // find index of requered hypothesis among existing ones for this dimension
-      // and hyp types
+      // find index of requered hypothesis among existing ones for this dimension and type
       int aHypIndex = -1;
-      if ( myObjHyps[ dim ][ hypType ].count() > 0 )
+      if ( myObjHyps[ dim ][ hypType ].count() > 0 ) {
         aHypIndex = find( myObjHyps[ dim ][ hypType ].first(),
                           myExistingHyps[ dim ][ hypType ] );
+        if ( aHypIndex < 0 ) {
+          // assigned hypothesis is incompatible with the algorithm
+          if ( currentHyp( dim, Algo ) < 0 )
+          { // none algo selected; it is edition for sure, of submesh maybe
+            hypWithoutAlgo = true;
+            myExistingHyps[ dim ][ hypType ].push_back( myObjHyps[ dim ][ hypType ].first() );
+            aHypIndex = myExistingHyps[ dim ][ hypType ].count() - 1;
+            myDlg->tab( dim )->setExistingHyps( hypType, anExisting );
+          }
+        }
+      }
       setCurrentHyp( dim, hypType, aHypIndex );
     }
   }
+  // make available other hyps of same type as one without algo
+  if ( hypWithoutAlgo )
+    onAlgoSelected( currentHyp( 0, Algo ), 0 );
 }
 
 //================================================================================
@@ -1375,9 +1629,10 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
       }
     }
     // remove old algorithm
-    if ( toDelete )
-      SMESH::RemoveHypothesisOrAlgorithmOnMesh
-        ( pObj, myObjHyps[ dim ][ Algo ].first() );
+    if ( toDelete ) {
+      SMESH::RemoveHypothesisOrAlgorithmOnMesh ( pObj, myObjHyps[ dim ][ Algo ].first() );
+      myObjHyps[ dim ][ Algo ].clear();
+    }
 
     // assign new algorithm
     if ( toAdd ) {
@@ -1392,6 +1647,7 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
         if ( !aVar->_is_nil() )
           SMESH::AddHypothesisOnSubMesh( aVar, anAlgoVar );
       }
+      myObjHyps[ dim ][ Algo ].append( anAlgoVar );
     }
 
     // assign hypotheses
@@ -1405,9 +1661,11 @@ bool SMESHGUI_MeshOp::editMeshOrSubMesh( QString& theMess )
       if ( aNewHypIndex != anOldHypIndex )
       {
         // remove old hypotheses
-        if ( anOldHypIndex >= 0 )
+        if ( anOldHypIndex >= 0 ) {
           SMESH::RemoveHypothesisOrAlgorithmOnMesh(
             pObj, myExistingHyps[ dim ][ hypType ][ anOldHypIndex ] );
+          myObjHyps[ dim ][ hypType ].clear();
+        }
 
         // assign new hypotheses
         if ( aNewHypIndex != -1 )
@@ -1466,22 +1724,24 @@ bool SMESHGUI_MeshOp::isValid( SUIT_Operation* theOp ) const
 void SMESHGUI_MeshOp::onGeomSelectionByMesh( bool theByMesh )
 {
   if ( theByMesh ) {
-    if ( !myShapeByMeshDlg ) {
-      myShapeByMeshDlg = new SMESHGUI_ShapeByMeshDlg( SMESHGUI::GetSMESHGUI(), "ShapeByMeshDlg");
-      connect(myShapeByMeshDlg, SIGNAL(PublishShape()), SLOT(onPublishShapeByMeshDlg()));
-      connect(myShapeByMeshDlg, SIGNAL(Close()), SLOT(onCloseShapeByMeshDlg()));
+    if ( !myShapeByMeshOp ) {
+      myShapeByMeshOp = new SMESHGUI_ShapeByMeshOp();
+      connect(myShapeByMeshOp, SIGNAL(committed(SUIT_Operation*)),
+              SLOT(onPublishShapeByMeshDlg(SUIT_Operation*)));
+      connect(myShapeByMeshOp, SIGNAL(aborted(SUIT_Operation*)),
+              SLOT(onCloseShapeByMeshDlg(SUIT_Operation*)));
     }
-    // set mesh object to dlg
+    // set mesh object to SMESHGUI_ShapeByMeshOp and start it
     QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
     if ( _PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry.latin1() )) {
       SMESH::SMESH_Mesh_var aMeshVar =
         SMESH::SMESH_Mesh::_narrow( _CAST( SObject,pMesh )->GetObject() );
       if ( !aMeshVar->_is_nil() ) {
-        myDlg->hide();
-        myDlg->activateObject( SMESHGUI_MeshDlg::Mesh );
-        myShapeByMeshDlg->Init();
-        myShapeByMeshDlg->SetMesh( aMeshVar );
-        myShapeByMeshDlg->show();
+        myDlg->hide(); // stop processing selection
+        myShapeByMeshOp->setModule( getSMESHGUI() );
+        myShapeByMeshOp->setStudy( 0 ); // it's really necessary
+        myShapeByMeshOp->SetMesh( aMeshVar );
+        myShapeByMeshOp->start();
       }
     }
   }
@@ -1493,32 +1753,21 @@ void SMESHGUI_MeshOp::onGeomSelectionByMesh( bool theByMesh )
  */
 //================================================================================
 
-void SMESHGUI_MeshOp::onPublishShapeByMeshDlg()
+void SMESHGUI_MeshOp::onPublishShapeByMeshDlg(SUIT_Operation* op)
 {
-  if ( myShapeByMeshDlg ) {
+  if ( myShapeByMeshOp == op ) {
+    myDlg->show();
     // Select a found geometry object
-    GEOM::GEOM_Object_var aGeomVar = myShapeByMeshDlg->GetShape();
+    GEOM::GEOM_Object_var aGeomVar = myShapeByMeshOp->GetShape();
     if ( !aGeomVar->_is_nil() )
     {
       QString ID = aGeomVar->GetStudyEntry();
-      if ( _PTR(SObject) aGeomSO = studyDS()->FindObjectID( ID )) {
-        SMESH::SMESH_Mesh_ptr aMeshPtr = myShapeByMeshDlg->GetMesh();
-        if ( !CORBA::is_nil( aMeshPtr )) {
-          if (_PTR(SObject) aMeshSO = SMESH::FindSObject( aMeshPtr )) {
-            myDlg->activateObject( SMESHGUI_MeshDlg::Mesh );
-            myDlg->selectObject( aMeshSO->GetName(), SMESHGUI_MeshDlg::Mesh, aMeshSO->GetID() );
-          }
-        }
-        myDlg->activateObject( SMESHGUI_MeshDlg::Geom );
+      if ( _PTR(SObject) aGeomSO = studyDS()->FindObjectID( ID.latin1() )) {
         selectObject( aGeomSO );
-        //selectionDone();
+        selectionDone();
       }
     }
-    else {
-      onCloseShapeByMeshDlg();
-    }
   }
-  myDlg->show();
 }
 
 //================================================================================
@@ -1527,12 +1776,10 @@ void SMESHGUI_MeshOp::onPublishShapeByMeshDlg()
  */
 //================================================================================
 
-void SMESHGUI_MeshOp::onCloseShapeByMeshDlg()
+void SMESHGUI_MeshOp::onCloseShapeByMeshDlg(SUIT_Operation* op)
 {
-  if ( myDlg ) {
+  if ( myShapeByMeshOp == op && myDlg ) {
     myDlg->show();
-    myDlg->activateObject( SMESHGUI_MeshDlg::Geom );
-    myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
   }
 }
 
index 677731a3b6802b2682ca560009b2170f7d8d752a..51492c3ee53cb9797191978e07303a59af4f4be6 100644 (file)
@@ -40,7 +40,8 @@
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 
 class SMESHGUI_MeshDlg;
-class SMESHGUI_ShapeByMeshDlg;
+class SMESHGUI_ShapeByMeshOp;
+class HypothesisData;
 
 /*!
  * \brief Operation for mech creation or editing
@@ -51,9 +52,10 @@ class SMESHGUI_MeshOp : public SMESHGUI_SelectionOp
 { 
   Q_OBJECT
       
-  enum HypType{ Algo = 0, MainHyp, AddHyp };
-
 public:
+
+  enum HypType{ Algo = 0, MainHyp, AddHyp, NbHypTypes };
+
   SMESHGUI_MeshOp( const bool theToCreate, const bool theIsMesh = true );
   virtual ~SMESHGUI_MeshOp();
   
@@ -71,24 +73,38 @@ protected slots:
   void                           onEditHyp( const int theHypType, const int theIndex );
   void                           onHypoSet( const QString& theSetName );
   void                           onGeomSelectionByMesh( bool );
-  void                           onPublishShapeByMeshDlg();
-  void                           onCloseShapeByMeshDlg();
+  void                           onPublishShapeByMeshDlg(SUIT_Operation*);
+  void                           onCloseShapeByMeshDlg(SUIT_Operation*);
+  void                           onAlgoSelected( const int theIndex,
+                                                 const int theDim = -1);
 
 private:
+
+  typedef QValueList<HypothesisData*> THypDataList; // typedef: list of hypothesis data
+
   bool                           isValid( QString& ) const;
-  void                           availableHyps( const int theDim, 
-                                                const int theHypType, 
-                                                QStringList& theHyps ) const;
-  void                           existingHyps( const int theDim, 
-                                               const int theHypType, 
+  void                           availableHyps( const int       theDim, 
+                                                const int       theHypType,
+                                                QStringList&    theHyps,
+                                                THypDataList&   theDataList,
+                                                HypothesisData* theAlgoData = 0 ) const;
+  void                           existingHyps( const int     theDim, 
+                                               const int     theHypType, 
                                                _PTR(SObject) theFather,
-                                               QStringList& theHyps, 
-                                               QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars );
-  
+                                               QStringList&  theHyps, 
+                                               QValueList<SMESH::SMESH_Hypothesis_var>& theHypVars,
+                                               HypothesisData* theAlgoData = 0);
+  HypothesisData*                hypData( const int theDim,
+                                          const int theHypType,
+                                          const int theIndex); // access to myAvailableHypData
+
+  void                           createHypothesis(const int theDim, const int theType,
+                                                 const QString& theTypeName);
+
   bool                           createMesh( QString& );
   bool                           createSubMesh( QString& );
   bool                           editMeshOrSubMesh( QString& );
-  
+
   int                            currentHyp( const int, const int ) const;
   bool                           isAccessibleDim( const int ) const;
   void                           setCurrentHyp( const int, const int, const int );
@@ -107,15 +123,20 @@ private:
 private:
   typedef QMap< int, QValueList<SMESH::SMESH_Hypothesis_var> > IdToHypListMap;
   typedef QMap< int, IdToHypListMap > DimToHypMap;
-  
+
   SMESHGUI_MeshDlg*              myDlg;
-  SMESHGUI_ShapeByMeshDlg*       myShapeByMeshDlg;
+  SMESHGUI_ShapeByMeshOp*        myShapeByMeshOp;
   bool                           myToCreate;
   bool                           myIsMesh;
-  
+
   DimToHypMap                    myExistingHyps; //!< all hypothesis of SMESH module
   DimToHypMap                    myObjHyps;      //!< hypothesis assigned to the current 
                                                  //   edited mesh/sub-mesh
+
+  // hypdata corresponding to hypotheses present in myDlg
+  THypDataList                   myAvailableHypData[3][NbHypTypes];
+
+  bool                           myIgnoreAlgoSelection;
 };
 
 #endif
index 53e8c25a783c7c09a0cb728a9c1ee60ec210b0ca..0022b3f5ca89445412257cce6b4862d69dbb730a 100755 (executable)
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
 #include "SUIT_FileDlg.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "LightApp_SelectionMgr.h"
 #include "SalomeApp_Tools.h"
 #include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
 
 #include "SALOMEDS_SObject.hxx"
 
@@ -59,6 +62,7 @@
 #include "SVTK_ViewModel.h"
 #include "SVTK_Selector.h"
 #include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 // OCCT Includes
 #include <TColStd_MapOfInteger.hxx>
@@ -86,7 +90,6 @@
 // VTK Includes
 #include <vtkCell.h>
 #include <vtkIdList.h>
-#include <vtkIntArray.h>
 #include <vtkCellArray.h>
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
@@ -129,6 +132,8 @@ SMESHGUI_MeshPatternDlg::SMESHGUI_MeshPatternDlg( SMESHGUI*   theModule,
 
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
 
+  myHelpFileName = "pattern_mapping.htm";
+
   Init();
 }
 
@@ -290,6 +295,7 @@ QFrame* SMESHGUI_MeshPatternDlg::createButtonFrame (QWidget* theParent)
   myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
   myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
   myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+  myHelpBtn   = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
 
   QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
@@ -299,10 +305,12 @@ QFrame* SMESHGUI_MeshPatternDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(myApplyBtn);
   aLay->addItem(aSpacer);
   aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
 
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
   connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+  connect(myHelpBtn,  SIGNAL(clicked()), SLOT(onHelp()));
 
   return aFrame;
 }
@@ -425,6 +433,7 @@ bool SMESHGUI_MeshPatternDlg::onApply()
          }
        }
       }
+      mySelectionMgr->clearSelected();
       SMESH::UpdateView();
 
       mySMESHGUI->updateObjBrowser(true);
@@ -472,6 +481,23 @@ void SMESHGUI_MeshPatternDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_MeshPatternDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : SMESHGUI_MeshPatternDlg::onSelectionDone
 // Purpose : SLOT called when selection changed
@@ -1200,7 +1226,7 @@ vtkUnstructuredGrid* SMESHGUI_MeshPatternDlg::getGrid()
       else aCellTypesArray->InsertNextValue(VTK_EMPTY_CELL);
     }
 
-    vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+    VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
     aCellLocationsArray->SetNumberOfComponents(1);
     aCellLocationsArray->SetNumberOfTuples(aNbCells);
 
index 106dc8b27717173f069e4ced20608d7013c439e5..841bb0bf087e6b27804d795f95f5cdae2d0e309d 100755 (executable)
@@ -82,6 +82,7 @@ private slots:
   void                                onOk();
   bool                                onApply();
   void                                onClose();
+  void                                onHelp();
 
   void                                onDeactivate();
 
@@ -125,6 +126,7 @@ private:
   QPushButton*                        myOkBtn;
   QPushButton*                        myApplyBtn;
   QPushButton*                        myCloseBtn;
+  QPushButton*                        myHelpBtn;
 
   QButtonGroup*                       myTypeGrp;
   QRadioButton*                       mySwitch2d;
@@ -171,6 +173,8 @@ private:
   SMESHGUI_CreatePatternDlg*          myCreationDlg;
   SMESH::SMESH_Pattern_var            myPattern;
   SALOME_Actor*                       myPreviewActor;
+
+  QString                             myHelpFileName;
 };
 
 #endif
index c51f499048722dfcf54946cb890d2835c35ac7fb..ebcfd21d8b5b036496c221d52eb88e3292ae67a7 100644 (file)
 #include "SMDS_MeshNode.hxx"
 
 #include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "SVTK_Selector.h"
 #include "SVTK_ViewModel.h"
@@ -49,6 +52,7 @@
 #include "SALOME_ListIO.hxx"
 
 #include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 #include "utilities.h"
 
@@ -58,7 +62,6 @@
 // VTK includes
 #include <vtkCell.h>
 #include <vtkIdList.h>
-#include <vtkIntArray.h>
 #include <vtkCellArray.h>
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
@@ -114,6 +117,8 @@ SMESHGUI_MoveNodesDlg::SMESHGUI_MoveNodesDlg (SMESHGUI* theModule,
 
   mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector();
 
+  myHelpFileName = "/files/displacing_nodes.htm";
+
   Init();
 }
 
@@ -129,6 +134,7 @@ QFrame* SMESHGUI_MoveNodesDlg::createButtonFrame (QWidget* theParent)
   myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
   myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
   myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+  myHelpBtn   = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
 
   QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
@@ -138,10 +144,12 @@ QFrame* SMESHGUI_MoveNodesDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(myApplyBtn);
   aLay->addItem(aSpacer);
   aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
 
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
   connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+  connect(myHelpBtn,  SIGNAL(clicked()), SLOT(onHelp()));
 
   return aFrame;
 }
@@ -331,6 +339,23 @@ void SMESHGUI_MoveNodesDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_MoveNodesDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : SMESHGUI_MoveNodesDlg::onTextChange
 // Purpose :
@@ -522,7 +547,7 @@ void SMESHGUI_MoveNodesDlg::redisplayPreview()
   aCellTypesArray->InsertNextValue(VTK_VERTEX);
   anIdList->Delete();
 
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+  VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
   aCellLocationsArray->SetNumberOfComponents(1);
   aCellLocationsArray->SetNumberOfTuples(1);
 
index d115e52ff8e222d38108c3beeb25bee6fbb429bb..d87d11e05c4906947d2b3def644a0db797ae6a82 100644 (file)
@@ -66,6 +66,7 @@ private slots:
   void                          onOk();
   bool                          onApply();
   void                          onClose();
+  void                          onHelp();
 
   void                          onDeactivate();
 
@@ -90,6 +91,7 @@ private:
   QPushButton*                  myOkBtn;
   QPushButton*                  myApplyBtn;
   QPushButton*                  myCloseBtn;
+  QPushButton*                  myHelpBtn;
   
   QLineEdit*                    myId;
   SMESHGUI_SpinBox*             myX;
@@ -103,6 +105,8 @@ private:
   SALOME_Actor*                 myPreviewActor;
   SMESH_Actor*                  myMeshActor;
   bool                          myBusy;
+
+  QString                       myHelpFileName;
 };
 
 #endif // DIALOGBOX_MOVE_NODES_H
index 7d1cb98084c17b4c326f064c97c461177cbdf571..f658c0d539215bed6dad7c8ea1cd4da34c039ccb 100755 (executable)
 
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
 #include "SALOME_ListIO.hxx"
 #include "SALOME_ListIteratorOfListIO.hxx"
 
 #include "SVTK_Selector.h"
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 // OCCT Includes
 #include <Precision.hxx>
@@ -65,7 +69,6 @@
 #include <vtkPolygon.h>
 #include <vtkConvexPointSet.h>
 #include <vtkIdList.h>
-#include <vtkIntArray.h>
 #include <vtkCellArray.h>
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
@@ -233,6 +236,7 @@ QFrame* SMESHGUI_MultiEditDlg::createButtonFrame (QWidget* theParent)
   myOkBtn     = new QPushButton (tr("SMESH_BUT_OK"   ), aFrame);
   myApplyBtn  = new QPushButton (tr("SMESH_BUT_APPLY"), aFrame);
   myCloseBtn  = new QPushButton (tr("SMESH_BUT_CLOSE"), aFrame);
+  myHelpBtn   = new QPushButton (tr("SMESH_BUT_HELP"), aFrame);
 
   QSpacerItem* aSpacer = new QSpacerItem (0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
@@ -242,6 +246,7 @@ QFrame* SMESHGUI_MultiEditDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(myApplyBtn);
   aLay->addItem(aSpacer);
   aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
 
   return aFrame;
 }
@@ -333,6 +338,7 @@ void SMESHGUI_MultiEditDlg::Init()
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
   connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+  connect(myHelpBtn,  SIGNAL(clicked()), SLOT(onHelp()));
 
   // selection and SMESHGUI
   connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
@@ -474,6 +480,23 @@ void SMESHGUI_MultiEditDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_MultiEditDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : SMESHGUI_MultiEditDlg::onSelectionDone
 // Purpose : SLOT called when selection changed
@@ -1034,6 +1057,7 @@ SMESHGUI_ChangeOrientationDlg
   SMESHGUI_MultiEditDlg(theModule, SMESHGUI_FaceFilter, true, theName)
 {
   setCaption(tr("CAPTION"));
+  myHelpFileName = "/files/changing_orientation_of_elements.htm";
 }
 
 SMESHGUI_ChangeOrientationDlg::~SMESHGUI_ChangeOrientationDlg()
@@ -1072,6 +1096,8 @@ SMESHGUI_UnionOfTrianglesDlg
   myMaxAngleSpin->SetValue(30.0);
 
   myCriterionGrp->show();
+
+  myHelpFileName = "/files/uniting_a_set_of_triangles.htm";
 }
 
 SMESHGUI_UnionOfTrianglesDlg::~SMESHGUI_UnionOfTrianglesDlg()
@@ -1110,6 +1136,8 @@ SMESHGUI_CuttingOfQuadsDlg
   connect(myGroupChoice    , SIGNAL(clicked(int))        , this, SLOT(onCriterionRB()));
   connect(myComboBoxFunctor, SIGNAL(activated(int))      , this, SLOT(onPreviewChk()));
   connect(this             , SIGNAL(ListContensChanged()), this, SLOT(onPreviewChk()));
+
+  myHelpFileName = "/files/cutting_quadrangles.htm";
 }
 
 SMESHGUI_CuttingOfQuadsDlg::~SMESHGUI_CuttingOfQuadsDlg()
@@ -1292,7 +1320,7 @@ void SMESHGUI_CuttingOfQuadsDlg::displayPreview()
     }
   }
 
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+  VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
   aCellLocationsArray->SetNumberOfComponents(1);
   aCellLocationsArray->SetNumberOfTuples(aNbCells);
 
index 5e6c663268867ea8e5c1bd2bb7c19bd9a97b8c02..e956292aebbf79a11c253d80177a68ca82eb91ee 100755 (executable)
@@ -86,6 +86,7 @@ protected slots:
   void                      onOk();
   virtual bool              onApply();
   virtual void              onClose();
+  void                      onHelp();
 
   void                      onDeactivate();
   void                      onSelectionDone();
@@ -121,6 +122,7 @@ protected:
   QPushButton*              myOkBtn;
   QPushButton*              myApplyBtn;
   QPushButton*              myCloseBtn;
+  QPushButton*              myHelpBtn;
   SMESH_Actor*              myActor;
   SMESH::SMESH_Mesh_var     myMesh;
 
@@ -156,6 +158,8 @@ protected:
   int                       myFilterType;
   bool                      myBusy;
   int                       myEntityType;
+
+  QString                   myHelpFileName;
 };
 
 /*!
index 9b77ced9f26a0d9a8cfbea6bfa4fdb286c073e48..9ac5b9cc6504d64254aae9af50bbf12332e5bbcb 100644 (file)
 #include "SUIT_Desktop.h"
 
 #include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
 #include "LightApp_SelectionMgr.h"
 
 #include "SVTK_Selector.h"
 #include "SVTK_ViewWindow.h"
+#include "VTKViewer_CellLocationsArray.h"
 
 #include "SALOME_Actor.h"
 #include "SALOME_ListIO.hxx"
@@ -62,7 +64,6 @@
 // VTK Includes
 #include <vtkCell.h>
 #include <vtkIdList.h>
-#include <vtkIntArray.h>
 #include <vtkCellArray.h>
 #include <vtkUnsignedCharArray.h>
 #include <vtkUnstructuredGrid.h>
@@ -147,7 +148,7 @@ namespace SMESH {
       aCells->InsertNextCell(anIdList);
       aCellTypesArray->InsertNextValue(VTK_VERTEX);
 
-      vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+      VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
       aCellLocationsArray->SetNumberOfComponents(1);
       aCellLocationsArray->SetNumberOfTuples(1);
 
@@ -178,11 +179,11 @@ namespace SMESH {
       vtkProperty* aProp = vtkProperty::New();
       aProp->SetRepresentationToPoints();
 
-      float anRGB[3];
+      vtkFloatingPointType anRGB[3];
       GetColor( "SMESH", "node_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 255, 0 ) );
       aProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
 
-      float aPointSize = GetFloat( "SMESH:node_size", 3 );
+      vtkFloatingPointType aPointSize = GetFloat( "SMESH:node_size", 3 );
       aProp->SetPointSize( aPointSize );
 
       myPreviewActor->SetProperty( aProp );
@@ -256,6 +257,10 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -325,6 +330,8 @@ SMESHGUI_NodesDlg::SMESHGUI_NodesDlg (SMESHGUI* theModule,
 
   SMESHGUI_NodesDlgLayout->addWidget(GroupCoordinates, 1, 0);
 
+  myHelpFileName = "/files/adding_nodes_and_elements.htm#Adding_nodes";
+
   /* Initialisation and display */
   Init();
 }
@@ -364,6 +371,7 @@ void SMESHGUI_NodesDlg::Init ()
   connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
 
   connect(SpinBox_X, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
   connect(SpinBox_Y, SIGNAL (valueChanged(double)), SLOT(ValueChangedInSpinBox(double)));
@@ -475,6 +483,23 @@ void SMESHGUI_NodesDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_NodesDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection as changed or other case
index 4ec0005a093285e5cfddc84e873c673d7afe90a6..b3bca989601e17b43fbb62b8e4967a9396ebc88e 100644 (file)
@@ -101,12 +101,16 @@ private:
     QPushButton* buttonApply;
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
+    QPushButton* buttonHelp;
+
+    QString      myHelpFileName;
 
 private slots:
 
     void ClickOnOk();
     void ClickOnCancel();
     bool ClickOnApply();
+    void ClickOnHelp();
     void DeactivateActiveDialog() ;
     void ActivateThisDialog() ;
     void SelectionIntoArgument() ;
index 562f4da80b4f97eb8b8a912d71adbf01a7830b33..e6ba1303b962624c940b570555e4f68fae4d0b09 100755 (executable)
@@ -13,7 +13,9 @@
 #include <SMESHGUI_Dialog.h>
 
 #include <SalomeApp_Study.h>
+#include <LightApp_Application.h>
 
+#include <SUIT_Session.h>
 #include <SUIT_MessageBox.h>
 #include <SUIT_Desktop.h>
 
@@ -31,6 +33,7 @@
 SMESHGUI_Operation::SMESHGUI_Operation()
 : LightApp_Operation()
 {
+  myHelpFileName = "";
 }
 
 //=======================================================================
@@ -62,6 +65,7 @@ void SMESHGUI_Operation::startOperation()
     disconnect( dlg(), SIGNAL( dlgApply() ), this, SLOT( onApply() ) );
     disconnect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
     disconnect( dlg(), SIGNAL( dlgClose() ), this, SLOT( onCancel() ) );
+    disconnect( dlg(), SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
     
     if( dlg()->testButtonFlags( QtxDialog::OK ) )
       connect( dlg(), SIGNAL( dlgOk() ), this, SLOT( onOk() ) );
@@ -71,6 +75,9 @@ void SMESHGUI_Operation::startOperation()
       
     if( dlg()->testButtonFlags( QtxDialog::Cancel ) )
       connect( dlg(), SIGNAL( dlgCancel() ), this, SLOT( onCancel() ) );
+
+    if( dlg()->testButtonFlags( QtxDialog::Help ) )
+      connect( dlg(), SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
       
     //if( dlg()->testButtonFlags( QtxDialog::Close ) )
     //if dialog hasn't close, cancel, no and etc buttons, dlgClose will be emitted when dialog is closed not by OK
@@ -134,8 +141,8 @@ void SMESHGUI_Operation::onOk()
 {
   if( onApply() )
     commit();
-  else
-    abort();
+  //else
+  //  abort();
 }
 
 //=======================================================================
@@ -156,6 +163,23 @@ void SMESHGUI_Operation::onCancel()
   abort();
 }
 
+//=======================================================================
+// name    : onHelp
+// Purpose :
+//=======================================================================
+void SMESHGUI_Operation::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(getSMESHGUI() ? app->moduleName(getSMESHGUI()->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // name    : initDialog
 // Purpose :
index 181cb2cc7caeddaeef95fcfd63fd1f879d032ad4..66d75c27cece7883ebb3999b14fca51a77d3883b 100755 (executable)
@@ -47,10 +47,13 @@ protected:
   
   virtual bool      isValid( SUIT_Operation* ) const;
 
+  QString           myHelpFileName;
+
 protected slots:
   virtual void onOk();
   virtual bool onApply();
   virtual void onCancel();
+  void onHelp();
 };
 
 #endif
diff --git a/src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx b/src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx
deleted file mode 100755 (executable)
index b589e15..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
-//
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
-//
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-//
-//
-//
-//  File   : SMESHGUI_PrecisionDlg.cxx
-//  Author : Sergey LITONIN
-//  Module : SMESH
-
-#include "SMESHGUI_PrecisionDlg.h"
-
-#include "SMESHGUI.h"
-#include "SMESHGUI_VTKUtils.h"
-#include "SMESHGUI_Utils.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_ResourceMgr.h"
-
-#include <qgroupbox.h>
-#include <qpushbutton.h>
-#include <qcheckbox.h>
-#include <qspinbox.h>
-#include <qlayout.h>
-#include <qlabel.h>
-
-#define SPACING 5
-#define MARGIN  10
-#define DEFAULT_VAL 10
-#define RANGE 128
-
-/*!
- *  Class       : SMESHGUI_PrecisionDlg
- *  Description : Dialog to specify precision of mesh quality controls
- */
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::SMESHGUI_PrecisionDlg
-// Purpose : Constructor
-//=======================================================================
-SMESHGUI_PrecisionDlg::SMESHGUI_PrecisionDlg ( SMESHGUI* theModule )
-     : QDialog( SMESH::GetDesktop( theModule ), "SMESHGUI_PrecisionDlg", true,
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ),
-     mySMESHGUI( theModule )
-{
-  setCaption(tr("CAPTION"));
-
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
-
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
-
-  aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
-
-  aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  setMinimumWidth((int)(QFontMetrics(font()).width(tr("CAPTION")) * 1.5));
-
-  Init();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::~SMESHGUI_PrecisionDlg
-// Purpose : Destructor
-//=======================================================================
-SMESHGUI_PrecisionDlg::~SMESHGUI_PrecisionDlg()
-{
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::createButtonFrame
-// Purpose : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_PrecisionDlg::createButtonFrame (QWidget* theParent)
-{
-  QGroupBox* aGrp = new QGroupBox (1, Qt::Vertical, theParent);
-  aGrp->setFrameStyle(QFrame::NoFrame);
-  aGrp->setInsideMargin(0);
-
-  myOKBtn = new QPushButton (tr("SMESH_BUT_OK"), aGrp);
-
-  QLabel* aLbl = new QLabel (aGrp);
-  aLbl->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-
-  myCancelBtn = new QPushButton (tr("SMESH_BUT_CANCEL"), aGrp);
-
-  connect(myOKBtn, SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCancelBtn, SIGNAL(clicked()), SLOT(onClose()));
-
-  return aGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg:: createMainFrame
-// Purpose : Create frame containing dialog's input fields
-//=======================================================================
-QFrame* SMESHGUI_PrecisionDlg::createMainFrame (QWidget* theParent)
-{
-  QGroupBox* aGrp = new QGroupBox(2, Qt::Horizontal, theParent);
-  new QLabel (tr("PRECISION"), aGrp);
-  mySpinBox = new QSpinBox (0, RANGE, 1, aGrp);
-  myNotUseChk = new QCheckBox (tr("NOT_USE"), aGrp);
-
-  connect(myNotUseChk, SIGNAL(toggled(bool)), SLOT(onNotUse()));
-
-  return aGrp;
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::Init
-// Purpose : Initialize dialog fields
-//=======================================================================
-void SMESHGUI_PrecisionDlg::Init()
-{
-  bool isOk = false;
-  int aVal = DEFAULT_VAL;
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  if (mgr && mgr->hasValue("SMESH", "controls_precision")) {
-    QString aStr = mgr->stringValue("SMESH", "controls_precision");
-    aVal = aStr.toInt(&isOk);
-  }
-
-  mySpinBox->setValue(isOk ? aVal : DEFAULT_VAL);
-  myNotUseChk->setChecked(!isOk);
-
-  onNotUse();
-
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::onOk
-// Purpose : SLOT. Called when OK button pressed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onOk()
-{
-  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
-  if (myNotUseChk->isChecked()) {
-    if (mgr) {
-      mgr->remove("SMESH", "controls_precision");
-    }
-    SMESH::SetControlsPrecision(-1);
-  } else {
-    mySpinBox->clearFocus();
-    int aVal = mySpinBox->value();
-    if (mgr) {
-      mgr->setValue("SMESH", "controls_precision", QString("%1").arg(aVal));
-    }
-    SMESH::SetControlsPrecision(aVal);
-  }
-
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState() ;
-  accept();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::onClose
-// Purpose : SLOT. Called when "Cancel" button pressed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onClose()
-{
-  disconnect( mySMESHGUI, 0, this, 0);
-  reject();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::closeEvent
-// Purpose :
-//=======================================================================
-void SMESHGUI_PrecisionDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
-
-//=======================================================================
-// name    : SMESHGUI_PrecisionDlg::onNotUse
-// Purpose : SLOT. Called when state of "Do not use" check box changed
-//=======================================================================
-void SMESHGUI_PrecisionDlg::onNotUse()
-{
-  mySpinBox->setEnabled(!myNotUseChk->isChecked());
-}
diff --git a/src/SMESHGUI/SMESHGUI_PrecisionDlg.h b/src/SMESHGUI/SMESHGUI_PrecisionDlg.h
deleted file mode 100755 (executable)
index 976db30..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-//  SMESH SMESHGUI : GUI for SMESH component
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESHGUI_PrecisionDlg.h
-//  Author : Sergey LITONIN      
-//  Module : SMESH
-
-
-#ifndef SMESHGUI_PrecisionDlg_H
-#define SMESHGUI_PrecisionDlg_H
-
-#include <qdialog.h>
-
-class QSpinBox;
-class QPushButton;
-class QCheckBox;
-class QFrame;
-class SMESHGUI;
-
-/*
-  Class       : SMESHGUI_PrecisionDlg
-  Description : Dialog to specify precision of mesh quality controls
-*/
-
-class SMESHGUI_PrecisionDlg : public QDialog
-{
-  Q_OBJECT
-
-public:
-                            SMESHGUI_PrecisionDlg( SMESHGUI* );
-
-  virtual                   ~SMESHGUI_PrecisionDlg();
-
-  void                      Init();
-
-private slots:
-
-  void                      onOk();
-  void                      onClose();
-  void                      onNotUse();
-
-private:
-
-  QFrame*                   createButtonFrame( QWidget* );
-  QFrame*                   createMainFrame( QWidget* );
-  void                      closeEvent( QCloseEvent* );
-private:
-  SMESHGUI*                 mySMESHGUI;
-  QSpinBox*                 mySpinBox;
-  QPushButton*              myOKBtn;
-  QPushButton*              myCancelBtn;
-  QCheckBox*                myNotUseChk;
-
-};
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
index d9b43c81c100b0dd4fc708a7e535a51716342e0a..21f4fc917f1586cd16bcb87f9805472ab78700b7 100644 (file)
@@ -58,7 +58,7 @@
 
 #include <vtkTextProperty.h>
 #include <vtkScalarBarActor.h>
-#include <vtkScalarsToColors.h>
+#include <vtkLookupTable.h>
 
 #define MINIMUM_WIDTH 70
 #define MARGIN_SIZE   11
@@ -520,7 +520,11 @@ bool SMESHGUI_Preferences_ScalarBarDlg::onApply()
 
     double aMin = myMinEdit->text().toDouble();
     double aMax = myMaxEdit->text().toDouble();
-    myScalarBarActor->GetLookupTable()->SetRange( aMin, aMax );
+    vtkLookupTable* myLookupTable =
+      static_cast<vtkLookupTable*>(myScalarBarActor->GetLookupTable());
+    myLookupTable->SetRange( aMin, aMax );
+    myLookupTable->SetNumberOfTableValues(myColorsSpin->value());
+    myLookupTable->Build();
     SMESH::RepaintCurrentView();
   } else {
     // Scalar Bar preferences
@@ -636,13 +640,13 @@ void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
          vtkScalarBarActor* myScalarBarActor = myActor->GetScalarBarActor();
 
          if ( myScalarBarActor->GetLookupTable() ) {
-           float *range = myScalarBarActor->GetLookupTable()->GetRange();
-           myMinEdit->setText( QString::number( range[0] ) );
-           myMaxEdit->setText( QString::number( range[1] ) );
+           vtkFloatingPointType *range = myScalarBarActor->GetLookupTable()->GetRange();
+           myMinEdit->setText( QString::number( range[0],'g',12 ) );
+           myMaxEdit->setText( QString::number( range[1],'g',12 ) );
          }
 
          vtkTextProperty* aTitleTextPrp = myScalarBarActor->GetTitleTextProperty();
-         float aTColor[3];
+         vtkFloatingPointType aTColor[3];
          aTitleTextPrp->GetColor( aTColor );
          myTitleColorBtn->setPaletteBackgroundColor( QColor( (int)( aTColor[0]*255 ), (int)( aTColor[1]*255 ), (int)( aTColor[2]*255 ) ) );
          myTitleFontCombo->setCurrentItem( aTitleTextPrp->GetFontFamily() );
@@ -651,7 +655,7 @@ void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
          myTitleShadowCheck->setChecked( aTitleTextPrp->GetShadow() );
 
          vtkTextProperty* aLabelsTextPrp = myScalarBarActor->GetLabelTextProperty();
-         float aLColor[3];
+         vtkFloatingPointType aLColor[3];
          aLabelsTextPrp->GetColor( aLColor );
          myLabelsColorBtn->setPaletteBackgroundColor( QColor( (int)( aLColor[0]*255 ), (int)( aLColor[1]*255 ), (int)( aLColor[2]*255 ) ) );
          myLabelsFontCombo->setCurrentItem( aLabelsTextPrp->GetFontFamily() );
index 885fd642c5b98e6f26797df9a3fb312a421f1691..f8c97166f6f49d485d8dc3c9df83ffa23a821576 100644 (file)
@@ -39,6 +39,8 @@
 
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "SVTK_Selector.h"
 #include "SVTK_ViewModel.h"
@@ -46,6 +48,7 @@
 #include "SALOME_ListIO.hxx"
 
 #include "SalomeApp_Tools.h"
+#include "LightApp_Application.h"
 #include "utilities.h"
 
 // OCCT Includes
@@ -131,6 +134,10 @@ SMESHGUI_RemoveElementsDlg
     GroupButtonsLayout->setAlignment(Qt::AlignTop);
     GroupButtonsLayout->setSpacing(6);
     GroupButtonsLayout->setMargin(11);
+    buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+    buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+    buttonHelp->setAutoDefault(TRUE);
+    GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
     buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
     buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
     buttonCancel->setAutoDefault(TRUE);
@@ -177,6 +184,8 @@ SMESHGUI_RemoveElementsDlg
     GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
     SMESHGUI_RemoveElementsDlgLayout->addWidget(GroupC1, 1, 0);
 
+    myHelpFileName = "/files/removing_nodes_and_elements.htm#remove_an_element";
+
     Init(); /* Initialisations */
 }
 
@@ -209,6 +218,7 @@ void SMESHGUI_RemoveElementsDlg::Init()
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectButtonC1A1, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
@@ -296,6 +306,23 @@ void SMESHGUI_RemoveElementsDlg::ClickOnCancel()
   return;
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_RemoveElementsDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 //function : onTextChange
 //purpose  :
index 8300d124c65633fefd9e2483bb83e0a3ed62a38b..69081b2dea2a7057d30e84e0ff28a7ee0a58c280 100644 (file)
@@ -94,17 +94,21 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupC1;
     QLabel* TextLabelC1A1;
     QPushButton* SelectButtonC1A1;
     QLineEdit* LineEditC1A1;
 
+    QString myHelpFileName;
+
 private slots:
 
     void ConstructorsClicked(int constructorId);
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 48cc0dcf17649375e912249f3fa97d3d0c353d37..ae30d1dfbde97cf9dcdb4dad5902e539d04c128f 100644 (file)
 
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_Selector.h"
 #include "SVTK_ViewModel.h"
@@ -130,6 +134,10 @@ SMESHGUI_RemoveNodesDlg
     GroupButtonsLayout->setAlignment(Qt::AlignTop);
     GroupButtonsLayout->setSpacing(6);
     GroupButtonsLayout->setMargin(11);
+    buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+    buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+    buttonHelp->setAutoDefault(TRUE);
+    GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
     buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
     buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
     buttonCancel->setAutoDefault(TRUE);
@@ -176,6 +184,8 @@ SMESHGUI_RemoveNodesDlg
     GroupC1Layout->addWidget(LineEditC1A1, 0, 2);
     SMESHGUI_RemoveNodesDlgLayout->addWidget(GroupC1, 1, 0);
 
+    myHelpFileName = "/files/removing_nodes_and_elements.htm#remove_a_node";
+
     Init(); /* Initialisations */
 }
 
@@ -208,6 +218,7 @@ void SMESHGUI_RemoveNodesDlg::Init()
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectButtonC1A1, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
@@ -294,6 +305,23 @@ void SMESHGUI_RemoveNodesDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_RemoveNodesDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 //function : onTextChange
 //purpose  :
index 68fb7817f2f00e4539a782683c3df5fa5e5a5c1c..e184536d0d7fd74b1602ce3e738a52a2109aee24 100644 (file)
@@ -97,17 +97,21 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupC1;
     QLabel* TextLabelC1A1;
     QPushButton* SelectButtonC1A1;
     QLineEdit* LineEditC1A1;
 
+    QString myHelpFileName;
+
 private slots:
 
     void ConstructorsClicked(int constructorId);
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index c16086f138efd7a58f261fce52c84e804bba421c..117fbd49cb8778ffd800b1b5032127c4848be173 100644 (file)
@@ -38,6 +38,9 @@
 
 #include "SUIT_Desktop.h"
 #include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SALOME_ListIO.hxx"
 
@@ -92,10 +95,14 @@ SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const cha
 
   /***************************************************************/
   GroupConstructors = new QButtonGroup(this, "GroupConstructors");
-  if (unit == 0)
+  if (unit == 0) {
     GroupConstructors->setTitle(tr("SMESH_NODES" ));
-  else if (unit == 1)
+    myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_nodes";
+  }
+  else if (unit == 1) {
     GroupConstructors->setTitle(tr("SMESH_ELEMENTS" ));
+    myHelpFileName = "/files/renumbering_nodes_and_elements.htm#renumber_elements";
+  }
   GroupConstructors->setExclusive(TRUE);
   GroupConstructors->setColumnLayout(0, Qt::Vertical);
   GroupConstructors->layout()->setSpacing(0);
@@ -126,6 +133,10 @@ SMESHGUI_RenumberingDlg::SMESHGUI_RenumberingDlg( SMESHGUI* theModule, const cha
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -203,6 +214,7 @@ void SMESHGUI_RenumberingDlg::Init()
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectButton, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
@@ -298,6 +310,23 @@ void SMESHGUI_RenumberingDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_RenumberingDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : SelectionIntoArgument()
 // purpose  : Called when selection as changed or other case
index 50932fdbc650bcac7826408ad56086c33ce78d11..20b583544ee74500429e5d93057f80e344f5f6bf 100644 (file)
@@ -89,10 +89,13 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupMesh;
     QLabel* TextLabelMesh;
     QPushButton* SelectButton;
     QLineEdit* LineEditMesh;
+    
+    QString myHelpFileName;
 
 private slots:
 
@@ -100,6 +103,7 @@ private slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 57adf2a13fa6ea96bf05f4da25a4de8c897089b4..e56bf2560d88605a8a2dcc2d47a52a11602f084b 100644 (file)
 #include "SMDS_Mesh.hxx"
 
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
@@ -131,6 +135,10 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char*
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -311,12 +319,15 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char*
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
+  myHelpFileName = "revolution.htm";
+
   Init();
 
   /* signals and slots connections */
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
@@ -499,6 +510,23 @@ void SMESHGUI_RevolutionDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_RevolutionDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // function : onTextChange()
 // purpose  :
index dc1da869d41c7b294aa76f351d2c80c60be4c434..bed182ef559ad7d0974757068f6d4893a453fe35 100644 (file)
@@ -100,6 +100,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* GroupAxis;
     QLabel* TextLabelElements;
@@ -131,12 +132,15 @@ private:
     QLabel* TextLabelTolerance;
     SMESHGUI_SpinBox* SpinBox_Tolerance;
 
+    QString myHelpFileName;
+
 private slots:
 
     void ConstructorsClicked (int constructorId);
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument();
     void SelectionIntoArgument();
     void DeactivateActiveDialog();
index e0578c538dc597ceb17d4c13fdb7a941877174df..8e5777b7afd47cbbea78daca46210c517af1ed99 100644 (file)
@@ -42,6 +42,9 @@
 
 #include "SUIT_Desktop.h"
 #include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
@@ -136,6 +139,10 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE"));
   buttonCancel->setAutoDefault(TRUE);
@@ -300,12 +307,15 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
+  myHelpFileName = "/files/rotation.htm";
+
   Init();
 
   /* signals and slots connections */
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
@@ -452,6 +462,23 @@ void SMESHGUI_RotationDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_RotationDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // function : onTextChange()
 // purpose  :
index 75a263154773231b4f4ab56389813972ec278796..31fdaf356b784012b5a2d256ff7d96d9b3f1c907 100644 (file)
@@ -98,6 +98,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* GroupAxis;
     QLabel* TextLabelElements;
@@ -126,12 +127,15 @@ private:
     SMESHGUI_SpinBox* SpinBox_Angle;
     QCheckBox* CheckBoxCopy;
 
+    QString myHelpFileName;
+
 private slots:
 
     void ConstructorsClicked (int constructorId);
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument();
     void SelectionIntoArgument();
     void DeactivateActiveDialog();
index c7fe08a39b05af90f9300d05e644f7c5aee3a402..46715f603a3f57a71f25233f1e2801bcdd854a90 100644 (file)
@@ -293,7 +293,7 @@ QVariant SMESHGUI_Selection::isComputable( int ind ) const
     if ( !io.IsNull() ) {
       SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO(io) ; // m,sm,gr->m
       if ( !mesh->_is_nil() ) {*/
-        _PTR(SObject) so = SMESH::GetActiveStudyDocument()->FindObjectID( entry( ind ) );
+        _PTR(SObject) so = SMESH::GetActiveStudyDocument()->FindObjectID( entry( ind ).latin1() );
        //FindSObject( mesh );
         if ( so ) {
           GEOM::GEOM_Object_var shape = SMESH::GetShapeOnMeshOrSubMesh( so );
index 1111be4075be7376fda3e9729dc30054c823391a..2616fa69f7a6f8b6636dddb83be18140808cd5d9 100644 (file)
@@ -67,11 +67,7 @@ SMESHGUI_SelectionOp::SMESHGUI_SelectionOp( const Selection_Mode mode )
 //=================================================================================
 SMESHGUI_SelectionOp::~SMESHGUI_SelectionOp()
 {
-  Filters::const_iterator anIt = myFilters.begin(),
-                          aLast = myFilters.end();
-  for( ; anIt!=aLast; anIt++ )
-    if( anIt.data() )
-      delete anIt.data();
+  removeCustomFilters();
 }
 
 //=================================================================================
@@ -80,6 +76,9 @@ SMESHGUI_SelectionOp::~SMESHGUI_SelectionOp()
 //=================================================================================
 void SMESHGUI_SelectionOp::startOperation()
 {
+  myOldSelectionMode = selectionMode();
+  setSelectionMode( myDefSelectionMode );
+
   SMESHGUI_Operation::startOperation();
   if( dlg() )
   {
@@ -90,26 +89,27 @@ void SMESHGUI_SelectionOp::startOperation()
     connect( dlg(), SIGNAL( objectDeactivated( int ) ), this, SLOT( onDeactivateObject( int ) ) );
     connect( dlg(), SIGNAL( selectionChanged( int ) ), this, SLOT( onSelectionChanged( int ) ) );
   }
-
-  myOldSelectionMode = selectionMode();
-  setSelectionMode( myDefSelectionMode );
 }
 
 //=================================================================================
 // name     : removeCustomFilters
 // purpose  :
 //=================================================================================
-void SMESHGUI_SelectionOp::removeCustomFilters() const
+void SMESHGUI_SelectionOp::removeCustomFilters()
 {
-  LightApp_SelectionMgr* mgr = selectionMgr();
-  if( !mgr )
-    return;
-    
-  Filters::const_iterator anIt = myFilters.begin(),
-                          aLast = myFilters.end();
-  for( ; anIt!=aLast; anIt++ )
-    if( anIt.data() )
-      mgr->removeFilter( anIt.data() );
+  if (myFilters.count() > 0) {
+    LightApp_SelectionMgr* mgr = selectionMgr();
+    Filters::const_iterator anIt = myFilters.begin(),
+                            aLast = myFilters.end();
+    for (; anIt != aLast; anIt++) {
+      if (anIt.data()) {
+        if (mgr) mgr->removeFilter(anIt.data());
+        delete anIt.data();
+      }
+    }
+
+    myFilters.clear();
+  }
 }
 
 //=================================================================================
@@ -118,9 +118,9 @@ void SMESHGUI_SelectionOp::removeCustomFilters() const
 //=================================================================================
 void SMESHGUI_SelectionOp::commitOperation()
 {
+  SMESHGUI_Operation::commitOperation();  
   removeCustomFilters();
   setSelectionMode( myOldSelectionMode );
-  SMESHGUI_Operation::commitOperation();  
 }
 
 //=================================================================================
@@ -129,9 +129,9 @@ void SMESHGUI_SelectionOp::commitOperation()
 //=================================================================================
 void SMESHGUI_SelectionOp::abortOperation()
 {
+  SMESHGUI_Operation::abortOperation();
   removeCustomFilters();
   setSelectionMode( myOldSelectionMode );  
-  SMESHGUI_Operation::abortOperation();
 }
 
 //=================================================================================
@@ -195,9 +195,7 @@ void SMESHGUI_SelectionOp::onActivateObject( int id )
 //=================================================================================
 void SMESHGUI_SelectionOp::onDeactivateObject( int id )
 {
-  LightApp_SelectionMgr* mgr = selectionMgr();
-  if( mgr && myFilters.contains( id ) && myFilters[ id ] )
-    mgr->removeFilter( myFilters[ id ] );
+  removeCustomFilters();
 }
 
 //=================================================================================
index bb1a05b6619340ea877b4e2271fc85ea9578035b..e2075a1bb03ffda9527222676703bacbf7a126c7 100644 (file)
@@ -90,7 +90,7 @@ protected:
   virtual SUIT_SelectionFilter* createFilter( const int ) const;
 
   //! Remove only filters set by this operation (they are in map myFilters )
-  void removeCustomFilters() const;
+  void removeCustomFilters();
 
   //! Return what selection mode is set in VTK viewer
   Selection_Mode    selectionMode() const;
index 014c89344647b5aa662a84b50dbfe915fcdf1347..30ae81d1f00bb798d62d45fbe7d8cbd03c6e6b0e 100644 (file)
 #include "SMESH_Actor.h"
 #include "SMDS_Mesh.hxx"
 
+#include "SUIT_Session.h"
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Desktop.h"
 #include "SUIT_MessageBox.h"
 
+#include "LightApp_Application.h"
+
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
 #include "SVTK_Selector.h"
@@ -141,6 +144,10 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule, const char* name,
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE"));
   buttonCancel->setAutoDefault(TRUE);
@@ -286,12 +293,15 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule, const char* name,
 
   mySMESHGUI->SetActiveDialogBox((QDialog*)this);
 
+  myHelpFileName = "/files/sewing_meshes.htm";
+
   Init();
 
   /* signals and slots connections */
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectButton1, SIGNAL (clicked()),   this, SLOT(SetEditCurrentArgument()));
@@ -601,6 +611,23 @@ void SMESHGUI_SewingDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_SewingDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 //function : onTextChange
 //purpose  :
index 425a928532ca81408375d89bacef893487fb6f0b..17920a9c85efdf4bc92df5d84f197c5fa6a65cbe 100644 (file)
@@ -94,6 +94,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* SubGroup1;
     QGroupBox* SubGroup2;
@@ -119,12 +120,15 @@ private:
     QCheckBox* CheckBoxPolygons;
     QCheckBox* CheckBoxPolyedrs;
 
+    QString myHelpFileName;
+
 private slots:
 
     void ConstructorsClicked(int constructorId);
     void ClickOnOk();
     void ClickOnCancel();
     bool ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument(bool isSelectionChanged = true) ;
     void DeactivateActiveDialog() ;
index 0a43b137caff1b5b34279f6ff7f9f489b9a262b9..33f8880c7efcdd4f0412bb52941238cceef9a62b 100644 (file)
@@ -76,28 +76,18 @@ enum { EDGE = 0, FACE, VOLUME };
  * \brief Dialog to publish a sub-shape of the mesh main shape
  *        by selecting mesh elements
  */
-SMESHGUI_ShapeByMeshDlg::SMESHGUI_ShapeByMeshDlg( SMESHGUI*   theModule,
-                                                  const char* theName)
-     : QDialog( SMESH::GetDesktop( theModule ), theName, false,
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
-     mySMESHGUI( theModule ),
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )
+SMESHGUI_ShapeByMeshDlg::SMESHGUI_ShapeByMeshDlg()
+  : SMESHGUI_Dialog( 0, false, true, OK | Close )
 {
   setCaption(tr("CAPTION"));
 
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);
+  QVBoxLayout* aDlgLay = new QVBoxLayout (mainFrame(), MARGIN, SPACING);
 
-  QFrame* aMainFrame = createMainFrame  (this);
-  QFrame* aBtnFrame  = createButtonFrame(this);
+  QFrame* aMainFrame = createMainFrame  (mainFrame());
 
   aDlgLay->addWidget(aMainFrame);
-  aDlgLay->addWidget(aBtnFrame);
 
   aDlgLay->setStretchFactor(aMainFrame, 1);
-
-  myViewWindow = SMESH::GetViewWindow( mySMESHGUI );
-
-  Init();
 }
 
 //=======================================================================
@@ -137,38 +127,9 @@ QFrame* SMESHGUI_ShapeByMeshDlg::createMainFrame (QWidget* theParent)
   aLayout->addWidget(aNameLabel,  2, 0);
   aLayout->addWidget(myGeomName,  2, 1);
 
-  connect(myElemTypeGroup, SIGNAL(clicked(int)), SLOT(onTypeChanged(int)));
-  connect(myElementId, SIGNAL(textChanged(const QString&)), SLOT(onElemIdChanged(const QString&)));
-
   return aMainGrp;
 }
 
-//=======================================================================
-// function : createButtonFrame()
-// purpose  : Create frame containing buttons
-//=======================================================================
-QFrame* SMESHGUI_ShapeByMeshDlg::createButtonFrame (QWidget* theParent)
-{
-  QFrame* aFrame = new QFrame(theParent);
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
-
-  myOkBtn    = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
-  myCloseBtn = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
-
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
-
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
-
-  aLay->addWidget(myOkBtn);
-  aLay->addItem(aSpacer);
-  aLay->addWidget(myCloseBtn);
-
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
-
-  return aFrame;
-}
-
 //=======================================================================
 // function : ~SMESHGUI_ShapeByMeshDlg()
 // purpose  : Destructor
@@ -178,33 +139,73 @@ SMESHGUI_ShapeByMeshDlg::~SMESHGUI_ShapeByMeshDlg()
   // no need to delete child widgets, Qt does it all for us
 }
 
+//================================================================================
+/*!
+ * \brief Constructor
+  * \param theToCreate - if this parameter is true then operation is used for creation,
+  * for editing otherwise
+ *
+ * Initialize operation
+*/
+//================================================================================
+SMESHGUI_ShapeByMeshOp::SMESHGUI_ShapeByMeshOp()
+{
+  if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
+    GeometryGUI::InitGeomGen();
+
+  myDlg = new SMESHGUI_ShapeByMeshDlg;
+
+  connect(myDlg->myElemTypeGroup, SIGNAL(clicked(int)), SLOT(onTypeChanged(int)));
+  connect(myDlg->myElementId, SIGNAL(textChanged(const QString&)), SLOT(onElemIdChanged(const QString&)));
+}
+
+
 //=======================================================================
-// function : Init()
+// function : startOperation()
 // purpose  : Init dialog fields, connect signals and slots, show dialog
 //=======================================================================
-void SMESHGUI_ShapeByMeshDlg::Init()
+void SMESHGUI_ShapeByMeshOp::startOperation()
 {
-  SetMesh( SMESH::SMESH_Mesh::_nil() );
+  //SetMesh( SMESH::SMESH_Mesh::_nil() );
   myIsManualIdEnter = false;
 
-  //erasePreview();
+  SMESHGUI_SelectionOp::startOperation();
 
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+  //activateSelection(); // set filters
+  onSelectionDone(); // desable/enable [ OK ]
 
-  // selection and SMESHGUI
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
+  myDlg->show();
+}
 
-  setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
-  qApp->processEvents();
-  updateGeometry();
-  adjustSize();
-  resize(minimumSize());
+//================================================================================
+/*!
+ * \brief Destructor
+*/
+//================================================================================
+SMESHGUI_ShapeByMeshOp::~SMESHGUI_ShapeByMeshOp()
+{
+  if ( myDlg )
+    delete myDlg;
+}
 
-  activateSelection();
-  onSelectionDone();
-  
-  this->show();
+//================================================================================
+/*!
+ * \brief Gets dialog of this operation
+  * \retval LightApp_Dialog* - pointer to dialog of this operation
+*/
+//================================================================================
+LightApp_Dialog* SMESHGUI_ShapeByMeshOp::dlg() const
+{
+  return myDlg;
+}
+
+//=======================================================================
+// function : GetShape()
+// purpose  : Get published sub-shape
+//=======================================================================
+GEOM::GEOM_Object_ptr SMESHGUI_ShapeByMeshOp::GetShape()
+{
+  return myGeomObj.in();
 }
 
 //=======================================================================
@@ -212,28 +213,26 @@ void SMESHGUI_ShapeByMeshDlg::Init()
 // purpose  : Set mesh to dialog
 //=======================================================================
 
-void SMESHGUI_ShapeByMeshDlg::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)
+void SMESHGUI_ShapeByMeshOp::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)
 {
   myMesh    = SMESH::SMESH_Mesh::_duplicate(thePtr);
   myGeomObj = GEOM::GEOM_Object::_nil();
   myHasSolids = false;
 
-  vector< bool > hasElement (myElemTypeGroup->count(), false);
-  if (!myMesh->_is_nil() && myViewWindow )
+  vector< bool > hasElement (myDlg->myElemTypeGroup->count(), false);
+  if (!myMesh->_is_nil() )
   {
-    _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());
-    SUIT_DataOwnerPtr anIObj (new LightApp_DataOwner(aSobj->GetID().c_str()));
+//     _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());
+//     SUIT_DataOwnerPtr anIObj (new LightApp_DataOwner(aSobj->GetID().c_str()));
 
     vector< int > nbShapes( TopAbs_SHAPE, 0 );
     int shapeDim = 0; // max dim with several shapes
-    if ( mySelectionMgr->isOk(anIObj) ) // check that the mesh has a valid shape
+    //if ( /*mySelectionMgr*/ selectionMgr()->isOk(anIObj) ) // check that the mesh has a valid shape
     {
       _PTR(SObject) aSO = SMESH::FindSObject(myMesh.in());
       GEOM::GEOM_Object_var mainShape = SMESH::GetGeom(aSO);
       if ( !mainShape->_is_nil() ) 
       {
-        if ( GeometryGUI::GetGeomGen()->_is_nil() )// check that GEOM_Gen exists
-          GeometryGUI::InitGeomGen();
         TopoDS_Shape aShape;
         if ( GEOMBase::GetShape(mainShape, aShape))
         {
@@ -259,86 +258,54 @@ void SMESHGUI_ShapeByMeshDlg::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)
       hasElement[ EDGE ]   = shapeDim > 0 && myMesh->NbEdges()  ;
       hasElement[ FACE ]   = shapeDim > 1 && myMesh->NbFaces()  ;
       hasElement[ VOLUME ] = shapeDim > 2 && myMesh->NbVolumes();
-
-      if ( hasElement[ EDGE ] && myViewWindow->GetSelector() )
-      {
-        connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-      }
     }
     myHasSolids = nbShapes[ TopAbs_SOLID ];
   }
 
   // disable inexistant elem types
-  for ( int i = 0; i < myElemTypeGroup->count(); ++i ) {
-    if ( QButton* button = myElemTypeGroup->find( i ) )
+  for ( int i = 0; i < myDlg->myElemTypeGroup->count(); ++i ) {
+    if ( QButton* button = myDlg->myElemTypeGroup->find( i ) )
       button->setEnabled( hasElement[ i ] );
   }
-  myElementId->setEnabled( hasElement[ EDGE ] );
-  myGeomName-> setEnabled( hasElement[ EDGE ] );
+  myDlg->myElementId->setEnabled( hasElement[ EDGE ] );
+  myDlg->myGeomName-> setEnabled( hasElement[ EDGE ] );
 
   setElementID("");
 }
 
 //=======================================================================
-// function : GetShape()
-// purpose  : Get published sub-shape
+// function : commitOperation()
+// purpose  : called when "Ok" button pressed.
 //=======================================================================
-GEOM::GEOM_Object_ptr SMESHGUI_ShapeByMeshDlg::GetShape()
-{
-  return myGeomObj.in();
-}
 
-//=======================================================================
-// function : onOk()
-// purpose  : SLOT called when "Ok" button pressed.
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onOk()
+void SMESHGUI_ShapeByMeshOp::commitOperation()
 {
+  SMESHGUI_SelectionOp::commitOperation();
   try {
-    int elemID = myElementId->text().toInt();
+    int elemID = myDlg->myElementId->text().toInt();
     myGeomObj = SMESHGUI::GetSMESHGen()->GetGeometryByMeshElement
-      ( myMesh.in(), elemID, myGeomName->text().latin1());
-
-    accept();
-    emit PublishShape();
+      ( myMesh.in(), elemID, myDlg->myGeomName->text().latin1());
   }
   catch (const SALOME::SALOME_Exception& S_ex) {
     SalomeApp_Tools::QtCatchCorbaException(S_ex);
   }
   catch (...) {
   }
-  myViewWindow->SetSelectionMode( ActorSelection );
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-}
 
-//=======================================================================
-// function : onClose()
-// purpose  : SLOT called when "Close" button pressed. Close dialog
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onClose()
-{
-  myViewWindow->SetSelectionMode( ActorSelection );
-  disconnect(mySelectionMgr, 0, this, 0);
-  disconnect(mySMESHGUI, 0, this, 0);
-  mySMESHGUI->ResetState();
-  reject();
-  emit Close();
 }
 
 //=======================================================================
 // function : onSelectionDone()
-// purpose  : SLOT called when selection changed
+// purpose  : SLOT called when selection changed. Enable/desable [ OK ]
 //=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onSelectionDone()
+void SMESHGUI_ShapeByMeshOp::onSelectionDone()
 {
-  myOkBtn->setEnabled( false );
+  myDlg->setButtonEnabled( false, QtxDialog::OK );
   setElementID("");
 
   try {
     SALOME_ListIO aList;
-    mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());
+    selectionMgr()->selectedObjects(aList, SVTK_Viewer::Type());
     if (aList.Extent() != 1)
       return;
 
@@ -347,82 +314,42 @@ void SMESHGUI_ShapeByMeshDlg::onSelectionDone()
       return;
 
     QString aString;
-    int nbElems = SMESH::GetNameOfSelectedElements(myViewWindow->GetSelector(),
+    int nbElems = SMESH::GetNameOfSelectedElements(selector(),//myViewWindow->GetSelector(),
                                                    aList.First(), aString);
     if ( nbElems == 1 ) {
       setElementID( aString );
-      myOkBtn->setEnabled( true );
+      myDlg->setButtonEnabled( true, QtxDialog::OK );
     }
   } catch (...) {
   }
 }
 
-//=======================================================================
-// function : onDeactivate()
-// purpose  : SLOT called when dialog must be deativated
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::onDeactivate()
-{
-  if ( isEnabled() ) {
-    //disconnect(mySelectionMgr, 0, this, 0);
-    myViewWindow->SetSelectionMode( ActorSelection );
-    setEnabled(false);
-  }
-}
-
-//=======================================================================
-// function : enterEvent()
-// purpose  : Event filter
-//=======================================================================
-void SMESHGUI_ShapeByMeshDlg::enterEvent (QEvent*)
-{
-  // there is a stange problem that enterEvent() comes after onSave()
-  if ( isVisible () && !isEnabled() ) {
-    mySMESHGUI->EmitSignalDeactivateDialog();
-    setEnabled(true);
-    activateSelection();
-    //connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
-  }
-}
-
-//=================================================================================
-// function : closeEvent()
-// purpose  : Close dialog box
-//=================================================================================
-void SMESHGUI_ShapeByMeshDlg::closeEvent (QCloseEvent*)
-{
-  onClose();
-}
-
 //=======================================================================
 // function : activateSelection()
 // purpose  : Activate selection in accordance with current pattern type
 //=======================================================================
-void SMESHGUI_ShapeByMeshDlg::activateSelection()
+void SMESHGUI_ShapeByMeshOp::activateSelection()
 {
-  mySelectionMgr->clearFilters();
-  SMESH::SetPointRepresentation(false);
-
-  myGeomName->setText("");
-
-  if ( myViewWindow )
-  {
-    QString geomName;
-    Selection_Mode mode = EdgeSelection;
-    switch ( myElemTypeGroup->id( myElemTypeGroup->selected() )) {
-    case EDGE  :
-      mode = EdgeSelection;   geomName = tr("GEOM_EDGE"); break;
-    case FACE  :
-      mode = FaceSelection;   geomName = tr("GEOM_FACE"); break;
-    case VOLUME:
-      mode = VolumeSelection; geomName = tr(myHasSolids ? "GEOM_SOLID" : "GEOM_SHELL"); break;
-    default: return;
-    }
-    if ( myViewWindow->SelectionMode() != mode )
-      myViewWindow->SetSelectionMode( mode );
-
-    myGeomName->setText( GEOMBase::GetDefaultName( geomName ));
+  selectionMgr()->clearFilters();
+  //SMESH::SetPointRepresentation(false);
+
+  myDlg->myGeomName->setText("");
+
+  QString geomName;
+  Selection_Mode mode = EdgeSelection;
+  switch ( myDlg->myElemTypeGroup->id( myDlg->myElemTypeGroup->selected() )) {
+  case EDGE  :
+    mode = EdgeSelection;   geomName = tr("GEOM_EDGE"); break;
+  case FACE  :
+    mode = FaceSelection;   geomName = tr("GEOM_FACE"); break;
+  case VOLUME:
+    mode = VolumeSelection; geomName = tr(myHasSolids ? "GEOM_SOLID" : "GEOM_SHELL"); break;
+  default: return;
   }
+  if ( selectionMode() != mode )
+    setSelectionMode( mode );
+
+  myDlg->myGeomName->setText( GEOMBase::GetDefaultName( geomName ));
 }
 
 //=======================================================================
@@ -430,7 +357,7 @@ void SMESHGUI_ShapeByMeshDlg::activateSelection()
 //purpose  : SLOT. Called when element type changed.
 //=======================================================================
 
-void SMESHGUI_ShapeByMeshDlg::onTypeChanged (int theType)
+void SMESHGUI_ShapeByMeshOp::onTypeChanged (int theType)
 {
   setElementID("");
   activateSelection();
@@ -442,16 +369,16 @@ void SMESHGUI_ShapeByMeshDlg::onTypeChanged (int theType)
 //           Highlight the element whose Ids the user entered manually
 //=======================================================================
 
-void SMESHGUI_ShapeByMeshDlg::onElemIdChanged(const QString& theNewText)
+void SMESHGUI_ShapeByMeshOp::onElemIdChanged(const QString& theNewText)
 {
-  myOkBtn->setEnabled( false );
+  myDlg->setButtonEnabled( false, QtxDialog::OK );
 
-  if ( myIsManualIdEnter && !myMesh->_is_nil() && myViewWindow )
+  if ( myIsManualIdEnter && !myMesh->_is_nil() )
     if ( SMESH_Actor* actor = SMESH::FindActorByObject(myMesh) )
       if ( SMDS_Mesh* aMesh = actor->GetObject()->GetMesh() )
       {
         SMDSAbs_ElementType type = SMDSAbs_Edge;
-        switch ( myElemTypeGroup->id( myElemTypeGroup->selected() )) {
+        switch ( myDlg->myElemTypeGroup->id( myDlg->myElemTypeGroup->selected() )) {
         case EDGE  : type = SMDSAbs_Edge;   break;
         case FACE  : type = SMDSAbs_Face;   break;
         case VOLUME: type = SMDSAbs_Volume; break;
@@ -466,10 +393,10 @@ void SMESHGUI_ShapeByMeshDlg::onElemIdChanged(const QString& theNewText)
         }
 
         if ( !newIndices.IsEmpty() && newIndices.Extent() == 1 )
-          if ( SVTK_Selector* s = myViewWindow->GetSelector() ) {
+          if ( SVTK_Selector* s = selector() ) {
             s->AddOrRemoveIndex( actor->getIO(), newIndices, false );
-            myViewWindow->highlight( actor->getIO(), true, true );
-            myOkBtn->setEnabled( true );
+            viewWindow()->highlight( actor->getIO(), true, true );
+            myDlg->setButtonEnabled( true, QtxDialog::OK );
           }
       }
 }
@@ -479,9 +406,9 @@ void SMESHGUI_ShapeByMeshDlg::onElemIdChanged(const QString& theNewText)
 //purpose  : programmatically set element id
 //=======================================================================
 
-void SMESHGUI_ShapeByMeshDlg::setElementID(const QString& theText)
+void SMESHGUI_ShapeByMeshOp::setElementID(const QString& theText)
 {
   myIsManualIdEnter = false;
-  myElementId->setText(theText);
+  myDlg->myElementId->setText(theText);
   myIsManualIdEnter = true;
 }
index 1f1a50c6e63174ba1082f4890693f9de520400ed..b90d006e466a44f84fbe9f493fe53ef73d3d6aae 100644 (file)
@@ -27,7 +27,8 @@
 #ifndef SMESHGUI_ShapeByMeshDlg_H
 #define SMESHGUI_ShapeByMeshDlg_H
 
-#include <qdialog.h>
+#include "SMESHGUI_Dialog.h"
+#include "SMESHGUI_SelectionOp.h"
 
 // IDL Headers
 #include <SALOMEconfig.h>
@@ -48,36 +49,88 @@ class SMESHGUI;
  *        by selecting mesh elements
  */
 
-class SMESHGUI_ShapeByMeshDlg : public QDialog
+class SMESHGUI_ShapeByMeshDlg : public SMESHGUI_Dialog
 {
   Q_OBJECT
 
 public:
-                           SMESHGUI_ShapeByMeshDlg( SMESHGUI*   theModule,
-                                                    const char* theName = 0);
+                           SMESHGUI_ShapeByMeshDlg();
   virtual                  ~SMESHGUI_ShapeByMeshDlg();
 
+private:
+
+//   void                     closeEvent (QCloseEvent* e);
+//   void                     enterEvent (QEvent*);
+
+private:
+
+  //QFrame*                  createButtonFrame (QWidget*);
+  QFrame*                  createMainFrame   (QWidget*);
+  //void                     displayPreview();
+  //void                     erasePreview();
+private:
+
+  QButtonGroup*            myElemTypeGroup;
+  QLineEdit*               myElementId;
+  QLineEdit*               myGeomName;
+
+//   QPushButton*             myOkBtn;
+//   QPushButton*             myCloseBtn;
+
+//   SMESHGUI*                mySMESHGUI;
+//   LightApp_SelectionMgr*   mySelectionMgr;
+//   SVTK_ViewWindow*         myViewWindow;
+
+  friend class SMESHGUI_ShapeByMeshOp;
+};
+
+class SMESHGUI_ShapeByMeshOp: public SMESHGUI_SelectionOp
+{
+  Q_OBJECT
+
+public:
+  SMESHGUI_ShapeByMeshOp();
+  virtual ~SMESHGUI_ShapeByMeshOp();
+
+  virtual LightApp_Dialog*       dlg() const;  
+
   void                     Init();
   void                     SetMesh (SMESH::SMESH_Mesh_ptr);
   SMESH::SMESH_Mesh_ptr    GetMesh () { return myMesh; }
   GEOM::GEOM_Object_ptr    GetShape();
 
-signals:
+protected:
 
-  void                     PublishShape();
-  void                     Close();
+  virtual void                   commitOperation();
+  virtual void                   startOperation();
+  //virtual void                   selectionDone();
+  //virtual SUIT_SelectionFilter*  createFilter( const int ) const;
+  //virtual bool                   isValid( SUIT_Operation* ) const;
 
-private:
+  void                     activateSelection();
+  void                     setElementID(const QString&);
+
+/* signals: */
 
-  void                     closeEvent (QCloseEvent* e);
-  void                     enterEvent (QEvent*);
+/*   void                     PublishShape(); */
+/*   void                     Close(); */
+
+protected slots:
+
+  virtual bool                   onApply() { return true; }
+/*   void                           onCreateHyp( const int theHypType, const int theIndex ); */
+/*   void                           onEditHyp( const int theHypType, const int theIndex ); */
+/*   void                           onHypoSet( const QString& theSetName ); */
+/*   void                           onGeomSelectionByMesh( bool ); */
+/*   void                           onPublishShapeByMeshDlg(); */
+/*   void                           onCloseShapeByMeshDlg(); */
 
 private slots:
 
-  void                     onOk();
-  void                     onClose();
+//   void                     onOk();
+//   void                     onClose();
 
-  void                     onDeactivate();
+//   void                     onDeactivate();
 
   void                     onSelectionDone();
   void                     onTypeChanged (int);
@@ -85,26 +138,7 @@ private slots:
 
 private:
 
-  QFrame*                  createButtonFrame (QWidget*);
-  QFrame*                  createMainFrame   (QWidget*);
-  //void                     displayPreview();
-  //void                     erasePreview();
-  void                     activateSelection();
-  void                     setElementID(const QString&);
-
-private:
-
-  QButtonGroup*            myElemTypeGroup;
-  QLineEdit*               myElementId;
-  QLineEdit*               myGeomName;
-
-  QPushButton*             myOkBtn;
-  QPushButton*             myCloseBtn;
-
-  SMESHGUI*                mySMESHGUI;
-  LightApp_SelectionMgr*   mySelectionMgr;
-  SVTK_ViewWindow*         myViewWindow;
-
+  SMESHGUI_ShapeByMeshDlg* myDlg;
   SMESH::SMESH_Mesh_var    myMesh;
   GEOM::GEOM_Object_var    myGeomObj;
 
index 3cf3f2b2f7b0b5294efbd74ce52e208bb236f7c7..26760c33357a8fc8c26882e3648ef130d161903b 100755 (executable)
 #include "SMDS_Mesh.hxx"
 
 #include "LightApp_SelectionMgr.h"
+#include "LightApp_Application.h"
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_MessageBox.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
 
 #include "SVTK_Selector.h"
 #include "SVTK_ViewWindow.h"
@@ -158,6 +160,7 @@ QFrame* SMESHGUI_SingleEditDlg::createButtonFrame (QWidget* theParent)
   myOkBtn     = new QPushButton(tr("SMESH_BUT_OK"   ), aFrame);
   myApplyBtn  = new QPushButton(tr("SMESH_BUT_APPLY"), aFrame);
   myCloseBtn  = new QPushButton(tr("SMESH_BUT_CLOSE"), aFrame);
+  myHelpBtn   = new QPushButton (tr("SMESH_BUT_HELP"), aFrame);
 
   QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
 
@@ -167,6 +170,7 @@ QFrame* SMESHGUI_SingleEditDlg::createButtonFrame (QWidget* theParent)
   aLay->addWidget(myApplyBtn);
   aLay->addItem(aSpacer);
   aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
 
   return aFrame;
 }
@@ -222,6 +226,7 @@ void SMESHGUI_SingleEditDlg::Init()
   connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
   connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
   connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
+  connect(myHelpBtn,  SIGNAL(clicked()), SLOT(onHelp()));
 
   // selection and SMESHGUI
   connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
@@ -268,6 +273,23 @@ void SMESHGUI_SingleEditDlg::onClose()
   reject();
 }
 
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_SingleEditDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 //function : findTriangles()
 //purpose  : find triangles sharing theNode1-theNode2 link
@@ -525,6 +547,7 @@ SMESHGUI_TrianglesInversionDlg
 : SMESHGUI_SingleEditDlg(theModule,theName)
 {
   setCaption(tr("CAPTION"));
+  myHelpFileName = "/files/diagonal_iversion_of_elements.htm";
 }
 
 SMESHGUI_TrianglesInversionDlg::~SMESHGUI_TrianglesInversionDlg()
@@ -549,6 +572,7 @@ SMESHGUI_UnionOfTwoTrianglesDlg
 : SMESHGUI_SingleEditDlg(theModule,theName)
 {
   setCaption(tr("CAPTION"));
+  myHelpFileName = "/files/uniting_two_triangles.htm";
 }
 
 SMESHGUI_UnionOfTwoTrianglesDlg::~SMESHGUI_UnionOfTwoTrianglesDlg()
index 6a1ddc7d275890585b112ac9f3791dea2cd24b2f..5dc56580288c5cf0e3c832adb0c4a014b1df08dc 100755 (executable)
@@ -64,6 +64,7 @@ protected slots:
   void                    onOk();
   virtual bool            onApply();
   void                    onClose();
+  void                    onHelp();
 
   void                    onDeactivate();
 
@@ -85,12 +86,15 @@ protected:
   QPushButton*            myOkBtn;
   QPushButton*            myApplyBtn;
   QPushButton*            myCloseBtn;
+  QPushButton*            myHelpBtn;
   QLineEdit*              myEdge;
   SMESH_Actor*            myActor;
 
   LightApp_SelectionMgr*  mySelectionMgr;
   SVTK_Selector*          mySelector;
   SMESHGUI*               mySMESHGUI;
+  
+  QString                 myHelpFileName;
 };
 
 /*!
index 1b875806bf70e2d9bcfa5b99d109953d68c5821f..52a1632d771d461896172a993880d32e3865b1da 100644 (file)
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_OverrideCursor.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_Session.h"
 #include "SUIT_MessageBox.h"
 
+#include "LightApp_Application.h"
+
 #include "SVTK_ViewModel.h"
 #include "SVTK_Selector.h"
 #include "SVTK_ViewWindow.h"
@@ -138,6 +141,10 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule, const char* n
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -267,6 +274,8 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule, const char* n
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
+  myHelpFileName = "/files/smoothing.htm";
+
   Init();
 
   /***************************************************************/
@@ -274,6 +283,7 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule, const char* n
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
@@ -427,6 +437,23 @@ void SMESHGUI_SmoothingDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_SmoothingDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // function : onTextChange()
 // purpose  :
index 5cccb1b223fff9357bd06ca35d704e6b71ec9da1..34a2b66eb76888979ab8233dc6c97095c7a95134 100644 (file)
@@ -100,6 +100,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QLabel* TextLabelElements;
     QPushButton* SelectElementsButton;
@@ -115,6 +116,8 @@ private:
     QLabel* TextLabelAspectRatio;
     SMESHGUI_SpinBox* SpinBox_AspectRatio;
     QCheckBox       * CheckBoxParametric;
+
+    QString myHelpFileName;
     
 private slots:
 
@@ -122,6 +125,7 @@ private slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 02c5c042f7b295c188ace1460b4cbb07b7d82314..edcb80f952441ddb43cf4dd84a16106fcdd06b48 100644 (file)
@@ -41,6 +41,9 @@
 #include "SUIT_Desktop.h"
 #include "SUIT_Session.h"
 #include "SUIT_OverrideCursor.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "LightApp_SelectionMgr.h"
 #include "SALOME_ListIO.hxx"
@@ -144,12 +147,15 @@ SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg( SMESHGUI* theModul
   myButtonsGroupLayout->setAlignment(Qt::AlignTop);
   myButtonsGroupLayout->setSpacing(6); myButtonsGroupLayout->setMargin(11);
 
-  // buttons --> OK button
+  // buttons --> OK and Help buttons
   myOkBtn = new QPushButton(tr("SMESH_BUT_OK" ), myButtonsGroup, "myOkBtn");
   myOkBtn->setAutoDefault(TRUE); myOkBtn->setDefault(TRUE);
-  myButtonsGroupLayout->addStretch();
+  myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP" ), myButtonsGroup, "myHelpBtn");
+  myHelpBtn->setAutoDefault(TRUE);
+
   myButtonsGroupLayout->addWidget(myOkBtn);
   myButtonsGroupLayout->addStretch();
+  myButtonsGroupLayout->addWidget(myHelpBtn);
 
   aDlgLayout->addWidget(myButtonsGroup, 2, 0);
 
@@ -157,6 +163,7 @@ SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg( SMESHGUI* theModul
 
   // connect signals
   connect( myOkBtn,         SIGNAL(clicked()),                      this, SLOT(close()));
+  connect( myHelpBtn,       SIGNAL(clicked()),                      this, SLOT(onHelp()));
   connect( mySelectBtn,     SIGNAL(clicked()),                      this, SLOT(onStartSelection()));
   connect( mySMESHGUI,      SIGNAL(SignalCloseAllDialogs()),        this, SLOT(close()));
   connect( mySMESHGUI,      SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
@@ -170,6 +177,8 @@ SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg( SMESHGUI* theModul
   myMeshFilter = new SMESH_TypeFilter (MESH);
   mySelectionMgr->installFilter(myMeshFilter);
   onSelectionChanged();
+
+  myHelpFileName = "/files/viewing_mesh_info.htm#standard_infos";
 }
 
 //=================================================================================
@@ -441,3 +450,20 @@ void SMESHGUI_StandardMeshInfosDlg::onStartSelection()
   onSelectionChanged();
   myStartSelection = true;
 }
+
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_StandardMeshInfosDlg::onHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
index 28a6dfbc71eb40808fd7433223df8514f4b7a1c7..b93b35a6a6739cf3fdf13940216bbd549b380eaa 100644 (file)
@@ -62,6 +62,7 @@ private slots:
     void DeactivateActiveDialog() ;
     void ActivateThisDialog();
     void onStartSelection();
+    void onHelp();
 
 private:
     SMESHGUI*                mySMESHGUI;
@@ -83,6 +84,9 @@ private:
     
     QGroupBox*    myButtonsGroup;
     QPushButton*  myOkBtn;
+    QPushButton*  myHelpBtn;
+    
+    QString       myHelpFileName;
 };
 
 #endif // SMESHGUI_STANDARDMESHINFOSDLG_H
index d8a0805e3da46398c16a278d572ded7f16cc79a3..1304bb5d26431fa838bc01430cd0245341d8dcdf 100644 (file)
@@ -26,7 +26,6 @@
 //  Module : SMESH
 //  $Header$
 
-using namespace std;
 #include "SMESHGUI_Swig.hxx"
 
 #include "Utils_ORB_INIT.hxx"
@@ -40,9 +39,10 @@ using namespace std;
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_Session.h"
 
-#include "SALOMEDS_SObject.hxx"
-
+#include "SALOME_Event.hxx"
+#include "SALOME_NamingService.hxx"
 #include "SalomeApp_Application.h"
+#include "SALOMEDSClient_ClientFactory.hxx"
 
 #include "utilities.h"
 
@@ -55,384 +55,524 @@ using namespace std;
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 #include CORBA_SERVER_HEADER(SMESH_Hypothesis)
 
-static CORBA::ORB_var _orb;
+using namespace std;
 
-static CORBA::Object_ptr StringToObject (const char* ior)
-{
-  return _orb->string_to_object(ior);
-}
+static CORBA::ORB_var anORB;
 
-SMESH_Swig::SMESH_Swig()
-{
-  MESSAGE("Constructeur");
-  setOrb();
-}
+// Tags definition 
+static long Tag_HypothesisRoot = 1;
+static long Tag_AlgorithmsRoot = 2;
+  
+static long Tag_RefOnShape = 1;
+static long Tag_RefOnAppliedHypothesis = 2;
+static long Tag_RefOnAppliedAlgorithms = 3;
+
+static long Tag_SubMeshOnVertex = 4;
+static long Tag_SubMeshOnEdge = 5;
+static long Tag_SubMeshOnFace = 6;
+static long Tag_SubMeshOnSolid = 7;
+static long Tag_SubMeshOnCompound  = 8;
 
-void SMESH_Swig::Init(int studyID)
+namespace
 {
-  MESSAGE("Init");
-  SMESH::SMESH_Gen_var CompMesh = SMESHGUI::GetSMESHGen();
-  GEOM::GEOM_Gen_var CompGeom = SMESH::GetGEOMGen();
-
-  SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
-  if ( resMgr ) {
-    resMgr->loadLanguage( QString::null, "en" );
-    /*QString msg;
-    if (!resMgr->loadResources( "SMESH", msg ))
-      MESSAGE ( msg )*/
+  //---------------------------------------------------------------
+  inline
+  CORBA::Object_var
+  StringToObject(const std::string& theIOR)
+  {
+    return anORB->string_to_object(theIOR.c_str());
   }
 
-  SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( SUIT_Session::session()->activeApplication() );
-  if( !app )
-    return;
 
-  CORBA::Object_var obj = app->namingService()->Resolve("/myStudyManager");
-  SALOMEDS::StudyManager_var myStudyMgr = SALOMEDS::StudyManager::_narrow(obj);
-  myStudy = myStudyMgr->GetStudyByID(studyID);
+  //---------------------------------------------------------------
+  inline
+  SALOMEDS::SObject_var
+  GetDomainRoot(const SALOMEDS::SComponent_var& theSComponentMesh,
+               const SALOMEDS::StudyBuilder_var& theStudyBuilder,
+               CORBA::Long theDomainRootTag,
+               const QString& theName,
+               const QString& thePixmap)
+  {
+    SALOMEDS::SObject_var aDomainRoot;
+    if (!theSComponentMesh->FindSubObject(theDomainRootTag,aDomainRoot)) {
+      aDomainRoot = theStudyBuilder->NewObjectToTag(theSComponentMesh,theDomainRootTag);
+      SALOMEDS::GenericAttribute_var anAttr = theStudyBuilder->FindOrCreateAttribute(aDomainRoot,"AttributeName");
+      SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
+      aName->SetValue(theName.latin1());
+      anAttr = theStudyBuilder->FindOrCreateAttribute(aDomainRoot,"AttributePixMap");
+      SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+      aPixmap->SetPixMap(thePixmap.latin1());
+      anAttr = theStudyBuilder->FindOrCreateAttribute(aDomainRoot,"AttributeSelectable");
+      SALOMEDS::AttributeSelectable_var aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+      aSelAttr->SetSelectable(false);
+    }
 
-  CompMesh->SetCurrentStudy( myStudy.in() ); 
+    return aDomainRoot;
+  }
 
-  myStudyBuilder = myStudy->NewBuilder();
-  SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributeName_var    aName;
-  SALOMEDS::AttributePixMap_var  aPixmap;
 
-  // See return value of SMESH::SMESH_Gen::ComponentDataType()
-  SALOMEDS::SComponent_var father = myStudy->FindComponent("SMESH");
+  //---------------------------------------------------------------
+  inline
+  SALOMEDS::SObject_var
+  GetHypothesisRoot(const SALOMEDS::SComponent_var& theSComponentMesh,
+                   const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+  {
+    return GetDomainRoot(theSComponentMesh,
+                        theStudyBuilder,
+                        Tag_HypothesisRoot,
+                        QObject::tr("SMESH_MEN_HYPOTHESIS"),
+                        "ICON_SMESH_TREE_HYPO");
+  }
+  
 
-  if (father->_is_nil()) {
-    bool aLocked = myStudy->GetProperties()->IsLocked();
-    if (aLocked) myStudy->GetProperties()->SetLocked(false);
-    father = myStudyBuilder->NewComponent("SMESH");
-    anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    //NRI    aName->SetValue(QObject::tr("SMESH_MEN_COMPONENT"));
-    SMESHGUI* gui = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
-    if(!gui) {
-      SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>(SUIT_Session::session()->activeApplication()); 
-      if(app) {
-        CAM_Module* module = app->module( "Mesh" );
-       if(!module) module = app->loadModule("Mesh");
-       gui = dynamic_cast<SMESHGUI*>( module ); 
-      }
-      else {
-        MESSAGE("Can't find the application");
+  //---------------------------------------------------------------
+  inline
+  SALOMEDS::SObject_var
+  GetAlgorithmsRoot(const SALOMEDS::SComponent_var& theSComponentMesh,
+                   const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+  {
+    return GetDomainRoot(theSComponentMesh,
+                        theStudyBuilder,
+                        Tag_AlgorithmsRoot,
+                        QObject::tr("SMESH_MEN_ALGORITHMS"),
+                        "ICON_SMESH_TREE_ALGO");
+  }
+
+
+  //---------------------------------------------------------------
+  inline
+  SALOMEDS::SObject_var
+  AddToDomain(const std::string& theIOR,
+             const SALOMEDS::SComponent_var& theSComponentMesh,
+             const SALOMEDS::StudyBuilder_var& theStudyBuilder,
+             CORBA::Long theDomainRootTag,
+             const QString& theDomainName,
+             const QString& theDomainPixmap)
+  {
+    SALOMEDS::SObject_var aDomain = GetDomainRoot(theSComponentMesh,
+                                                 theStudyBuilder,
+                                                 Tag_AlgorithmsRoot,
+                                                 theDomainName,
+                                                 theDomainPixmap);
+    // Add New Hypothesis
+    SALOMEDS::SObject_var aSObject = theStudyBuilder->NewObject(aDomain);
+    SALOMEDS::GenericAttribute_var anAttr = theStudyBuilder->FindOrCreateAttribute(aSObject,"AttributePixMap");
+    SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+    CORBA::Object_var anObject = StringToObject(theIOR);
+    SMESH::SMESH_Hypothesis_var aDomainItem = SMESH::SMESH_Hypothesis::_narrow(anObject.in());
+    CORBA::String_var aType = aDomainItem->GetName();
+    QString aPixmapName = theDomainPixmap + "_" + aType.in();
+    aPixmap->SetPixMap(aPixmapName.latin1());
+    anAttr = theStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeIOR");
+    SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+    anIOR->SetValue(theIOR.c_str());
+    
+    return aSObject;
+  }
+
+
+  //---------------------------------------------------------------
+  SALOMEDS::SObject_var
+  AddHypothesis(const std::string& theIOR,
+               const SALOMEDS::SComponent_var& theSComponentMesh,
+               const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+  {
+    return AddToDomain(theIOR,
+                      theSComponentMesh,
+                      theStudyBuilder,
+                      Tag_HypothesisRoot,
+                      QObject::tr("SMESH_MEN_HYPOTHESIS"),
+                      "ICON_SMESH_TREE_HYPO");
+  }
+
+
+  //---------------------------------------------------------------
+  SALOMEDS::SObject_var
+  AddAlgorithms(const std::string& theIOR,
+               const SALOMEDS::SComponent_var& theSComponentMesh,
+               const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+  {
+    return AddToDomain(theIOR,
+                      theSComponentMesh,
+                      theStudyBuilder,
+                      Tag_AlgorithmsRoot,
+                      QObject::tr("SMESH_MEN_ALGORITHMS"),
+                      "ICON_SMESH_TREE_ALGO");
+  }
+
+
+  //---------------------------------------------------------------
+  void
+  SetDomain(const char* theMeshOrSubMeshEntry, 
+           const char* theDomainEntry,
+           const SALOMEDS::Study_var& theStudy,
+           const SALOMEDS::StudyBuilder_var& theStudyBuilder,
+           long theRefOnAppliedDomainTag,
+           const QString& theAppliedDomainMEN,
+           const QString& theAppliedDomainICON)
+  {
+    SALOMEDS::SObject_var aMeshOrSubMeshSO = theStudy->FindObjectID(theMeshOrSubMeshEntry);
+    SALOMEDS::SObject_var aHypothesisSO = theStudy->FindObjectID(theDomainEntry);
+
+    if(!aMeshOrSubMeshSO->_is_nil() && !aHypothesisSO->_is_nil()){
+      //Find or Create Applied Hypothesis root
+      SALOMEDS::SObject_var anAppliedDomainSO;
+      if(!aMeshOrSubMeshSO->FindSubObject(theRefOnAppliedDomainTag,anAppliedDomainSO)){
+       anAppliedDomainSO = theStudyBuilder->NewObjectToTag(aMeshOrSubMeshSO,theRefOnAppliedDomainTag);
+       SALOMEDS::GenericAttribute_var anAttr = 
+         theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributeName");
+       SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
+       aName->SetValue(theAppliedDomainMEN.latin1());
+       anAttr = theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributeSelectable");
+       SALOMEDS::AttributeSelectable_var aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+       aSelAttr->SetSelectable(false);
+       anAttr = theStudyBuilder->FindOrCreateAttribute(anAppliedDomainSO,"AttributePixMap");
+       SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+       aPixmap->SetPixMap(theAppliedDomainICON.latin1());
       }
-    }  //SRN: BugID IPAL9186: end of a fix
-    aName->SetValue( gui->moduleName() );
-    anAttr = myStudyBuilder->FindOrCreateAttribute(father, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
-    myStudyBuilder->DefineComponentInstance(father, CompMesh );
-    if (aLocked) myStudy->GetProperties()->SetLocked(true);
+      SALOMEDS::SObject_var aSObject = theStudyBuilder->NewObject(anAppliedDomainSO);
+      theStudyBuilder->Addreference(aSObject,aHypothesisSO);
+    }
   }
-  mySComponentMesh = SALOMEDS::SComponent::_narrow( father );
 
-  // Tags definition 
-  Tag_HypothesisRoot  = 1;
-  Tag_AlgorithmsRoot  = 2;
-  
-  Tag_RefOnShape      = 1;
-  Tag_RefOnAppliedHypothesis = 2;
-  Tag_RefOnAppliedAlgorithms = 3;
-  
-  Tag_SubMeshOnVertex = 4;
-  Tag_SubMeshOnEdge = 5;
-  Tag_SubMeshOnFace = 6;
-  Tag_SubMeshOnSolid = 7;
-  Tag_SubMeshOnCompound = 8;
+
+  //---------------------------------------------------------------
+  void
+  SetHypothesis(const char* theMeshOrSubMeshEntry, 
+               const char* theDomainEntry,
+               const SALOMEDS::Study_var& theStudy,
+               const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+  {
+    SetDomain(theMeshOrSubMeshEntry,
+             theDomainEntry,
+             theStudy,
+             theStudyBuilder,
+             Tag_RefOnAppliedHypothesis,
+             QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"),
+             "ICON_SMESH_TREE_HYPO");
+  }
+
+
+  //---------------------------------------------------------------
+  void
+  SetAlgorithms(const char* theMeshOrSubMeshEntry, 
+               const char* theDomainEntry,
+               const SALOMEDS::Study_var& theStudy,
+               const SALOMEDS::StudyBuilder_var& theStudyBuilder)
+  {
+    SetDomain(theMeshOrSubMeshEntry,
+             theDomainEntry,
+             theStudy,
+             theStudyBuilder,
+             Tag_RefOnAppliedAlgorithms,
+             QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"),
+             "ICON_SMESH_TREE_ALGO");
+  }
 }
 
+
+//===============================================================
+SMESH_Swig::SMESH_Swig()
+{
+  class TEvent: public SALOME_Event
+  {
+    CORBA::ORB_var& myORB;
+  public:
+
+    TEvent(CORBA::ORB_var& theORB):
+      myORB(theORB)
+    {}
+
+    virtual
+    void
+    Execute()
+    {
+      try {
+       ORB_INIT &anORBInit = *SINGLETON_<ORB_INIT>::Instance();
+       ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
+       myORB = anORBInit( 0 , 0 );
+      } catch (...) {
+       INFOS("internal error : orb not found");
+      }
+    }
+  };
+
+  MESSAGE("Constructeur");
+
+  if(CORBA::is_nil(anORB))
+    ProcessVoidEvent(new TEvent(anORB));
+
+  ASSERT(!CORBA::is_nil(anORB));
+}
+
+
+//===============================================================
+void
+SMESH_Swig::Init(int theStudyID)
+{
+  class TEvent: public SALOME_Event
+  {
+    int myStudyID;
+    SALOMEDS::Study_var& myStudy;
+    SALOMEDS::StudyBuilder_var& myStudyBuilder;
+    SALOMEDS::SComponent_var& mySComponentMesh;
+  public:
+    TEvent(int theStudyID,
+          SALOMEDS::Study_var& theStudy,
+          SALOMEDS::StudyBuilder_var& theStudyBuilder,
+          SALOMEDS::SComponent_var& theSComponentMesh):
+      myStudyID(theStudyID),
+      myStudy(theStudy),
+      myStudyBuilder(theStudyBuilder),
+      mySComponentMesh(theSComponentMesh)
+    {}
+
+    virtual
+    void
+    Execute()
+    {
+      SUIT_Session* aSession = SUIT_Session::session();
+      SUIT_Application* anApplication = aSession->activeApplication();
+      SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>(anApplication);
+
+      SALOME_NamingService* aNamingService = anApp->namingService();
+      CORBA::Object_var anObject = aNamingService->Resolve("/myStudyManager");
+      SALOMEDS::StudyManager_var aStudyMgr = SALOMEDS::StudyManager::_narrow(anObject);
+      myStudy = aStudyMgr->GetStudyByID(myStudyID);
+
+      SMESH::SMESH_Gen_var aSMESHGen = SMESHGUI::GetSMESHGen();
+      aSMESHGen->SetCurrentStudy( myStudy.in() ); 
+
+      myStudyBuilder = myStudy->NewBuilder();
+
+      SALOMEDS::GenericAttribute_var anAttr;
+      SALOMEDS::AttributeName_var    aName;
+      SALOMEDS::AttributePixMap_var  aPixmap;
+
+      SALOMEDS::SComponent_var aSComponent = myStudy->FindComponent("SMESH");
+      if(aSComponent->_is_nil()){
+       bool aLocked = myStudy->GetProperties()->IsLocked();
+       if (aLocked) 
+         myStudy->GetProperties()->SetLocked(false);
+       
+       aSComponent = myStudyBuilder->NewComponent("SMESH");
+       anAttr = myStudyBuilder->FindOrCreateAttribute(aSComponent,"AttributeName");
+       aName = SALOMEDS::AttributeName::_narrow(anAttr);
+
+       SMESHGUI* aSMESHGUI = SMESHGUI::GetSMESHGUI(); //SRN: BugID IPAL9186, load a SMESH gui if it hasn't been loaded
+       if(!aSMESHGUI){
+         CAM_Module* aModule = anApp->module("Mesh");
+         if(!aModule) 
+             aModule = anApp->loadModule("Mesh");
+         aSMESHGUI = dynamic_cast<SMESHGUI*>(aModule); 
+       } //SRN: BugID IPAL9186: end of a fix
+       aName->SetValue(aSMESHGUI->moduleName());
+       anAttr = myStudyBuilder->FindOrCreateAttribute(aSComponent,"AttributePixMap");
+       aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+       aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" );
+       myStudyBuilder->DefineComponentInstance(aSComponent,aSMESHGen);
+       if(aLocked) 
+         myStudy->GetProperties()->SetLocked(true);
+      }
+
+      mySComponentMesh = SALOMEDS::SComponent::_narrow(aSComponent);
+    }
+  };
+
+  MESSAGE("Init");
+
+  ProcessVoidEvent(new TEvent(theStudyID,
+                             myStudy,
+                             myStudyBuilder,
+                             mySComponentMesh));
+}
+
+
+//===============================================================
 SMESH_Swig::~SMESH_Swig()
 {
   MESSAGE("Destructeur");
 }
 
-const char* SMESH_Swig::AddNewMesh(const char* IOR)
+
+//===============================================================
+const char* 
+SMESH_Swig::AddNewMesh(const char* theIOR)
 {
   MESSAGE("AddNewMesh");
 
   // VSR: added temporarily - to be removed - objects are published automatically by engine
-  SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
-  if ( !SO->_is_nil() )
-    return SO->GetID();
-
-  //Find or Create Hypothesis root
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  SALOMEDS::SObject_var HypothesisRoot;
-  if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
-    HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
+  SALOMEDS::SObject_var aSObject = myStudy->FindObjectIOR(theIOR);
+  if(aSObject->_is_nil()){
+    //Find or Create Hypothesis root
+    GetHypothesisRoot(mySComponentMesh,myStudyBuilder);
+    GetAlgorithmsRoot(mySComponentMesh,myStudyBuilder);
+    
+    // Add New Mesh
+    aSObject = myStudyBuilder->NewObject(mySComponentMesh);
+    SALOMEDS::GenericAttribute_var anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributePixMap");
+    SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
+    aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
+    anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject, "AttributeIOR");
+    SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+    anIOR->SetValue(theIOR);
   }
 
-  SALOMEDS::SObject_var AlgorithmsRoot;
-  if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
-    AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-  }
+  CORBA::String_var anEntry = aSObject->GetID();
 
-  // Add New Mesh
-  SALOMEDS::SObject_var newMesh = myStudyBuilder->NewObject(mySComponentMesh);
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributePixMap");
-  aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-  aPixmap->SetPixMap( "ICON_SMESH_TREE_MESH" );
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newMesh, "AttributeIOR");
-  anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-  anIOR->SetValue(IOR);
-  return SALOMEDS::SObject::_narrow( newMesh )->GetID();
+  return anEntry._retn();
 }
 
-const char* SMESH_Swig::AddNewHypothesis(const char* IOR)
+
+//===============================================================
+const char* 
+SMESH_Swig::AddNewHypothesis(const char* theIOR)
 {
-  MESSAGE("AddNewHypothesis");
 
-  // VSR: added temporarily - to be removed - objects are published automatically by engine
-  SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
-  if ( !SO->_is_nil() )
-    return SO->GetID();
-
-  //Find or Create Hypothesis root
-  SALOMEDS::SObject_var             HypothesisRoot;
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if (!mySComponentMesh->FindSubObject (Tag_HypothesisRoot, HypothesisRoot)) {
-    HypothesisRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_HYPOTHESIS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-  }
-  // Add New Hypothesis
-  SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(HypothesisRoot);
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
-  aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-  SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
-  QString aType = H->GetName();
-  aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_" + aType );
-//    if ( aType.compare("LocalLength") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_LENGTH" );
-//    else if ( aType.compare("NumberOfSegments") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_SEGMENT" );
-//    else if ( aType.compare("MaxElementArea") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_AREA" );
-//    else if ( aType.compare("MaxElementVolume") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO_VOLUME" );
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
-  anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-  anIOR->SetValue(IOR);
-  return SALOMEDS::SObject::_narrow(newHypo)->GetID();
+  MESSAGE("AddNewHypothesis");
+  
+  SALOMEDS::SObject_var aSObject = ::AddHypothesis(theIOR,
+                                                  mySComponentMesh,
+                                                  myStudyBuilder);
+  CORBA::String_var anEntry = aSObject->GetID();
+  return anEntry._retn();
 }
 
-const char* SMESH_Swig::AddNewAlgorithms(const char* IOR)
+
+//===============================================================
+const char* 
+SMESH_Swig::AddNewAlgorithms(const char* theIOR)
 {
   MESSAGE("AddNewAlgorithms");
-
-  // VSR: added temporarily - to be removed - objects are published automatically by engine
-  SALOMEDS::SObject_var SO = myStudy->FindObjectIOR( IOR );
-  if ( !SO->_is_nil() )
-    return SO->GetID();
-
-  //Find or Create Algorithms root
-  SALOMEDS::SObject_var             AlgorithmsRoot;
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeIOR_var        anIOR;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if (!mySComponentMesh->FindSubObject (Tag_AlgorithmsRoot, AlgorithmsRoot)) {
-    AlgorithmsRoot = myStudyBuilder->NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeName");
-    aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(QObject::tr("SMESH_MEN_ALGORITHMS"));
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
-    aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-    aSelAttr->SetSelectable(false);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
-    aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-    aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
-  }
-  // Add New Algorithms
-  SALOMEDS::SObject_var newHypo = myStudyBuilder->NewObject(AlgorithmsRoot);
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributePixMap");
-  aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-  SMESH::SMESH_Hypothesis_var H = SMESH::SMESH_Hypothesis::_narrow( StringToObject(IOR) );
-  QString aType = H->GetName();
-  aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_" + aType );
-//    if ( aType.compare("Regular_1D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_REGULAR" );
-//    else if ( aType.compare("MEFISTO_2D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_MEFISTO" );
-//    else if ( aType.compare("Quadrangle_2D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_QUAD" );
-//    else if ( aType.compare("Hexa_3D") == 0 )
-//      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO_HEXA" );
-  anAttr = myStudyBuilder->FindOrCreateAttribute(newHypo, "AttributeIOR");
-  anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-  anIOR->SetValue(IOR);
-  return SALOMEDS::SObject::_narrow(newHypo)->GetID();
+  
+  SALOMEDS::SObject_var aSObject = ::AddAlgorithms(theIOR,
+                                                  mySComponentMesh,
+                                                  myStudyBuilder);
+  CORBA::String_var anEntry = aSObject->GetID();
+  return anEntry._retn();
 }
 
-void SMESH_Swig::SetShape(const char* ShapeEntry, const char* MeshEntry)
-{
-  SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( MeshEntry );
-  SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( ShapeEntry );
 
-  if ( !SO_MorSM->_is_nil() && !SO_GeomShape->_is_nil() ) {
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnShape);
-    myStudyBuilder->Addreference (SO,SO_GeomShape);
+//===============================================================
+void 
+SMESH_Swig::SetShape(const char* theShapeEntry, 
+                    const char* theMeshEntry)
+{
+  SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID( theMeshEntry );
+  SALOMEDS::SObject_var aGeomShapeSO = myStudy->FindObjectID( theShapeEntry );
+  
+  if(!aMeshSO->_is_nil() && !aGeomShapeSO->_is_nil()){
+    SALOMEDS::SObject_var aSObject = myStudyBuilder->NewObjectToTag(aMeshSO,Tag_RefOnShape);
+    myStudyBuilder->Addreference(aSObject,aGeomShapeSO);
   }
 }
 
-void SMESH_Swig::SetHypothesis(const char* Mesh_Or_SubMesh_Entry, const char* Hypothesis_Entry)
+
+//===============================================================
+void 
+SMESH_Swig::SetHypothesis(const char* theMeshOrSubMeshEntry, 
+                         const char* theDomainEntry)
 {
-  SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
-  SALOMEDS::SObject_var SO_Hypothesis = myStudy->FindObjectID( Hypothesis_Entry );
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if ( !SO_MorSM->_is_nil() && !SO_Hypothesis->_is_nil() ) {
-    
-    //Find or Create Applied Hypothesis root
-    SALOMEDS::SObject_var AHR;
-    if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedHypothesis, AHR)) {
-      AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedHypothesis);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
-      aName = SALOMEDS::AttributeName::_narrow(anAttr);
-      aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_HYPOTHESIS"));
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-      aSelAttr->SetSelectable(false);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
-      aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-      aPixmap->SetPixMap( "ICON_SMESH_TREE_HYPO" );
-    }
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
-    myStudyBuilder->Addreference (SO,SO_Hypothesis);
-  }
+  ::SetHypothesis(theMeshOrSubMeshEntry,
+                 theDomainEntry,
+                 myStudy,
+                 myStudyBuilder);
 }
 
-void SMESH_Swig::SetAlgorithms(const char* Mesh_Or_SubMesh_Entry, const char* Algorithms_Entry)
+
+//===============================================================
+void 
+SMESH_Swig::SetAlgorithms(const char* theMeshOrSubMeshEntry, 
+                         const char* theDomainEntry)
 {
-  SALOMEDS::SObject_var SO_MorSM = myStudy->FindObjectID( Mesh_Or_SubMesh_Entry );
-  SALOMEDS::SObject_var SO_Algorithms = myStudy->FindObjectID( Algorithms_Entry );
-  SALOMEDS::GenericAttribute_var    anAttr;
-  SALOMEDS::AttributeName_var       aName;
-  SALOMEDS::AttributeSelectable_var aSelAttr;
-  SALOMEDS::AttributePixMap_var     aPixmap;
-
-  if ( !SO_MorSM->_is_nil() && !SO_Algorithms->_is_nil() ) {
-    //Find or Create Applied Algorithms root
-    SALOMEDS::SObject_var AHR;
-    if (!SO_MorSM->FindSubObject (Tag_RefOnAppliedAlgorithms, AHR)) {
-      AHR = myStudyBuilder->NewObjectToTag (SO_MorSM, Tag_RefOnAppliedAlgorithms);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeName");
-      aName = SALOMEDS::AttributeName::_narrow(anAttr);
-      aName->SetValue(QObject::tr("SMESH_MEN_APPLIED_ALGORIHTMS"));
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributeSelectable");
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
-      aSelAttr->SetSelectable(false);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(AHR, "AttributePixMap");
-      aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr);
-      aPixmap->SetPixMap( "ICON_SMESH_TREE_ALGO" );
-    }
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObject(AHR);
-    myStudyBuilder->Addreference (SO,SO_Algorithms);
-  }
+  ::SetAlgorithms(theMeshOrSubMeshEntry,
+                 theDomainEntry,
+                 myStudy,
+                 myStudyBuilder);
 }
 
-void SMESH_Swig::UnSetHypothesis(const char* Applied_Hypothesis_Entry )
+
+//===============================================================
+void
+SMESH_Swig::UnSetHypothesis(const char* theDomainEntry)
 {
-  SALOMEDS::SObject_var SO_Applied_Hypothesis = myStudy->FindObjectID( Applied_Hypothesis_Entry );
-  if ( !SO_Applied_Hypothesis->_is_nil() )
-    myStudyBuilder->RemoveObject(SO_Applied_Hypothesis);
+  SALOMEDS::SObject_var aDomainSO = myStudy->FindObjectID(theDomainEntry);
+  if(!aDomainSO->_is_nil())
+    myStudyBuilder->RemoveObject(aDomainSO);
 }
 
-const char* SMESH_Swig::AddSubMesh(const char* SO_Mesh_Entry, const char* SM_IOR, int ST)
+const char* 
+SMESH_Swig::AddSubMesh(const char* theMeshEntry, 
+                      const char* theSubMeshIOR, 
+                      int theShapeType)
 {
-  SALOMEDS::SObject_var SO_Mesh = myStudy->FindObjectID( SO_Mesh_Entry );
-  if ( !SO_Mesh->_is_nil() ) {
-
-    long Tag_Shape ;
-    Standard_CString Name;
-    
-    if      (ST == TopAbs_SOLID) {Tag_Shape = Tag_SubMeshOnSolid;    Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnSolid"));}
-    else if (ST == TopAbs_FACE)  {Tag_Shape = Tag_SubMeshOnFace;     Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnFace"));}
-    else if (ST == TopAbs_EDGE)  {Tag_Shape = Tag_SubMeshOnEdge;     Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnEdge"));}
-    else if (ST == TopAbs_VERTEX){Tag_Shape = Tag_SubMeshOnVertex;   Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnVertex"));}
-    else {
-      Tag_Shape = Tag_SubMeshOnCompound; Name = strdup(QObject::tr("SMESH_MEN_SubMeshesOnCompound"));
+  SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(theMeshEntry);
+  if(!aMeshSO->_is_nil()){
+    long aShapeTag;
+    QString aSubMeshName;
+    switch(theShapeType){
+    case TopAbs_SOLID:
+      aShapeTag = Tag_SubMeshOnSolid;
+      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnSolid");
+      break;
+    case TopAbs_FACE:
+      aShapeTag = Tag_SubMeshOnFace;
+      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnFace");
+      break;
+    case TopAbs_EDGE:
+      aShapeTag = Tag_SubMeshOnEdge;
+      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnEdge");
+      break;
+    case TopAbs_VERTEX:
+      aShapeTag = Tag_SubMeshOnVertex;
+      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnVertex");
+      break;
+    default:
+      aShapeTag = Tag_SubMeshOnCompound;
+      aSubMeshName = QObject::tr("SMESH_MEN_SubMeshesOnCompound");      
     }
-    SALOMEDS::SObject_var SubmeshesRoot;
-    SALOMEDS::GenericAttribute_var        anAttr;
-    SALOMEDS::AttributeName_var           aName;
-    SALOMEDS::AttributeIOR_var            anIOR;
-    SALOMEDS::AttributeSelectable_var     aSelAttr;
-    if (!SO_Mesh->FindSubObject (Tag_Shape,SubmeshesRoot )) {
-      SubmeshesRoot = myStudyBuilder->NewObjectToTag (SO_Mesh, Tag_Shape);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeName");
-      aName = SALOMEDS::AttributeName::_narrow(anAttr);
-      aName->SetValue(Name);
-      anAttr = myStudyBuilder->FindOrCreateAttribute(SubmeshesRoot, "AttributeSelectable");
-      aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
+      
+    SALOMEDS::SObject_var aSubMeshesRoot;
+    SALOMEDS::GenericAttribute_var anAttr;
+    if(!aMeshSO->FindSubObject(aShapeTag,aSubMeshesRoot)){
+      aSubMeshesRoot = myStudyBuilder->NewObjectToTag(aMeshSO,aShapeTag);
+      anAttr = myStudyBuilder->FindOrCreateAttribute(aSubMeshesRoot,"AttributeName");
+      SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
+      aName->SetValue(aSubMeshName.latin1());
+      anAttr = myStudyBuilder->FindOrCreateAttribute(aSubMeshesRoot,"AttributeSelectable");
+      SALOMEDS::AttributeSelectable_var aSelAttr = SALOMEDS::AttributeSelectable::_narrow(anAttr);
       aSelAttr->SetSelectable(false);
     }
 
-    free(Name);
+    SALOMEDS::SObject_var aSObject = myStudyBuilder->NewObject(aSubMeshesRoot);
+    anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeIOR");
+    SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
+    anIOR->SetValue(theSubMeshIOR);
 
-    SALOMEDS::SObject_var SO = myStudyBuilder->NewObject (SubmeshesRoot);
-    anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeIOR");
-    anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
-    anIOR->SetValue(SM_IOR);
-    return SALOMEDS::SObject::_narrow( SO )->GetID();
+    CORBA::String_var aString = aSObject->GetID();
+    return aString._retn();
   }
+
   return "";
 }
 
-const char* SMESH_Swig::AddSubMeshOnShape(const char* Mesh_Entry, const char* GeomShape_Entry, 
-                                            const char* SM_IOR, int ST)
+const char* 
+SMESH_Swig::AddSubMeshOnShape(const char* theMeshEntry, 
+                             const char* theGeomShapeEntry, 
+                             const char* theSubMeshIOR, 
+                             int ShapeType)
 {
-  SALOMEDS::SObject_var SO_GeomShape = myStudy->FindObjectID( GeomShape_Entry );
-  if ( !SO_GeomShape->_is_nil() ) {
-    const char * SM_Entry = AddSubMesh (Mesh_Entry,SM_IOR,ST);
-    SALOMEDS::SObject_var SO_SM = myStudy->FindObjectID( SM_Entry );
-    if ( !SO_SM->_is_nil() ) {
-      SetShape (GeomShape_Entry, SM_Entry);
-      return SALOMEDS::SObject::_narrow( SO_SM )->GetID();
+  SALOMEDS::SObject_var aGeomShapeSO = myStudy->FindObjectID(theGeomShapeEntry);
+  if(!aGeomShapeSO->_is_nil()){
+    const char * aSubMeshEntry = AddSubMesh(theMeshEntry,theSubMeshIOR,ShapeType);
+    SALOMEDS::SObject_var aSubMeshSO = myStudy->FindObjectID(aSubMeshEntry);
+    if(!aSubMeshSO->_is_nil()){
+      SetShape(theGeomShapeEntry,aSubMeshEntry);
+      CORBA::String_var aString = aSubMeshSO->GetID();
+      return aString._retn();
     }
   }
+
   return "";
 }
 
@@ -441,31 +581,20 @@ void SMESH_Swig::CreateAndDisplayActor( const char* Mesh_Entry )
   //  SMESH_Actor* Mesh = smeshGUI->ReadScript(aM);
 }
 
-void SMESH_Swig::SetName(const char* Entry, const char* Name)
+void
+SMESH_Swig::SetName(const char* theEntry, 
+                   const char* theName)
 {
-  SALOMEDS::SObject_var SO = myStudy->FindObjectID( Entry );
+  SALOMEDS::SObject_var aSObject = myStudy->FindObjectID(theEntry);
   SALOMEDS::GenericAttribute_var anAttr;
-  SALOMEDS::AttributeName_var    aName;
-  if ( !SO->_is_nil() )  {
-    anAttr = myStudyBuilder->FindOrCreateAttribute(SO, "AttributeName");
+  SALOMEDS::AttributeName_var aName;
+  if(!aSObject->_is_nil()){
+    anAttr = myStudyBuilder->FindOrCreateAttribute(aSObject,"AttributeName");
     aName = SALOMEDS::AttributeName::_narrow(anAttr);
-    aName->SetValue(Name);
+    aName->SetValue(theName);
   }
 }
 
-void SMESH_Swig::setOrb()
-{
-  try {
-    ORB_INIT &init = *SINGLETON_<ORB_INIT>::Instance();
-    ASSERT(SINGLETON_<ORB_INIT>::IsAlreadyExisting());
-    _orb = init( 0 , 0 );
-  } catch (...) {
-    INFOS("internal error : orb not found");
-    _orb = 0;
-  }
-  ASSERT(! CORBA::is_nil(_orb));
-}
-
 //================================================================================
 /*!
  * \brief Set mesh icon according to compute status
@@ -474,12 +603,35 @@ void SMESH_Swig::setOrb()
  */
 //================================================================================
 
-void SMESH_Swig::SetMeshIcon(const char* Mesh_Entry, const bool isComputed)
+void SMESH_Swig::SetMeshIcon(const char* theMeshEntry, 
+                            const bool theIsComputed)
 {
-  SALOMEDS::SObject_var mesh_var = myStudy->FindObjectID( Mesh_Entry );
-  if ( !mesh_var->_is_nil() ) {
-    _PTR(SObject) mesh = _PTR(SObject)(new SALOMEDS_SObject( mesh_var ));
-    if ( mesh )
-      SMESH::ModifiedMesh( mesh, isComputed );
-  }
+  class TEvent: public SALOME_Event
+  {
+    SALOMEDS::Study_var myStudy;
+    std::string myMeshEntry;
+    bool myIsComputed;
+  public:
+    TEvent(const SALOMEDS::Study_var& theStudy,
+          const std::string& theMeshEntry,
+          const bool theIsComputed):
+      myStudy(theStudy),
+      myMeshEntry(theMeshEntry),
+      myIsComputed(theIsComputed)
+    {}
+
+    virtual
+    void
+    Execute()
+    {
+      SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(myMeshEntry.c_str());
+      if(!aMeshSO->_is_nil())
+       if(_PTR(SObject) aMesh = ClientFactory::SObject(aMeshSO))
+         SMESH::ModifiedMesh(aMesh,myIsComputed);
+    }
+  };
+
+  ProcessVoidEvent(new TEvent(myStudy,
+                             theMeshEntry,
+                             theIsComputed));
 }
index e1b2ebcbc5f78fe4dd8493bbeb85f3610b59586c..5cde850d804b7a29a73304d98d5c3fbf90c66221 100644 (file)
@@ -40,8 +40,6 @@ public:
   SMESH_Swig();
   ~SMESH_Swig();
     
-  static void setOrb();
-
   void Init(int studyID);
 
   const char* AddNewMesh(const char* IOR);
@@ -74,20 +72,6 @@ private:
   SALOMEDS::Study_var        myStudy;
   SALOMEDS::StudyBuilder_var myStudyBuilder;
   SALOMEDS::SComponent_var   mySComponentMesh;
-
-  // Tags definition 
-  long Tag_HypothesisRoot;
-  long Tag_AlgorithmsRoot;
-  
-  long Tag_RefOnShape;
-  long Tag_RefOnAppliedHypothesis;
-  long Tag_RefOnAppliedAlgorithms;
-  
-  long Tag_SubMeshOnVertex;
-  long Tag_SubMeshOnEdge;
-  long Tag_SubMeshOnFace;
-  long Tag_SubMeshOnSolid;
-  long Tag_SubMeshOnCompound;
 };
 
 
index 158df488abf647d7df8405f781b321c0f80b7f41..8616aef7816b7f1f630dbcfdbb2e4f04dc708701 100644 (file)
 
 #include "SUIT_Desktop.h"
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_ViewWindow.h"
@@ -142,6 +146,10 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -294,12 +302,15 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
+  myHelpFileName = "/files/symmetry.htm";
+
   Init();
 
   /* signals and slots connections */
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()),   this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
@@ -515,6 +526,23 @@ void SMESHGUI_SymmetryDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_SymmetryDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // function : onTextChange()
 // purpose  :
index ba49ca860fd63dca2e54c3d264242d6d164ee647..b0ec7a97910f933aace84141b21f211cfdc2ad35 100644 (file)
@@ -100,6 +100,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* GroupMirror;
     QLabel* TextLabelElements;
@@ -125,6 +126,8 @@ private:
     SMESHGUI_SpinBox* SpinBox_DZ;
     
     QCheckBox* CheckBoxCopy;
+
+    QString myHelpFileName;
    
     private slots:
 
@@ -132,6 +135,7 @@ private:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index a4e006c4f29e748c68774c5d442a58b1005c3cf6..967696a2a388b77383b0a313e7f94fee37d45082 100644 (file)
 
 #include "SUIT_Desktop.h"
 #include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "LightApp_Application.h"
 
 #include "SVTK_ViewModel.h"
 #include "SVTK_Selection.h"
@@ -132,6 +136,10 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   GroupButtonsLayout->setAlignment(Qt::AlignTop);
   GroupButtonsLayout->setSpacing(6);
   GroupButtonsLayout->setMargin(11);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP" ));
+  buttonHelp->setAutoDefault(TRUE);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 4);
   buttonCancel = new QPushButton(GroupButtons, "buttonCancel");
   buttonCancel->setText(tr("SMESH_BUT_CLOSE" ));
   buttonCancel->setAutoDefault(TRUE);
@@ -274,12 +282,15 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   myMeshOrSubMeshOrGroupFilter =
     new SMESH_LogicalFilter(aListOfFilters, SMESH_LogicalFilter::LO_OR);
 
+  myHelpFileName = "/files/translation.htm";
+
   Init();
 
   /* signals and slots connections */
   connect(buttonOk, SIGNAL(clicked()),     this, SLOT(ClickOnOk()));
   connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
   connect(buttonApply, SIGNAL(clicked()),  this, SLOT(ClickOnApply()));
+  connect(buttonHelp, SIGNAL(clicked()),   this, SLOT(ClickOnHelp()));
   connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int)));
 
   connect(SelectElementsButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument()));
@@ -477,6 +488,23 @@ void SMESHGUI_TranslationDlg::ClickOnCancel()
   reject();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_TranslationDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=======================================================================
 // function : onTextChange()
 // purpose  :
@@ -649,7 +677,7 @@ void SMESHGUI_TranslationDlg::SelectionIntoArgument()
     if (myEditCurrentArgument == (QWidget*)SpinBox1_1) {
       SpinBox1_1->SetValue(x);
       SpinBox1_2->SetValue(y);
-      SpinBox2_3->SetValue(z);
+      SpinBox1_3->SetValue(z);
     } else if (myEditCurrentArgument == (QWidget*)SpinBox2_1) {
       SpinBox2_1->SetValue(x);
       SpinBox2_2->SetValue(y);
index a101c7182a5e2ddf86cc510f1977187d0545c5a9..deb3586f37d1a137ee6d7d71b5ac6a768fec9396 100644 (file)
@@ -98,6 +98,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QLabel* TextLabelElements;
     QPushButton* SelectElementsButton;
@@ -120,6 +121,8 @@ private:
     QLabel* TextLabel2_3;
     SMESHGUI_SpinBox* SpinBox2_3;
     QCheckBox* CheckBoxCopy;
+
+    QString myHelpFileName;
    
     private slots:
 
@@ -127,6 +130,7 @@ private:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 4e2a41b7a032c592595edd8b1f7d60230b4cf237..2e87985de8e5a23f304a89232384ba1a74997f24 100644 (file)
 
 #include "SUIT_Desktop.h"
 #include "SUIT_OverrideCursor.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
 
 #include "SALOME_ListIO.hxx"
 #include "SALOME_ListIteratorOfListIO.hxx"
 #include "SALOME_InteractiveObject.hxx"
 
 #include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
 #include "LightApp_SelectionMgr.h"
 
 #include "SVTK_ViewWindow.h"
@@ -129,9 +132,15 @@ SMESHGUI_TransparencyDlg::SMESHGUI_TransparencyDlg( SMESHGUI* theModule,
   buttonOk->setText(tr("SMESH_BUT_CLOSE"));
   buttonOk->setAutoDefault(TRUE);
   buttonOk->setDefault(TRUE);
-  GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 0);
-  GroupButtonsLayout->addWidget(buttonOk, 0, 1);
-  GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
+  buttonHelp = new QPushButton(GroupButtons, "buttonHelp");
+  buttonHelp->setText(tr("SMESH_BUT_HELP"));
+  buttonHelp->setAutoDefault(TRUE);
+
+  //GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 0);
+  GroupButtonsLayout->addWidget(buttonOk, 0, 0);
+  GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1);
+  GroupButtonsLayout->addWidget(buttonHelp, 0, 2);  
+  //GroupButtonsLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 2);
 
   SMESHGUI_TransparencyDlgLayout->addWidget(GroupC1,      0, 0);
   SMESHGUI_TransparencyDlgLayout->addWidget(GroupButtons, 1, 0);
@@ -141,11 +150,14 @@ SMESHGUI_TransparencyDlg::SMESHGUI_TransparencyDlg( SMESHGUI* theModule,
 
   // signals and slots connections : after ValueHasChanged()
   connect(buttonOk, SIGNAL(clicked()),         this, SLOT(ClickOnOk()));
+  connect(buttonHelp, SIGNAL(clicked()),       this, SLOT(ClickOnHelp()));
   connect(Slider1,  SIGNAL(valueChanged(int)), this, SLOT(SetTransparency()));
   connect(Slider1,  SIGNAL(sliderMoved(int)),  this, SLOT(ValueHasChanged()));
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnOk()));
   connect(mySelectionMgr,  SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionChanged()));
 
+  myHelpFileName = "transparency.htm";
+
   this->show();
 }
 
@@ -167,6 +179,23 @@ void SMESHGUI_TransparencyDlg::ClickOnOk()
   close();
 }
 
+//=================================================================================
+// function : ClickOnHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_TransparencyDlg::ClickOnHelp()
+{
+  LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
+  if (app) 
+    app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName);
+  else {
+    SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"),
+                          QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+                          arg(app->resourceMgr()->stringValue("ExternalBrowser", "application")).arg(myHelpFileName),
+                          QObject::tr("BUT_OK"));
+  }
+}
+
 //=================================================================================
 // function : SetTransparency()
 // purpose  : Called when value of slider change
index d41385430ee75b7fcea946bc92d4adc8b62bbb4d..c26614e61b957e5f8edf7bd0e6bf21047bfbc5b0 100644 (file)
@@ -63,14 +63,18 @@ private :
   SVTK_ViewWindow*        myViewWindow;
 
   QPushButton*      buttonOk;
+  QPushButton*      buttonHelp;
   QLabel*           TextLabelOpaque;
   QLabel*           ValueLab;
   QLabel*           TextLabelTransparent;
   QSlider*          Slider1;
 
+  QString           myHelpFileName;
+
 public slots:
       
     void ClickOnOk();
+    void ClickOnHelp();
     void ValueHasChanged();
     void SetTransparency();
     void onSelectionChanged();
index 76e13851121aaad8cfe30da10b0e2904c25ed5a2..15cea62b589637b72cc6871e78d8808116d3bde5 100644 (file)
@@ -128,10 +128,23 @@ bool SMESHGUI_XmlHandler::startElement (const QString&, const QString&,
         if ( isOk )
           aDim.append( aVal - 1 );
       }
+
+      // for algo
+      enum { HYPOS = 0, OPT_HYPOS, INPUT, OUTPUT, NB_ATTRIBUTES };
+      const char* name [NB_ATTRIBUTES] = { "hypos", "opt-hypos", "input", "output" };
+      QStringList attr [NB_ATTRIBUTES];
+      for ( int i = 0; i < NB_ATTRIBUTES; ++i ) {
+        QString aStr = atts.value( name[i] );
+        if ( !aStr.isEmpty() ) {
+          aStr.remove( ' ' );
+          attr[ i ] = QStringList::split( ',', aStr );
+        }
+      }
       
       HypothesisData* aHypLibNames =
-        new HypothesisData (myPluginName, myServerLib, myClientLib,
-                            aLabel, anIcon, aDim, isAux );
+        new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib,
+                            aLabel, anIcon, aDim, isAux,
+                            attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ]);
 
       if (qName == "algorithm")
       {
index ecf738528fe8b96ebadb57a6c66fb1d631f10bab..33306c10092f9ded38dc3e63f051045787343fab 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <qxml.h>
 #include <map>
+#include <list>
 
 class SMESHGUI_XmlHandler : public QXmlDefaultHandler
 {
index 463f6f37a1d49969f6fdd1802bed7859c6188c2e..d237f1fe88a9429896f886694f546bfc034a69c6 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 16737d44aef883c63a59125d8ac6c27aff83d5e4..d6fdb6b380e28632e54d9a9f0bdbb3127bd2fd66 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
@@ -368,3 +387,6 @@ msgstr "mesh_pattern.png"
 
 msgid "ICON_FILE_OPEN"
 msgstr "open.png"
+
+msgid "ICON_CONV_TO_QUAD"
+msgstr "mesh_conv_to_quad.png"
\ No newline at end of file
index 3fcce77aebce24b9e3b4e0831be08ab10a056efd..44adb6e45846745bd3b71b2b3bc4d98f3abad782 100644 (file)
@@ -52,6 +52,10 @@ msgstr "&No"
 msgid "SMESH_BUT_CANCEL"
 msgstr "&Cancel"
 
+#Help
+msgid "SMESH_BUT_HELP"
+msgstr "&Help"
+
 #Add
 msgid "SMESH_BUT_ADD"
 msgstr "A&dd"
@@ -760,7 +764,17 @@ msgstr "Standard Mesh Infos"
 msgid "SMESH_MESHINFO_NAME"
 msgstr "Name"
 
-#Faces :
+#Order :
+msgid "SMESH_MESHINFO_ORDER0"
+msgstr "Total"
+
+msgid "SMESH_MESHINFO_ORDER1"
+msgstr "Linear"
+
+msgid "SMESH_MESHINFO_ORDER2"
+msgstr "Quadratic"
+
+#Elements :
 msgid "SMESH_MESHINFO_ELEMENTS"
 msgstr "Elements"
 
@@ -1884,7 +1898,7 @@ msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_TETRAHEDRON"
 msgstr "Add Quadratic Tetrahedron"
 
 msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_PYRAMID"
-msgstr "Add Quadratic PYRAMID"
+msgstr "Add Quadratic Pyramid"
 
 msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_PENTAHEDRON"
 msgstr "Add Quadratic Pentahedron"
@@ -1950,6 +1964,9 @@ msgstr "It is impossible to create pattern from narrow face"
 msgid "SMESHGUI_CreatePatternDlg::ERR_LOADF_CLOSED_FACE"
 msgstr "It is impossible to create pattern from face having seam edge"
 
+msgid "SMESHGUI_CreatePatternDlg::ERR_LOADF_CANT_PROJECT"
+msgstr "Impossible to perform projection of nodes to the face"
+
 msgid "SMESHGUI_CreatePatternDlg::ERR_LOADV_BAD_SHAPE"
 msgstr "Pattern can be created from closed shell or solid with 6 faces only"
 
@@ -2198,6 +2215,9 @@ msgstr "Revolution"
 msgid "MEN_MAP"
 msgstr "Pattern mapping"
 
+msgid "MEN_CONV_TO_QUAD"
+msgstr "Convert to/from quadratic"
+
 msgid "MEN_EXTRUSION_ALONG"
 msgstr "Extrusion along a path"
 
@@ -2548,6 +2568,9 @@ msgstr "Revolution"
 msgid "TOP_MAP"
 msgstr "Pattern mapping"
 
+msgid "TOP_CONV_TO_QUAD"
+msgstr "Convert to/from quadratic"
+
 msgid "TOP_EXTRUSION_ALONG"
 msgstr "Extrusion along a path"
 
@@ -2849,6 +2872,9 @@ msgstr "Revolution"
 msgid "STB_MAP"
 msgstr "Pattern mapping"
 
+msgid "STB_CONV_TO_QUAD"
+msgstr "Convert to/from quadratic"
+
 msgid "STB_EXTRUSION_ALONG"
 msgstr "Extrusion along a path"
 
@@ -3146,3 +3172,27 @@ msgstr "Geometry object is not a subshape of the shape to mesh"
 
 msgid "SMESHGUI_MeshOp::MESH_IS_NOT_DEFINED"
 msgstr "Mesh is not defined\nPlease specify it and try again"
+
+
+#-----------------------------------------------------------
+
+msgid "SMESHGUI_ConvToQuadDlg::CAPTION"
+msgstr "Convert to/from quadratic"
+
+msgid "SMESHGUI_ConvToQuadDlg::MESH"
+msgstr "Mesh"
+
+msgid "SMESHGUI_ConvToQuadDlg::MEDIUMNDS"
+msgstr "Medium nodes on geometry"
+
+msgid "SMESHGUI_ConvToQuadDlg::RADIOBTN_1"
+msgstr "Convert to quadratic"
+
+msgid "SMESHGUI_ConvToQuadDlg::RADIOBTN_2"
+msgstr "Convert from quadratic"
+
+msgid "SMESHGUI_ConvToQuadOp::MESH_IS_NOT_SELECTED"
+msgstr "Mesh is not selected\nPlease specify it and try again"
+
+msgid "SMESHGUI_ConvToQuadOp::REF_IS_NULL"
+msgstr "No valid mesh object selected"
\ No newline at end of file
index 609abbe43e25ff729586e2271ebe2555e918c0dc..fdc6f3eb727de6e3cdc21aadcbf58f11f3ce29a9 100644 (file)
@@ -140,6 +140,7 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
     myID2AccessorMethod( theEntry2AccessorMethod )
 {
   myNbCommands = 0;
+  myHasPattern = false;
   // make that GetID() to return TPythonDump::SMESHGenName()
   GetCreationCmd()->GetString() += "=";
 }
@@ -148,7 +149,6 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
 /*!
  * \brief Convert a command using a specific converter
   * \param theCommand - the command to convert
-  * \retval bool - convertion result
  */
 //================================================================================
 
@@ -178,19 +178,44 @@ void _pyGen::AddCommand( const TCollection_AsciiString& theCommand)
     id_mesh->second->Process( aCommand );
     return;
   }
-  // SMESH_Hypothesis method
+  // SMESH_Hypothesis method?
   list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
   for ( ; hyp != myHypos.end(); ++hyp )
-    if ( !(*hyp)->IsAlgo() && objID == (*hyp)->GetID() )
+    if ( !(*hyp)->IsAlgo() && objID == (*hyp)->GetID() ) {
       (*hyp)->Process( aCommand );
+      return;
+    }
+
+  // Add access to a wrapped mesh
+  for ( id_mesh = myMeshes.begin(); id_mesh != myMeshes.end(); ++id_mesh ) {
+    if ( aCommand->AddAccessorMethod( id_mesh->first, id_mesh->second->AccessorMethod() ))
+      break;
+  }
 
-  // Mesh provides SMESH_IDSource interface used in SMESH_MeshEditor.
-  // Add access to wrapped mesh
-  if ( objID == TPythonDump::MeshEditorName() ) {
-    // in all SMESH_MeshEditor's commands, a SMESH_IDSource is the first arg
-    id_mesh = myMeshes.find( aCommand->GetArg( 1 ));
-    if ( id_mesh != myMeshes.end() )
-      aCommand->SetArg( 1 , aCommand->GetArg( 1 ) + ".GetMesh()" );
+  // Add access to a wrapped algorithm
+  for ( hyp = myHypos.begin(); hyp != myHypos.end(); ++hyp ) {
+    if ( (*hyp)->IsAlgo() &&
+         aCommand->AddAccessorMethod( (*hyp)->GetID(), (*hyp)->AccessorMethod() ))
+      break;
+  }
+
+  // PAL12227. PythonDump was not updated at proper time; result is
+  //     aCriteria.append(SMESH.Filter.Criterion(17,26,0,'L1',26,25,1e-07,SMESH.EDGE,-1))
+  // TypeError: __init__() takes exactly 11 arguments (10 given)
+  char wrongCommand[] = "SMESH.Filter.Criterion(";
+  if ( int beg = theCommand.Location( wrongCommand, 1, theCommand.Length() ))
+  {
+    _pyCommand tmpCmd( theCommand.SubString( beg, theCommand.Length() ), -1);
+    // there must be 10 arguments, 5-th arg ThresholdID is missing,
+    const int wrongNbArgs = 9, missingArg = 5;
+    if ( tmpCmd.GetNbArgs() == wrongNbArgs )
+    {
+      for ( int i = wrongNbArgs; i > missingArg; --i )
+        tmpCmd.SetArg( i + 1, tmpCmd.GetArg( i ));
+      tmpCmd.SetArg(  missingArg, "''");
+      aCommand->GetString().Trunc( beg - 1 );
+      aCommand->GetString() += tmpCmd.GetString();
+    }
   }
 }
 
@@ -235,6 +260,15 @@ void _pyGen::Process( const Handle(_pyCommand)& theCommand )
     }
   }
 
+  // leave only one smeshgen.GetPattern() in the script
+  if ( theCommand->GetMethod() == "GetPattern" ) {
+    if ( myHasPattern ) {
+      theCommand->Clear();
+      return;
+    }
+    myHasPattern = true;
+  }
+
   // smeshgen.Method() --> smesh.smesh.Method()
   theCommand->SetObject( SMESH_2smeshpy::GenName() );
 }
@@ -431,7 +465,8 @@ static bool sameGroupType( const _pyID&                   grpID,
  */
 //================================================================================
 
-_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd): _pyObject(theCreationCmd)
+_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd):
+  _pyObject(theCreationCmd), myHasEditor(false)
 {
   // convert my creation command
   Handle(_pyCommand) creationCmd = GetCreationCmd();
@@ -478,8 +513,11 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
     // set mesh to hypo
     const _pyID& hypID = theCommand->GetArg( 2 );
     Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
-    if ( !hyp.IsNull() && hyp->GetMesh().IsEmpty() )
-      hyp->SetMesh( this->GetID() );
+    if ( !hyp.IsNull() ) {
+      myHypos.push_back( hyp );
+      if ( hyp->GetMesh().IsEmpty() )
+        hyp->SetMesh( this->GetID() );
+    }
   }
   else if ( method == "CreateGroupFromGEOM" ) {// (type, name, grp)
     _pyID grp = theCommand->GetArg( 3 );
@@ -509,7 +547,7 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
     while ( cmd != myAddHypCmds.end() )
     {
       // AddHypothesis(geom, hyp)
-      if ( hypID == (*cmd)->GetArg( 2 )) { // erase both commands
+      if ( hypID == (*cmd)->GetArg( 2 )) { // erase both (add and remove) commands
         theCommand->Clear();
         (*cmd)->Clear();
         cmd = myAddHypCmds.erase( cmd );
@@ -519,16 +557,31 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
         ++cmd;
       }
     }
-    if ( ! hasAddCmd ) {
+    Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
+    if ( ! hasAddCmd ) { // hypo addition already wrapped
       // access to wrapped mesh
       AddMeshAccess( theCommand );
       // access to wrapped algo
-      Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
       if ( !hyp.IsNull() && hyp->IsAlgo() && hyp->IsWrapped() )
         theCommand->SetArg( 2, theCommand->GetArg( 2 ) + ".GetAlgorithm()" );
     }
+    // remove hyp from myHypos
+    myHypos.remove( hyp );
+  }
+
+  // leave only one "  mesh_editor_<nb> = mesh.GetMeshEditor()"
+  else if ( theCommand->GetMethod() == "GetMeshEditor")
+  {
+    if ( myHasEditor )
+      theCommand->Clear();
+    else
+      AddMeshAccess( theCommand );
+    myHasEditor = true;
   }
-  else { // apply theCommand to the mesh wrapped by smeshpy mesh
+
+  // apply theCommand to the mesh wrapped by smeshpy mesh
+  else
+  {
     AddMeshAccess( theCommand );
   }
 }
@@ -617,6 +670,11 @@ void _pyMesh::Flush()
   }
   myAddHypCmds.clear();
   mySubmeshes.clear();
+
+  // flush hypotheses
+  list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
+  for ( ; hyp != myHypos.end(); ++hyp )
+    (*hyp)->Flush();
 }
 
 //================================================================================
@@ -835,8 +893,6 @@ bool _pyHypothesis::Addition2Creation( const Handle(_pyCommand)& theCmd,
   for ( ; cmd != myUnknownCommands.end(); ++cmd ) {
     afterCmd->AddDependantCmd( *cmd );
   }
-  myArgCommands.clear();
-  myUnknownCommands.clear();
 
   return myIsWrapped;
 }
@@ -872,8 +928,11 @@ void _pyHypothesis::Process( const Handle(_pyCommand)& theCommand)
 
 void _pyHypothesis::Flush()
 {
-//   if ( IsWrapped() )
-//     GetCreationCmd()->Clear();
+  if ( IsWrapped() ) {
+    // forget previous hypothesis modifications
+    myArgCommands.clear();
+    myUnknownCommands.clear();
+  }
 }
 
 //================================================================================
@@ -908,21 +967,54 @@ void _pyComplexParamHypo::Process( const Handle(_pyCommand)& theCommand)
 bool _pyNumberOfSegmentsHyp::Addition2Creation( const Handle(_pyCommand)& theCmd,
                                                 const _pyID&              theMesh)
 {
-  if ( IsWrappable( theMesh ) && myArgs.Length() > 0 ) {
-    list<Handle(_pyCommand)>::iterator cmd = myUnknownCommands.begin();
-    for ( ; cmd != myUnknownCommands.end(); ++cmd ) {
-      // clear SetDistrType()
-      if ( (*cmd)->GetString().Location( "SetDistrType", 1, (*cmd)->Length() ))
-        (*cmd)->Clear();
+  if ( IsWrappable( theMesh ) && myArgs.Length() > 1 ) {
+    // scale factor (2-nd arg) is provided: clear SetDistrType(1) command
+    bool scaleDistrType = false;
+    list<Handle(_pyCommand)>::reverse_iterator cmd = myUnknownCommands.rbegin();
+    for ( ; cmd != myUnknownCommands.rend(); ++cmd ) {
+      if ( (*cmd)->GetMethod() == "SetDistrType" ) {
+        if ( (*cmd)->GetArg( 1 ) == "1" ) {
+          scaleDistrType = true;
+          (*cmd)->Clear();
+        }
+        else if ( !scaleDistrType ) {
+          // distribution type changed: remove scale factor from args
+          myArgs.Remove( 2, myArgs.Length() );
+          break;
+        }
+      }
     }
   }
   return _pyHypothesis::Addition2Creation( theCmd, theMesh );
 }
 
+//================================================================================
+/*!
+ * \brief remove repeated commands defining distribution
+ */
+//================================================================================
+
+void _pyNumberOfSegmentsHyp::Flush()
+{
+  const int nbCmdLists = 2;
+  list<Handle(_pyCommand)> * cmds[nbCmdLists] = { &myArgCommands, &myUnknownCommands };
+  for ( int i = 0; i < nbCmdLists; ++i ) {
+    set<TCollection_AsciiString> uniqueMethods;
+    list<Handle(_pyCommand)> & cmdList = *cmds[i];
+    list<Handle(_pyCommand)>::reverse_iterator cmd = cmdList.rbegin();
+    for ( ; cmd != cmdList.rend(); ++cmd ) {
+      bool isNewInSet = uniqueMethods.insert( (*cmd)->GetMethod() ).second;
+      if ( ! isNewInSet )
+        (*cmd)->Clear();
+    }
+    cmdList.clear();
+  }
+}
+
 //================================================================================
 /*!
  * \brief _pyAlgorithm constructor
 * \param theCreationCmd - The command like "algo = smeshgen.CreateHypothesis(type,lib)"
+ * \param theCreationCmd - The command like "algo = smeshgen.CreateHypothesis(type,lib)"
  */
 //================================================================================
 
@@ -1236,10 +1328,17 @@ void _pyCommand::SetArg( int index, const TCollection_AsciiString& theArg)
   if ( pos < 1 ) // no index-th arg exist, append inexistent args
   {
     // find a closing parenthesis
-    pos = Length();
-    while ( pos > 0 && myString.Value( pos ) != ')' )
-      --pos;
-    if ( pos == 0 ) { // no parentheses at all
+    if ( int lastArgInd = GetNbArgs() ) {
+      pos = GetBegPos( ARG1_IND + lastArgInd  - 1 ) + GetArg( lastArgInd ).Length();
+      while ( pos > 0 && pos <= Length() && myString.Value( pos ) != ')' )
+        ++pos;
+    }
+    else {
+      pos = Length();
+      while ( pos > 0 && myString.Value( pos ) != ')' )
+        --pos;
+    }
+    if ( pos < 1 || myString.Value( pos ) != ')' ) { // no parentheses at all
       myString += "()";
       pos = Length();
     }
@@ -1280,8 +1379,8 @@ void _pyCommand::RemoveArgs()
 bool _pyCommand::SetDependentCmdsAfter() const
 {
   bool orderChanged = false;
-  list< Handle(_pyCommand)>::const_iterator cmd = myDependentCmds.begin();
-  for ( ; cmd != myDependentCmds.end(); ++cmd ) {
+  list< Handle(_pyCommand)>::const_reverse_iterator cmd = myDependentCmds.rbegin();
+  for ( ; cmd != myDependentCmds.rend(); ++cmd ) {
     if ( (*cmd)->GetOrderNb() < GetOrderNb() ) {
       orderChanged = true;
       theGen->SetCommandAfter( *cmd, this );
@@ -1290,3 +1389,55 @@ bool _pyCommand::SetDependentCmdsAfter() const
   }
   return orderChanged;
 }
+//================================================================================
+/*!
+ * \brief Insert accessor method after theObjectID
+  * \param theObjectID - id of the accessed object
+  * \param theAcsMethod - name of the method giving access to the object
+  * \retval bool - false if theObjectID is not found in the command string
+ */
+//================================================================================
+
+bool _pyCommand::AddAccessorMethod( _pyID theObjectID, const char* theAcsMethod )
+{
+  if ( !theAcsMethod )
+    return false;
+  // start object search from the object, i.e. ignore result
+  GetObject();
+  int beg = GetBegPos( OBJECT_IND );
+  if ( beg < 1 || beg > Length() )
+    return false;
+  while (( beg = myString.Location( theObjectID, beg, Length() )))
+  {
+    // check that theObjectID is not just a part of a longer ID
+    int afterEnd = beg + theObjectID.Length();
+    Standard_Character c = myString.Value( afterEnd );
+    if ( !isalnum( c ) && c != ':' ) {
+      // insertion
+      int oldLen = Length();
+      myString.Insert( afterEnd, (char*) theAcsMethod );
+      myString.Insert( afterEnd, "." );
+      // update starting positions of the parts following the modified one
+      int posDelta = Length() - oldLen;
+      for ( int i = 1; i <= myBegPos.Length(); ++i ) {
+        if ( myBegPos( i ) > afterEnd )
+          myBegPos( i ) += posDelta;
+      }
+      return true;
+    }
+    beg = afterEnd; // is a part - next search
+  }
+  return false;
+}
+
+//================================================================================
+/*!
+ * \brief Return method name giving access to an interaface object wrapped by python class
+  * \retval const char* - method name
+ */
+//================================================================================
+
+const char* _pyObject::AccessorMethod() const
+{
+  return 0;
+}
index 78117eaa347062daa770bfa9616ba7f65cef9f95..aabba67dd2f004461c9c273069d755f4e0775dbc 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 // File      : SMESH_smesh.hxx
 // Created   : Fri Nov 18 12:05:18 2005
 // Author    : Edward AGAPOV (eap)
@@ -73,24 +92,31 @@ DEFINE_STANDARD_HANDLE (_pyMesh      ,_pyObject);
 DEFINE_STANDARD_HANDLE (_pyHypothesis,_pyObject);
 DEFINE_STANDARD_HANDLE (_pyAlgorithm ,_pyHypothesis);
 
+typedef TCollection_AsciiString _pyID;
+
+// ===========================================================
 /*!
  * \brief Class operating on a command string looking like
  *        ResultValue = Object.Method( Arg1, Arg2,...)
  */
+// ===========================================================
+
 class _pyCommand: public Standard_Transient
 {
-  int myOrderNb; // position within the script
-  TCollection_AsciiString myString;
-  TCollection_AsciiString myRes, myObj, myMeth;
-  TColStd_SequenceOfAsciiString myArgs;
-  TColStd_SequenceOfInteger myBegPos; //!< where myRes, myObj, ... begin
-  std::list< Handle(_pyCommand) > myDependentCmds;
+  int                             myOrderNb;            //!< position within the script
+  TCollection_AsciiString         myString;             //!< command text
+  TCollection_AsciiString         myRes, myObj, myMeth; //!< found parts of command
+  TColStd_SequenceOfAsciiString   myArgs;               //!< found arguments
+  TColStd_SequenceOfInteger       myBegPos;             //!< where myRes, myObj, ... begin
+  std::list< Handle(_pyCommand) > myDependentCmds; //!< commands that sould follow me in the script
+
   enum { UNKNOWN=-1, EMPTY=0, RESULT_IND, OBJECT_IND, METHOD_IND, ARG1_IND };
   int GetBegPos( int thePartIndex );
   void SetBegPos( int thePartIndex, int thePosition );
   void SetPart( int thePartIndex, const TCollection_AsciiString& theNewPart,
                 TCollection_AsciiString& theOldPart);
   void FindAllArgs() { GetArg(1); }
+
 public:
   _pyCommand() {};
   _pyCommand( const TCollection_AsciiString& theString, int theNb )
@@ -123,13 +149,14 @@ public:
   { return myDependentCmds.push_back( cmd ); }
   bool SetDependentCmdsAfter() const;
 
+  bool AddAccessorMethod( _pyID theObjectID, const char* theAcsMethod );
+
   DEFINE_STANDARD_RTTI (_pyCommand)
 };
 
 /*!
  * \brief Root of all objects
  */
-typedef TCollection_AsciiString _pyID;
 
 class _pyObject: public Standard_Transient
 {
@@ -142,6 +169,7 @@ public:
   int GetCommandNb() { return myCreationCmd->GetOrderNb(); }
   virtual void Process(const Handle(_pyCommand) & theCommand) = 0;
   virtual void Flush() = 0;
+  virtual const char* AccessorMethod() const;
 
   DEFINE_STANDARD_RTTI (_pyObject)
 };
@@ -165,11 +193,13 @@ public:
   void SetCommandAfter( Handle(_pyCommand) theCmd, Handle(_pyCommand) theAfterCmd );
   std::list< Handle(_pyCommand) >& GetCommands() { return myCommands; }
   void SetAccessorMethod(const _pyID& theID, const char* theMethod );
+  const char* AccessorMethod() const { return SMESH_2smeshpy::GenName(); }
 private:
   std::map< _pyID, Handle(_pyMesh) > myMeshes;
   std::list< Handle(_pyHypothesis) > myHypos;
   std::list< Handle(_pyCommand) >    myCommands;
   int                                myNbCommands;
+  bool                               myHasPattern;
   Resource_DataMapOfAsciiStringAsciiString& myID2AccessorMethod;
 
   DEFINE_STANDARD_RTTI (_pyGen)
@@ -178,21 +208,26 @@ private:
 /*!
  * \brief Contains commands concerning mesh substructures
  */
+#define _pyMesh_ACCESS_METHOD "GetMesh()"
 class _pyMesh: public _pyObject
 {
+  std::list< Handle(_pyHypothesis) > myHypos;
   std::list< Handle(_pyCommand) > myAddHypCmds;
-  std::list< Handle(_pyCommand) > mySubmeshes; 
+  std::list< Handle(_pyCommand) > mySubmeshes;
+  bool                            myHasEditor;
 public:
   _pyMesh(const Handle(_pyCommand) theCreationCmd);
   const _pyID& GetGeom() { return GetCreationCmd()->GetArg(1); }
   void Process( const Handle(_pyCommand)& theCommand);
   void Flush();
+  const char* AccessorMethod() const { return _pyMesh_ACCESS_METHOD; }
 private:
   static void AddMeshAccess( const Handle(_pyCommand)& theCommand )
-  { theCommand->SetObject( theCommand->GetObject() + ".GetMesh()" ); }
+  { theCommand->SetObject( theCommand->GetObject() + "." _pyMesh_ACCESS_METHOD ); }
 
   DEFINE_STANDARD_RTTI (_pyMesh)
 };
+#undef _pyMesh_ACCESS_METHOD 
 
 /*!
  * \brief Root class for hypothesis
@@ -266,6 +301,7 @@ public:
   _pyNumberOfSegmentsHyp(const Handle(_pyCommand)& theCrCmd): _pyHypothesis(theCrCmd) {}
   virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
                                   const _pyID&              theMesh);
+  void Flush();
 
   DEFINE_STANDARD_RTTI (_pyNumberOfSegmentsHyp)
 };
@@ -280,6 +316,7 @@ public:
   _pyAlgorithm(const Handle(_pyCommand)& theCreationCmd);
   virtual bool Addition2Creation( const Handle(_pyCommand)& theAdditionCmd,
                                   const _pyID&              theMesh);
+  const char* AccessorMethod() const { return "GetAlgorithm()"; }
 
   DEFINE_STANDARD_RTTI (_pyAlgorithm)
 };
index 97e49b2a16a28c51e9639eb24c7163748bb7cbcc..d640a6489c3b6989abc49d93991b0017b0bd4595 100644 (file)
@@ -26,6 +26,7 @@
 #include "SMESH_PythonDump.hxx"
 #include "SMESH_Gen_i.hxx"
 #include "SMESH_Filter_i.hxx"
+#include "SMESH_MeshEditor_i.hxx"
 #include "SMESH_2smeshpy.hxx"
 
 #include <TColStd_HSequenceOfInteger.hxx>
@@ -174,7 +175,7 @@ namespace SMESH
       myStream << aSObject->GetID();
     } else if ( !CORBA::is_nil(theArg)) {
       if ( aSMESHGen->CanPublishInStudy( theArg )) // not published SMESH object
-        myStream << "smeshObj_" << (int) theArg;
+        myStream << "smeshObj_" << size_t(theArg);
       else
         myStream << NotPublishedObjectName();
     }
@@ -253,7 +254,7 @@ namespace SMESH
 
   TPythonDump& TPythonDump::operator<<(SMESH_MeshEditor_i* theArg)
   {
-    myStream << MeshEditorName(); return *this;
+    myStream << MeshEditorName() << "_" << ( theArg ? theArg->GetMeshId() : -1 ); return *this;
   }
 
   TPythonDump& TPythonDump::operator<<(const TCollection_AsciiString & theStr)
@@ -293,6 +294,100 @@ namespace SMESH
              << P.z  << " ))";
     return *this;
   }
+
+  TCollection_AsciiString myLongStringStart( "TPythonDump::LongStringStart" );
+  TCollection_AsciiString myLongStringEnd  ( "TPythonDump::LongStringEnd" );
+
+  //================================================================================
+  /*!
+     * \brief Return marker of long string literal beginning
+      * \param type - a name of functionality producing the string literal 
+      * \retval TCollection_AsciiString - the marker string to be written into
+      * a raw python script
+   */
+  //================================================================================
+
+  TCollection_AsciiString TPythonDump::LongStringStart(const char* type)
+  {
+    return
+      myLongStringStart +
+      (Standard_Integer) strlen(type) +
+      " " +
+      (char*) type;
+  }
+
+  //================================================================================
+  /*!
+     * \brief Return marker of long string literal end
+      * \retval TCollection_AsciiString - the marker string to be written into
+      * a raw python script
+   */
+  //================================================================================
+
+  TCollection_AsciiString TPythonDump::LongStringEnd()
+  {
+    return myLongStringEnd;
+  }
+
+  //================================================================================
+  /*!
+     * \brief Cut out a long string literal from a string
+      * \param theText - text possibly containing string literals
+      * \param theFrom - position in the text to search from
+      * \param theLongString - the retrieved literal
+      * \param theStringType - a name of functionality produced the literal
+      * \retval bool - true if a string literal found
+     * 
+     * The literal is removed from theText; theFrom points position right after
+     * the removed literal
+   */
+  //================================================================================
+
+  bool  TPythonDump::CutoutLongString( TCollection_AsciiString & theText,
+                                       int                     & theFrom,
+                                       TCollection_AsciiString & theLongString,
+                                       TCollection_AsciiString & theStringType)
+  {
+    if ( theFrom < 1 || theFrom > theText.Length() )
+      return false;
+
+    // ...script \  beg marker    \ \ type \       literal              \  end marker  \ script...
+    //  "theText myLongStringStart7 Pattern!!! SALOME Mesh Pattern file myLongStringEndtextEnd"
+    //  012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
+    //  0         1         2         3         4         5         6         7         8
+
+    theFrom = theText.Location( myLongStringStart, theFrom, theText.Length() ); // = 09
+    if ( !theFrom )
+      return false;
+
+    // find where literal begins
+    int literalBeg = theFrom + myLongStringStart.Length(); // = 26
+    char* typeLenStr = theText.ToCString() + literalBeg - 1; // = "7 Pattern!!! SALO...."
+    int typeLen = atoi ( typeLenStr ); // = 7
+    while ( *typeLenStr != ' ' ) { // look for ' ' after typeLen
+      literalBeg++; // 26 -> 27
+      typeLenStr++;
+    }
+    literalBeg += typeLen + 1; // = 35
+    if ( literalBeg > theText.Length() )
+      return false;
+
+    // where literal ends (i.e. end marker begins)
+    int literalEnd = theText.Location( myLongStringEnd, literalBeg, theText.Length() ); // = 64
+    if ( !literalEnd )
+      literalEnd = theText.Length();
+
+    // literal
+    theLongString = theText.SubString( literalBeg, literalEnd - 1); // "!!! SALOME Mesh Pattern file "
+    // type
+    theStringType = theText.SubString( literalBeg - typeLen, literalBeg - 1 ); // "Pattern"
+    // cut off literal
+    literalEnd += myLongStringEnd.Length(); // = 79
+    TCollection_AsciiString textEnd = theText.SubString( literalEnd, theText.Length() ); // "textE..."
+    theText = theText.SubString( 1, theFrom - 1 ) + textEnd;
+
+    return true;
+  }
 }
 
 //=======================================================================
@@ -463,6 +558,39 @@ Handle(TColStd_HSequenceOfInteger) FindEntries (TCollection_AsciiString& theStri
   return aSeq;
 }
 
+namespace {
+
+  //================================================================================
+  /*!
+   * \brief Make a string be a valid python name
+    * \param aName - a string to fix
+    * \retval bool - true if aName was not modified
+   */
+  //================================================================================
+
+  bool fixPythonName(TCollection_AsciiString & aName )
+  {
+    const TCollection_AsciiString allowedChars =
+      "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_";
+    bool isValidName = true;
+    int p=1; // replace not allowed chars with underscore
+    while (p <= aName.Length() &&
+           (p = aName.FirstLocationNotInSet(allowedChars, p, aName.Length())))
+    {
+      if ( p == 1 || p == aName.Length() || aName.Value(p-1) == '_')
+        aName.Remove( p, 1 ); // remove double _ and from the start and the end
+      else
+        aName.SetValue(p, '_');
+      isValidName = false;
+    }
+    if ( aName.IsIntegerValue() ) { // aName must not start with a digit
+      aName.Insert( 1, 'a' );
+      isValidName = false;
+    }
+    return isValidName;
+  }
+}
+
 //=============================================================================
 /*!
  *  DumpPython
@@ -489,6 +617,16 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
   else
     aScript += aSMESHGen + ".SetCurrentStudy(None)";
 
+  // import python files corresponding to plugins
+  set<string> moduleNameSet;
+  map<string, GenericHypothesisCreator_i*>::iterator hyp_creator = myHypCreatorMap.begin();
+  for ( ; hyp_creator != myHypCreatorMap.end(); ++hyp_creator ) {
+    string moduleName = hyp_creator->second->GetModuleName();
+    bool newModule = moduleNameSet.insert( moduleName ).second;
+    if ( newModule )
+      aScript += helper + "\n\t" + "import " + (char*) moduleName.c_str();
+  }
+
   // Dump trace of restored study
   if (theSavedTrace.Length() > 0) {
     // For the convertion of IDL API calls -> smesh.py API, "smesh" standing for SMESH_Gen
@@ -502,8 +640,8 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
       int beg, end = aSavedTrace.Length(), from = 1;
       while ( from < end && ( beg = aSavedTrace.Location( aSmeshCall, from, end ))) {
         char charBefore = ( beg == 1 ) ? ' ' : aSavedTrace.Value( beg - 1 );
-        if ( isspace( charBefore ) || charBefore == '=' ) {
-          aSavedTrace.Insert( beg + aSmeshCall.Length() - 1, gen );
+        if ( isspace( charBefore ) || charBefore == '=' ) { // "smesh." is not a part of a long word
+          aSavedTrace.Insert( beg + aSmeshCall.Length() - 1, gen );// "smesh" -> "smeshgen"
           end += gen.Length();
         }
         from = beg + aSmeshCall.Length();
@@ -539,8 +677,7 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
   TColStd_SequenceOfAsciiString seqRemoved;
   Resource_DataMapOfAsciiStringAsciiString mapRemoved;
   Standard_Integer objectCounter = 0, aStart = 1, aScriptLength = aScript.Length();
-  TCollection_AsciiString anUpdatedScript, anEntry, aName, aBaseName("smeshObj_"),
-    allowedChars ("qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_");
+  TCollection_AsciiString anUpdatedScript, anEntry, aName, aBaseName("smeshObj_");
 
   // Collect names of GEOM objects to exclude same names for SMESH objects
   GEOM::string_array_var aGeomNames = geom->GetAllDumpNames();
@@ -562,21 +699,7 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
         // The Object is in Study
         aName = theObjectNames.Find(anEntry);
         // check validity of aName
-        bool isValidName = true;
-        int p=1; // replace not allowed chars with underscore
-        while (p <= aName.Length() &&
-               (p = aName.FirstLocationNotInSet(allowedChars, p, aName.Length())))
-        {
-          if ( p == 1 || p == aName.Length() || aName.Value(p-1) == '_')
-            aName.Remove( p, 1 ); // remove double _ and from the start and the end
-          else
-            aName.SetValue(p, '_');
-          isValidName = false;
-        }
-        if ( aName.IsIntegerValue() ) { // aName must not start with a digit
-          aName.Insert( 1, 'a' );
-          isValidName = false;
-        }
+        bool isValidName = fixPythonName( aName );
         if (theObjectNames.IsBound(aName) && anEntry != theObjectNames(aName)) {
           // diff objects have same name - make a new name by appending a digit
           TCollection_AsciiString aName2;
@@ -633,6 +756,10 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
   for (int ir = 1; ir <= seqRemoved.Length(); ir++) {
     anUpdatedScript += "\n\tSO = theStudy.FindObjectIOR(theStudy.ConvertObjectToIOR(";
     anUpdatedScript += seqRemoved.Value(ir);
+    // for object wrapped by class of smesh.py
+    anEntry = theObjectNames( seqRemoved.Value(ir) );
+    if ( anEntry2AccessorMethod.IsBound( anEntry ) )
+      anUpdatedScript += helper + "." + anEntry2AccessorMethod( anEntry );
     anUpdatedScript += "))\n\tif SO is not None: aStudyBuilder.RemoveObjectWithChildren(SO)";
   }
 
@@ -668,6 +795,49 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
 
   anUpdatedScript += "\n\n\tpass\n";
 
+  // -----------------------------------------------------------------
+  // put string literals describing patterns into separate functions
+  // -----------------------------------------------------------------
+
+  TCollection_AsciiString aLongString, aFunctionType;
+  int where = 1;
+  set< string > functionNameSet;
+  while ( SMESH::TPythonDump::CutoutLongString( anUpdatedScript, where, aLongString, aFunctionType ))
+  {
+    // make a python string literal
+    aLongString.Prepend(":\n\treturn '''\n");
+    aLongString += "\n\t'''\n\tpass\n";
+
+    TCollection_AsciiString functionName;
+
+    // check if the function returning this literal is already defined
+    int posAlready = anUpdatedScript.Location( aLongString, where, anUpdatedScript.Length() );
+    if ( posAlready ) // already defined
+    {
+      // find the function name
+      int functBeg = posAlready;
+      char* script = anUpdatedScript.ToCString() + posAlready - 1; // look at ":" after "def fuction()"
+      while ( *script != ' ' ) {
+        script--;
+        functBeg--;
+      }
+      functBeg++; // do not take ' '
+      posAlready--; // do not take ':'
+      functionName = anUpdatedScript.SubString( functBeg, posAlready );
+    }
+    else // not defined yet
+    {
+      // find a unique function name
+      fixPythonName( aFunctionType );
+      Standard_Integer nb = 0;
+      do functionName = aFunctionType + "_" + ( nb++ ) + "()";
+      while ( !functionNameSet.insert( functionName.ToCString() ).second );
+
+      anUpdatedScript += helper + "\n\ndef " + functionName + aLongString; // define function
+    }
+    anUpdatedScript.InsertBefore( where, functionName ); // call function
+  }
+
   aValidScript = true;
 
   return anUpdatedScript;
index cc5876cdf9fe98e4769035b27ac80be303eb8680..38922a53782d1a5e911b82e815c3ff8faed3b352 100644 (file)
@@ -1086,7 +1086,8 @@ SMESH::FreeEdges::Borders* FreeEdges_i::GetBorders()
 
   long i = 0, iEnd = aBorders.size();
 
-  SMESH::FreeEdges::Borders_var aResult = new SMESH::FreeEdges::Borders(iEnd);
+  SMESH::FreeEdges::Borders_var aResult = new SMESH::FreeEdges::Borders;
+  aResult->length(iEnd);
 
   SMESH::Controls::FreeEdges::TBorders::const_iterator anIter;
   for ( anIter = aBorders.begin() ; anIter != aBorders.end(); anIter++, i++ )
@@ -1997,16 +1998,16 @@ CORBA::Boolean Filter_i::SetCriteria( const SMESH::Filter::Criteria& theCriteria
     int         aCriterion    = theCriteria[ i ].Type;
     int         aCompare      = theCriteria[ i ].Compare;
     double      aThreshold    = theCriteria[ i ].Threshold;
+    const char* aThresholdStr = theCriteria[ i ].ThresholdStr;
+    const char* aThresholdID  = theCriteria[ i ].ThresholdID;
     int         aUnary        = theCriteria[ i ].UnaryOp;
     int         aBinary       = theCriteria[ i ].BinaryOp;
     double      aTolerance    = theCriteria[ i ].Tolerance;
-    const char* aThresholdStr = theCriteria[ i ].ThresholdStr;
-    const char* aThresholdID  = theCriteria[ i ].ThresholdID;
     ElementType aTypeOfElem   = theCriteria[ i ].TypeOfElement;
     long        aPrecision    = theCriteria[ i ].Precision;
 
     TPythonDump()<<"aCriteria.append(SMESH.Filter.Criterion("<<
-      aCriterion<<","<<aCompare<<","<<aThreshold<<",'"<<aThresholdStr<<"',"<<
+      aCriterion<<","<<aCompare<<","<<aThreshold<<",'"<<aThresholdStr<<"','"<<aThresholdID<<"',"<<
       aUnary<<","<<aBinary<<","<<aTolerance<<","<<aTypeOfElem<<","<<aPrecision<<"))";
 
     SMESH::Predicate_ptr aPredicate = SMESH::Predicate::_nil();
@@ -2255,7 +2256,7 @@ Predicate_ptr Filter_i::GetPredicate()
 // name    : toString
 // Purpose : Convert bool to LDOMString
 //=======================================================================
-static inline LDOMString toString( const bool val )
+static inline LDOMString toString( CORBA::Boolean val )
 {
   return val ? "logical not" : "";
 }
@@ -2273,7 +2274,7 @@ static inline bool toBool( const LDOMString& theStr )
 // name    : toString
 // Purpose : Convert double to LDOMString
 //=======================================================================
-static inline LDOMString toString( const double val )
+static inline LDOMString toString( CORBA::Double val )
 {
   char a[ 255 ];
   sprintf( a, "%e", val );
@@ -2293,7 +2294,7 @@ static inline double toDouble( const LDOMString& theStr )
 // name    : toString
 // Purpose : Convert functor type to LDOMString
 //=======================================================================
-static inline LDOMString toString( const long theType )
+static inline LDOMString toString( CORBA::Long theType )
 {
   switch ( theType )
   {
@@ -2509,12 +2510,12 @@ static LDOM_Element createFilterItem( const char*       theName,
   for ( CORBA::ULong i = 0, n = aCriteria->length(); i < n; i++ )
   {
     LDOM_Element aCriterionItem = theDoc.createElement( "criterion" );
-
-    aCriterionItem.setAttribute( ATTR_TYPE         , toString( aCriteria[ i ].Type      ) );
-    aCriterionItem.setAttribute( ATTR_COMPARE      , toString( aCriteria[ i ].Compare   ) );
-    aCriterionItem.setAttribute( ATTR_THRESHOLD    , toString( aCriteria[ i ].Threshold ) );
-    aCriterionItem.setAttribute( ATTR_UNARY        , toString( aCriteria[ i ].UnaryOp   ) );
-    aCriterionItem.setAttribute( ATTR_BINARY       , toString( aCriteria[ i ].BinaryOp  ) );
+    
+    aCriterionItem.setAttribute( ATTR_TYPE         , toString(  aCriteria[ i ].Type) );
+    aCriterionItem.setAttribute( ATTR_COMPARE      , toString(  aCriteria[ i ].Compare ) );
+    aCriterionItem.setAttribute( ATTR_THRESHOLD    , toString(  aCriteria[ i ].Threshold ) );
+    aCriterionItem.setAttribute( ATTR_UNARY        , toString(  aCriteria[ i ].UnaryOp ) );
+    aCriterionItem.setAttribute( ATTR_BINARY       , toString(  aCriteria[ i ].BinaryOp ) );
 
     aCriterionItem.setAttribute( ATTR_THRESHOLD_STR, (const char*)aCriteria[ i ].ThresholdStr );
     aCriterionItem.setAttribute( ATTR_TOLERANCE    , toString( aCriteria[ i ].Tolerance ) );
index e75216c213501089aec3592be90112e9f141d4bd..93d657e2098ca8a73bffbd7fa6af4bf81bc1489a 100644 (file)
@@ -637,6 +637,37 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMesh( GEOM::GEOM_Object_ptr theShapeObj
   return mesh._retn();
 }
 
+//=============================================================================
+/*!
+ *  SMESH_Gen_i::CreateEmptyMesh
+ *
+ *  Create empty mesh
+ */
+//=============================================================================
+
+SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateEmptyMesh()
+     throw ( SALOME::SALOME_Exception )
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMesh" );
+  // create mesh
+  SMESH::SMESH_Mesh_var mesh = this->createMesh();
+
+  // publish mesh in the study
+  if ( CanPublishInStudy( mesh ) ) {
+    SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
+    aStudyBuilder->NewCommand();  // There is a transaction
+    SALOMEDS::SObject_var aSO = PublishMesh( myCurrentStudy, mesh.in() );
+    aStudyBuilder->CommitCommand();
+    if ( !aSO->_is_nil() ) {
+      // Update Python script
+      TPythonDump() << aSO << " = " << this << ".CreateEmptyMesh()";
+    }
+  }
+
+  return mesh._retn();
+}
+
 //=============================================================================
 /*!
  *  SMESH_Gen_i::CreateMeshFromUNV
@@ -668,6 +699,10 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromUNV( const char* theFileName
   SMESH_Mesh_i* aServant = dynamic_cast<SMESH_Mesh_i*>( GetServant( aMesh ).in() );
   ASSERT( aServant );
   aServant->ImportUNVFile( theFileName );
+
+  // Dump creation of groups
+  aServant->GetGroups();
+
   return aMesh._retn();
 }
 
@@ -686,11 +721,6 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
   Unexpect aCatch(SALOME_SalomeException);
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshFromMED" );
 
-  // Python Dump
-  TPythonDump aPythonDump;
-  aPythonDump << "([";
-  //TCollection_AsciiString aStr ("([");
-
   // Retrieve mesh names from the file
   DriverMED_R_SMESHDS_Mesh myReader;
   myReader.SetFile( theFileName );
@@ -699,6 +729,14 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
   list<string> aNames = myReader.GetMeshNames(aStatus);
   SMESH::mesh_array_var aResult = new SMESH::mesh_array();
   theStatus = (SMESH::DriverMED_ReadStatus)aStatus;
+
+  { // open a new scope to make aPythonDump die before PythonDump in SMESH_Mesh::GetGroups()
+
+  // Python Dump
+  TPythonDump aPythonDump;
+  aPythonDump << "([";
+  //TCollection_AsciiString aStr ("([");
+
   if (theStatus == SMESH::DRS_OK) {
     SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
     aStudyBuilder->NewCommand();  // There is a transaction
@@ -744,6 +782,10 @@ SMESH::mesh_array* SMESH_Gen_i::CreateMeshesFromMED( const char* theFileName,
 
   // Update Python script
   aPythonDump << "], status) = " << this << ".CreateMeshesFromMED('" << theFileName << "')";
+  }
+  // Dump creation of groups
+  for ( int i = 0; i < aResult->length(); ++i )
+    aResult[ i ]->GetGroups();
 
   return aResult._retn();
 }
index 11f07f75d13158bf6c904dc8794f194ab82420a4..43dd6402b123e3f647090ceb1e6b3b0038fb3114 100644 (file)
@@ -192,6 +192,10 @@ public:
   SMESH::SMESH_Mesh_ptr CreateMesh( GEOM::GEOM_Object_ptr theShapeObject )
     throw ( SALOME::SALOME_Exception );
 
+  // Create empty mesh
+  SMESH::SMESH_Mesh_ptr CreateEmptyMesh()
+    throw ( SALOME::SALOME_Exception );
+
   //  Create mesh(es) and import data from UNV file
   SMESH::SMESH_Mesh_ptr CreateMeshesFromUNV( const char* theFileName )
     throw ( SALOME::SALOME_Exception );
index d3c645941bb8bbf65da35314c8e06cc352d73426..1874fe167407f2436510a49c0762067d4651ce5b 100644 (file)
@@ -309,23 +309,30 @@ static void addReference (SALOMEDS::Study_ptr   theStudy,
     SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder();
     SALOMEDS::SObject_var aReferenceSO;
     if ( !theTag ) {
+      // check if the reference to theToObject already exists
+      // and find a free label for the reference object
       bool isReferred = false;
+      int tag = 1;
       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;
+      for ( ; !isReferred && anIter->More(); anIter->Next(), ++tag ) {
+        if ( anIter->Value()->ReferencedObject( aReferenceSO )) {
+          if ( strcmp( aReferenceSO->GetID(), aToObjSO->GetID() ) == 0 )
+            isReferred = true;
+        }
+        else if ( !theTag ) {
+          SALOMEDS::GenericAttribute_var anAttr;
+          if ( !anIter->Value()->FindAttribute( anAttr, "AttributeIOR" ))
+            theTag = tag;
+        }
       }
-      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 );
+      if ( isReferred )
+        return;
+      if ( !theTag )
+        theTag = tag;
     }
+    if ( !theSObject->FindSubObject( theTag, aReferenceSO ))
+      aReferenceSO = aStudyBuilder->NewObjectToTag( theSObject, theTag );
+    aStudyBuilder->Addreference( aReferenceSO, aToObjSO );
   }
 }
 
index df89d82c818e9464c60602120bedb374815fff63..fd806b0276737d9dd11b7544a504bc437dc8c109 100644 (file)
@@ -92,6 +92,8 @@ public:
   virtual SMESH_Hypothesis_i* Create(PortableServer::POA_ptr thePOA,
                                      int                     theStudyId,
                                      ::SMESH_Gen*            theGenImpl) = 0;
+  // return the name of IDL module
+  virtual std::string GetModuleName() = 0;
 };
 
 //=============================================================================
@@ -106,7 +108,7 @@ template <class T> class HypothesisCreator_i: public GenericHypothesisCreator_i
 public:
   virtual SMESH_Hypothesis_i* Create (PortableServer::POA_ptr thePOA,
                                       int                     theStudyId,
-                                      ::SMESH_Gen*            theGenImpl) 
+                                      ::SMESH_Gen*            theGenImpl)
   {
     return new T (thePOA, theStudyId, theGenImpl);
   };
index eeeef51ee7c00f2ecd6f31e9de2467ad1aca817c..6baea05720a7f360aa70649b62a266dcc18d9389 100644 (file)
@@ -61,7 +61,7 @@ public :
   // IDL Methods
   void setProtocol(SALOME::TypeOfCommunication typ) {}
   void release() {}
-  SALOME::SenderInt_ptr getSenderForNumber(long int) {return SALOME::SenderInt::_nil();}
+  SALOME::SenderInt_ptr getSenderForNumber(SALOME_MED::medGeometryElement) {return SALOME::SenderInt::_nil();}
   SALOME::SenderInt_ptr getSenderForNumberIndex() {return SALOME::SenderInt::_nil();}
   
   CORBA::Long            getIdentifier()      
index bbf9590069631a612e308244c12bfd7fcd7b9668..d67f7e62d6689396a3b4b33237628c1c140b6dcb 100644 (file)
@@ -1081,7 +1081,7 @@ void SMESH_MEDMesh_i::calculeNbElts() throw(SALOME::SALOME_Exception)
 
                        int nb_of_nodes = elem->NbNodes();
                        medElement = SALOME_MED::MED_HEXA8;
-                       ASSERT(nb_of_nodes = 8);
+                       ASSERT(nb_of_nodes == 8);
 
                        if (trouveHexa8 == 0)
                        {
index 3b0fedec9c9c338bbe8ce1e85893e5061603d405..53c0d35d77cb7b4bd5900b33a0b516fb7a284ed3 100644 (file)
 class SMESH_Mesh_i;
 
 class SMESH_MEDMesh_i:
-       public virtual POA_SALOME_MED::MESH, public virtual SALOME::GenericObj_i
+  public virtual POA_SALOME_MED::MESH, 
+  public virtual SALOME::GenericObj_i
 {
-  public: private: protected:
-       // C++ object containing values
-       ::SMESH_Mesh_i * _mesh_i;
-       SMESHDS_Mesh *_meshDS;
-
-       string _meshId;
-       bool _compte;
-       bool _creeFamily;
-       int _indexElts;
-       int _indexEnts;
-       int _famIdent;
-
-       map < SALOME_MED::medGeometryElement, int >_mapIndToSeqElts;
-       SALOME_MED::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
-
-       map < SALOME_MED::medEntityMesh, int >_mapNbTypes;
-       map < SALOME_MED::medEntityMesh, int >_mapIndToVectTypes;
-       vector < SALOME_MED::medGeometryElement >
-               _TypesId[MED_NBR_GEOMETRIE_MAILLE];
-
-       vector < SALOME_MED::FAMILY_ptr > _families;
-  public:
-
-       // Constructors and associated internal methods
-       SMESH_MEDMesh_i();
-       SMESH_MEDMesh_i(SMESH_Mesh_i * m);
-       ~SMESH_MEDMesh_i();
-
-       // IDL Methods
-       void setProtocol(SALOME::TypeOfCommunication typ) {}
-       void release() {}
-       SALOME::SenderDouble_ptr getSenderForCoordinates(long int) {return SALOME::SenderDouble::_nil();}
-       SALOME::SenderInt_ptr getSenderForConnectivity(long int, long int, long int, long int) {return SALOME::SenderInt::_nil();}
-        SALOME::SenderInt_ptr getSenderForPolygonsConnectivity(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
-        SALOME::SenderInt_ptr getSenderForPolygonsConnectivityIndex(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
-        SALOME::SenderInt_ptr getSenderForPolyhedronConnectivity(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
-        SALOME::SenderInt_ptr getSenderForPolyhedronIndex(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
-        SALOME::SenderInt_ptr getSenderForPolyhedronFacesIndex() {return SALOME::SenderInt::_nil();}
-       
-       char *getName() throw(SALOME::SALOME_Exception);
-       CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getMeshDimension() throw(SALOME::SALOME_Exception);
-
-        CORBA::Boolean  getIsAGrid() throw (SALOME::SALOME_Exception);
-
-        CORBA::Boolean
-       existConnectivity(SALOME_MED::medConnectivity connectivityType,
-                         SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-       char *getCoordinatesSystem() throw(SALOME::SALOME_Exception);
-
-        CORBA::Double getCoordinate(CORBA::Long Number, CORBA::Long Axis)
-         throw (SALOME::SALOME_Exception);
-
-       SALOME_MED::double_array * getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::string_array * getCoordinatesNames()
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::string_array * getCoordinatesUnits()
-         throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getNumberOfNodes() throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getNumberOfTypes(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::medGeometryElement_array *
-               getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
-               SALOME_Exception);
-
-        SALOME_MED::medGeometryElement
-       getElementType(SALOME_MED::medEntityMesh entity,
-                      CORBA::Long number)
-         throw   (SALOME::SALOME_Exception);
-
-        CORBA::Long getNumberOfElements(SALOME_MED::medEntityMesh entity,
-               SALOME_MED::medGeometryElement geomElement)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-       getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
-                       SALOME_MED::medConnectivity mode,
-                       SALOME_MED::medEntityMesh entity,
-                       SALOME_MED::medGeometryElement geomElement)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-       getConnectivityIndex(SALOME_MED::medConnectivity mode,
-                            SALOME_MED::medEntityMesh entity)
-         throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::long_array*
-       getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-       CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode,
-               SALOME_MED::medEntityMesh entity,
-               SALOME_MED::medGeometryElement type,
-               const SALOME_MED::long_array & connectivity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-               getReverseConnectivity(SALOME_MED::medConnectivity mode)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::long_array *
-               getReverseConnectivityIndex(SALOME_MED::
-               medConnectivity mode) throw(SALOME::SALOME_Exception);
-
-       // Family and Group
-       CORBA::Long getNumberOfFamilies(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       CORBA::Long getNumberOfGroups(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::Family_array *
-       getFamilies(SALOME_MED::medEntityMesh entity)
-         throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FAMILY_ptr getFamily(SALOME_MED::medEntityMesh entity,
-               CORBA::Long i) throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::Group_array * getGroups(SALOME_MED::medEntityMesh entity)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::GROUP_ptr getGroup(SALOME_MED::medEntityMesh entity,
-               CORBA::Long i) throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::SUPPORT_ptr
-       getBoundaryElements(SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-        SALOME_MED::SUPPORT_ptr getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
-         throw (SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getVolume(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getArea(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getLength(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getNormal(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getBarycenter(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       SALOME_MED::FIELD_ptr getNeighbourhood(SALOME_MED::SUPPORT_ptr mySupport)
-               throw(SALOME::SALOME_Exception);
-
-       // Others
-       void addInStudy(SALOMEDS::Study_ptr myStudy,
-               SALOME_MED::MESH_ptr myIor) throw(SALOME::SALOME_Exception);
-       CORBA::Long addDriver(SALOME_MED::medDriverTypes driverType,
-               const char *fileName, const char *meshName)
-               throw(SALOME::SALOME_Exception);
-       void rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception);
-       void read(CORBA::Long i) throw(SALOME::SALOME_Exception);
-       void write(CORBA::Long i, const char *driverMeshName)
-               throw(SALOME::SALOME_Exception);
-
-       //                    Cuisine interne
-       CORBA::Long getCorbaIndex() throw(SALOME::SALOME_Exception);
-
-        SALOME_MED::MESH::meshInfos * getMeshGlobal()
-         throw (SALOME::SALOME_Exception);
-
-       bool areEquals(SALOME_MED::MESH_ptr other) { return false;};
-
-        SALOME_MED::MESH::coordinateInfos * getCoordGlobal()
-         throw (SALOME::SALOME_Exception);
-
-        SALOME_MED::MESH::connectivityInfos *
-       getConnectGlobal(SALOME_MED::medEntityMesh entity)
-         throw (SALOME::SALOME_Exception);
-
-       //
-       void calculeNbElts() throw(SALOME::SALOME_Exception);
-       void createFamilies() throw(SALOME::SALOME_Exception);
+protected:
+  // C++ object containing values
+  ::SMESH_Mesh_i * _mesh_i;
+  SMESHDS_Mesh *_meshDS;
+  
+  string _meshId;
+  bool _compte;
+  bool _creeFamily;
+  int _indexElts;
+  int _indexEnts;
+  int _famIdent;
+  
+  map < SALOME_MED::medGeometryElement, int >_mapIndToSeqElts;
+  SALOME_MED::long_array_var _seq_elemId[MED_NBR_GEOMETRIE_MAILLE];
+  
+  map < SALOME_MED::medEntityMesh, int >_mapNbTypes;
+  map < SALOME_MED::medEntityMesh, int >_mapIndToVectTypes;
+  vector < SALOME_MED::medGeometryElement >
+  _TypesId[MED_NBR_GEOMETRIE_MAILLE];
+  
+  vector < SALOME_MED::FAMILY_ptr > _families;
+public:
+  
+  // Constructors and associated internal methods
+  SMESH_MEDMesh_i();
+  SMESH_MEDMesh_i(SMESH_Mesh_i * m);
+  ~SMESH_MEDMesh_i();
+  
+  // IDL Methods
+  void setProtocol(SALOME::TypeOfCommunication typ) {}
+  void release() {}
+  SALOME::SenderDouble_ptr getSenderForCoordinates(SALOME_MED::medModeSwitch) {return SALOME::SenderDouble::_nil();}
+  SALOME::SenderInt_ptr getSenderForConnectivity(SALOME_MED::medModeSwitch, 
+                                                SALOME_MED::medConnectivity, 
+                                                SALOME_MED::medEntityMesh, 
+                                                SALOME_MED::medGeometryElement) 
+  {
+    return SALOME::SenderInt::_nil();
+  }
+  SALOME::SenderInt_ptr getSenderForPolygonsConnectivity(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
+  SALOME::SenderInt_ptr getSenderForPolygonsConnectivityIndex(SALOME_MED::medConnectivity, SALOME_MED::medEntityMesh) {return SALOME::SenderInt::_nil();}
+  SALOME::SenderInt_ptr getSenderForPolyhedronConnectivity(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
+  SALOME::SenderInt_ptr getSenderForPolyhedronIndex(SALOME_MED::medConnectivity) {return SALOME::SenderInt::_nil();}
+  SALOME::SenderInt_ptr getSenderForPolyhedronFacesIndex() {return SALOME::SenderInt::_nil();}
+  
+  char *getName() throw(SALOME::SALOME_Exception);
+  CORBA::Long getSpaceDimension() throw(SALOME::SALOME_Exception);
+  
+  CORBA::Long getMeshDimension() throw(SALOME::SALOME_Exception);
+  
+  CORBA::Boolean  getIsAGrid() throw (SALOME::SALOME_Exception);
+  
+  CORBA::Boolean
+  existConnectivity(SALOME_MED::medConnectivity connectivityType,
+                   SALOME_MED::medEntityMesh entity)
+    throw (SALOME::SALOME_Exception);
+  
+  char *getCoordinatesSystem() throw(SALOME::SALOME_Exception);
+  
+  CORBA::Double getCoordinate(CORBA::Long Number, CORBA::Long Axis)
+    throw (SALOME::SALOME_Exception);
+  
+  SALOME_MED::double_array * getCoordinates(SALOME_MED::medModeSwitch typeSwitch)
+    throw(SALOME::SALOME_Exception);
+
+  SALOME_MED::string_array * getCoordinatesNames()
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::string_array * getCoordinatesUnits()
+    throw(SALOME::SALOME_Exception);
+  
+  CORBA::Long getNumberOfNodes() throw(SALOME::SALOME_Exception);
+  
+  CORBA::Long getNumberOfTypes(SALOME_MED::medEntityMesh entity)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::medGeometryElement_array *
+  getTypes(SALOME_MED::medEntityMesh entity) throw(SALOME::
+                                                  SALOME_Exception);
+  
+  SALOME_MED::medGeometryElement
+  getElementType(SALOME_MED::medEntityMesh entity,
+                CORBA::Long number)
+    throw   (SALOME::SALOME_Exception);
+  
+  CORBA::Long getNumberOfElements(SALOME_MED::medEntityMesh entity,
+                                 SALOME_MED::medGeometryElement geomElement)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::long_array *
+  getConnectivity(SALOME_MED::medModeSwitch typeSwitch,
+                 SALOME_MED::medConnectivity mode,
+                 SALOME_MED::medEntityMesh entity,
+                 SALOME_MED::medGeometryElement geomElement)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::long_array *
+  getConnectivityIndex(SALOME_MED::medConnectivity mode,
+                      SALOME_MED::medEntityMesh entity)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::long_array*
+  getGlobalNumberingIndex(SALOME_MED::medEntityMesh entity)
+    throw (SALOME::SALOME_Exception);
+  
+  CORBA::Long getElementNumber(SALOME_MED::medConnectivity mode,
+                              SALOME_MED::medEntityMesh entity,
+                              SALOME_MED::medGeometryElement type,
+                              const SALOME_MED::long_array & connectivity)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::long_array *
+  getReverseConnectivity(SALOME_MED::medConnectivity mode)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::long_array *
+  getReverseConnectivityIndex(SALOME_MED::medConnectivity mode) 
+    throw(SALOME::SALOME_Exception);
+  
+  // Family and Group
+  CORBA::Long getNumberOfFamilies(SALOME_MED::medEntityMesh entity)
+    throw(SALOME::SALOME_Exception);
+  
+  CORBA::Long getNumberOfGroups(SALOME_MED::medEntityMesh entity)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::Family_array *
+  getFamilies(SALOME_MED::medEntityMesh entity)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::FAMILY_ptr getFamily(SALOME_MED::medEntityMesh entity,
+                                  CORBA::Long i) 
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::Group_array * getGroups(SALOME_MED::medEntityMesh entity)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::GROUP_ptr getGroup(SALOME_MED::medEntityMesh entity,
+                                CORBA::Long i) 
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::SUPPORT_ptr
+  getBoundaryElements(SALOME_MED::medEntityMesh entity)
+    throw (SALOME::SALOME_Exception);
+  
+  SALOME_MED::SUPPORT_ptr getSkin(SALOME_MED::SUPPORT_ptr mySupport3D)
+    throw (SALOME::SALOME_Exception);
+  
+  SALOME_MED::FIELD_ptr getVolume(SALOME_MED::SUPPORT_ptr mySupport)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::FIELD_ptr getArea(SALOME_MED::SUPPORT_ptr mySupport)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::FIELD_ptr getLength(SALOME_MED::SUPPORT_ptr mySupport)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::FIELD_ptr getNormal(SALOME_MED::SUPPORT_ptr mySupport)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::FIELD_ptr getBarycenter(SALOME_MED::SUPPORT_ptr mySupport)
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::FIELD_ptr getNeighbourhood(SALOME_MED::SUPPORT_ptr mySupport)
+    throw(SALOME::SALOME_Exception);
+  
+  // Others
+  void addInStudy(SALOMEDS::Study_ptr myStudy,
+                 SALOME_MED::MESH_ptr myIor) 
+    throw(SALOME::SALOME_Exception);
+  CORBA::Long addDriver(SALOME_MED::medDriverTypes driverType,
+                       const char *fileName, const char *meshName)
+    throw(SALOME::SALOME_Exception);
+  void rmDriver(CORBA::Long i) throw(SALOME::SALOME_Exception);
+  void read(CORBA::Long i) throw(SALOME::SALOME_Exception);
+  void write(CORBA::Long i, const char *driverMeshName)
+    throw(SALOME::SALOME_Exception);
+  
+  //                    Cuisine interne
+  CORBA::Long getCorbaIndex() 
+    throw(SALOME::SALOME_Exception);
+  
+  SALOME_MED::MESH::meshInfos * getMeshGlobal()
+    throw (SALOME::SALOME_Exception);
+  
+  bool areEquals(SALOME_MED::MESH_ptr other) { return false;};
+  
+  SALOME_MED::MESH::coordinateInfos * getCoordGlobal()
+    throw (SALOME::SALOME_Exception);
+  
+  SALOME_MED::MESH::connectivityInfos *
+  getConnectGlobal(SALOME_MED::medEntityMesh entity)
+    throw (SALOME::SALOME_Exception);
+  
+  //
+  void calculeNbElts() throw(SALOME::SALOME_Exception);
+  void createFamilies() throw(SALOME::SALOME_Exception);
 };
 
 #endif /* _MED_MESH_I_HXX_ */
index d852584403a3a2b87fca8881f2fa45d47a27c040..5bc2da5c529e87ededddcfed41f6ec87fab8731d 100644 (file)
@@ -37,6 +37,7 @@
 #include "SMESH_Gen_i.hxx"
 #include "SMESH_Filter_i.hxx"
 #include "SMESH_PythonDump.hxx"
+#include "CASCatch.hxx"
 
 #include "utilities.h"
 
@@ -61,7 +62,7 @@ using SMESH::TPythonDump;
 SMESH_MeshEditor_i::SMESH_MeshEditor_i(SMESH_Mesh* theMesh)
 {
        _myMesh = theMesh;
-};
+}
 
 //=============================================================================
 /*!
@@ -72,6 +73,9 @@ SMESH_MeshEditor_i::SMESH_MeshEditor_i(SMESH_Mesh* theMesh)
 CORBA::Boolean
   SMESH_MeshEditor_i::RemoveElements(const SMESH::long_array & IDsOfElements)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   ::SMESH_MeshEditor anEditor( _myMesh );
   list< int > IdList;
 
@@ -85,7 +89,7 @@ CORBA::Boolean
 #endif
   // Remove Elements
   return anEditor.Remove( IdList, false );
-};
+}
 
 //=============================================================================
 /*!
@@ -95,6 +99,9 @@ CORBA::Boolean
 
 CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::long_array & IDsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   ::SMESH_MeshEditor anEditor( _myMesh );
   list< int > IdList;
   for (int i = 0; i < IDsOfNodes.length(); i++)
@@ -107,7 +114,7 @@ CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::long_array & IDsOfNo
 #endif
 
   return anEditor.Remove( IdList, true );
-};
+}
 
 //=============================================================================
 /*!
@@ -115,31 +122,39 @@ CORBA::Boolean SMESH_MeshEditor_i::RemoveNodes(const SMESH::long_array & IDsOfNo
  */
 //=============================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes)
+CORBA::Long SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   int NbNodes = IDsOfNodes.length();
+  SMDS_MeshElement* elem = 0;
   if (NbNodes == 2)
   {
     CORBA::Long index1 = IDsOfNodes[0];
     CORBA::Long index2 = IDsOfNodes[1];
-    GetMeshDS()->AddEdge(GetMeshDS()->FindNode(index1), GetMeshDS()->FindNode(index2));
+    elem = GetMeshDS()->AddEdge(GetMeshDS()->FindNode(index1), GetMeshDS()->FindNode(index2));
 
     // Update Python script
-    TPythonDump() << "isDone = " << this << ".AddEdge([ "
+    TPythonDump() << "edge = " << this << ".AddEdge([ "
                   << index1 << ", " << index2 <<" ])";
   }
   if (NbNodes == 3) {
     CORBA::Long n1 = IDsOfNodes[0];
     CORBA::Long n2 = IDsOfNodes[1];
     CORBA::Long n12 = IDsOfNodes[2];
-    GetMeshDS()->AddEdge(GetMeshDS()->FindNode(n1),
-                         GetMeshDS()->FindNode(n2),
-                         GetMeshDS()->FindNode(n12));
+    elem = GetMeshDS()->AddEdge(GetMeshDS()->FindNode(n1),
+                                GetMeshDS()->FindNode(n2),
+                                GetMeshDS()->FindNode(n12));
     // Update Python script
-    TPythonDump() << "isDone = " << this << ".AddEdge([ "
+    TPythonDump() << "edgeID = " << this << ".AddEdge([ "
                   <<n1<<", "<<n2<<", "<<n12<<" ])";
   }
-  return true;
+
+  if(elem)
+    return elem->GetID();
+
+  return 0;
 }
 
 //=============================================================================
@@ -148,16 +163,19 @@ CORBA::Boolean SMESH_MeshEditor_i::AddEdge(const SMESH::long_array & IDsOfNodes)
  */
 //=============================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::AddNode(CORBA::Double x,
-                                           CORBA::Double y, CORBA::Double z)
+CORBA::Long SMESH_MeshEditor_i::AddNode(CORBA::Double x,
+                                        CORBA::Double y, CORBA::Double z)
 {
-  GetMeshDS()->AddNode(x, y, z);
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
+  const SMDS_MeshNode* N = GetMeshDS()->AddNode(x, y, z);
 
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".AddNode( "
+  TPythonDump() << "nodeID = " << this << ".AddNode( "
                 << x << ", " << y << ", " << z << " )";
 
-  return true;
+  return N->GetID();
 }
 
 //=============================================================================
@@ -166,8 +184,11 @@ CORBA::Boolean SMESH_MeshEditor_i::AddNode(CORBA::Double x,
  */
 //=============================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
+CORBA::Long SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   int NbNodes = IDsOfNodes.length();
   if (NbNodes < 3)
   {
@@ -178,57 +199,60 @@ CORBA::Boolean SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
   for (int i = 0; i < NbNodes; i++)
     nodes[i] = GetMeshDS()->FindNode(IDsOfNodes[i]);
 
-  if (NbNodes == 3)
-  {
-    GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2]);
+  SMDS_MeshElement* elem = 0;
+  if (NbNodes == 3) {
+    elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2]);
   }
-  else if (NbNodes == 4)
-  {
-    GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3]);
+  else if (NbNodes == 4) {
+    elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3]);
   }
-  else if (NbNodes == 6)
-  {
-    GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
-                         nodes[4], nodes[5]);
+  else if (NbNodes == 6) {
+    elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+                                nodes[4], nodes[5]);
   }
-  else if (NbNodes == 8)
-  {
-    GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
-                         nodes[4], nodes[5], nodes[6], nodes[7]);
+  else if (NbNodes == 8) {
+    elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+                                nodes[4], nodes[5], nodes[6], nodes[7]);
   }
 
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".AddFace( " << IDsOfNodes << " )";
-#ifdef _DEBUG_
-  TPythonDump() << "print 'AddFace: ', isDone";
-#endif
+  TPythonDump() << "faceID = " << this << ".AddFace( " << IDsOfNodes << " )";
 
-  return true;
-};
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
 
 //=============================================================================
 /*!
  *  AddPolygonalFace
  */
 //=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolygonalFace
+CORBA::Long SMESH_MeshEditor_i::AddPolygonalFace
                                    (const SMESH::long_array & IDsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   int NbNodes = IDsOfNodes.length();
   std::vector<const SMDS_MeshNode*> nodes (NbNodes);
   for (int i = 0; i < NbNodes; i++)
     nodes[i] = GetMeshDS()->FindNode(IDsOfNodes[i]);
 
-  GetMeshDS()->AddPolygonalFace(nodes);
+  const SMDS_MeshElement* elem = GetMeshDS()->AddPolygonalFace(nodes);
   
   // Update Python script
-  TPythonDump() <<"isDone = "<<this<<".AddPolygonalFace( "<<IDsOfNodes<<" )";
+  TPythonDump() <<"faceID = "<<this<<".AddPolygonalFace( "<<IDsOfNodes<<" )";
 #ifdef _DEBUG_
-  TPythonDump() << "print 'AddPolygonalFace: ', isDone";
+  TPythonDump() << "print 'AddPolygonalFace: ', faceID";
 #endif
 
-  return true;
-};
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
 
 //=============================================================================
 /*!
@@ -236,8 +260,11 @@ CORBA::Boolean SMESH_MeshEditor_i::AddPolygonalFace
  */
 //=============================================================================
 
-CORBA::Boolean SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNodes)
+CORBA::Long SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   int NbNodes = IDsOfNodes.length();
   vector< const SMDS_MeshNode*> n(NbNodes);
   for(int i=0;i<NbNodes;i++)
@@ -264,24 +291,31 @@ CORBA::Boolean SMESH_MeshEditor_i::AddVolume(const SMESH::long_array & IDsOfNode
                                         n[15],n[16],n[17],n[18],n[19]);
     break;
   }
+
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".AddVolume( " << IDsOfNodes << " )";
+  TPythonDump() << "volID = " << this << ".AddVolume( " << IDsOfNodes << " )";
 #ifdef _DEBUG_
-  TPythonDump() << "print 'AddVolume: ', isDone";
+  TPythonDump() << "print 'AddVolume: ', volID";
 #endif
 
-  return elem;
-};
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
 
 //=============================================================================
 /*!
  *  AddPolyhedralVolume
  */
 //=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolume
+CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolume
                                    (const SMESH::long_array & IDsOfNodes,
                                     const SMESH::long_array & Quantities)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   int NbNodes = IDsOfNodes.length();
   std::vector<const SMDS_MeshNode*> n (NbNodes);
   for (int i = 0; i < NbNodes; i++)
@@ -292,26 +326,32 @@ CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolume
   for (int j = 0; j < NbFaces; j++)
     q[j] = Quantities[j];
 
-  GetMeshDS()->AddPolyhedralVolume(n, q);
+  const SMDS_MeshElement* elem = GetMeshDS()->AddPolyhedralVolume(n, q);
 
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".AddPolyhedralVolume( "
+  TPythonDump() << "volID = " << this << ".AddPolyhedralVolume( "
                 << IDsOfNodes << ", " << Quantities << " )";
 #ifdef _DEBUG_
-  TPythonDump() << "print 'AddPolyhedralVolume: ', isDone";
+  TPythonDump() << "print 'AddPolyhedralVolume: ', volID";
 #endif
 
-  return true;
-};
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
 
 //=============================================================================
 /*!
  *  AddPolyhedralVolumeByFaces
  */
 //=============================================================================
-CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
+CORBA::Long SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
                                    (const SMESH::long_array & IdsOfFaces)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   int NbFaces = IdsOfFaces.length();
   std::vector<const SMDS_MeshNode*> poly_nodes;
   std::vector<int> quantities (NbFaces);
@@ -326,17 +366,20 @@ CORBA::Boolean SMESH_MeshEditor_i::AddPolyhedralVolumeByFaces
     }
   }
 
-  GetMeshDS()->AddPolyhedralVolume(poly_nodes, quantities);
+  const SMDS_MeshElement* elem = GetMeshDS()->AddPolyhedralVolume(poly_nodes, quantities);
 
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".AddPolyhedralVolumeByFaces( "
+  TPythonDump() << "volID = " << this << ".AddPolyhedralVolumeByFaces( "
                 << IdsOfFaces << " )";
 #ifdef _DEBUG_
-  TPythonDump() << "print 'AddPolyhedralVolume: ', isDone";
+  TPythonDump() << "print 'AddPolyhedralVolume: ', volID";
 #endif
 
-  return true;
-};
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
 
 //=============================================================================
 /*!
@@ -349,6 +392,9 @@ CORBA::Boolean SMESH_MeshEditor_i::MoveNode(CORBA::Long   NodeID,
                                             CORBA::Double y,
                                             CORBA::Double z)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   const SMDS_MeshNode * node = GetMeshDS()->FindNode( NodeID );
   if ( !node )
     return false;
@@ -371,6 +417,9 @@ CORBA::Boolean SMESH_MeshEditor_i::MoveNode(CORBA::Long   NodeID,
 CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(CORBA::Long NodeID1,
                                                CORBA::Long NodeID2)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   const SMDS_MeshNode * n1 = GetMeshDS()->FindNode( NodeID1 );
   const SMDS_MeshNode * n2 = GetMeshDS()->FindNode( NodeID2 );
   if ( !n1 || !n2 )
@@ -393,6 +442,9 @@ CORBA::Boolean SMESH_MeshEditor_i::InverseDiag(CORBA::Long NodeID1,
 CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1,
                                               CORBA::Long NodeID2)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   const SMDS_MeshNode * n1 = GetMeshDS()->FindNode( NodeID1 );
   const SMDS_MeshNode * n2 = GetMeshDS()->FindNode( NodeID2 );
   if ( !n1 || !n2 )
@@ -403,7 +455,12 @@ CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1,
                 << NodeID1 << ", " << NodeID2 <<  " )";
 
   ::SMESH_MeshEditor aMeshEditor( _myMesh );
-  return aMeshEditor.DeleteDiag ( n1, n2 );
+
+  bool stat = aMeshEditor.DeleteDiag ( n1, n2 );
+
+  UpdateLastResult(aMeshEditor);
+
+  return stat;
 }
 
 //=============================================================================
@@ -414,6 +471,9 @@ CORBA::Boolean SMESH_MeshEditor_i::DeleteDiag(CORBA::Long NodeID1,
 
 CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfElements)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   ::SMESH_MeshEditor anEditor( _myMesh );
   for (int i = 0; i < IDsOfElements.length(); i++)
   {
@@ -437,6 +497,9 @@ CORBA::Boolean SMESH_MeshEditor_i::Reorient(const SMESH::long_array & IDsOfEleme
 
 CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theObject)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   CORBA::Boolean isDone = Reorient(anElementsId);
 
@@ -450,6 +513,27 @@ CORBA::Boolean SMESH_MeshEditor_i::ReorientObject(SMESH::SMESH_IDSource_ptr theO
   return isDone;
 }
 
+
+//=======================================================================
+//function : ToMap
+//purpose  : auxilary function for conversion long_array to std::map<>
+//           which is used in some methods
+//=======================================================================
+static void ToMap(const SMESH::long_array & IDs,
+                  const SMESHDS_Mesh* aMesh,
+                  std::map<int,const SMDS_MeshElement*>& aMap)
+{ 
+  for (int i=0; i<IDs.length(); i++) {
+    CORBA::Long ind = IDs[i];
+    std::map<int,const SMDS_MeshElement*>::iterator It = aMap.find(ind);
+    if(It==aMap.end()) {
+      const SMDS_MeshElement * elem = aMesh->FindElement(ind);
+      aMap.insert( make_pair(ind,elem) );
+    }
+  }
+}
+
+
 //=============================================================================
 /*!
  *
@@ -459,14 +543,13 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array &   IDsOfE
                                               SMESH::NumericalFunctor_ptr Criterion,
                                               CORBA::Double               MaxAngle)
 {
-  set<const SMDS_MeshElement*> faces;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      faces.insert( elem );
-  }
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
+  SMESHDS_Mesh* aMesh = GetMeshDS();
+  map<int,const SMDS_MeshElement*> faces;
+  ToMap(IDsOfElements, aMesh, faces);
+
   SMESH::NumericalFunctor_i* aNumericalFunctor =
     dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
   SMESH::Controls::NumericalFunctorPtr aCrit;
@@ -483,9 +566,15 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array &   IDsOfE
 #endif
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.TriToQuad( faces, aCrit, MaxAngle );
+
+  bool stat = anEditor.TriToQuad( faces, aCrit, MaxAngle );
+
+  UpdateLastResult(anEditor);
+
+  return stat;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -495,6 +584,9 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr
                                                     SMESH::NumericalFunctor_ptr Criterion,
                                                     CORBA::Double               MaxAngle)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   CORBA::Boolean isDone = TriToQuad(anElementsId, Criterion, MaxAngle);
 
@@ -515,6 +607,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -523,14 +616,13 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr
 CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfElements,
                                               SMESH::NumericalFunctor_ptr Criterion)
 {
-  set<const SMDS_MeshElement*> faces;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      faces.insert( elem );
-  }
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
+  SMESHDS_Mesh* aMesh = GetMeshDS();
+  map<int,const SMDS_MeshElement*> faces;
+  ToMap(IDsOfElements, aMesh, faces);
+
   SMESH::NumericalFunctor_i* aNumericalFunctor =
     dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
   SMESH::Controls::NumericalFunctorPtr aCrit;
@@ -547,9 +639,14 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfE
 #endif
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.QuadToTri( faces, aCrit );
+  CORBA::Boolean stat = anEditor.QuadToTri( faces, aCrit );
+
+  UpdateLastResult(anEditor);
+
+  return stat;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -558,6 +655,9 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfE
 CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr   theObject,
                                                     SMESH::NumericalFunctor_ptr Criterion)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   CORBA::Boolean isDone = QuadToTri(anElementsId, Criterion);
 
@@ -577,6 +677,7 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -585,14 +686,12 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr
 CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfElements,
                                               CORBA::Boolean            Diag13)
 {
-  set<const SMDS_MeshElement*> faces;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = GetMeshDS()->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      faces.insert( elem );
-  }
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
+  SMESHDS_Mesh* aMesh = GetMeshDS();
+  map<int,const SMDS_MeshElement*> faces;
+  ToMap(IDsOfElements, aMesh, faces);
 
   // Update Python script
   TPythonDump() << "isDone = " << this << ".SplitQuad( "
@@ -602,9 +701,14 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfEle
 #endif
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.QuadToTri( faces, Diag13 );
+  CORBA::Boolean stat = anEditor.QuadToTri( faces, Diag13 );
+
+  UpdateLastResult(anEditor);
+
+  return stat;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -613,6 +717,9 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuad (const SMESH::long_array & IDsOfEle
 CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr theObject,
                                                     CORBA::Boolean            Diag13)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   CORBA::Boolean isDone = SplitQuad(anElementsId, Diag13);
 
@@ -633,6 +740,7 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr th
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *  BestSplit
@@ -658,6 +766,7 @@ CORBA::Long SMESH_MeshEditor_i::BestSplit (CORBA::Long                 IDOfQuad,
   return -1;
 }
 
+
 //=======================================================================
 //function : Smooth
 //purpose  :
@@ -674,6 +783,7 @@ CORBA::Boolean
                 MaxAspectRatio, Method, false );
 }
 
+
 //=======================================================================
 //function : SmoothParametric
 //purpose  :
@@ -690,6 +800,7 @@ CORBA::Boolean
                 MaxAspectRatio, Method, true );
 }
 
+
 //=======================================================================
 //function : SmoothObject
 //purpose  :
@@ -706,6 +817,7 @@ CORBA::Boolean
                        MaxAspectRatio, Method, false);
 }
 
+
 //=======================================================================
 //function : SmoothParametricObject
 //purpose  :
@@ -722,6 +834,7 @@ CORBA::Boolean
                        MaxAspectRatio, Method, true);
 }
 
+
 //=============================================================================
 /*!
  *
@@ -736,20 +849,16 @@ CORBA::Boolean
                              SMESH::SMESH_MeshEditor::Smooth_Method Method,
                              bool                                   IsParametric)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < IDsOfElements.length(); i++)
-  {
-    CORBA::Long index = IDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face)
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(IDsOfElements, aMesh, elements);
 
   set<const SMDS_MeshNode*> fixedNodes;
-  for (int i = 0; i < IDsOfFixedNodes.length(); i++)
-  {
+  for (int i = 0; i < IDsOfFixedNodes.length(); i++) {
     CORBA::Long index = IDsOfFixedNodes[i];
     const SMDS_MeshNode * node = aMesh->FindNode(index);
     if ( node )
@@ -763,6 +872,8 @@ CORBA::Boolean
   anEditor.Smooth(elements, fixedNodes, method,
                   MaxNbOfIterations, MaxAspectRatio, IsParametric );
 
+  UpdateLastResult(anEditor);
+
   // Update Python script
   TPythonDump() << "isDone = " << this << "."
                 << (IsParametric ? "SmoothParametric( " : "Smooth( ")
@@ -778,6 +889,7 @@ CORBA::Boolean
   return true;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -792,6 +904,9 @@ SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr              theObjec
                                  SMESH::SMESH_MeshEditor::Smooth_Method Method,
                                  bool                                   IsParametric)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   CORBA::Boolean isDone = smooth (anElementsId, IDsOfFixedNodes, MaxNbOfIterations,
                                   MaxAspectRatio, Method, IsParametric);
@@ -818,6 +933,7 @@ SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr              theObjec
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -832,6 +948,7 @@ void SMESH_MeshEditor_i::RenumberNodes()
   GetMeshDS()->Renumber( true );
 }
 
+
 //=============================================================================
 /*!
  *
@@ -846,6 +963,7 @@ void SMESH_MeshEditor_i::RenumberElements()
   GetMeshDS()->Renumber( false );
 }
 
+
 //=======================================================================
 //function : RotationSweep
 //purpose  :
@@ -857,16 +975,14 @@ void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElement
                                        CORBA::Long               theNbOfSteps,
                                        CORBA::Double             theTolerance)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(theIDsOfElements, aMesh, elements);
+
   gp_Ax1 Ax1 (gp_Pnt( theAxis.x, theAxis.y, theAxis.z ),
               gp_Vec( theAxis.vx, theAxis.vy, theAxis.vz ));
 
@@ -874,6 +990,8 @@ void SMESH_MeshEditor_i::RotationSweep(const SMESH::long_array & theIDsOfElement
   anEditor.RotationSweep (elements, Ax1, theAngleInRadians,
                           theNbOfSteps, theTolerance);
 
+  UpdateLastResult(anEditor);
+
   // Update Python script
   TPythonDump() << "axis = " << theAxis;
   TPythonDump() << this << ".RotationSweep( "
@@ -895,6 +1013,9 @@ void SMESH_MeshEditor_i::RotationSweepObject(SMESH::SMESH_IDSource_ptr theObject
                                             CORBA::Long               theNbOfSteps,
                                             CORBA::Double             theTolerance)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   RotationSweep(anElementsId, theAxis, theAngleInRadians, theNbOfSteps, theTolerance);
 
@@ -920,28 +1041,34 @@ void SMESH_MeshEditor_i::ExtrusionSweep(const SMESH::long_array & theIDsOfElemen
                                         const SMESH::DirStruct &  theStepVector,
                                         CORBA::Long               theNbOfSteps)
 {
-  SMESHDS_Mesh* aMesh = GetMeshDS();
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
-  const SMESH::PointStruct * P = &theStepVector.PS;
-  gp_Vec stepVec( P->x, P->y, P->z );
+  CASCatch_TRY {   
+    SMESHDS_Mesh* aMesh = GetMeshDS();
+    
+    map<int,const SMDS_MeshElement*> elements;
+    ToMap(theIDsOfElements, aMesh, elements);
 
-  ::SMESH_MeshEditor anEditor( _myMesh );
-  //anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps);
-  TElemOfElemListMap aHystory;
-  anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
+    const SMESH::PointStruct * P = &theStepVector.PS;
+    gp_Vec stepVec( P->x, P->y, P->z );
+    
+    TElemOfElemListMap aHystory;
+    ::SMESH_MeshEditor anEditor( _myMesh );
+    anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
 
-  // Update Python script
-  TPythonDump() << "stepVector = " << theStepVector;
-  TPythonDump() << this << ".ExtrusionSweep( "
-                << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+    UpdateLastResult(anEditor);
+
+    // Update Python script
+    TPythonDump() << "stepVector = " << theStepVector;
+    TPythonDump() << this << ".ExtrusionSweep( "
+                 << theIDsOfElements << ", stepVector, " << theNbOfSteps << " )";
+
+  }
+  CASCatch_CATCH(Standard_Failure) {
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();          
+    INFOS( "SMESH_MeshEditor_i::ExtrusionSweep fails - "<< aFail->GetMessageString() );
+  }
 }
 
 
@@ -954,6 +1081,9 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject(SMESH::SMESH_IDSource_ptr theObjec
                                              const SMESH::DirStruct &  theStepVector,
                                              CORBA::Long               theNbOfSteps)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   ExtrusionSweep(anElementsId, theStepVector, theNbOfSteps);
 
@@ -975,18 +1105,16 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject1D(SMESH::SMESH_IDSource_ptr theObj
                                                 const SMESH::DirStruct &  theStepVector,
                                                 CORBA::Long               theNbOfSteps)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   SMESH::long_array_var allElementsId = theObject->GetIDs();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < allElementsId->length(); i++)
-  {
-    CORBA::Long index = allElementsId[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Edge )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(allElementsId, aMesh, elements);
+
   const SMESH::PointStruct * P = &theStepVector.PS;
   gp_Vec stepVec( P->x, P->y, P->z );
 
@@ -995,6 +1123,8 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject1D(SMESH::SMESH_IDSource_ptr theObj
   TElemOfElemListMap aHystory;
   anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
 
+  UpdateLastResult(anEditor);
+
   // Update Python script
   TPythonDump() << "stepVector = " << theStepVector;
   TPythonDump() << this << ".ExtrusionSweepObject1D( "
@@ -1010,18 +1140,16 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject2D(SMESH::SMESH_IDSource_ptr theObj
                                                 const SMESH::DirStruct &  theStepVector,
                                                 CORBA::Long               theNbOfSteps)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   SMESH::long_array_var allElementsId = theObject->GetIDs();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < allElementsId->length(); i++)
-  {
-    CORBA::Long index = allElementsId[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem && elem->GetType() == SMDSAbs_Face )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(allElementsId, aMesh, elements);
+
   const SMESH::PointStruct * P = &theStepVector.PS;
   gp_Vec stepVec( P->x, P->y, P->z );
 
@@ -1030,6 +1158,8 @@ void SMESH_MeshEditor_i::ExtrusionSweepObject2D(SMESH::SMESH_IDSource_ptr theObj
   TElemOfElemListMap aHystory;
   anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory);
 
+  UpdateLastResult(anEditor);
+
   // Update Python script
   TPythonDump() << "stepVector = " << theStepVector;
   TPythonDump() << this << ".ExtrusionSweepObject2D( "
@@ -1048,16 +1178,14 @@ void SMESH_MeshEditor_i::AdvancedExtrusion(const SMESH::long_array & theIDsOfEle
                                           CORBA::Long               theExtrFlags,
                                           CORBA::Double             theSewTolerance)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(theIDsOfElements, aMesh, elements);
+
   const SMESH::PointStruct * P = &theStepVector.PS;
   gp_Vec stepVec( P->x, P->y, P->z );
 
@@ -1066,6 +1194,8 @@ void SMESH_MeshEditor_i::AdvancedExtrusion(const SMESH::long_array & theIDsOfEle
   anEditor.ExtrusionSweep (elements, stepVec, theNbOfSteps, aHystory,
                           theExtrFlags, theSewTolerance);
 
+  UpdateLastResult(anEditor);
+
   // Update Python script
   TPythonDump() << "stepVector = " << theStepVector;
   TPythonDump() << this << ".AdvancedExtrusion("
@@ -1108,6 +1238,9 @@ SMESH::SMESH_MeshEditor::Extrusion_Error
                                         CORBA::Boolean              theHasRefPoint,
                                         const SMESH::PointStruct &  theRefPoint)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh*  aMesh = GetMeshDS();
 
   if ( thePathMesh->_is_nil() || thePathShape->_is_nil() )
@@ -1117,25 +1250,18 @@ SMESH::SMESH_MeshEditor::Extrusion_Error
   TopoDS_Shape aShape = SMESH_Gen_i::GetSMESHGen()->GeomObjectToShape( thePathShape );
   SMESH_subMesh* aSubMesh = aMeshImp->GetImpl().GetSubMesh( aShape );
 
-  if ( !aSubMesh )
+  if ( !aSubMesh || !aSubMesh->GetSubMeshDS())
     return SMESH::SMESH_MeshEditor::EXTR_BAD_PATH_SHAPE;
 
   SMDS_MeshNode* nodeStart = (SMDS_MeshNode*)aMeshImp->GetImpl().GetMeshDS()->FindNode(theNodeStart);
   if ( !nodeStart )
     return SMESH::SMESH_MeshEditor::EXTR_BAD_STARTING_NODE;
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(theIDsOfElements, aMesh, elements);
 
   list<double> angles;
-  for (int i = 0; i < theAngles.length(); i++)
-  {
+  for (int i = 0; i < theAngles.length(); i++) {
     angles.push_back( theAngles[i] );
   }
 
@@ -1156,9 +1282,14 @@ SMESH::SMESH_MeshEditor::Extrusion_Error
                 << theHasRefPoint << ", refPoint )";
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return convExtrError( anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart,
-                                                      theHasAngles, angles,
-                                                      theHasRefPoint, refPnt ) );
+  SMESH::SMESH_MeshEditor::Extrusion_Error error = 
+    convExtrError( anEditor.ExtrusionAlongTrack( elements, aSubMesh, nodeStart,
+                                                theHasAngles, angles,
+                                                theHasRefPoint, refPnt ) );
+
+  UpdateLastResult(anEditor);
+
+  return error;
 }
 
 //=======================================================================
@@ -1176,6 +1307,9 @@ SMESH_MeshEditor_i::ExtrusionAlongPathObject(SMESH::SMESH_IDSource_ptr   theObje
                                              CORBA::Boolean              theHasRefPoint,
                                              const SMESH::PointStruct &  theRefPoint)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   SMESH::SMESH_MeshEditor::Extrusion_Error error = ExtrusionAlongPath
     (anElementsId, thePathMesh, thePathShape, theNodeStart,
@@ -1208,16 +1342,14 @@ void SMESH_MeshEditor_i::Mirror(const SMESH::long_array &           theIDsOfElem
                                 SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
                                 CORBA::Boolean                      theCopy)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(theIDsOfElements, aMesh, elements);
+
   gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
   gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
 
@@ -1246,8 +1378,13 @@ void SMESH_MeshEditor_i::Mirror(const SMESH::long_array &           theIDsOfElem
 
   ::SMESH_MeshEditor anEditor( _myMesh );
   anEditor.Transform (elements, aTrsf, theCopy);
+
+  if(theCopy) {
+    UpdateLastResult(anEditor);
+  }
 }
 
+
 //=======================================================================
 //function : MirrorObject
 //purpose  :
@@ -1258,6 +1395,9 @@ void SMESH_MeshEditor_i::MirrorObject(SMESH::SMESH_IDSource_ptr           theObj
                                      SMESH::SMESH_MeshEditor::MirrorType theMirrorType,
                                      CORBA::Boolean                      theCopy)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   Mirror(anElementsId, theAxis, theMirrorType, theCopy);
 
@@ -1294,16 +1434,14 @@ void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements,
                                    const SMESH::DirStruct &  theVector,
                                    CORBA::Boolean            theCopy)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(theIDsOfElements, aMesh, elements);
+
   gp_Trsf aTrsf;
   const SMESH::PointStruct * P = &theVector.PS;
   aTrsf.SetTranslation( gp_Vec( P->x, P->y, P->z ));
@@ -1311,6 +1449,10 @@ void SMESH_MeshEditor_i::Translate(const SMESH::long_array & theIDsOfElements,
   ::SMESH_MeshEditor anEditor( _myMesh );
   anEditor.Transform (elements, aTrsf, theCopy);
 
+  if(theCopy) {
+    UpdateLastResult(anEditor);
+  }
+
   // Update Python script
   TPythonDump() << "vector = " << theVector;
   TPythonDump() << this << ".Translate( "
@@ -1328,6 +1470,9 @@ void SMESH_MeshEditor_i::TranslateObject(SMESH::SMESH_IDSource_ptr theObject,
                                         const SMESH::DirStruct &  theVector,
                                         CORBA::Boolean            theCopy)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   Translate(anElementsId, theVector, theCopy);
 
@@ -1352,16 +1497,14 @@ void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
                                 CORBA::Double             theAngle,
                                 CORBA::Boolean            theCopy)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
-  set<const SMDS_MeshElement*> elements;
-  for (int i = 0; i < theIDsOfElements.length(); i++)
-  {
-    CORBA::Long index = theIDsOfElements[i];
-    const SMDS_MeshElement * elem = aMesh->FindElement(index);
-    if ( elem )
-      elements.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> elements;
+  ToMap(theIDsOfElements, aMesh, elements);
+
   gp_Pnt P ( theAxis.x, theAxis.y, theAxis.z );
   gp_Vec V ( theAxis.vx, theAxis.vy, theAxis.vz );
 
@@ -1371,6 +1514,10 @@ void SMESH_MeshEditor_i::Rotate(const SMESH::long_array & theIDsOfElements,
   ::SMESH_MeshEditor anEditor( _myMesh );
   anEditor.Transform (elements, aTrsf, theCopy);
 
+  if(theCopy) {
+    UpdateLastResult(anEditor);
+  }
+
   // Update Python script
   TPythonDump() << "axis = " << theAxis;
   TPythonDump() << this << ".Rotate( "
@@ -1390,6 +1537,9 @@ void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject,
                                      CORBA::Double             theAngle,
                                      CORBA::Boolean            theCopy)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESH::long_array_var anElementsId = theObject->GetIDs();
   Rotate(anElementsId, theAxis, theAngle, theCopy);
 
@@ -1413,6 +1563,9 @@ void SMESH_MeshEditor_i::RotateObject(SMESH::SMESH_IDSource_ptr theObject,
 void SMESH_MeshEditor_i::FindCoincidentNodes (CORBA::Double                  Tolerance,
                                               SMESH::array_of_long_array_out GroupsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   ::SMESH_MeshEditor::TListOfListOfNodes aListOfListOfNodes;
   ::SMESH_MeshEditor anEditor( _myMesh );
   set<const SMDS_MeshNode*> nodes; // no input nodes
@@ -1421,8 +1574,7 @@ void SMESH_MeshEditor_i::FindCoincidentNodes (CORBA::Double                  Tol
   GroupsOfNodes = new SMESH::array_of_long_array;
   GroupsOfNodes->length( aListOfListOfNodes.size() );
   ::SMESH_MeshEditor::TListOfListOfNodes::iterator llIt = aListOfListOfNodes.begin();
-  for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ )
-  {
+  for ( CORBA::Long i = 0; llIt != aListOfListOfNodes.end(); llIt++, i++ ) {
     list< const SMDS_MeshNode* >& aListOfNodes = *llIt;
     list< const SMDS_MeshNode* >::iterator lIt = aListOfNodes.begin();;
     SMESH::long_array& aGroup = GroupsOfNodes[ i ];
@@ -1442,6 +1594,9 @@ void SMESH_MeshEditor_i::FindCoincidentNodes (CORBA::Double                  Tol
 
 void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   TPythonDump aTPythonDump;
@@ -1479,6 +1634,9 @@ void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfN
 
 void SMESH_MeshEditor_i::MergeEqualElements()
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   ::SMESH_MeshEditor anEditor( _myMesh );
   anEditor.MergeEqualElements();
 
@@ -1525,6 +1683,9 @@ SMESH::SMESH_MeshEditor::Sew_Error
                                      CORBA::Boolean CreatePolygons,
                                      CORBA::Boolean CreatePolyedrs)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   const SMDS_MeshNode* aBorderFirstNode  = aMesh->FindNode( FirstNodeID1  );
@@ -1555,17 +1716,23 @@ SMESH::SMESH_MeshEditor::Sew_Error
                 << CreatePolyedrs<< " )";
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
-                                            aBorderSecondNode,
-                                            aBorderLastNode,
-                                            aSide2FirstNode,
-                                            aSide2SecondNode,
-                                            aSide2ThirdNode,
-                                            true,
-                                            CreatePolygons,
-                                            CreatePolyedrs) );
+  SMESH::SMESH_MeshEditor::Sew_Error error =
+    convError( anEditor.SewFreeBorder (aBorderFirstNode,
+                                       aBorderSecondNode,
+                                       aBorderLastNode,
+                                       aSide2FirstNode,
+                                       aSide2SecondNode,
+                                       aSide2ThirdNode,
+                                       true,
+                                       CreatePolygons,
+                                       CreatePolyedrs) );
+
+  UpdateLastResult(anEditor);
+
+  return error;
 }
 
+
 //=======================================================================
 //function : SewConformFreeBorders
 //purpose  :
@@ -1578,6 +1745,9 @@ SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
                                           CORBA::Long FirstNodeID2,
                                           CORBA::Long SecondNodeID2)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   const SMDS_MeshNode* aBorderFirstNode  = aMesh->FindNode( FirstNodeID1  );
@@ -1604,16 +1774,22 @@ SMESH_MeshEditor_i::SewConformFreeBorders(CORBA::Long FirstNodeID1,
                 << SecondNodeID2 << " )";
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
-                                            aBorderSecondNode,
-                                            aBorderLastNode,
-                                            aSide2FirstNode,
-                                            aSide2SecondNode,
-                                            aSide2ThirdNode,
-                                            true,
-                                            false, false) );
+  SMESH::SMESH_MeshEditor::Sew_Error error =
+    convError( anEditor.SewFreeBorder (aBorderFirstNode,
+                                       aBorderSecondNode,
+                                       aBorderLastNode,
+                                       aSide2FirstNode,
+                                       aSide2SecondNode,
+                                       aSide2ThirdNode,
+                                       true,
+                                       false, false) );
+
+  UpdateLastResult(anEditor);
+
+  return error;
 }
 
+
 //=======================================================================
 //function : SewBorderToSide
 //purpose  :
@@ -1628,6 +1804,9 @@ SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
                                     CORBA::Boolean CreatePolygons,
                                     CORBA::Boolean CreatePolyedrs)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   const SMDS_MeshNode* aBorderFirstNode  = aMesh->FindNode( FirstNodeIDOnFreeBorder  );
@@ -1656,17 +1835,23 @@ SMESH_MeshEditor_i::SewBorderToSide(CORBA::Long FirstNodeIDOnFreeBorder,
                 << CreatePolyedrs           << ") ";
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewFreeBorder (aBorderFirstNode,
-                                            aBorderSecondNode,
-                                            aBorderLastNode,
-                                            aSide2FirstNode,
-                                            aSide2SecondNode,
-                                            aSide2ThirdNode,
-                                            false,
-                                            CreatePolygons,
-                                            CreatePolyedrs) );
+  SMESH::SMESH_MeshEditor::Sew_Error error =
+    convError( anEditor.SewFreeBorder (aBorderFirstNode,
+                                       aBorderSecondNode,
+                                       aBorderLastNode,
+                                       aSide2FirstNode,
+                                       aSide2SecondNode,
+                                       aSide2ThirdNode,
+                                       false,
+                                       CreatePolygons,
+                                       CreatePolyedrs) );
+
+  UpdateLastResult(anEditor);
+
+  return error;
 }
 
+
 //=======================================================================
 //function : SewSideElements
 //purpose  :
@@ -1680,6 +1865,9 @@ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
                                     CORBA::Long NodeID2OfSide1ToMerge,
                                     CORBA::Long NodeID2OfSide2ToMerge)
 {
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   const SMDS_MeshNode* aFirstNode1ToMerge  = aMesh->FindNode( NodeID1OfSide1ToMerge );
@@ -1694,21 +1882,10 @@ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
       !aSecondNode2ToMerge)
     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 )
-      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 )
-      aSide2Elems.insert( elem );
-  }
+  map<int,const SMDS_MeshElement*> aSide1Elems, aSide2Elems;
+  ToMap(IDsOfSide1Elements, aMesh, aSide1Elems);
+  ToMap(IDsOfSide2Elements, aMesh, aSide2Elems);
+
   // Update Python script
   TPythonDump() << "error = " << this << ".SewSideElements( "
                 << IDsOfSide1Elements << ", "
@@ -1719,9 +1896,135 @@ SMESH_MeshEditor_i::SewSideElements(const SMESH::long_array& IDsOfSide1Elements,
                 << NodeID2OfSide2ToMerge << ")";
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
-                                              aFirstNode1ToMerge,
-                                              aFirstNode2ToMerge,
-                                              aSecondNode1ToMerge,
-                                              aSecondNode2ToMerge));
+  SMESH::SMESH_MeshEditor::Sew_Error error =
+    convError( anEditor.SewSideElements (aSide1Elems, aSide2Elems,
+                                         aFirstNode1ToMerge,
+                                         aFirstNode2ToMerge,
+                                         aSecondNode1ToMerge,
+                                         aSecondNode2ToMerge));
+
+  UpdateLastResult(anEditor);
+
+  return error;
+}
+
+//================================================================================
+/*!
+ * \brief Set new nodes for given element
+  * \param ide - element id
+  * \param newIDs - new node ids
+  * \retval CORBA::Boolean - true if result is OK
+ */
+//================================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ChangeElemNodes(CORBA::Long ide,
+                                                   const SMESH::long_array& newIDs)
+{
+  myLastCreatedElems = new SMESH::long_array();
+  myLastCreatedNodes = new SMESH::long_array();
+
+  const SMDS_MeshElement* elem = GetMeshDS()->FindElement(ide);
+  if(!elem) return false;
+
+  int nbn = newIDs.length();
+  int i=0;
+  const SMDS_MeshNode* aNodes [nbn];
+  int nbn1=-1;
+  for(; i<nbn; i++) {
+    const SMDS_MeshNode* aNode = GetMeshDS()->FindNode(newIDs[i]);
+    if(aNode) {
+      nbn1++;
+      aNodes[nbn1] = aNode;
+    }
+  }
+  // Update Python script
+  TPythonDump() << "isDone = " << this << ".ChangeElemNodes( "
+                << ide << ", " << newIDs << " )";
+#ifdef _DEBUG_
+  TPythonDump() << "print 'ChangeElemNodes: ', isDone";
+#endif
+
+  return GetMeshDS()->ChangeElementNodes( elem, aNodes, nbn1+1 );
+}
+  
+//================================================================================
+/*!
+ * \brief Update myLastCreatedNodes and myLastCreatedElems
+  * \param anEditor - it contains last modification results
+ */
+//================================================================================
+
+void SMESH_MeshEditor_i::UpdateLastResult(::SMESH_MeshEditor& anEditor)
+{
+  // add new elements into myLastCreatedNodes
+  SMESH_SequenceOfElemPtr aSeq = anEditor.GetLastCreatedNodes();
+  SMESH::long_array_var aResult = new SMESH::long_array;
+  aResult->length(aSeq.Length());
+  int i=0;
+  for(; i<aSeq.Length(); i++) {
+    aResult[i] = aSeq.Value(i+1)->GetID();
+  }
+  myLastCreatedNodes = aResult._retn();
+  // add new elements into myLastCreatedElems
+  aSeq = anEditor.GetLastCreatedElems();
+  aResult = new SMESH::long_array;
+  aResult->length(aSeq.Length());
+  i=0;
+  for(; i<aSeq.Length(); i++) {
+    aResult[i] = aSeq.Value(i+1)->GetID();
+  }
+  myLastCreatedElems = aResult._retn();
+}
+
+//================================================================================
+/*!
+ * \brief Returns list of it's IDs of created nodes
+  * \retval SMESH::long_array* - list of node ID
+ */
+//================================================================================
+
+SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedNodes()
+{
+  return myLastCreatedNodes;
+}
+
+//================================================================================
+/*!
+ * \brief Returns list of it's IDs of created elements
+  * \retval SMESH::long_array* - list of elements' ID
+ */
+//================================================================================
+
+SMESH::long_array* SMESH_MeshEditor_i::GetLastCreatedElems()
+{
+  return myLastCreatedElems;
+}
+
+
+//=======================================================================
+//function : ConvertToQuadratic
+//purpose  :
+//=======================================================================
+
+void SMESH_MeshEditor_i::ConvertToQuadratic(CORBA::Boolean theForce3d)
+{
+  ::SMESH_MeshEditor anEditor( _myMesh );
+  anEditor.ConvertToQuadratic(theForce3d);
+ // Update Python script
+  TPythonDump() << this << ".ConvertToQuadratic( "
+                << theForce3d << " )";
+}
+
+//=======================================================================
+//function : ConvertFromQuadratic
+//purpose  :
+//=======================================================================
+
+CORBA::Boolean SMESH_MeshEditor_i::ConvertFromQuadratic()
+{
+  ::SMESH_MeshEditor anEditor( _myMesh );
+  CORBA::Boolean isDone = anEditor.ConvertFromQuadratic();
+  // Update Python script
+  TPythonDump() << this << ".ConvertFromQuadratic()";
+  return isDone;
 }
index 0632747a643098777209a1315fe0f22ddbe5aebe..e850759be0536be1f3484cefa1177dfa6dfc76af 100644 (file)
@@ -34,6 +34,8 @@
 
 #include "SMESH_Mesh.hxx"
 
+class SMESH_MeshEditor;
+
 class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
 {
  public:
@@ -47,15 +49,18 @@ class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
   CORBA::Boolean RemoveElements(const SMESH::long_array & IDsOfElements);
   CORBA::Boolean RemoveNodes(const SMESH::long_array & IDsOfNodes);
 
-  CORBA::Boolean AddNode(CORBA::Double x, CORBA::Double y, CORBA::Double z);
-  CORBA::Boolean AddEdge(const SMESH::long_array & IDsOfNodes);
-  CORBA::Boolean AddFace(const SMESH::long_array & IDsOfNodes);
-  CORBA::Boolean AddPolygonalFace(const SMESH::long_array & IDsOfNodes);
-  CORBA::Boolean AddVolume(const SMESH::long_array & IDsOfNodes);
-
-  CORBA::Boolean AddPolyhedralVolume(const SMESH::long_array & IDsOfNodes,
-                                     const SMESH::long_array & Quantities);
-  CORBA::Boolean AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
+  /*!
+   * Methods for creation new elements.
+   * Returns ID of created element or 0 if element not created
+   */
+  CORBA::Long AddNode(CORBA::Double x, CORBA::Double y, CORBA::Double z);
+  CORBA::Long AddEdge(const SMESH::long_array & IDsOfNodes);
+  CORBA::Long AddFace(const SMESH::long_array & IDsOfNodes);
+  CORBA::Long AddPolygonalFace(const SMESH::long_array & IDsOfNodes);
+  CORBA::Long AddVolume(const SMESH::long_array & IDsOfNodes);
+  CORBA::Long AddPolyhedralVolume(const SMESH::long_array & IDsOfNodes,
+                                  const SMESH::long_array & Quantities);
+  CORBA::Long AddPolyhedralVolumeByFaces(const SMESH::long_array & IdsOfFaces);
 
   CORBA::Boolean MoveNode(CORBA::Long NodeID,
                           CORBA::Double x, CORBA::Double y, CORBA::Double z);
@@ -116,6 +121,10 @@ class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
                              SMESH::SMESH_MeshEditor::Smooth_Method Method,
                               bool                                   IsParametric);
 
+
+  void ConvertToQuadratic(CORBA::Boolean Force3d);
+  CORBA::Boolean ConvertFromQuadratic();
+
   void RenumberNodes();
   void RenumberElements();
 
@@ -196,6 +205,7 @@ class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
   void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
   void MergeEqualElements();
 
+
   SMESH::SMESH_MeshEditor::Sew_Error
     SewFreeBorders(CORBA::Long FirstNodeID1,
                    CORBA::Long SecondNodeID1,
@@ -227,9 +237,48 @@ class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
                     CORBA::Long NodeID2OfSide1ToMerge,
                     CORBA::Long NodeID2OfSide2ToMerge);
 
+  /*!
+   * Set new nodes for given element.
+   * If number of nodes is not corresponded to type of
+   * element - returns false
+   */
+  CORBA::Boolean ChangeElemNodes(CORBA::Long ide, const SMESH::long_array& newIDs);
+  
+  /*!
+   * If during last operation of MeshEditor some nodes were
+   * created this method returns list of it's IDs, if new nodes
+   * not creared - returns empty list
+   */
+  SMESH::long_array* GetLastCreatedNodes();
+
+  /*!
+   * If during last operation of MeshEditor some elements were
+   * created this method returns list of it's IDs, if new elements
+   * not creared - returns empty list
+   */
+  SMESH::long_array* GetLastCreatedElems();
+
+  //
+  // Internal methods
+  //
+
+  /*!
+   * \brief Update myLastCreatedNodes and myLastCreatedElems
+    * \param anEditor - it contains edition results
+   */
+  void UpdateLastResult(::SMESH_MeshEditor& anEditor);
+
+  /*!
+   * \brief Return edited mesh ID
+    * \retval int - mesh ID
+   */
+  int GetMeshId() const { return _myMesh->GetId(); }
+
  private:
   SMESHDS_Mesh * GetMeshDS() { return _myMesh->GetMeshDS(); }
   SMESH_Mesh   *_myMesh;
+  SMESH::long_array* myLastCreatedElems;
+  SMESH::long_array* myLastCreatedNodes;
 };
 
 #endif
index 05d8ff0cf7145204a4c719cb7884de2062b4b89d..fc489aa0c4b42ed6289ae80c9cf3cc3144a02480 100644 (file)
@@ -46,6 +46,9 @@
 #include "SMESH_MeshEditor_i.hxx"
 #include "SMESH_Gen_i.hxx"
 #include "DriverMED_R_SMESHDS_Mesh.h"
+//#include "SMDS_ElemIterator.hxx"
+#include "SMDS_VolumeTool.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 // OCCT Includes
 #include <OSD_Path.hxx>
@@ -73,6 +76,8 @@ using SMESH::TPythonDump;
 
 int SMESH_Mesh_i::myIdGenerator = 0;
 
+
+
 //=============================================================================
 /*!
  *  Constructor
@@ -235,6 +240,18 @@ int SMESH_Mesh_i::ImportUNVFile( const char* theFileName )
   // Read mesh with name = <theMeshName> into SMESH_Mesh
   _impl->UNVToMesh( theFileName );
 
+  CreateGroupServants();
+
+  SALOMEDS::Study_ptr aStudy = _gen_i->GetCurrentStudy();
+  if ( !aStudy->_is_nil() ) {
+    // publishing of the groups in the study (sub-meshes are out of scope of UNV import)
+    map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
+    for (; it != _mapGroups.end(); it++ ) {
+      SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_duplicate( it->second );
+      _gen_i->PublishGroup( aStudy, _this(), aGroup,
+                           GEOM::GEOM_Object::_nil(), aGroup->GetName());
+    }
+  }
   return 1;
 }
 
@@ -266,24 +283,7 @@ int SMESH_Mesh_i::importMEDFile( const char* theFileName, const char* theMeshNam
 {
   // Read mesh with name = <theMeshName> and all its groups into SMESH_Mesh
   int status = _impl->MEDToMesh( theFileName, theMeshName );
-
-  // Create group servants, if any groups were imported
-  list<int> aGroupIds = _impl->GetGroupIds();
-  for ( list<int>::iterator it = aGroupIds.begin(); it != aGroupIds.end(); it++ ) {
-    SMESH_Group_i* aGroupImpl     = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, *it );
-
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-    SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
-    aGroupImpl->Register();
-    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
-
-    SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
-    _mapGroups[*it]               = SMESH::SMESH_Group::_duplicate( aGroup );
-
-    // register CORBA object for persistence
-    int nextId = _gen_i->RegisterObject( aGroup );
-    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
-  }
+  CreateGroupServants();
 
   return status;
 }
@@ -728,6 +728,47 @@ void SMESH_Mesh_i::RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup
   _gen_i->RemoveLastFromPythonScript(_gen_i->GetCurrentStudy()->StudyId());
 }
 
+
+//================================================================================
+/*!
+ * \brief Get the list of groups existing in the mesh
+  * \retval SMESH::ListOfGroups * - list of groups
+ */
+//================================================================================
+
+SMESH::ListOfGroups * SMESH_Mesh_i::GetGroups() throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  if (MYDEBUG) MESSAGE("GetGroups");
+
+  SMESH::ListOfGroups_var aList = new SMESH::ListOfGroups();
+  // Python Dump
+  TPythonDump aPythonDump;
+  aPythonDump << "[ ";
+
+  try {
+    aList->length( _mapGroups.size() );
+    int i = 0;
+    map<int, SMESH::SMESH_GroupBase_ptr>::iterator it = _mapGroups.begin();
+    for ( ; it != _mapGroups.end(); it++ ) {
+      if ( CORBA::is_nil( it->second )) continue;
+      aList[i++] = SMESH::SMESH_GroupBase::_duplicate( it->second );
+      // Python Dump
+      if (i > 1) aPythonDump << ", ";
+      aPythonDump << it->second;
+    }
+    aList->length( i );
+  }
+  catch(SALOME_Exception & S_ex) {
+    THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), SALOME::BAD_PARAM);
+  }
+
+  // Update Python script
+  aPythonDump << " ] = " << _this() << ".GetGroups()";
+
+  return aList._retn();
+}
+
 //=============================================================================
 /*! UnionGroups
  *  New group is created. All mesh elements that are
@@ -1352,6 +1393,13 @@ CORBA::Long SMESH_Mesh_i::NbEdges()throw(SALOME::SALOME_Exception)
   return _impl->NbEdges();
 }
 
+CORBA::Long SMESH_Mesh_i::NbEdgesOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbEdges( (::SMESH_Mesh::ElementOrder) order);
+}
+
 //=============================================================================
 /*!
  *
@@ -1381,6 +1429,27 @@ CORBA::Long SMESH_Mesh_i::NbPolygons()throw(SALOME::SALOME_Exception)
   return _impl->NbPolygons();
 }
 
+CORBA::Long SMESH_Mesh_i::NbFacesOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbFaces( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbTrianglesOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbTriangles( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbQuadranglesOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbQuadrangles( (::SMESH_Mesh::ElementOrder) order);
+}
+
 //=============================================================================
 /*!
  *
@@ -1422,6 +1491,41 @@ CORBA::Long SMESH_Mesh_i::NbPolyhedrons()throw(SALOME::SALOME_Exception)
   return _impl->NbPolyhedrons();
 }
 
+CORBA::Long SMESH_Mesh_i::NbVolumesOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbVolumes( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbTetrasOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbTetras( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbHexasOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbHexas( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbPyramidsOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbPyramids( (::SMESH_Mesh::ElementOrder) order);
+}
+
+CORBA::Long SMESH_Mesh_i::NbPrismsOfOrder(SMESH::ElementOrder order)
+  throw(SALOME::SALOME_Exception)
+{
+  Unexpect aCatch(SALOME_SalomeException);
+  return _impl->NbPrisms( (::SMESH_Mesh::ElementOrder) order);
+}
+
 //=============================================================================
 /*!
  *
@@ -1571,6 +1675,106 @@ SMESH::ElementType SMESH_Mesh_i::GetElementType( const CORBA::Long id, const boo
   return ( SMESH::ElementType )_impl->GetElementType( id, iselem );
 }
 
+
+//=============================================================================
+/*!
+ * Returns ID of elements for given submesh
+ */
+//=============================================================================
+SMESH::long_array* SMESH_Mesh_i::GetSubMeshElementsId(const CORBA::Long ShapeID)
+     throw (SALOME::SALOME_Exception)
+{
+  SMESH::long_array_var aResult = new SMESH::long_array();
+
+  SMESH_subMesh* SM = _impl->GetSubMeshContaining(ShapeID);
+  if(!SM) return aResult._retn();
+
+  SMESHDS_SubMesh* SDSM = SM->GetSubMeshDS();
+  if(!SDSM) return aResult._retn();
+
+  aResult->length(SDSM->NbElements());
+
+  SMDS_ElemIteratorPtr eIt = SDSM->GetElements();
+  int i = 0;
+  while ( eIt->more() ) {
+    aResult[i++] = eIt->next()->GetID();
+  }
+
+  return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * Returns ID of nodes for given submesh
+ * If param all==true - returns all nodes, else -
+ * returns only nodes on shapes.
+ */
+//=============================================================================
+SMESH::long_array* SMESH_Mesh_i::GetSubMeshNodesId(const CORBA::Long ShapeID, CORBA::Boolean all)
+     throw (SALOME::SALOME_Exception)
+{
+  SMESH::long_array_var aResult = new SMESH::long_array();
+
+  SMESH_subMesh* SM = _impl->GetSubMeshContaining(ShapeID);
+  if(!SM) return aResult._retn();
+
+  SMESHDS_SubMesh* SDSM = SM->GetSubMeshDS();
+  if(!SDSM) return aResult._retn();
+
+  map<int,const SMDS_MeshElement*> theElems;
+  if( !all || (SDSM->NbElements()==0 && SDSM->NbNodes()==1) ) {
+    SMDS_NodeIteratorPtr nIt = SDSM->GetNodes();
+    while ( nIt->more() ) {
+      const SMDS_MeshNode* elem = nIt->next();
+      theElems.insert( make_pair(elem->GetID(),elem) );
+    }
+  }
+  else { // all nodes of submesh elements
+    SMDS_ElemIteratorPtr eIt = SDSM->GetElements();
+    while ( eIt->more() ) {
+      const SMDS_MeshElement* anElem = eIt->next();
+      SMDS_ElemIteratorPtr nIt = anElem->nodesIterator();
+      while ( nIt->more() ) {
+        const SMDS_MeshElement* elem = nIt->next();
+        theElems.insert( make_pair(elem->GetID(),elem) );
+      }
+    }
+  }
+
+  aResult->length(theElems.size());
+  map<int, const SMDS_MeshElement * >::iterator itElem;
+  int i = 0;
+  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
+    aResult[i++] = (*itElem).first;
+
+  return aResult._retn();
+}
+  
+
+//=============================================================================
+/*!
+ * Returns type of elements for given submesh
+ */
+//=============================================================================
+SMESH::ElementType SMESH_Mesh_i::GetSubMeshElementType(const CORBA::Long ShapeID)
+     throw (SALOME::SALOME_Exception)
+{
+  SMESH_subMesh* SM = _impl->GetSubMeshContaining(ShapeID);
+  if(!SM) return SMESH::ALL;
+
+  SMESHDS_SubMesh* SDSM = SM->GetSubMeshDS();
+  if(!SDSM) return SMESH::ALL;
+
+  if(SDSM->NbElements()==0)
+    return (SM->GetSubShape().ShapeType() == TopAbs_VERTEX) ? SMESH::NODE : SMESH::ALL;
+
+  SMDS_ElemIteratorPtr eIt = SDSM->GetElements();
+  const SMDS_MeshElement* anElem = eIt->next();
+  return ( SMESH::ElementType ) anElem->GetType();
+}
+  
+
 //=============================================================================
 /*!
  *
@@ -1579,5 +1783,340 @@ SMESH::ElementType SMESH_Mesh_i::GetElementType( const CORBA::Long id, const boo
 
 CORBA::Long SMESH_Mesh_i::GetMeshPtr()
 {
-  return (CORBA::Long)_impl;
+  return CORBA::Long(size_t(_impl));
+}
+
+
+//=============================================================================
+/*!
+ * Get XYZ coordinates of node as list of double
+ * If there is not node for given ID - returns empty list
+ */
+//=============================================================================
+
+SMESH::double_array* SMESH_Mesh_i::GetNodeXYZ(const CORBA::Long id)
+{
+  SMESH::double_array_var aResult = new SMESH::double_array();
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL )
+    return aResult._retn();
+
+  // find node
+  const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(id);
+  if(!aNode)
+    return aResult._retn();
+
+  // add coordinates
+  aResult->length(3);
+  aResult[0] = aNode->X();
+  aResult[1] = aNode->Y();
+  aResult[2] = aNode->Z();
+  return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * For given node returns list of IDs of inverse elements
+ * If there is not node for given ID - returns empty list
+ */
+//=============================================================================
+
+SMESH::long_array* SMESH_Mesh_i::GetNodeInverseElements(const CORBA::Long id)
+{
+  SMESH::long_array_var aResult = new SMESH::long_array();
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL )
+    return aResult._retn();
+
+  // find node
+  const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(id);
+  if(!aNode)
+    return aResult._retn();
+
+  // find inverse elements
+  SMDS_ElemIteratorPtr eIt = aNode->GetInverseElementIterator();
+  TColStd_SequenceOfInteger IDs;
+  while(eIt->more()) {
+    const SMDS_MeshElement* elem = eIt->next();
+    IDs.Append(elem->GetID());
+  }
+  if(IDs.Length()>0) {
+    aResult->length(IDs.Length());
+    int i = 1;
+    for(; i<=IDs.Length(); i++) {
+      aResult[i-1] = IDs.Value(i);
+    }
+  }
+  return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ * If given element is node returns IDs of shape from position
+ * else - return ID of result shape after ::FindShape()
+ * from SMESH_MeshEditor
+ * If there is not element for given ID - returns -1
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetShapeID(const CORBA::Long id)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL )
+    return -1;
+
+  // try to find node
+  const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(id);
+  if(aNode) {
+    SMDS_PositionPtr pos = aNode->GetPosition();
+    if(!pos)
+      return -1;
+    else
+      return pos->GetShapeId();
+  }
+
+  // try to find element
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem)
+    return -1;
+
+  // need implementation???????????????????????????????????????????????
+  return -1;
+}
+
+
+//=============================================================================
+/*!
+ * Returns number of nodes for given element
+ * If there is not element for given ID - returns -1
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetElemNbNodes(const CORBA::Long id)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return -1;
+  // try to find element
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem) return -1;
+  return elem->NbNodes();
+}
+
+
+//=============================================================================
+/*!
+ * Returns ID of node by given index for given element
+ * If there is not element for given ID - returns -1
+ * If there is not node for given index - returns -2
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetElemNode(const CORBA::Long id, const CORBA::Long index)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return -1;
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem) return -1;
+  if( index>=elem->NbNodes() || index<0 ) return -1;
+  return elem->GetNode(index)->GetID();
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given node is medium node
+ * in given quadratic element
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsMediumNode(const CORBA::Long ide, const CORBA::Long idn)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return false;
+  // try to find node
+  const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(idn);
+  if(!aNode) return false;
+  // try to find element
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(ide);
+  if(!elem) return false;
+
+  return elem->IsMediumNode(aNode);
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given node is medium node
+ * in one of quadratic elements
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsMediumNodeOfAnyElem(const CORBA::Long idn,
+                                                   SMESH::ElementType theElemType)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return false;
+
+  // try to find node
+  const SMDS_MeshNode* aNode = aSMESHDS_Mesh->FindNode(idn);
+  if(!aNode) return false;
+
+  SMESH_MesherHelper aHelper( *(_impl) );
+
+  SMDSAbs_ElementType aType;
+  if(theElemType==SMESH::EDGE) aType = SMDSAbs_Edge;
+  else if(theElemType==SMESH::FACE) aType = SMDSAbs_Face;
+  else if(theElemType==SMESH::VOLUME) aType = SMDSAbs_Volume;
+  else aType = SMDSAbs_All;
+
+  return aHelper.IsMedium(aNode,aType);
 }
+
+
+//=============================================================================
+/*!
+ * Returns number of edges for given element
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::ElemNbEdges(const CORBA::Long id)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return -1;
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem) return -1;
+  return elem->NbEdges();
+}
+
+
+//=============================================================================
+/*!
+ * Returns number of faces for given element
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::ElemNbFaces(const CORBA::Long id)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return -1;
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem) return -1;
+  return elem->NbFaces();
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given element is polygon
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsPoly(const CORBA::Long id)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return false;
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem) return false;
+  return elem->IsPoly();
+}
+
+
+//=============================================================================
+/*!
+ * Returns true if given element is quadratic
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Mesh_i::IsQuadratic(const CORBA::Long id)
+{
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL ) return false;
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem) return false;
+  return elem->IsQuadratic();
+}
+
+
+//=============================================================================
+/*!
+ * Returns bary center for given element
+ */
+//=============================================================================
+
+SMESH::double_array* SMESH_Mesh_i::BaryCenter(const CORBA::Long id)
+{
+  SMESH::double_array_var aResult = new SMESH::double_array();
+  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+  if ( aSMESHDS_Mesh == NULL )
+    return aResult._retn();
+
+  const SMDS_MeshElement* elem = aSMESHDS_Mesh->FindElement(id);
+  if(!elem)
+    return aResult._retn();
+
+  if(elem->GetType()==SMDSAbs_Volume) {
+    // use SMDS_VolumeTool
+    SMDS_VolumeTool aTool;
+    if(aTool.Set(elem)) {
+      double x=0., y=0., z=0.;
+      if(aTool.GetBaryCenter(x,y,z)) {
+        // add coordinates
+        aResult->length(3);
+        aResult[0] = x;
+        aResult[1] = y;
+        aResult[2] = z;
+      }
+    }
+  }
+  else {
+    SMDS_ElemIteratorPtr anIt = elem->nodesIterator();
+    int nbn = 0;
+    double x=0., y=0., z=0.;
+    for(; anIt->more(); ) {
+      nbn++;
+      const SMDS_MeshNode* aNode = static_cast<const SMDS_MeshNode*>(anIt->next());
+      x += aNode->X();
+      y += aNode->Y();
+      z += aNode->Z();
+    }
+    if(nbn>0) {
+      // add coordinates
+      aResult->length(3);
+      aResult[0] = x/nbn;
+      aResult[1] = y/nbn;
+      aResult[2] = z/nbn;
+    }
+  }
+
+  return aResult._retn();
+}
+
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_Mesh_i::CreateGroupServants() 
+{
+  // Create group servants, if any groups were imported
+  list<int> aGroupIds = _impl->GetGroupIds();
+  for ( list<int>::iterator it = aGroupIds.begin(); it != aGroupIds.end(); it++ ) {
+    SMESH_Group_i* aGroupImpl     = new SMESH_Group_i( SMESH_Gen_i::GetPOA(), this, *it );
+
+    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
+    SMESH_Gen_i::GetPOA()->activate_object( aGroupImpl );
+    aGroupImpl->Register();
+    // PAL7962: san -- To ensure correct mapping of servant and correct reference counting in GenericObj_i
+
+    SMESH::SMESH_Group_var aGroup = SMESH::SMESH_Group::_narrow( aGroupImpl->_this() );
+    _mapGroups[*it]               = SMESH::SMESH_Group::_duplicate( aGroup );
+
+    // register CORBA object for persistence
+    int nextId = _gen_i->RegisterObject( aGroup );
+    if(MYDEBUG) MESSAGE( "Add group to map with id = "<< nextId);
+  }
+}
+
index 9167f325dab41cb1591a7a46f1bc791ca56e0c3a..e2fde0283968cc148ac0156102867ea901698ca9 100644 (file)
@@ -99,6 +99,9 @@ public:
   void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup )
     throw (SALOME::SALOME_Exception);
   
+  SMESH::ListOfGroups* GetGroups()
+    throw (SALOME::SALOME_Exception);
+
   SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, 
                                       SMESH::SMESH_GroupBase_ptr theGroup2, 
                                       const char* theName )
@@ -178,33 +181,60 @@ public:
   CORBA::Long NbEdges()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbEdgesOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbFaces()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbFacesOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbTriangles()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbTrianglesOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbQuadrangles()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbQuadranglesOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbPolygons()
     throw (SALOME::SALOME_Exception);
 
   CORBA::Long NbVolumes()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbVolumesOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbTetras()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbTetrasOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbHexas()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbHexasOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbPyramids()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbPyramidsOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbPrisms()
     throw (SALOME::SALOME_Exception);
 
+  CORBA::Long NbPrismsOfOrder(SMESH::ElementOrder order)
+    throw (SALOME::SALOME_Exception);
+
   CORBA::Long NbPolyhedrons()
     throw (SALOME::SALOME_Exception);
 
@@ -223,6 +253,26 @@ public:
   SMESH::ElementType GetElementType( const CORBA::Long id, const bool iselem )
     throw (SALOME::SALOME_Exception);
   
+  /*!
+   * Returns ID of elements for given submesh
+   */
+  SMESH::long_array* GetSubMeshElementsId(const CORBA::Long ShapeID)
+    throw (SALOME::SALOME_Exception);
+
+  /*!
+   * Returns ID of nodes for given submesh
+   * If param all==true - returns all nodes, else -
+   * returns only nodes on shapes.
+   */
+  SMESH::long_array* GetSubMeshNodesId(const CORBA::Long ShapeID, CORBA::Boolean all)
+    throw (SALOME::SALOME_Exception);
+  
+  /*!
+   * Returns type of elements for given submesh
+   */
+  SMESH::ElementType GetSubMeshElementType(const CORBA::Long ShapeID)
+    throw (SALOME::SALOME_Exception);
+  
   char* Dump();
   
   // Internal methods not available through CORBA
@@ -256,10 +306,85 @@ public:
 
   CORBA::Long GetMeshPtr();
 
+
+  /*!
+   * Get XYZ coordinates of node as list of double
+   * If there is not node for given ID - returns empty list
+   */
+  SMESH::double_array* GetNodeXYZ(const CORBA::Long id);
+  
+  /*!
+   * For given node returns list of IDs of inverse elements
+   * If there is not node for given ID - returns empty list
+   */
+  SMESH::long_array* GetNodeInverseElements(const CORBA::Long id);
+
+  /*!
+   * If given element is node returns IDs of shape from position
+   * else - return ID of result shape after ::FindShape()
+   * from SMESH_MeshEditor
+   * If there is not element for given ID - returns -1
+   */
+  CORBA::Long GetShapeID(const CORBA::Long id);
+
+  /*!
+   * Returns number of nodes for given element
+   * If there is not element for given ID - returns -1
+   */
+  CORBA::Long GetElemNbNodes(const CORBA::Long id);
+
+  /*!
+   * Returns ID of node by given index for given element
+   * If there is not element for given ID - returns -1
+   * If there is not node for given index - returns -2
+   */
+  CORBA::Long GetElemNode(const CORBA::Long id, const CORBA::Long index);
+  
+  /*!
+   * Returns true if given node is medium node
+   * in given quadratic element
+   */
+  CORBA::Boolean IsMediumNode(const CORBA::Long ide, const CORBA::Long idn);
+  
+  /*!
+   * Returns true if given node is medium node
+   * in one of quadratic elements
+   */
+  CORBA::Boolean IsMediumNodeOfAnyElem(const CORBA::Long idn,
+                                       SMESH::ElementType theElemType);
+  
+  /*!
+   * Returns number of edges for given element
+   */
+  CORBA::Long ElemNbEdges(const CORBA::Long id);
+  
+  /*!
+   * Returns number of faces for given element
+   */
+  CORBA::Long ElemNbFaces(const CORBA::Long id);
+  
+  /*!
+   * Returns true if given element is polygon
+   */
+  CORBA::Boolean IsPoly(const CORBA::Long id);
+  
+  /*!
+   * Returns true if given element is quadratic
+   */
+  CORBA::Boolean IsQuadratic(const CORBA::Long id);
+  
+  /*!
+   * Returns bary center for given element
+   */
+  SMESH::double_array* BaryCenter(const CORBA::Long id);
+
+
   map<int, SMESH_subMesh_i*> _mapSubMesh_i; //NRI
   map<int, ::SMESH_subMesh*> _mapSubMesh;   //NRI
 
 private:
+  void CreateGroupServants();
+
   static int myIdGenerator;
   ::SMESH_Mesh* _impl;  // :: force no namespace here
   SMESH_Gen_i* _gen_i;
index f48a6fab3f95fa78617096fa8551a08a9a475f2b..24adf5a99aeea41a4c1552efefd5dca9a1eb7f2b 100644 (file)
@@ -106,8 +106,21 @@ SMESH_Pattern_i::SMESH_Pattern_i( SMESH_Gen_i* theGen_i ):
 
 CORBA::Boolean SMESH_Pattern_i::LoadFromFile(const char* theFileContents)
 {
+  // remove some gabage from the end
+  TCollection_AsciiString patternDescription = (char*) theFileContents;
+  int pos = patternDescription.Length();
+  while (! isdigit( patternDescription.Value( pos )))
+    pos--;
+  if ( pos != patternDescription.Length() ) {
+    patternDescription.Trunc( pos );
+  }
+
   // Update Python script
-  TPythonDump() << "isDone = pattern.LoadFromFile(" << theFileContents << ")";
+  TPythonDump() << "isDone = pattern.LoadFromFile("
+                << TPythonDump::LongStringStart("Pattern")
+                << patternDescription
+                << TPythonDump::LongStringEnd()
+                << ")";
   addErrorCode( "LoadFromFile" );
 
   return myPattern.Load( theFileContents );
@@ -470,6 +483,7 @@ SMESH::SMESH_Pattern::ErrorCode SMESH_Pattern_i::GetErrorCode()
     RETCASE( ERR_LOAD_EMPTY_SUBMESH );
     RETCASE( ERR_LOADF_NARROW_FACE );
     RETCASE( ERR_LOADF_CLOSED_FACE );
+    RETCASE( ERR_LOADF_CANT_PROJECT );
     RETCASE( ERR_LOADV_BAD_SHAPE );
     RETCASE( ERR_LOADV_COMPUTE_PARAMS );
     RETCASE( ERR_APPL_NOT_LOADED );
index f3a011335a57a4c588fbcd17e4e77532fe33d629..2996183d6127741e58e96083c508518bb8c3b031 100644 (file)
@@ -110,6 +110,35 @@ namespace SMESH
 
     static char* SMESHGenName() { return "smeshgen"; }
     static char* MeshEditorName() { return "mesh_editor"; }
+
+    /*!
+     * \brief Return marker of long string literal beginning
+      * \param type - a name of functionality producing the string literal 
+      * \retval TCollection_AsciiString - the marker string to be written into
+      * a raw python script
+     */
+    static TCollection_AsciiString LongStringStart(const char* type);
+    /*!
+     * \brief Return marker of long string literal end
+      * \retval TCollection_AsciiString - the marker string to be written into
+      * a raw python script
+     */
+    static TCollection_AsciiString LongStringEnd();
+    /*!
+     * \brief Cut out a long string literal from a string
+      * \param theText - text possibly containing string literals
+      * \param theFrom - position in the text to search from
+      * \param theLongString - the retrieved literal
+      * \param theStringType - a name of functionality produced the literal
+      * \retval bool - true if a string literal found
+     * 
+     * The literal is removed from theText; theFrom points position right after
+     * the removed literal
+     */
+    static bool  CutoutLongString( TCollection_AsciiString & theText,
+                                   int                     & theFrom,
+                                   TCollection_AsciiString & theLongString,
+                                   TCollection_AsciiString & theStringType);
   };
 }
 
index df7e19a1766eca1131d49a87f32cf1218ab90dab..f0ba6eec1ef35570742c736d0b5c5a69200875de 100644 (file)
@@ -72,9 +72,11 @@ EXPORT_PYSCRIPTS = libSMESH_Swig.py \
                   SMESH_mechanic.py \
                   SMESH_mechanic_tetra.py \
                   SMESH_mechanic_editor.py \
+                  SMESH_mechanic_netgen.py \
                   SMESH_fixation.py \
                   SMESH_fixation_hexa.py \
                   SMESH_fixation_tetra.py \
+                  SMESH_fixation_netgen.py \
                   SMESH_box_tetra.py \
                   SMESH_box2_tetra.py \
                   SMESH_box3_tetra.py \
index 8585c9f6f3ff96ef956720845df0156f0576de3c..de57c67ac37272c1885b69bdf6629a7cbca2f086 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 import geompy
 import salome
 
index c4ee39dcdf3190cf34881b031dc7b3e49f5e1dd6..880ae20c057564becb718d3866b23557d4912ee6 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 import SMESH
 from SMESH_test1 import *
 
index 37f333d8887198979bad37dc131df1a253ca2929..6bab8375db1d196438ec40d3b533cdc74b5d5eb6 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : SMESH_GroupFromGeom.py, PAL6945
index 31e89c3a1045af33bdc95fd652942a8d7e9bb162..5f65d78520634d224d506b0b1d2d3e505612ee68 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 from smesh import *
 
 def BuildGroupLyingOn(theMesh, theElemType, theName, theShape):
index a4f5017cfb8ca08ce3eb728e7206a6c2cb0d113d..07329d23aeb86cacde673acc879eb788428556a2 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #####################################################################
 #Created                :17/02/2005
 #Auhtor                 :MASLOV Eugeny, KOVALTCHUK Alexey 
index e9bb55fa71641844f8b3430995bf21033116f218..bba7289597e8b64dd46af51a610b12ff1ba7cab1 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Tetrahedrization of the geometry generated by the Python script GEOM_Partition1.py
 # Hypothesis and algorithms for the mesh generation are global
index 2902c739b383fba90d3d577cbffa2f3e0c1cd9b7..877e0882ca7e41d3fe7746e4a600568e1312a953 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : box.py, PAL5223
index e8a4afd9fc77ffdcaf59a9af77d412a2f81f8d87..869a86a3118047aaa1e468eca5ce237600ebf9e1 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Tetrahedrization of the geometry union of 2 boxes having a face in common
 # Hypothesis and algorithms for the mesh generation are global
index af4082774b0fd4390abd49f7e59376866933c547..a8d09a7bc2d300a528bcf4f32163c0e524f955c4 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Tetrahedrization of the geometry union of 3 boxes aligned where the middle
 # one has a race in common with the two others.
index 72b45e12b06e690f5dbb6b09718bd1b33b94ebd2..fab34ee051a08a45454b4861cabba665f041560f 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Tetrahedrization of a simple box. Hypothesis and algorithms for
 # the mesh generation are global
index 755214a59323c165338bc4f38a77fbb5d9d422e3..8f1956dab74a73acfa3dfa8f2db35ec49e0ec4c9 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : SMESH_demo_hexa2_upd.py, PAL6781
index 1845b2218b4a2c0635baf2c704330bfd92ae5898..62dfe01d0c780dbc60776ce8b4d90ca99d9a3e2b 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Hexahedrization of the geometry generated by the Python script
 # SMESH_fixation.py
diff --git a/src/SMESH_SWIG/SMESH_fixation_netgen.py b/src/SMESH_SWIG/SMESH_fixation_netgen.py
new file mode 100644 (file)
index 0000000..9232f1a
--- /dev/null
@@ -0,0 +1,75 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
+#
+# Tetrahedrization of the geometry generated by the Python script
+# SMESH_fixation.py
+# The new Netgen algorithm is used that discretizes baoundaries itself
+#
+
+import StdMeshers
+import NETGENPlugin
+import SMESH_fixation
+import smesh
+
+compshell = SMESH_fixation.compshell
+idcomp = SMESH_fixation.idcomp
+geompy = SMESH_fixation.geompy
+salome = SMESH_fixation.salome
+
+print "Analysis of the geometry to be meshed :"
+subShellList = geompy.SubShapeAll(compshell, geompy.ShapeType["SHELL"])
+subFaceList  = geompy.SubShapeAll(compshell, geompy.ShapeType["FACE"])
+subEdgeList  = geompy.SubShapeAll(compshell, geompy.ShapeType["EDGE"])
+
+print "number of Shells in compshell : ", len(subShellList)
+print "number of Faces  in compshell : ", len(subFaceList)
+print "number of Edges  in compshell : ", len(subEdgeList)
+
+status = geompy.CheckShape(compshell)
+print " check status ", status
+
+### ---------------------------- SMESH --------------------------------------
+
+print "-------------------------- create Mesh, algorithm, hypothesis"
+
+mesh = smesh.Mesh(compshell, "MeshcompShel");
+netgen = mesh.Netgen(1)
+hyp = netgen.Parameters()
+hyp.SetMaxSize( 50 )
+#hyp.SetSecondOrder( 0 )
+hyp.SetFineness( 3 )
+#hyp.SetOptimize( 1 )
+
+salome.sg.updateObjBrowser(1)
+
+print "-------------------------- compute mesh"
+ret = mesh.Compute()
+print ret
+if ret != 0:
+    print "Information about the MeshcompShel:"
+    print "Number of nodes        : ", mesh.GetMesh().NbNodes()
+    print "Number of edges        : ", mesh.GetMesh().NbEdges()
+    print "Number of faces        : ", mesh.GetMesh().NbFaces()
+    print "Number of triangles    : ", mesh.GetMesh().NbTriangles()
+    print "Number of volumes      : ", mesh.GetMesh().NbVolumes()
+    print "Number of tetrahedrons : ", mesh.GetMesh().NbTetras()
+    
+else:
+    print "problem when computing the mesh"
index 2d588bbd909e39c6401b87bff6b9e542ebe7be12..3a6d2406920f0bec335d2663c1026d321191f28f 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Tetrahedrization of the geometry generated by the Python script
 # SMESH_fixation.py
index 25a4b2d140d932f3824a1fdf435394051d7b4d24..ea30ce3718c1ed0c65be4fb410f8b562a6978457 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #
 # Triangulation of the skin of the geometry from a Brep representing a plane
 # This geometry is from EADS
index d240a354f8429c8a20e815217d3920eaa2e47578..bec007d0612ca98eb55c531a7f798ec04b55d822 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 import salome\r
 import geompy\r
 import SMESH\r
index 1b93e1c08fb45bf9255bdf6eb58b3d0d0bf12781..ab3350cc9570766dfe9f1ac438958992c764025b 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : hexaedre_modified.py, PAL6194, PAL7153
diff --git a/src/SMESH_SWIG/SMESH_mechanic_netgen.py b/src/SMESH_SWIG/SMESH_mechanic_netgen.py
new file mode 100644 (file)
index 0000000..719aa0e
--- /dev/null
@@ -0,0 +1,136 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
+#
+# Quadrangulation of the geometry generated by the Python script
+# SMESH_mechanic.py
+# The new Netgen algorithm is used that discretizes baoundaries itself
+#
+
+import salome
+import geompy
+
+geom  = geompy.geom
+
+import StdMeshers
+import NETGENPlugin
+import smesh
+
+# ---------------------------- GEOM --------------------------------------
+
+# ---- define contigous arcs and segment to define a closed wire
+p1   = geompy.MakeVertex( 100.0,   0.0,  0.0 )
+p2   = geompy.MakeVertex(  50.0,  50.0,  0.0 )
+p3   = geompy.MakeVertex( 100.0, 100.0,  0.0 )
+arc1 = geompy.MakeArc( p1, p2, p3 )
+
+p4   = geompy.MakeVertex( 170.0, 100.0, 0.0 )
+seg1 = geompy.MakeVector( p3, p4 )
+
+p5   = geompy.MakeVertex( 200.0, 70.0, 0.0 )
+p6   = geompy.MakeVertex( 170.0, 40.0, 0.0 )
+arc2 = geompy.MakeArc( p4, p5, p6 )
+
+p7   = geompy.MakeVertex( 120.0, 30.0, 0.0 )
+arc3 = geompy.MakeArc( p6, p7, p1 )
+
+# ---- define a closed wire with arcs and segment
+List1 = []
+List1.append( arc1 )
+List1.append( seg1 )
+List1.append( arc2 )
+List1.append( arc3 )
+
+wire1 = geompy.MakeWire( List1 )
+Id_wire1 = geompy.addToStudy( wire1, "wire1" )
+
+# ---- define a planar face with wire
+WantPlanarFace = 1 #True
+face1 = geompy.MakeFace( wire1, WantPlanarFace )
+Id_face1 = geompy.addToStudy( face1, "face1" )
+
+# ---- create a shape by extrusion
+pO = geompy.MakeVertex( 0.0, 0.0,   0.0 )
+pz = geompy.MakeVertex( 0.0, 0.0, 100.0 )
+vz = geompy.MakeVector( pO, pz )
+
+prism1 = geompy.MakePrismVecH( face1, vz, 100.0 )
+Id_prism1 = geompy.addToStudy( prism1, "prism1")
+
+# ---- create two cylinders
+
+pc1 = geompy.MakeVertex(  90.0, 50.0, -40.0 )
+pc2 = geompy.MakeVertex( 170.0, 70.0, -40.0 )
+radius = 20.0
+height = 180.0
+cyl1  = geompy.MakeCylinder( pc1, vz, radius, height )
+cyl2  = geompy.MakeCylinder( pc2, vz, radius, height )
+
+Id_Cyl1 = geompy.addToStudy( cyl1, "cyl1" )
+Id_Cyl2 = geompy.addToStudy( cyl2, "cyl2" )
+
+# ---- cut with cyl1
+shape  = geompy.MakeBoolean( prism1, cyl1, 2 )
+
+# ---- fuse with cyl2 to obtain the final mechanic piece :)
+mechanic =  geompy.MakeBoolean( shape, cyl2, 3 )
+Id_mechanic = geompy.addToStudy( mechanic, "mechanic" )
+
+# ---- Analysis of the geometry
+
+print "Analysis of the geometry mechanic :"
+
+subShellList = geompy.SubShapeAll(mechanic,geompy.ShapeType["SHELL"])
+subFaceList  = geompy.SubShapeAll(mechanic,geompy.ShapeType["FACE"])
+subEdgeList  = geompy.SubShapeAll(mechanic,geompy.ShapeType["EDGE"])
+
+print "number of Shells in mechanic : ",len(subShellList)
+print "number of Faces in mechanic : ",len(subFaceList)
+print "number of Edges in mechanic : ",len(subEdgeList)
+
+### ---------------------------- SMESH --------------------------------------
+
+print "-------------------------- create Mesh, algorithm, hypothesis"
+
+mesh = smesh.Mesh(mechanic, "Mesh_mechanic");
+netgen = mesh.Netgen(0)
+hyp = netgen.Parameters()
+hyp.SetMaxSize( 50 )
+#hyp.SetSecondOrder( 0 )
+hyp.SetFineness( 3 )
+hyp.SetQuadAllowed( 1 )
+#hyp.SetOptimize( 1 )
+
+salome.sg.updateObjBrowser(1)
+
+print "-------------------------- compute mesh"
+ret = mesh.Compute()
+print ret
+if ret != 0:
+    print "Information about the MeshcompShel:"
+    print "Number of nodes        : ", mesh.GetMesh().NbNodes()
+    print "Number of edges        : ", mesh.GetMesh().NbEdges()
+    print "Number of faces        : ", mesh.GetMesh().NbFaces()
+    print "Number of triangles    : ", mesh.GetMesh().NbTriangles()
+    print "Number of quadrangles  : ", mesh.GetMesh().NbQuadrangles()
+    print "Number of volumes      : ", mesh.GetMesh().NbVolumes()
+    print "Number of tetrahedrons : ", mesh.GetMesh().NbTetras()
+    
+else:
+    print "problem when computing the mesh"
index e40362ffffa934724b943127ea56cb7d79e6f173..e5844a9ad6e10c9c39a15eb2472ee1535c29cd05 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 """
 
 """
index a7a5282a5711dc4faa0f1c0f3604b003892b55ef..ca574fd892426ea325935a4e74842b49e124635d 100644 (file)
@@ -25,7 +25,6 @@
 import salome
 import geompy
 from geompy import geom
-from geompy import gg
 
 import SMESH
 
index 09271b6f1c4b1ae59f73d47a673e5da5297ff1f9..912297f85f6a7379e7e4c8ab638494c6a1603679 100755 (executable)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 import salome
 import geompy
 import SMESH
index 203b1602e3e525ccd86733f9c11f91e7e94bda39..800d3f2707413060e35e52b5782094de54467f6d 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 import os
 import re
 
index b1aa726b2455636317489fc4a3eb8ce0784197b0..40d7c964f664e68d2c5a17d0f85403d2ee960663 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2005, Francis KLOSS (OCC)
 # ==================================
 
index 02b5b1506a37fa24084e3db151d90e522ca239ff..1eb5587dd5e0df4b1823c177884f92efa36bbe29 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 7475072110a0971cfb771e2b744a614ca1e0dae1..9d70577671c522e2f069c7f905aec406418fd8e3 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index cc566893cbc9f2b3dd6ec03fd8e5d0743000a950..da69515ad0b62101269a26ec4e08b535c396f25e 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 5bb4a1c8928c1a4182460150efed2c87d7c1db77..0790ab7f1dc42a0b5a5ac6a5eba02aa15b94ee13 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index ecaa211f427f0e12d1b87bef90bf2a2429d7a9aa..8e480ae4b65399eb5619aa3d8791d9b9f5411a29 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 5e461e466272889a405a3d0d11c78cd373eedfdb..9e31564136cf464ef65e4ec5e54aa476108fd270 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 592e5f8333a74349b9ebbe79472f06d152ffae97..71153f8f6145050bd1d574f2aa29666f14b376f3 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index ab23cb703d925213c982a1633eadc815813f409e..052a263b38fd71811ac125a3f04cbe730877f45e 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 681a31f90d61072606055bab3aba848a15aa996a..bcbdd42da2ec582f5fc8768b17f95f0f63dac33b 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index bcd56372a66858e6d2c6de5a24f89325d8889491..9d929f4bd3a15fae6d66c5325952e9a1e12c32f7 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 4327775f0f81f88d93da08106e748d303719d077..928fb7cdfd25fa193d4aacfe7be9346924362bdf 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index f83de144ab0e861a4f7fa014783e7afabab4907d..247c9d11920697230193f1b0e9360c1886d26778 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index c97ccb8d82bd3095961b3a51c218bbe0c2b6768a..705509bee76e2cf3c61ccb822b1ea2fe06656251 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2005, Francis KLOSS (OCC)
 # ==================================
 
index 6a2127a00d98e622520f2fcd8b8c00d0ee544f4a..6107fd7a204d411abd0b9b48714ebefe325bc27f 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index c7de6881445537baa530bbcb43cfd29c17c953b9..a9138e26d991337a603b1b5d17269f62491debf3 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index e38aba29132071650ef7a47f56a657d750eb41e4..0077ee025c52acb91dfbd5325d9a3419b310795a 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 5064a9315acd9fcdac480bf1a82c5ce26a8daba2..19b6bdfebf6c5d68de2531d09f102aba551afc49 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 96d8738bfaef0267ce0592777414c71ba66affc7..2ca6864d2fd419bf0c361f45626b6a7065b1d5a5 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 295a95f565e4cce973a98056c480f767318efd52..19e9f84717e81b7dc15f65f70b049c110c6ee2be 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # CEA/LGLS 2005, Francis KLOSS (OCC)
 # ==================================
 
index ec24cadfa1999533434d241ea8538fa1c6ee47bc..bf7fed0117ea63d8c442c7a12fe32bef6b2def19 100644 (file)
@@ -128,6 +128,8 @@ class Mesh_Algorithm:
         """
          Private method
         """
+        if geom is None:
+            raise RuntimeError, "Attemp to create " + hypo + " algoritm on None shape"
         self.mesh = mesh
         piece = mesh.geom
         if geom==0:
@@ -381,6 +383,37 @@ class Mesh_Hexahedron(Mesh_Algorithm):
         """
         self.Create(mesh, geom, "Hexa_3D")
 
+# Public class: Mesh_Netgen
+# ------------------------------
+
+class Mesh_Netgen(Mesh_Algorithm):
+    """
+    Class to define a NETGEN-based 2D or 3D algorithm
+    that need no discrete boundary (i.e. independent)
+    """
+
+    is3D = 0
+
+    def __init__(self, mesh, is3D, geom=0):
+        """
+         Private constructor
+        """
+        self.is3D = is3D
+        if is3D:
+            self.Create(mesh, geom, "NETGEN_2D3D", "libNETGENEngine.so")
+        else:
+            self.Create(mesh, geom, "NETGEN_2D", "libNETGENEngine.so")
+
+    def Parameters(self):
+        """
+         Define hypothesis containing parameters of the algorithm
+        """
+        if self.is3D:
+            hyp = self.Hypothesis("NETGEN_Parameters", [], "libNETGENEngine.so")
+        else:
+            hyp = self.Hypothesis("NETGEN_Parameters_2D", [], "libNETGENEngine.so")
+        return hyp
+
 # Public class: Mesh
 # ==================
 
@@ -497,6 +530,17 @@ class Mesh:
         """
         return Mesh_Hexahedron(self, geom)
 
+    def Netgen(self, is3D, geom=0):
+        """
+         Creates a NETGEN-based 2D or 3D independent algorithm (i.e. needs no
+         discrete boundary).
+         If the optional \a geom parameter is not sets, this algorithm is global.
+         Otherwise, this algorithm defines a submesh based on \a geom subshape.
+         \param is3D If 0 then algorithm is 2D, otherwise 3D
+         \param geom If defined, subshape to be meshed
+        """
+        return Mesh_Netgen(self, is3D, geom)
+
     def Compute(self):
         """
         Compute the mesh and return the status of the computation
@@ -606,6 +650,9 @@ class Mesh:
         elif tgeo == "SHELL":
             type = SMESH.VOLUME
         elif tgeo == "COMPOUND":
+            if len( geompy.GetObjectIDs( grp )) == 0:
+                print "Mesh.Group: empty geometric group", GetName( grp )
+                return 0
             tgeo = geompy.GetType(grp)
             if tgeo == geompy.ShapeType["VERTEX"]:
                 type = SMESH.NODE
index b38a5dcbf5ab8da3239f441c0b2cc5bee748a62e..a53d53fd2f84d92a7eeee18efe6b417c8c4dbe1c 100644 (file)
@@ -51,7 +51,6 @@ EXPORT_HEADERS = \
        StdMeshers_AutomaticLength.hxx \
        StdMeshers_Distribution.hxx \
        StdMeshers_QuadranglePreference.hxx \
-       StdMeshers_Helper.hxx \
        StdMeshers_QuadraticMesh.hxx
 
 EXPORT_PYSCRIPTS =
@@ -79,7 +78,6 @@ LIB_SRC = \
        StdMeshers_AutomaticLength.cxx \
        StdMeshers_Distribution.cxx \
        StdMeshers_QuadranglePreference.cxx \
-       StdMeshers_Helper.cxx \
        StdMeshers_QuadraticMesh.cxx
 
 LIB_SERVER_IDL = 
index fa74a7dc5d5a86ac3544761e0b76af666b2a14fc..551843523cdba6fb3ac68d91585e321b5be56b7c 100644 (file)
@@ -300,7 +300,10 @@ bool StdMeshers_AutomaticLength::SetParametersByMesh(const SMESH_Mesh*   theMesh
     SMESHDS_SubMesh * eSubMesh = aMeshDS->MeshElements( edge );
     if ( !eSubMesh )
       return false;
-    double segLen = L / eSubMesh->NbElements();
+    int nbSeg = eSubMesh->NbElements();
+    if ( nbSeg < 1 )
+      continue;
+    double segLen = L / nbSeg;
 
     // get segment length from _TShapeToLength
     map<const TopoDS_TShape*, double>::iterator tshape_length =
diff --git a/src/StdMeshers/StdMeshers_Helper.cxx b/src/StdMeshers/StdMeshers_Helper.cxx
deleted file mode 100644 (file)
index d851e6c..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-// File:      StdMeshers_Helper.cxx
-// Created:   15.02.06 15:22:41
-// Author:    Sergey KUUL
-// Copyright: Open CASCADE 2006
-
-
-#include "StdMeshers_Helper.hxx"
-
-#include "SMDS_FacePosition.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMESH_subMesh.hxx"
-#include "SMESH_MeshEditor.hxx"
-
-#include <BRepAdaptor_Surface.hxx>
-#include <BRepTools.hxx>
-#include <BRep_Tool.hxx>
-#include <Geom2d_Curve.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom_Surface.hxx>
-#include <TopExp_Explorer.hxx>
-#include <TopTools_MapOfShape.hxx>
-#include <gp_Pnt2d.hxx>
-
-
-//=======================================================================
-//function : CheckShape
-//purpose  : 
-//=======================================================================
-
-bool StdMeshers_Helper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
-{
-  SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
-  myShapeID = meshDS->ShapeToIndex(aSh);
-  // we can create quadratic elements only if all elements
-  // created on subshapes of given shape are quadratic
-  // also we have to fill myNLinkNodeMap
-  myCreateQuadratic = true;
-  mySeamShapeIds.clear();
-  TopAbs_ShapeEnum subType( aSh.ShapeType()==TopAbs_FACE ? TopAbs_EDGE : TopAbs_FACE );
-  SMDSAbs_ElementType elemType( subType==TopAbs_FACE ? SMDSAbs_Face : SMDSAbs_Edge );
-
-  TopExp_Explorer exp( aSh, subType );
-  for (; exp.More() && myCreateQuadratic; exp.Next()) {
-    if ( SMESHDS_SubMesh * subMesh = meshDS->MeshElements( exp.Current() )) {
-      if ( SMDS_ElemIteratorPtr it = subMesh->GetElements() ) {
-        while(it->more()) {
-          const SMDS_MeshElement* e = it->next();
-          if ( e->GetType() != elemType || !e->IsQuadratic() ) {
-            myCreateQuadratic = false;
-            break;
-          }
-          else {
-            // fill NLinkNodeMap
-            switch ( e->NbNodes() ) {
-            case 3:
-              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(2)); break;
-            case 6:
-              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(3));
-              AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(4));
-              AddNLinkNode(e->GetNode(2),e->GetNode(0),e->GetNode(5)); break;
-            case 8:
-              AddNLinkNode(e->GetNode(0),e->GetNode(1),e->GetNode(4));
-              AddNLinkNode(e->GetNode(1),e->GetNode(2),e->GetNode(5));
-              AddNLinkNode(e->GetNode(2),e->GetNode(3),e->GetNode(6));
-              AddNLinkNode(e->GetNode(3),e->GetNode(0),e->GetNode(7));
-              break;
-            default:
-              myCreateQuadratic = false;
-              break;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  if(!myCreateQuadratic) {
-    myNLinkNodeMap.clear();
-  }
-  else {
-    // treatment of periodic faces
-    if ( aSh.ShapeType() == TopAbs_FACE ) {
-      const TopoDS_Face& face = TopoDS::Face( aSh );
-      BRepAdaptor_Surface surface( face );
-      if ( surface.IsUPeriodic() || surface.IsVPeriodic() ) {
-        // look for a seam edge
-        for ( exp.Init( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
-          const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
-          if ( BRep_Tool::IsClosed( edge, face )) {
-            // initialize myPar1, myPar2 and myParIndex
-            if ( mySeamShapeIds.empty() ) {
-              gp_Pnt2d uv1, uv2;
-              BRep_Tool::UVPoints( edge, face, uv1, uv2 );
-              if ( Abs( uv1.Coord(1) - uv2.Coord(1) ) < Abs( uv1.Coord(2) - uv2.Coord(2) ))
-              {
-                myParIndex = 1; // U periodic
-                myPar1 = surface.FirstUParameter();
-                myPar2 = surface.LastUParameter();
-              }
-              else {
-                myParIndex = 2;  // V periodic
-                myPar1 = surface.FirstVParameter();
-                myPar2 = surface.LastVParameter();
-              }
-            }
-            // store shapes indices
-            mySeamShapeIds.insert( meshDS->ShapeToIndex( exp.Current() ));
-            for ( TopExp_Explorer v( exp.Current(), TopAbs_VERTEX ); v.More(); v.Next() )
-              mySeamShapeIds.insert( meshDS->ShapeToIndex( v.Current() ));
-          }
-        }
-      }
-    }
-  }
-  return myCreateQuadratic;
-}
-
-
-//=======================================================================
-//function : IsMedium
-//purpose  : 
-//=======================================================================
-
-bool StdMeshers_Helper::IsMedium(const SMDS_MeshNode*      node,
-                                 const SMDSAbs_ElementType typeToCheck)
-{
-  return SMESH_MeshEditor::IsMedium( node, typeToCheck );
-}
-
-//=======================================================================
-//function : AddNLinkNode
-//purpose  : 
-//=======================================================================
-/*!
- * Auxilary function for filling myNLinkNodeMap
- */
-void StdMeshers_Helper::AddNLinkNode(const SMDS_MeshNode* n1,
-                                     const SMDS_MeshNode* n2,
-                                     const SMDS_MeshNode* n12)
-{
-  NLink link( n1, n2 );
-  if ( n1 > n2 ) link = NLink( n2, n1 );
-  // add new record to map
-  myNLinkNodeMap.insert( make_pair(link,n12));
-}
-
-//=======================================================================
-/*!
- * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
- * \param uv1 - UV on the seam
- * \param uv2 - UV within a face
- * \retval gp_Pnt2d - selected UV
- */
-//=======================================================================
-
-gp_Pnt2d StdMeshers_Helper::GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const
-{
-  double p1 = uv1.Coord( myParIndex );
-  double p2 = uv2.Coord( myParIndex );
-  double p3 = ( Abs( p1 - myPar1 ) < Abs( p1 - myPar2 )) ? myPar2 : myPar1;
-  if ( Abs( p2 - p1 ) > Abs( p2 - p3 ))
-    p1 = p3;
-  gp_Pnt2d result = uv1;
-  result.SetCoord( myParIndex, p1 );
-  return result;
-}
-
-//=======================================================================
-/*!
- * \brief Return node UV on face
- * \param F - the face
- * \param n - the node
- * \param n2 - a medium node will be placed between n and n2
- * \retval gp_XY - resulting UV
- * 
- * Auxilary function called form GetMediumNode()
- */
-//=======================================================================
-
-gp_XY StdMeshers_Helper::GetNodeUV(const TopoDS_Face&   F,
-                                   const SMDS_MeshNode* n,
-                                   const SMDS_MeshNode* n2)
-{
-  gp_Pnt2d uv;
-  const SMDS_PositionPtr Pos = n->GetPosition();
-  if(Pos->GetTypeOfPosition()==SMDS_TOP_FACE) {
-    // node has position on face
-    const SMDS_FacePosition* fpos =
-      static_cast<const SMDS_FacePosition*>(n->GetPosition().get());
-    uv = gp_Pnt2d(fpos->GetUParameter(),fpos->GetVParameter());
-  }
-  else if(Pos->GetTypeOfPosition()==SMDS_TOP_EDGE) {
-    // node has position on edge => it is needed to find
-    // corresponding edge from face, get pcurve for this
-    // edge and recieve value from this pcurve
-    const SMDS_EdgePosition* epos =
-      static_cast<const SMDS_EdgePosition*>(n->GetPosition().get());
-    SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
-    int edgeID = Pos->GetShapeId();
-    TopoDS_Edge E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
-    double f, l;
-    TopLoc_Location loc;
-    Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-    uv = C2d->Value( epos->GetUParameter() );
-    // for a node on a seam edge select one of UVs on 2 pcurves
-    if ( n2 && mySeamShapeIds.find( edgeID ) != mySeamShapeIds.end() )
-      uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
-  }
-  else if(Pos->GetTypeOfPosition()==SMDS_TOP_VERTEX) {
-    SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
-    int vertexID = n->GetPosition()->GetShapeId();
-    const TopoDS_Vertex& V = TopoDS::Vertex(meshDS->IndexToShape(vertexID));
-    uv = BRep_Tool::Parameters( V, F );
-    if ( n2 && mySeamShapeIds.find( vertexID ) != mySeamShapeIds.end() )
-      uv = GetUVOnSeam( uv, GetNodeUV( F, n2, 0 ));
-  }
-  return uv.XY();
-}
-
-
-//=======================================================================
-//function : GetMediumNode
-//purpose  : 
-//=======================================================================
-/*!
- * Special function for search or creation medium node
- */
-const SMDS_MeshNode* StdMeshers_Helper::GetMediumNode(const SMDS_MeshNode* n1,
-                                                      const SMDS_MeshNode* n2,
-                                                      const bool force3d)
-{
-//cout<<"n1: "<<n1;
-//cout<<"n2: "<<n2;
-  NLink link(( n1 < n2 ? n1 : n2 ), ( n1 < n2 ? n2 : n1 ));
-  ItNLinkNode itLN = myNLinkNodeMap.find( link );
-  if ( itLN != myNLinkNodeMap.end() ) {
-    return (*itLN).second;
-  }
-  else {
-    // create medium node
-    SMDS_MeshNode* n12;
-    SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
-    if(!force3d) {
-      // we try to create medium node using UV parameters of
-      // nodes, else - medium between corresponding 3d points
-      const SMDS_PositionPtr Pos1 = n1->GetPosition();
-      const SMDS_PositionPtr Pos2 = n2->GetPosition();
-      int faceID = -1;
-      if( Pos1->GetTypeOfPosition()==SMDS_TOP_FACE ) {
-        faceID = Pos1->GetShapeId();
-      }
-      else if( Pos2->GetTypeOfPosition()==SMDS_TOP_FACE ) {
-        faceID = Pos2->GetShapeId();
-      }
-      if(faceID>-1) {
-        TopoDS_Face F = TopoDS::Face(meshDS->IndexToShape(faceID));
-        gp_XY p1 = GetNodeUV(F,n1,n2);
-        gp_XY p2 = GetNodeUV(F,n2,n1);
-        double u = (p1.X()+p2.X())/2.;
-        double v = (p1.Y()+p2.Y())/2.;
-        Handle(Geom_Surface) S = BRep_Tool::Surface(F);
-        gp_Pnt P = S->Value(u, v);
-        n12 = meshDS->AddNode(P.X(), P.Y(), P.Z());
-        meshDS->SetNodeOnFace(n12, faceID, u, v);
-        myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
-        return n12;
-      }
-    }
-    // 3d variant
-    double x = ( n1->X() + n2->X() )/2.;
-    double y = ( n1->Y() + n2->Y() )/2.;
-    double z = ( n1->Z() + n2->Z() )/2.;
-    n12 = meshDS->AddNode(x,y,z);
-    meshDS->SetNodeInVolume(n12, myShapeID);
-    myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n12));
-    return n12;
-  }
-}
-
-
-//=======================================================================
-//function : AddFace
-//purpose  : 
-//=======================================================================
-/*!
- * Special function for creation quadratic triangle
- */
-SMDS_MeshFace* StdMeshers_Helper::AddFace(const SMDS_MeshNode* n1,
-                                          const SMDS_MeshNode* n2,
-                                          const SMDS_MeshNode* n3)
-{
-  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
-  if(!myCreateQuadratic) {
-    return  meshDS->AddFace(n1, n2, n3);
-  }
-
-  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,false);
-  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,false);
-  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,false);
-
-  return  meshDS->AddFace(n1, n2, n3, n12, n23, n31);
-}
-
-
-//=======================================================================
-//function : AddFace
-//purpose  : 
-//=======================================================================
-/*!
- * Special function for creation quadratic quadrangle
- */
-SMDS_MeshFace* StdMeshers_Helper::AddFace(const SMDS_MeshNode* n1,
-                                          const SMDS_MeshNode* n2,
-                                          const SMDS_MeshNode* n3,
-                                          const SMDS_MeshNode* n4)
-{
-  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
-  if(!myCreateQuadratic) {
-    return  meshDS->AddFace(n1, n2, n3, n4);
-  }
-
-  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,false);
-  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,false);
-  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,false);
-  const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,false);
-
-  return  meshDS->AddFace(n1, n2, n3, n4, n12, n23, n34, n41);
-}
-
-
-//=======================================================================
-//function : AddVolume
-//purpose  : 
-//=======================================================================
-/*!
- * Special function for creation quadratic volume
- */
-SMDS_MeshVolume* StdMeshers_Helper::AddVolume(const SMDS_MeshNode* n1,
-                                              const SMDS_MeshNode* n2,
-                                              const SMDS_MeshNode* n3,
-                                              const SMDS_MeshNode* n4,
-                                              const SMDS_MeshNode* n5,
-                                              const SMDS_MeshNode* n6)
-{
-  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
-  if(!myCreateQuadratic) {
-    return meshDS->AddVolume(n1, n2, n3, n4, n5, n6);
-  }
-
-  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,true);
-  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,true);
-  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,true);
-
-  const SMDS_MeshNode* n45 = GetMediumNode(n4,n5,true);
-  const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,true);
-  const SMDS_MeshNode* n64 = GetMediumNode(n6,n4,true);
-
-  const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,true);
-  const SMDS_MeshNode* n25 = GetMediumNode(n2,n5,true);
-  const SMDS_MeshNode* n36 = GetMediumNode(n3,n6,true);
-
-  return meshDS->AddVolume(n1, n2, n3, n4, n5, n6,
-                           n12, n23, n31, n45, n56, n64, n14, n25, n36);
-}
-
-
-//=======================================================================
-//function : AddVolume
-//purpose  : 
-//=======================================================================
-/*!
- * Special function for creation quadratic volume
- */
-SMDS_MeshVolume* StdMeshers_Helper::AddVolume(const SMDS_MeshNode* n1,
-                                              const SMDS_MeshNode* n2,
-                                              const SMDS_MeshNode* n3,
-                                              const SMDS_MeshNode* n4)
-{
-  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
-  if(!myCreateQuadratic) {
-    return meshDS->AddVolume(n1, n2, n3, n4);
-  }
-
-  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,true);
-  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,true);
-  const SMDS_MeshNode* n31 = GetMediumNode(n3,n1,true);
-
-  const SMDS_MeshNode* n14 = GetMediumNode(n1,n4,true);
-  const SMDS_MeshNode* n24 = GetMediumNode(n2,n4,true);
-  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,true);
-
-  return meshDS->AddVolume(n1, n2, n3, n4, n12, n23, n31, n14, n24, n34);
-}
-
-
-//=======================================================================
-//function : AddVolume
-//purpose  : 
-//=======================================================================
-/*!
- * Special function for creation quadratic volume
- */
-SMDS_MeshVolume* StdMeshers_Helper::AddVolume(const SMDS_MeshNode* n1,
-                                              const SMDS_MeshNode* n2,
-                                              const SMDS_MeshNode* n3,
-                                              const SMDS_MeshNode* n4,
-                                              const SMDS_MeshNode* n5,
-                                              const SMDS_MeshNode* n6,
-                                              const SMDS_MeshNode* n7,
-                                              const SMDS_MeshNode* n8)
-{
-  SMESHDS_Mesh * meshDS = GetMesh()->GetMeshDS();
-  if(!myCreateQuadratic) {
-    return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
-  }
-
-  const SMDS_MeshNode* n12 = GetMediumNode(n1,n2,true);
-  const SMDS_MeshNode* n23 = GetMediumNode(n2,n3,true);
-  const SMDS_MeshNode* n34 = GetMediumNode(n3,n4,true);
-  const SMDS_MeshNode* n41 = GetMediumNode(n4,n1,true);
-
-  const SMDS_MeshNode* n56 = GetMediumNode(n5,n6,true);
-  const SMDS_MeshNode* n67 = GetMediumNode(n6,n7,true);
-  const SMDS_MeshNode* n78 = GetMediumNode(n7,n8,true);
-  const SMDS_MeshNode* n85 = GetMediumNode(n8,n5,true);
-
-  const SMDS_MeshNode* n15 = GetMediumNode(n1,n5,true);
-  const SMDS_MeshNode* n26 = GetMediumNode(n2,n6,true);
-  const SMDS_MeshNode* n37 = GetMediumNode(n3,n7,true);
-  const SMDS_MeshNode* n48 = GetMediumNode(n4,n8,true);
-
-  return meshDS->AddVolume(n1, n2, n3, n4, n5, n6, n7, n8,
-                           n12, n23, n34, n41, n56, n67,
-                           n78, n85, n15, n26, n37, n48);
-}
-
-
diff --git a/src/StdMeshers/StdMeshers_Helper.hxx b/src/StdMeshers/StdMeshers_Helper.hxx
deleted file mode 100644 (file)
index 398c48b..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-// File:      StdMeshers_Helper.hxx
-// Created:   15.02.06 14:48:09
-// Author:    Sergey KUUL
-// Copyright: Open CASCADE 2006
-
-
-#ifndef StdMeshers_Helper_HeaderFile
-#define StdMeshers_Helper_HeaderFile
-
-#include <SMESH_Mesh.hxx>
-#include <TopoDS_Shape.hxx>
-#include <SMDS_MeshNode.hxx>
-#include <TopoDS_Face.hxx>
-#include <gp_Pnt2d.hxx>
-
-#include <map>
-
-typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> NLink;
-typedef map<NLink, const SMDS_MeshNode*> NLinkNodeMap;
-typedef map<NLink, const SMDS_MeshNode*>::iterator ItNLinkNode;
-
-/*!
- * \brief It helps meshers to add elements
- *
- * It allow meshers not to care about creation of medium nodes
- * when filling a quadratic mesh. Helper does it itself.
- * It defines degree of elements to create when IsQuadraticSubMesh()
- * is called.
- */
-
-class StdMeshers_Helper 
-{
- public:
-  // ---------- PUBLIC METHODS ----------
-
-  /// Empty constructor
-  StdMeshers_Helper(SMESH_Mesh& theMesh)
-    { myMesh=(void *)&theMesh; myCreateQuadratic = false; }
-
-  SMESH_Mesh* GetMesh() const
-    { return (SMESH_Mesh*)myMesh; }
-    
-  /// Copy constructor
-  //Standard_EXPORT StdMeshers_Helper (const StdMeshers_Helper& theOther);
-
-  /// Destructor
-  //Standard_EXPORT virtual ~StdMeshers_Helper ();
-
-  /**
-   * Check submesh for given shape
-   * Check if all elements on this shape
-   * are quadratic, if yes => set true to myCreateQuadratic 
-   * (default value is false). Also fill myNLinkNodeMap
-   * Returns myCreateQuadratic
-   */
-  bool IsQuadraticSubMesh(const TopoDS_Shape& theShape);
-
-  /*!
-   * \brief Returns true if given node is medium
-    * \param n - node to check
-    * \param typeToCheck - type of elements containing the node to ask about node status
-    * \retval bool - check result
-   */
-  static bool IsMedium(const SMDS_MeshNode*      node,
-                       const SMDSAbs_ElementType typeToCheck = SMDSAbs_All);
-
-  /**
-   * Auxilary function for filling myNLinkNodeMap
-   */
-  void AddNLinkNode(const SMDS_MeshNode* n1,
-                    const SMDS_MeshNode* n2,
-                    const SMDS_MeshNode* n12);
-
-  /**
-   * Auxilary function for filling myNLinkNodeMap
-   */
-  void AddNLinkNodeMap(const NLinkNodeMap& aMap)
-    { myNLinkNodeMap.insert(aMap.begin(), aMap.end()); }
-
-  /**
-   * Returns myNLinkNodeMap
-   */
-  const NLinkNodeMap& GetNLinkNodeMap() { return myNLinkNodeMap; }
-
-  /*!
-   * \brief Return node UV on face
-    * \param F - the face
-    * \param n - the node
-    * \param n2 - a medium node will be placed between n and n2
-    * \retval gp_XY - resulting UV
-   * 
-   * Auxilary function called form GetMediumNode()
-   */
-  gp_XY GetNodeUV(const TopoDS_Face&   F,
-                  const SMDS_MeshNode* n,
-                  const SMDS_MeshNode* n2=0);
-
-  /**
-   * Special function for search or creation medium node
-   */
-  const SMDS_MeshNode* GetMediumNode(const SMDS_MeshNode* n1,
-                                     const SMDS_MeshNode* n2,
-                                     const bool force3d);
-  /**
-   * Special function for creation quadratic triangle
-   */
-  SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
-                         const SMDS_MeshNode* n2,
-                         const SMDS_MeshNode* n3);
-
-  /**
-   * Special function for creation quadratic quadrangle
-   */
-  SMDS_MeshFace* AddFace(const SMDS_MeshNode* n1,
-                         const SMDS_MeshNode* n2,
-                         const SMDS_MeshNode* n3,
-                         const SMDS_MeshNode* n4);
-
-  /**
-   * Special function for creation quadratic tetraahedron
-   */
-  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
-                             const SMDS_MeshNode* n2,
-                             const SMDS_MeshNode* n3,
-                             const SMDS_MeshNode* n4);
-
-  /**
-   * Special function for creation quadratic pentahedron
-   */
-  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
-                             const SMDS_MeshNode* n2,
-                             const SMDS_MeshNode* n3,
-                             const SMDS_MeshNode* n4,
-                             const SMDS_MeshNode* n5,
-                             const SMDS_MeshNode* n6);
-
-  /**
-   * Special function for creation quadratic hexahedron
-   */
-  SMDS_MeshVolume* AddVolume(const SMDS_MeshNode* n1,
-                             const SMDS_MeshNode* n2,
-                             const SMDS_MeshNode* n3,
-                             const SMDS_MeshNode* n4,
-                             const SMDS_MeshNode* n5,
-                             const SMDS_MeshNode* n6,
-                             const SMDS_MeshNode* n7,
-                             const SMDS_MeshNode* n8);
-
-
- protected:
-
-  /*!
-   * \brief Select UV on either of 2 pcurves of a seam edge, closest to the given UV
-    * \param uv1 - UV on the seam
-    * \param uv2 - UV within a face
-    * \retval gp_Pnt2d - selected UV
-   */
-  gp_Pnt2d GetUVOnSeam( const gp_Pnt2d& uv1, const gp_Pnt2d& uv2 ) const;
-
- private:
-
-  void* myMesh;
-
-  int myShapeID;
-
-  // Key for creation quadratic faces
-  bool myCreateQuadratic;
-
-  // special map for using during creation quadratic faces
-  NLinkNodeMap myNLinkNodeMap;
-
-  std::set< int > mySeamShapeIds;
-  double          myPar1, myPar2; // bounds of a closed periodic surface
-  int             myParIndex;     // bounds' index (1-U, 2-V)
-
-};
-
-
-#endif
index 21793248a105b55a37729cb0cb6d964a3668a0d0..9bff1bb909ed040b6dc7fcff961b6b3e8e0878de 100644 (file)
@@ -199,7 +199,7 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
   //MESSAGE("---");
 
   // tool for working with quadratic elements
-  StdMeshers_Helper aTool (aMesh);
+  SMESH_MesherHelper aTool (aMesh);
   _quadraticMesh = aTool.IsQuadraticSubMesh(aShape);
 
   // cube structure
index 809f95ee7473aa11640169d2798c70f4f3082765..6ee4afb269fb04ec69f496bc855bd9b4b2f882b2 100644 (file)
@@ -34,7 +34,7 @@
 #include "StdMeshers_Quadrangle_2D.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 typedef struct point3Dstruct
 {
index d63d2e6f2490333ab1f195ca3500230648f7f8c1..3cdff0adf84774e14769ff1906b242c5320428ce 100644 (file)
@@ -217,9 +217,12 @@ bool StdMeshers_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
   int iw = 1;
   int nbpnt = 0;
 
-  myTool = new StdMeshers_Helper(aMesh);
+  myTool = new SMESH_MesherHelper(aMesh);
   _quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
 
+  if ( _quadraticMesh && _hypLengthFromEdges )
+    aretmx *= 2.;
+
   myOuterWire = BRepTools::OuterWire(F);
   nbpnt += NumberOfPoints(aMesh, myOuterWire);
   if ( nbpnt < 3 ) { // ex: a circle with 2 segments
@@ -428,7 +431,7 @@ static bool fixCommonVertexUV (gp_Pnt2d &           theUV,
       while ( nIt->more() ) {
         const SMDS_MeshNode* node = nIt->next();
         // check if node is medium
-        if ( CreateQuadratic && StdMeshers_Helper::IsMedium( node, SMDSAbs_Edge ))
+        if ( CreateQuadratic && SMESH_MesherHelper::IsMedium( node, SMDSAbs_Edge ))
           continue;
         const SMDS_EdgePosition* epos =
           static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
@@ -524,7 +527,7 @@ bool StdMeshers_MEFISTO_2D::LoadPoints(SMESH_Mesh &        aMesh,
     while ( nodeIt->more() )
     {
       node = nodeIt->next();
-      if ( _quadraticMesh && StdMeshers_Helper::IsMedium( node, SMDSAbs_Edge ))
+      if ( _quadraticMesh && SMESH_MesherHelper::IsMedium( node, SMDSAbs_Edge ))
         continue;
       const SMDS_EdgePosition* epos =
         static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
index 180ceb7605e81a058977b234115f21e33d786655..6a14394ecd729b98b48681f43e48fd53a44a9d42 100644 (file)
@@ -33,7 +33,7 @@
 #include "SMESH_2D_Algo.hxx"
 #include <TopoDS_Wire.hxx>
 
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 class SMDS_MeshNode;
 class TopTools_IndexedDataMapOfShapeListOfShape;
@@ -98,7 +98,7 @@ protected:
   TopoDS_Wire myOuterWire;
   std::list<const SMDS_MeshNode*> myNodesOnCommonV;
 
-  StdMeshers_Helper* myTool; // toll for working with quadratic elements
+  SMESH_MesherHelper* myTool; // toll for working with quadratic elements
 };
 
 #endif
index efa96e08cfcb461bc2a1c8df4fb70c73516cde65..a16f08b99b18481c8a391a1b1e423aaa5d9bbdc1 100644 (file)
@@ -108,7 +108,7 @@ bool StdMeshers_Penta_3D::Compute(SMESH_Mesh& aMesh,
     return bOK;
   }
 
-  myTool = new StdMeshers_Helper(aMesh);
+  myTool = new SMESH_MesherHelper(aMesh);
   myCreateQuadratic = myTool->IsQuadraticSubMesh(aShape);
 
   //
@@ -1425,12 +1425,12 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
   // try to load the rest nodes
 
   // get all faces from theFace
-  set<const SMDS_MeshElement*> allFaces, foundFaces;
+  map<int,const SMDS_MeshElement*> allFaces, foundFaces;
   SMDS_ElemIteratorPtr eIt = smFace->GetElements();
   while ( eIt->more() ) {
     const SMDS_MeshElement* e = eIt->next();
     if ( e->GetType() == SMDSAbs_Face )
-      allFaces.insert( e );
+      allFaces.insert( make_pair(e->GetID(),e) );
   }
   // Starting from 2 neighbour nodes on theBaseEdge, look for a face
   // the nodes belong to, and between the nodes of the found face,
@@ -1477,7 +1477,7 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
             return false;
           }
           par_nVec_2->second[ row ] = node;
-          foundFaces.insert( face );
+          foundFaces.insert( make_pair(face->GetID(),face) );
           n2 = node;
           if ( nbFaceNodes==4 || (myCreateQuadratic && nbFaceNodes==8) ) {
             n1 = par_nVec_1->second[ row ];
index ae5b03c54c3a4b2d37d6ddb3b604720e381a48d7..2743754057da93c05616c082d2d109ef54cba31d 100644 (file)
@@ -43,7 +43,7 @@
 
 #include "SMESH_Block.hxx"
 
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 typedef std::map< double, std::vector<const SMDS_MeshNode*> > StdMeshers_IJNodeMap;
 
@@ -256,7 +256,7 @@ class StdMeshers_Penta_3D {
     vector<gp_XYZ>            myShapeXYZ; // point on each sub-shape
 
     bool myCreateQuadratic;
-    StdMeshers_Helper* myTool; // toll for working with quadratic elements
+    SMESH_MesherHelper* myTool; // toll for working with quadratic elements
 };
 
 #endif
index da30b67831fa28557255f9d0f62c2d222e04778a..b035da0ddd737e2f1ab7be8605caa5721fceedd9 100644 (file)
@@ -133,7 +133,7 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   aMesh.GetSubMesh(aShape);
 
   if ( !myTool )
-    myTool = new StdMeshers_Helper(aMesh);
+    myTool = new SMESH_MesherHelper(aMesh);
   _quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
 
   //FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
index 9abff008c1b806efc1dc4219ed49f5f63a7016c3..82f507d6ef005172204f9de8f747121c607595bb 100644 (file)
@@ -36,7 +36,7 @@
 
 #include "gp_XY.hxx"
 
-#include "StdMeshers_Helper.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 //class SMDS_MeshNode;
 
@@ -131,7 +131,7 @@ protected:
   // is not the same in the case where the global number of nodes on edges is even
   bool myQuadranglePreference;
 
-  StdMeshers_Helper* myTool; // toll for working with quadratic elements
+  SMESH_MesherHelper* myTool; // toll for working with quadratic elements
 };
 
 #endif
index dc1ec9bb42064f558075805889cb3727060f847c..78519c8617299661b7242bb2da885c1c6c3537db 100644 (file)
@@ -347,7 +347,7 @@ bool StdMeshers_Regular_1D::computeInternalParameters(const TopoDS_Edge& theEdge
 
   double f, l;
   Handle(Geom_Curve) Curve = BRep_Tool::Curve(theEdge, f, l);
-  GeomAdaptor_Curve C3d(Curve);
+  GeomAdaptor_Curve C3d (Curve, f, l);
 
   double length = EdgeLength(theEdge);
 
@@ -368,11 +368,14 @@ bool StdMeshers_Regular_1D::computeInternalParameters(const TopoDS_Edge& theEdge
     else
     {
       // Number Of Segments hypothesis
+      int NbSegm = _ivalue[ NB_SEGMENTS_IND ];
+      if ( NbSegm < 1 )  return false;
+      if ( NbSegm == 1 ) return true;
+
       switch (_ivalue[ DISTR_TYPE_IND ])
       {
       case StdMeshers_NumberOfSegments::DT_Scale:
         {
-          int NbSegm   = _ivalue[ NB_SEGMENTS_IND ];
           double scale = _value[ SCALE_FACTOR_IND ];
 
           if (fabs(scale - 1.0) < Precision::Confusion()) {
@@ -645,8 +648,7 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
       if(_quadraticMesh) {
         // create medium node
         double prm = param - du/2.;
-        gp_Pnt PM = Curve->Value(prm);
-        SMDS_MeshNode * NM = meshDS->AddNode(PM.X(), PM.Y(), PM.Z());
+        SMDS_MeshNode * NM = meshDS->AddNode(P.X(), P.Y(), P.Z());
         meshDS->SetNodeOnEdge(NM, shapeID, prm);
         SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node, NM);
         meshDS->SetMeshElementOnShape(edge, shapeID);
@@ -661,8 +663,7 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
     if(_quadraticMesh) {
       // create medium node
       double prm = l - du/2.;
-      gp_Pnt PM = Curve->Value(prm);
-      SMDS_MeshNode * NM = meshDS->AddNode(PM.X(), PM.Y(), PM.Z());
+      SMDS_MeshNode * NM = meshDS->AddNode(P.X(), P.Y(), P.Z());
       meshDS->SetNodeOnEdge(NM, shapeID, prm);
       SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast, NM);
       meshDS->SetMeshElementOnShape(edge, shapeID);
@@ -705,7 +706,7 @@ StdMeshers_Regular_1D::GetUsedHypothesis(SMESH_Mesh &         aMesh,
     {
       // Propagation of 1D hypothesis from <aMainEdge> on this edge;
       // get non-auxiliary assigned to _mainEdge
-      nbHyp = aMesh.GetHypotheses( _mainEdge, compatibleFilter, _usedHypList, false );
+      nbHyp = aMesh.GetHypotheses( _mainEdge, compatibleFilter, _usedHypList, true );
     }
   }
 
index def734a2cbde74368aefe00b8461c70db7d9eaeb..8cb95b44a9caad3f70ff795ae9313513537fcbf0 100644 (file)
@@ -52,7 +52,7 @@ LIB_MOC = \
        StdMeshersGUI_DistrTable.h \
        StdMeshersGUI_NbSegmentsCreator.h
 
-EXPORT_HEADERS =
+EXPORT_HEADERS = StdMeshersGUI_StdHypothesisCreator.h
 
 LIB_CLIENT_IDL = \
        SALOME_Exception.idl \
@@ -66,7 +66,9 @@ LIB_CLIENT_IDL += \
        SALOME_GenericObj.idl \
        SALOME_ContainerManager.idl \
        SALOME_Component.idl \
-       GEOM_Gen.idl
+       GEOM_Gen.idl \
+       SALOME_Comm.idl \
+       MED.idl
 
 LIB_SERVER_IDL = 
 
index e58be313b07e36bafe76793c031bc1e4c1465789..4367f4b78846d0858b8413101f0e5e7c79762b51 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #include "StdMeshersGUI_DistrPreview.h"
 #include "CASCatch.hxx"
index 2246588236c3f461e890da3577efd6d32876435f..b34157c1af9ff3da63802909c158058b7fccde4d 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #ifndef STD_MESHERS_GUI_DISTR_PREVIEW_HEADER
 #define STD_MESHERS_GUI_DISTR_PREVIEW_HEADER
index f190fb2cadf89be7b3b8fc888e2eb8a341622bfc..fc4370378d2b50679eae50b7e88207fcc1ac35d7 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #include "StdMeshersGUI_NbSegmentsCreator.h"
 #include "StdMeshersGUI_DistrTable.h"
@@ -173,6 +192,7 @@ void StdMeshersGUI_NbSegmentsCreator::retrieveParams() const
   myDistr->setCurrentItem( data.myDistrType );
   myScale->setValue( data.myScale );
   myConv->setButton( data.myConv );
+  myTable->table()->funcValidator()->setBottom(myConv->id( myConv->selected() )==0 ? -1E20 : 0);
   myTable->table()->setData( data.myTable );
   myExpr->setText( data.myExpr );
 }
index 6d902fe801943b5e46ebd1b1a2f6ee71053c3726..5b8ef29671d3cafd6ac3cee7e9c890a73e79b283 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/
+//
 
 #ifndef NB_SEGMENTS_CREATOR_HEADER
 #define NB_SEGMENTS_CREATOR_HEADER
index 33abb069897bd290f7f5810b5814199a8e352e07..03df86b1191a23dd8bfc0722c5dd9f6a05f8f6d8 100644 (file)
@@ -261,6 +261,10 @@ void StdMeshersGUI_StdHypothesisCreator::attuneStdWidget( QWidget* w, const int
   {
     sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, 6 );
   }
+  else if ( sb ) // default validator for possible ancestors
+  {
+    sb->RangeStepAndValidator( VALUE_SMALL, VALUE_MAX, 1.0, 6 );
+  }
 }
 
 QString StdMeshersGUI_StdHypothesisCreator::caption() const
index 216324cabca54d45b82164a137f95109e74aa182..bc87917b4460026a2bb88c805c46661adb76e14a 100644 (file)
@@ -55,8 +55,7 @@ protected:
   virtual QWidget* getCustomWidget( const StdParam&, QWidget* ) const;
   virtual bool     getParamFromCustomWidget( StdParam& , QWidget* ) const;
 
-private:
-          QString hypTypeName( const QString& ) const;
+  virtual QString hypTypeName( const QString& ) const;
 };
 
 #endif
index 64828da636f5904365dc2c9b3bf53581a1d8911a..b460bd3d94466dbdab68156ac88c4ac6476ccc36 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index dc86b0046d7236927dc760fbfa74c62ac71464e0..563e78fb55561ecf56f4e6e8ac719d502709a21e 100644 (file)
@@ -1,3 +1,22 @@
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/
+#
 # This is a Qt message file in .po format.  Each msgid starts with
 # a scope.  This scope should *NOT* be translated - eg. "Foo::Bar"
 # would be translated to "Pub", not "Foo::Pub".
index 12d77a6dd0e14f1535dfdfc65817c47a24efdaa8..329b66af4283c44560787496513a9fc1af5150db 100644 (file)
@@ -78,8 +78,10 @@ StdMeshers_NumberOfSegments_i::~StdMeshers_NumberOfSegments_i()
  *  Builds point distribution according to passed function
  */
 //=============================================================================
-SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionExpr( const char* func, long nbSeg, long conv )
-throw ( SALOME::SALOME_Exception )
+SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionExpr( const char* func, 
+                                                                          CORBA::Long nbSeg, 
+                                                                          CORBA::Long conv )
+  throw ( SALOME::SALOME_Exception )
 {
   MESSAGE( "StdMeshers_NumberOfSegments_i::BuildDistribution" );
   ASSERT( myBaseImpl );
@@ -99,8 +101,9 @@ throw ( SALOME::SALOME_Exception )
 }
 
 SMESH::double_array* StdMeshers_NumberOfSegments_i::BuildDistributionTab( const SMESH::double_array& func,
-                                                                         long nbSeg, long conv )
-throw ( SALOME::SALOME_Exception )
+                                                                         CORBA::Long nbSeg, 
+                                                                         CORBA::Long conv )
+  throw ( SALOME::SALOME_Exception )
 {
   MESSAGE( "StdMeshers_NumberOfSegments_i::BuildDistribution" );
   ASSERT( myBaseImpl );
index a379e81ac2fa141000679e89bda00f0552757c03..a9104ec81e6037fa9f9a373cd1066dd783d31846 100644 (file)
@@ -49,6 +49,12 @@ using namespace std;
 #include "StdMeshers_Quadrangle_2D_i.hxx"
 #include "StdMeshers_Hexa_3D_i.hxx"
 
+template <class T> class StdHypothesisCreator_i:public HypothesisCreator_i<T>
+{
+  // as we have 'module StdMeshers' in SMESH_BasicHypothesis.idl
+  virtual std::string GetModuleName() { return "StdMeshers"; }
+};
+
 //=============================================================================
 /*!
  *
@@ -65,41 +71,41 @@ extern "C"
 
     // Hypotheses
     if      (strcmp(aHypName, "LocalLength") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_LocalLength_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_LocalLength_i>;
     else if (strcmp(aHypName, "NumberOfSegments") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_NumberOfSegments_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_NumberOfSegments_i>;
     else if (strcmp(aHypName, "LengthFromEdges") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_LengthFromEdges_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_LengthFromEdges_i>;
     else if (strcmp(aHypName, "NotConformAllowed") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_NotConformAllowed_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_NotConformAllowed_i>;
     else if (strcmp(aHypName, "Propagation") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Propagation_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_Propagation_i>;
     else if (strcmp(aHypName, "MaxElementArea") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_MaxElementArea_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_MaxElementArea_i>;
     else if (strcmp(aHypName, "MaxElementVolume") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_MaxElementVolume_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_MaxElementVolume_i>;
     else if (strcmp(aHypName, "StartEndLength") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_StartEndLength_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_StartEndLength_i>;
     else if (strcmp(aHypName, "Deflection1D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Deflection1D_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_Deflection1D_i>;
     else if (strcmp(aHypName, "Arithmetic1D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Arithmetic1D_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_Arithmetic1D_i>;
     else if (strcmp(aHypName, "AutomaticLength") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_AutomaticLength_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_AutomaticLength_i>;
     else if (strcmp(aHypName, "QuadranglePreference") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_QuadranglePreference_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_QuadranglePreference_i>;
     else if (strcmp(aHypName, "QuadraticMesh") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_QuadraticMesh_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_QuadraticMesh_i>;
 
     // Algorithms
     else if (strcmp(aHypName, "Regular_1D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Regular_1D_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_Regular_1D_i>;
     else if (strcmp(aHypName, "MEFISTO_2D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_MEFISTO_2D_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_MEFISTO_2D_i>;
     else if (strcmp(aHypName, "Quadrangle_2D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Quadrangle_2D_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_Quadrangle_2D_i>;
     else if (strcmp(aHypName, "Hexa_3D") == 0)
-      aCreator = new HypothesisCreator_i<StdMeshers_Hexa_3D_i>;
+      aCreator = new StdHypothesisCreator_i<StdMeshers_Hexa_3D_i>;
     else ;
 
     return aCreator;