Salome HOME
Merge from BR_DEBUG_3_2_0b1
authorabd <abd@opencascade.com>
Wed, 14 Jun 2006 13:58:32 +0000 (13:58 +0000)
committerabd <abd@opencascade.com>
Wed, 14 Jun 2006 13:58:32 +0000 (13:58 +0000)
993 files changed:
INSTALL
Makefile.in
adm_local/unix/config_files/check_Geom.m4 [deleted file]
adm_local/unix/config_files/check_Med.m4 [deleted file]
adm_local/unix/make_commence.in
adm_local/unix/make_conclude.in
bin/VERSION [deleted file]
build_configure
configure.in.base
doc/Makefile.in
doc/salome/AddNetgenInSalome2.pdf
doc/salome/Makefile.in
doc/salome/SMESH_index_v3.1.0.html [deleted file]
doc/salome/gui/Makefile.in
doc/salome/gui/SMESH/about_viewing_meshes.htm
doc/salome/gui/SMESH/adding_quadratic_nodes_and_elements.htm
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/cshdat_robohelp.htm
doc/salome/gui/SMESH/cshdat_webhelp.htm
doc/salome/gui/SMESH/default.css
doc/salome/gui/SMESH/default_ns.css
doc/salome/gui/SMESH/defining_hypotheses_tui.htm
doc/salome/gui/SMESH/deleting_groups.htm
doc/salome/gui/SMESH/display_entity.htm
doc/salome/gui/SMESH/ehelp.xml
doc/salome/gui/SMESH/ehlpdhtm.js
doc/salome/gui/SMESH/extrusion.htm
doc/salome/gui/SMESH/extrusion_along_a_path.htm
doc/salome/gui/SMESH/files/about_hypotheses.htm
doc/salome/gui/SMESH/files/about_meshes.htm
doc/salome/gui/SMESH/files/about_meshing_algorithms.htm
doc/salome/gui/SMESH/files/about_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_groups_of_specific_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/diagonal_iversion_of_elements.htm
doc/salome/gui/SMESH/files/displacing_nodes.htm
doc/salome/gui/SMESH/files/displaying_nodes_numbers.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 [deleted file]
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/minimum_angle.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/rotation.htm
doc/salome/gui/SMESH/files/running_smesh_module.htm
doc/salome/gui/SMESH/files/sewing_meshes.htm
doc/salome/gui/SMESH/files/skew.htm
doc/salome/gui/SMESH/files/smoothing.htm
doc/salome/gui/SMESH/files/symmetry.htm
doc/salome/gui/SMESH/files/taper.htm
doc/salome/gui/SMESH/files/translation.htm
doc/salome/gui/SMESH/files/uniting_a_set_of_triangles.htm
doc/salome/gui/SMESH/files/uniting_two_triangles.htm
doc/salome/gui/SMESH/files/using_operations_on_groups.htm
doc/salome/gui/SMESH/files/viewing_mesh_info.htm
doc/salome/gui/SMESH/files/vtk_3d_viewer.htm
doc/salome/gui/SMESH/files/warp.htm
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/image10.jpg
doc/salome/gui/SMESH/image129.gif [deleted file]
doc/salome/gui/SMESH/image131.gif
doc/salome/gui/SMESH/image138.gif [deleted file]
doc/salome/gui/SMESH/image139.gif [deleted file]
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/image24.gif
doc/salome/gui/SMESH/image26.jpg [deleted file]
doc/salome/gui/SMESH/image27.gif [deleted file]
doc/salome/gui/SMESH/image37.gif
doc/salome/gui/SMESH/image7.jpg
doc/salome/gui/SMESH/image71.jpg
doc/salome/gui/SMESH/image73.gif [deleted file]
doc/salome/gui/SMESH/image74.gif
doc/salome/gui/SMESH/index.htm
doc/salome/gui/SMESH/index_csh.htm
doc/salome/gui/SMESH/index_rhc.htm
doc/salome/gui/SMESH/length.htm
doc/salome/gui/SMESH/merge_elements.htm
doc/salome/gui/SMESH/mesh.htm
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-arithmetic1d.png
doc/salome/gui/SMESH/pics/a-averagelength.png
doc/salome/gui/SMESH/pics/a-clipping2.png
doc/salome/gui/SMESH/pics/a-creategroup.png
doc/salome/gui/SMESH/pics/a-createmesh1.png [deleted file]
doc/salome/gui/SMESH/pics/a-createpolyhedralvolume.png
doc/salome/gui/SMESH/pics/a-cuttingofquadrangles.png
doc/salome/gui/SMESH/pics/a-deflection1d.png
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-extusionalongapath2.png
doc/salome/gui/SMESH/pics/a-filteronedges.png
doc/salome/gui/SMESH/pics/a-maxelarea.png
doc/salome/gui/SMESH/pics/a-maxelvolume.png
doc/salome/gui/SMESH/pics/a-nbsegments1.png
doc/salome/gui/SMESH/pics/a-nbsegments2.png
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/a-patterntype.png
doc/salome/gui/SMESH/pics/a-patterntype1.png
doc/salome/gui/SMESH/pics/a-standmeshinfo.png
doc/salome/gui/SMESH/pics/a-startendlength.png
doc/salome/gui/SMESH/pics/a-transparency.png
doc/salome/gui/SMESH/pics/a-unionoftriangles.png
doc/salome/gui/SMESH/pics/a-viewgeneral.png
doc/salome/gui/SMESH/pics/add_edge.png
doc/salome/gui/SMESH/pics/add_node.png
doc/salome/gui/SMESH/pics/add_polygone.png
doc/salome/gui/SMESH/pics/add_polyhedron.png
doc/salome/gui/SMESH/pics/add_quadrangle.png
doc/salome/gui/SMESH/pics/add_triangle.png
doc/salome/gui/SMESH/pics/addedge.png
doc/salome/gui/SMESH/pics/addhexahedron.png
doc/salome/gui/SMESH/pics/addnode.png
doc/salome/gui/SMESH/pics/addpolygon.png
doc/salome/gui/SMESH/pics/addquadrangle.png
doc/salome/gui/SMESH/pics/addtetrahedron.png
doc/salome/gui/SMESH/pics/addtriangle.png
doc/salome/gui/SMESH/pics/advanced_mesh_infos.png
doc/salome/gui/SMESH/pics/aqt.png
doc/salome/gui/SMESH/pics/automaticlength.png
doc/salome/gui/SMESH/pics/b-art_end_length.png
doc/salome/gui/SMESH/pics/b-create_group.png [deleted file]
doc/salome/gui/SMESH/pics/b-erage_length.png
doc/salome/gui/SMESH/pics/b-flection1d.png
doc/salome/gui/SMESH/pics/b-ithmetic1d.png
doc/salome/gui/SMESH/pics/b-mberofsegments.png
doc/salome/gui/SMESH/pics/b-mesh_infos.png
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/create_group.png
doc/salome/gui/SMESH/pics/creategroup.png
doc/salome/gui/SMESH/pics/createmesh-inv.png
doc/salome/gui/SMESH/pics/createmesh-inv2.png
doc/salome/gui/SMESH/pics/createmesh-inv3.png
doc/salome/gui/SMESH/pics/cut_groups1.png
doc/salome/gui/SMESH/pics/cut_groups2.png
doc/salome/gui/SMESH/pics/cut_groups3.png
doc/salome/gui/SMESH/pics/cutgroups.png
doc/salome/gui/SMESH/pics/deletegroups.png
doc/salome/gui/SMESH/pics/diagonalinversion.png
doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png
doc/salome/gui/SMESH/pics/distributionwithtabledensity.png
doc/salome/gui/SMESH/pics/edit_mesh1.png
doc/salome/gui/SMESH/pics/edit_mesh_change_value_hyp.png
doc/salome/gui/SMESH/pics/edit_mesh_remove_hyp.png
doc/salome/gui/SMESH/pics/editgroup.png
doc/salome/gui/SMESH/pics/editing_groups1.png
doc/salome/gui/SMESH/pics/editing_groups2.png
doc/salome/gui/SMESH/pics/extrusionalongaline1.png
doc/salome/gui/SMESH/pics/extrusionalongaline2.png
doc/salome/gui/SMESH/pics/free_borders1.png
doc/salome/gui/SMESH/pics/free_edges.png
doc/salome/gui/SMESH/pics/graduatedaxes1.png
doc/salome/gui/SMESH/pics/importmesh.png [deleted file]
doc/salome/gui/SMESH/pics/intersect_groups1.png
doc/salome/gui/SMESH/pics/intersect_groups2.png
doc/salome/gui/SMESH/pics/intersect_groups3.png
doc/salome/gui/SMESH/pics/intersectgroups.png
doc/salome/gui/SMESH/pics/length-crit.png
doc/salome/gui/SMESH/pics/length1.png [deleted file]
doc/salome/gui/SMESH/pics/length2d.png
doc/salome/gui/SMESH/pics/max_el_area.png
doc/salome/gui/SMESH/pics/mergeelems.png
doc/salome/gui/SMESH/pics/mergenodes.png
doc/salome/gui/SMESH/pics/merging_nodes1.png
doc/salome/gui/SMESH/pics/merging_nodes2.png
doc/salome/gui/SMESH/pics/meshexportmesh.png
doc/salome/gui/SMESH/pics/meshimportmesh.png
doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png
doc/salome/gui/SMESH/pics/movenodes.png
doc/salome/gui/SMESH/pics/moving_nodes1.png
doc/salome/gui/SMESH/pics/moving_nodes2.png
doc/salome/gui/SMESH/pics/orientaation1.png
doc/salome/gui/SMESH/pics/patternmapping1.png
doc/salome/gui/SMESH/pics/patternmapping2.png
doc/salome/gui/SMESH/pics/remove_elements1.png
doc/salome/gui/SMESH/pics/remove_elements2.png
doc/salome/gui/SMESH/pics/remove_nodes1.png
doc/salome/gui/SMESH/pics/remove_nodes2.png
doc/salome/gui/SMESH/pics/removeelements.png
doc/salome/gui/SMESH/pics/removenodes.png
doc/salome/gui/SMESH/pics/renumberelements.png
doc/salome/gui/SMESH/pics/renumbernodes.png
doc/salome/gui/SMESH/pics/revolution1.png
doc/salome/gui/SMESH/pics/revolution2.png
doc/salome/gui/SMESH/pics/rotation.png
doc/salome/gui/SMESH/pics/rotation1.png
doc/salome/gui/SMESH/pics/rotation2.png
doc/salome/gui/SMESH/pics/selectionfilterlibrary.png
doc/salome/gui/SMESH/pics/sewing1.png
doc/salome/gui/SMESH/pics/sewing2.png
doc/salome/gui/SMESH/pics/sewing3.png
doc/salome/gui/SMESH/pics/sewing4.png
doc/salome/gui/SMESH/pics/smoothing.png
doc/salome/gui/SMESH/pics/smoothing1.png
doc/salome/gui/SMESH/pics/smoothing2.png
doc/salome/gui/SMESH/pics/submeshconstruction.png [deleted file]
doc/salome/gui/SMESH/pics/symmetry1.png
doc/salome/gui/SMESH/pics/symmetry2.png
doc/salome/gui/SMESH/pics/symmetry3.png
doc/salome/gui/SMESH/pics/translation1.png
doc/salome/gui/SMESH/pics/translation2.png
doc/salome/gui/SMESH/pics/union_groups1.png
doc/salome/gui/SMESH/pics/union_groups2.png
doc/salome/gui/SMESH/pics/union_groups3.png
doc/salome/gui/SMESH/pics/uniongroups.png
doc/salome/gui/SMESH/pics/unionoftwotriangles.png
doc/salome/gui/SMESH/pics/uniting_a_set_of_triangles1.png
doc/salome/gui/SMESH/pics/uniting_a_set_of_triangles2.png
doc/salome/gui/SMESH/pics/uniting_two_triangles1.png
doc/salome/gui/SMESH/pics/uniting_two_triangles2.png
doc/salome/gui/SMESH/presentation.htm
doc/salome/gui/SMESH/quality_controls.htm
doc/salome/gui/SMESH/revolution.htm
doc/salome/gui/SMESH/selection_filter_library.htm
doc/salome/gui/SMESH/smesh.htm [deleted file]
doc/salome/gui/SMESH/smesh.log
doc/salome/gui/SMESH/smesh_csh.htm [deleted file]
doc/salome/gui/SMESH/smesh_rhc.htm [deleted file]
doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg
doc/salome/gui/SMESH/smeshpy_doc/namespacesmesh.html
doc/salome/gui/SMESH/transforming_meshes.htm
doc/salome/gui/SMESH/transparency.htm
doc/salome/gui/SMESH/viewing_meshes.htm
doc/salome/gui/SMESH/volume.htm
doc/salome/gui/SMESH/webhelp.jar
doc/salome/gui/SMESH/whcsh_home.htm
doc/salome/gui/SMESH/whcshdata.htm
doc/salome/gui/SMESH/whd_dpns.htm
doc/salome/gui/SMESH/whd_nvp10.htm
doc/salome/gui/SMESH/whd_nvp20.htm
doc/salome/gui/SMESH/whd_tabs.htm
doc/salome/gui/SMESH/whd_toc4.gif
doc/salome/gui/SMESH/whd_topic.xml
doc/salome/gui/SMESH/whdata/whftdata.js
doc/salome/gui/SMESH/whdata/whftdata0.htm
doc/salome/gui/SMESH/whdata/whfts.htm
doc/salome/gui/SMESH/whdata/whfts.js
doc/salome/gui/SMESH/whdata/whfwdata.js
doc/salome/gui/SMESH/whdata/whfwdata0.htm
doc/salome/gui/SMESH/whdata/whgdata.js
doc/salome/gui/SMESH/whdata/whgdata0.htm
doc/salome/gui/SMESH/whdata/whglo.htm
doc/salome/gui/SMESH/whdata/whglo.js
doc/salome/gui/SMESH/whdata/whidata.js
doc/salome/gui/SMESH/whdata/whidx.htm
doc/salome/gui/SMESH/whdata/whidx.js
doc/salome/gui/SMESH/whdata/whtdata.js
doc/salome/gui/SMESH/whdata/whtdata0.htm
doc/salome/gui/SMESH/whdata/whtoc.htm
doc/salome/gui/SMESH/whdata/whtoc.js
doc/salome/gui/SMESH/whestart.ico [deleted file]
doc/salome/gui/SMESH/whfbody.htm
doc/salome/gui/SMESH/whfdhtml.htm
doc/salome/gui/SMESH/whfform.htm
doc/salome/gui/SMESH/whfhost.js
doc/salome/gui/SMESH/whform.js
doc/salome/gui/SMESH/whframes.js
doc/salome/gui/SMESH/whgbody.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
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/whlstg0.htm
doc/salome/gui/SMESH/whgdata/whlsti0.htm
doc/salome/gui/SMESH/whgdata/whlstt0.htm
doc/salome/gui/SMESH/whgdata/whlstt1.htm
doc/salome/gui/SMESH/whgdata/whlstt2.htm
doc/salome/gui/SMESH/whgdata/whlstt3.htm
doc/salome/gui/SMESH/whgdata/whlstt4.htm
doc/salome/gui/SMESH/whgdata/whlstt5.htm
doc/salome/gui/SMESH/whgdata/whlstt6.htm
doc/salome/gui/SMESH/whgdata/whlstt7.htm
doc/salome/gui/SMESH/whgdata/whlstt8.htm
doc/salome/gui/SMESH/whgdata/whlstt9.htm
doc/salome/gui/SMESH/whgdata/whnvf30.htm
doc/salome/gui/SMESH/whgdata/whnvf31.htm
doc/salome/gui/SMESH/whgdata/whnvf32.htm
doc/salome/gui/SMESH/whgdata/whnvf33.htm
doc/salome/gui/SMESH/whgdata/whnvl31.htm
doc/salome/gui/SMESH/whgdata/whnvl32.htm
doc/salome/gui/SMESH/whgdata/whnvl33.htm
doc/salome/gui/SMESH/whgdata/whnvp30.htm
doc/salome/gui/SMESH/whgdata/whnvp31.htm
doc/salome/gui/SMESH/whgdata/whnvp32.htm
doc/salome/gui/SMESH/whgdata/whnvp33.htm
doc/salome/gui/SMESH/whgdata/whnvt30.htm
doc/salome/gui/SMESH/whgdata/whnvt31.htm
doc/salome/gui/SMESH/whgdata/whnvt32.htm
doc/salome/gui/SMESH/whgdata/whnvt33.htm
doc/salome/gui/SMESH/whgdef.htm
doc/salome/gui/SMESH/whgdhtml.htm
doc/salome/gui/SMESH/whghost.js
doc/salome/gui/SMESH/whhost.js
doc/salome/gui/SMESH/whibody.htm
doc/salome/gui/SMESH/whidhtml.htm
doc/salome/gui/SMESH/whiform.htm
doc/salome/gui/SMESH/whihost.js
doc/salome/gui/SMESH/whlang.js
doc/salome/gui/SMESH/whmozemu.js
doc/salome/gui/SMESH/whmsg.js
doc/salome/gui/SMESH/whnjs.htm
doc/salome/gui/SMESH/whphost.js
doc/salome/gui/SMESH/whproj.htm
doc/salome/gui/SMESH/whproj.js
doc/salome/gui/SMESH/whproj.xml
doc/salome/gui/SMESH/whproxy.js
doc/salome/gui/SMESH/whres.xml
doc/salome/gui/SMESH/whrstart.ico [deleted file]
doc/salome/gui/SMESH/whskin_banner.htm [deleted file]
doc/salome/gui/SMESH/whskin_blank.htm
doc/salome/gui/SMESH/whskin_frmset01.htm [deleted file]
doc/salome/gui/SMESH/whskin_frmset010.htm [deleted file]
doc/salome/gui/SMESH/whskin_homepage.htm
doc/salome/gui/SMESH/whskin_info.htm
doc/salome/gui/SMESH/whskin_mbars.htm [deleted file]
doc/salome/gui/SMESH/whskin_papplet.htm [deleted file]
doc/salome/gui/SMESH/whskin_pdhtml.htm [deleted file]
doc/salome/gui/SMESH/whskin_pickup.htm
doc/salome/gui/SMESH/whskin_plist.htm [deleted file]
doc/salome/gui/SMESH/whskin_tbars.htm [deleted file]
doc/salome/gui/SMESH/whskin_tw.htm
doc/salome/gui/SMESH/whst_topics.xml [deleted file]
doc/salome/gui/SMESH/whstart.ico [deleted file]
doc/salome/gui/SMESH/whstart.js
doc/salome/gui/SMESH/whstub.js
doc/salome/gui/SMESH/wht_abge.jpg [deleted file]
doc/salome/gui/SMESH/wht_abgi.jpg [deleted file]
doc/salome/gui/SMESH/wht_abgw.jpg [deleted file]
doc/salome/gui/SMESH/wht_abte.jpg [deleted file]
doc/salome/gui/SMESH/wht_abti.jpg [deleted file]
doc/salome/gui/SMESH/wht_abtw.jpg [deleted file]
doc/salome/gui/SMESH/wht_fts_h.gif [deleted file]
doc/salome/gui/SMESH/wht_fts_n.gif [deleted file]
doc/salome/gui/SMESH/wht_glo_h.gif [deleted file]
doc/salome/gui/SMESH/wht_glo_n.gif [deleted file]
doc/salome/gui/SMESH/wht_go.gif [deleted file]
doc/salome/gui/SMESH/wht_hide.gif [deleted file]
doc/salome/gui/SMESH/wht_idx_h.gif [deleted file]
doc/salome/gui/SMESH/wht_idx_n.gif [deleted file]
doc/salome/gui/SMESH/wht_logo1.gif [deleted file]
doc/salome/gui/SMESH/wht_logo2.gif [deleted file]
doc/salome/gui/SMESH/wht_next.gif [deleted file]
doc/salome/gui/SMESH/wht_next_g.gif [deleted file]
doc/salome/gui/SMESH/wht_prev.gif [deleted file]
doc/salome/gui/SMESH/wht_prev_g.gif [deleted file]
doc/salome/gui/SMESH/wht_spac.gif [deleted file]
doc/salome/gui/SMESH/wht_sync.gif [deleted file]
doc/salome/gui/SMESH/wht_tab0.gif [deleted file]
doc/salome/gui/SMESH/wht_tab1.gif [deleted file]
doc/salome/gui/SMESH/wht_tab2.gif [deleted file]
doc/salome/gui/SMESH/wht_tab3.gif [deleted file]
doc/salome/gui/SMESH/wht_tab4.gif [deleted file]
doc/salome/gui/SMESH/wht_tab5.gif [deleted file]
doc/salome/gui/SMESH/wht_tab6.gif [deleted file]
doc/salome/gui/SMESH/wht_tab7.gif [deleted file]
doc/salome/gui/SMESH/wht_tab8.gif [deleted file]
doc/salome/gui/SMESH/wht_toc1.gif [deleted file]
doc/salome/gui/SMESH/wht_toc2.gif [deleted file]
doc/salome/gui/SMESH/wht_toc3.gif [deleted file]
doc/salome/gui/SMESH/wht_toc4.gif [deleted file]
doc/salome/gui/SMESH/wht_toc_h.gif [deleted file]
doc/salome/gui/SMESH/wht_toc_n.gif [deleted file]
doc/salome/gui/SMESH/wht_ws.gif [deleted file]
doc/salome/gui/SMESH/wht_ws_g.gif [deleted file]
doc/salome/gui/SMESH/whtbar.js [deleted file]
doc/salome/gui/SMESH/whtdhtml.htm
doc/salome/gui/SMESH/whthost.js
doc/salome/gui/SMESH/whtopic.js
doc/salome/gui/SMESH/whutils.js
doc/salome/gui/SMESH/whver.js
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/whgdata0.xml
doc/salome/gui/SMESH/whxdata/whglo.xml
doc/salome/gui/SMESH/whxdata/whidx.xml
doc/salome/gui/SMESH/whxdata/whtdata0.xml
doc/salome/gui/SMESH/whxdata/whtoc.xml
doc/salome/tui/Makefile.in
doc/salome/tui/SMESH/doxyfile [deleted file]
doc/salome/tui/SMESH/doxyfile_py [deleted file]
doc/salome/tui/SMESH/sources/Application-About.png
doc/salome/tui/SMESH/sources/bg_salome.gif
doc/salome/tui/SMESH/sources/myheader.html
doc/salome/tui/SMESH/sources/static/doxygen.css
doc/salome/tui/SMESH/sources/static/tree.js [deleted file]
idl/Makefile.in
idl/SMESH_BasicHypothesis.idl
idl/SMESH_Filter.idl
idl/SMESH_Gen.idl
idl/SMESH_Group.idl
idl/SMESH_Hypothesis.idl
idl/SMESH_Mesh.idl
idl/SMESH_Pattern.idl
resources/SMESHCatalog.xml [deleted file]
resources/StdMeshers.xml
resources/mesh_conv_to_quad.png
resources/mesh_quad_edge.png
resources/mesh_quad_hexahedron.png
resources/mesh_quad_pentahedron.png
resources/mesh_quad_pyramid.png
resources/mesh_quad_quadrangle.png
resources/mesh_quad_tetrahedron.png
resources/mesh_quad_triangle.png
resources/mesh_tree_algo_netgen_2d.png
resources/mesh_tree_algo_netgen_2d3d.png
resources/mesh_tree_hypo_netgen.png
resources/mesh_tree_hypo_netgen_2d.png
src/Controls/Makefile.in
src/Controls/SMESHControls.cxx
src/Controls/SMESH_Controls.cxx
src/Controls/SMESH_Controls.hxx
src/Controls/SMESH_ControlsDef.hxx
src/Driver/Driver_Document.cxx
src/Driver/Driver_Document.h
src/Driver/Driver_Mesh.cxx
src/Driver/Driver_Mesh.h
src/Driver/Driver_SMDS_Mesh.cxx
src/Driver/Driver_SMDS_Mesh.h
src/Driver/Driver_SMESHDS_Mesh.cxx
src/Driver/Driver_SMESHDS_Mesh.h
src/Driver/Makefile.in
src/DriverDAT/DAT_Test.cxx
src/DriverDAT/DriverDAT_R_SMDS_Mesh.cxx
src/DriverDAT/DriverDAT_R_SMDS_Mesh.h
src/DriverDAT/DriverDAT_R_SMESHDS_Document.cxx
src/DriverDAT/DriverDAT_R_SMESHDS_Document.h
src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.cxx
src/DriverDAT/DriverDAT_R_SMESHDS_Mesh.h
src/DriverDAT/DriverDAT_W_SMDS_Mesh.cxx
src/DriverDAT/DriverDAT_W_SMDS_Mesh.h
src/DriverDAT/DriverDAT_W_SMESHDS_Document.cxx
src/DriverDAT/DriverDAT_W_SMESHDS_Document.h
src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.cxx
src/DriverDAT/DriverDAT_W_SMESHDS_Mesh.h
src/DriverDAT/Makefile.in
src/DriverMED/DriverMED_Family.cxx
src/DriverMED/DriverMED_Family.h
src/DriverMED/DriverMED_R_SMDS_Mesh.cxx
src/DriverMED/DriverMED_R_SMDS_Mesh.h
src/DriverMED/DriverMED_R_SMESHDS_Document.cxx
src/DriverMED/DriverMED_R_SMESHDS_Document.h
src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx
src/DriverMED/DriverMED_R_SMESHDS_Mesh.h
src/DriverMED/DriverMED_W_SMDS_Mesh.cxx
src/DriverMED/DriverMED_W_SMDS_Mesh.h
src/DriverMED/DriverMED_W_SMESHDS_Document.cxx
src/DriverMED/DriverMED_W_SMESHDS_Document.h
src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
src/DriverMED/DriverMED_W_SMESHDS_Mesh.h
src/DriverMED/MED_Test.cxx
src/DriverMED/Makefile.in
src/DriverSTL/DriverSTL_R_SMDS_Mesh.cxx
src/DriverSTL/DriverSTL_R_SMDS_Mesh.h
src/DriverSTL/DriverSTL_W_SMDS_Mesh.cxx
src/DriverSTL/DriverSTL_W_SMDS_Mesh.h
src/DriverSTL/Makefile.in
src/DriverSTL/STL_Test.cxx
src/DriverUNV/DriverUNV_R_SMDS_Mesh.cxx
src/DriverUNV/DriverUNV_R_SMDS_Mesh.h
src/DriverUNV/DriverUNV_R_SMESHDS_Document.cxx
src/DriverUNV/DriverUNV_R_SMESHDS_Document.h
src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.cxx
src/DriverUNV/DriverUNV_R_SMESHDS_Mesh.h
src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx
src/DriverUNV/DriverUNV_W_SMDS_Mesh.h
src/DriverUNV/DriverUNV_W_SMESHDS_Document.cxx
src/DriverUNV/DriverUNV_W_SMESHDS_Document.h
src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.cxx
src/DriverUNV/DriverUNV_W_SMESHDS_Mesh.h
src/DriverUNV/Makefile.in
src/DriverUNV/UNV2411_Structure.cxx
src/DriverUNV/UNV2411_Structure.hxx
src/DriverUNV/UNV2412_Structure.cxx
src/DriverUNV/UNV2412_Structure.hxx
src/DriverUNV/UNV_Test.cxx
src/DriverUNV/UNV_Utilities.cxx
src/DriverUNV/UNV_Utilities.hxx
src/MEFISTO2/Makefile.in
src/MEFISTO2/aptrte.cxx
src/Makefile.in
src/NETGEN/Makefile.in
src/NETGENPlugin/Makefile.in
src/NETGENPlugin/NETGENPlugin_NETGEN_3D.cxx
src/NETGENPlugin/NETGENPlugin_NETGEN_3D.hxx
src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.cxx
src/NETGENPlugin/NETGENPlugin_NETGEN_3D_i.hxx
src/NETGENPlugin/NETGENPlugin_i.cxx
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/OBJECT/SMESH_Object.h
src/OBJECT/SMESH_ObjectDef.h
src/SMDS/Makefile.in
src/SMDS/SMDSAbs_ElementType.hxx
src/SMDS/SMDS_EdgePosition.cxx
src/SMDS/SMDS_EdgePosition.hxx
src/SMDS/SMDS_ElemIterator.hxx
src/SMDS/SMDS_FaceOfEdges.cxx
src/SMDS/SMDS_FaceOfEdges.hxx
src/SMDS/SMDS_FaceOfNodes.cxx
src/SMDS/SMDS_FaceOfNodes.hxx
src/SMDS/SMDS_FacePosition.cxx
src/SMDS/SMDS_FacePosition.hxx
src/SMDS/SMDS_Iterator.hxx
src/SMDS/SMDS_IteratorOfElements.cxx
src/SMDS/SMDS_IteratorOfElements.hxx
src/SMDS/SMDS_Mesh.cxx
src/SMDS/SMDS_Mesh.hxx
src/SMDS/SMDS_MeshEdge.cxx
src/SMDS/SMDS_MeshEdge.hxx
src/SMDS/SMDS_MeshElement.cxx
src/SMDS/SMDS_MeshElement.hxx
src/SMDS/SMDS_MeshElementIDFactory.cxx
src/SMDS/SMDS_MeshElementIDFactory.hxx
src/SMDS/SMDS_MeshFace.cxx
src/SMDS/SMDS_MeshFace.hxx
src/SMDS/SMDS_MeshGroup.cxx
src/SMDS/SMDS_MeshGroup.hxx
src/SMDS/SMDS_MeshIDFactory.cxx
src/SMDS/SMDS_MeshIDFactory.hxx
src/SMDS/SMDS_MeshNode.cxx
src/SMDS/SMDS_MeshNode.hxx
src/SMDS/SMDS_MeshObject.cxx
src/SMDS/SMDS_MeshObject.hxx
src/SMDS/SMDS_MeshVolume.cxx
src/SMDS/SMDS_MeshVolume.hxx
src/SMDS/SMDS_PolygonalFaceOfNodes.cxx
src/SMDS/SMDS_PolygonalFaceOfNodes.hxx
src/SMDS/SMDS_PolyhedralVolumeOfNodes.cxx
src/SMDS/SMDS_PolyhedralVolumeOfNodes.hxx
src/SMDS/SMDS_Position.cxx
src/SMDS/SMDS_Position.hxx
src/SMDS/SMDS_QuadraticEdge.hxx
src/SMDS/SMDS_QuadraticFaceOfNodes.hxx
src/SMDS/SMDS_QuadraticVolumeOfNodes.hxx
src/SMDS/SMDS_SpacePosition.cxx
src/SMDS/SMDS_SpacePosition.hxx
src/SMDS/SMDS_TypeOfPosition.hxx
src/SMDS/SMDS_VertexPosition.cxx
src/SMDS/SMDS_VertexPosition.hxx
src/SMDS/SMDS_VolumeOfFaces.cxx
src/SMDS/SMDS_VolumeOfFaces.hxx
src/SMDS/SMDS_VolumeOfNodes.cxx
src/SMDS/SMDS_VolumeOfNodes.hxx
src/SMDS/SMDS_VolumeTool.cxx
src/SMDS/SMDS_VolumeTool.hxx
src/SMESH/Makefile.in
src/SMESH/SMESH_1D_Algo.cxx
src/SMESH/SMESH_1D_Algo.hxx
src/SMESH/SMESH_2D_Algo.cxx
src/SMESH/SMESH_2D_Algo.hxx
src/SMESH/SMESH_3D_Algo.cxx
src/SMESH/SMESH_3D_Algo.hxx
src/SMESH/SMESH_Algo.cxx
src/SMESH/SMESH_Algo.hxx
src/SMESH/SMESH_Block.cxx
src/SMESH/SMESH_Block.hxx
src/SMESH/SMESH_DataMapOfElemPtrSequenceOfElemPtr.hxx
src/SMESH/SMESH_Gen.cxx
src/SMESH/SMESH_Gen.hxx
src/SMESH/SMESH_Group.cxx
src/SMESH/SMESH_Group.hxx
src/SMESH/SMESH_HypoFilter.cxx
src/SMESH/SMESH_HypoFilter.hxx
src/SMESH/SMESH_Hypothesis.cxx
src/SMESH/SMESH_Hypothesis.hxx
src/SMESH/SMESH_IndexedDataMapOfShapeIndexedMapOfShape.hxx
src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx
src/SMESH/SMESH_MeshEditor.cxx
src/SMESH/SMESH_MeshEditor.hxx
src/SMESH/SMESH_MesherHelper.hxx
src/SMESH/SMESH_Pattern.cxx
src/SMESH/SMESH_Pattern.hxx
src/SMESH/SMESH_SequenceOfElemPtr.hxx
src/SMESH/SMESH_SequenceOfNode.hxx
src/SMESH/SMESH_subMesh.cxx
src/SMESH/SMESH_subMesh.hxx
src/SMESHClient/SMESH_Client.cxx
src/SMESHClient/SMESH_Client.hxx
src/SMESHDS/Makefile.in
src/SMESHDS/SMESHDS_Command.cxx
src/SMESHDS/SMESHDS_Command.hxx
src/SMESHDS/SMESHDS_CommandType.hxx
src/SMESHDS/SMESHDS_Document.cxx
src/SMESHDS/SMESHDS_Document.hxx
src/SMESHDS/SMESHDS_Group.cxx
src/SMESHDS/SMESHDS_Group.hxx
src/SMESHDS/SMESHDS_GroupBase.cxx
src/SMESHDS/SMESHDS_GroupBase.hxx
src/SMESHDS/SMESHDS_GroupOnGeom.cxx
src/SMESHDS/SMESHDS_GroupOnGeom.hxx
src/SMESHDS/SMESHDS_Hypothesis.cxx
src/SMESHDS/SMESHDS_Hypothesis.hxx
src/SMESHDS/SMESHDS_Mesh.cxx
src/SMESHDS/SMESHDS_Mesh.hxx
src/SMESHDS/SMESHDS_Script.cxx
src/SMESHDS/SMESHDS_Script.hxx
src/SMESHDS/SMESHDS_SubMesh.cxx
src/SMESHDS/SMESHDS_SubMesh.hxx
src/SMESHFiltersSelection/Handle_SMESH_TypeFilter.hxx
src/SMESHFiltersSelection/Makefile.in
src/SMESHFiltersSelection/SMESH_LogicalFilter.cxx
src/SMESHFiltersSelection/SMESH_LogicalFilter.hxx
src/SMESHFiltersSelection/SMESH_NumberFilter.cxx
src/SMESHFiltersSelection/SMESH_NumberFilter.hxx
src/SMESHFiltersSelection/SMESH_Type.h
src/SMESHFiltersSelection/SMESH_TypeFilter.cxx
src/SMESHFiltersSelection/SMESH_TypeFilter.hxx
src/SMESHFiltersSelection/SMESH_TypeFilter.ixx
src/SMESHFiltersSelection/SMESH_TypeFilter.jxx
src/SMESHGUI/Makefile.in
src/SMESHGUI/SMESHBin.cxx
src/SMESHGUI/SMESHGUI.cxx
src/SMESHGUI/SMESHGUI.h
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.cxx
src/SMESHGUI/SMESHGUI_AddMeshElementDlg.h
src/SMESHGUI/SMESHGUI_ClippingDlg.cxx
src/SMESHGUI/SMESHGUI_ClippingDlg.h
src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx [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.cxx
src/SMESHGUI/SMESHGUI_Dialog.h
src/SMESHGUI/SMESHGUI_Displayer.cxx
src/SMESHGUI/SMESHGUI_Displayer.h
src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx [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_Filter.h
src/SMESHGUI/SMESHGUI_FilterDlg.cxx
src/SMESHGUI/SMESHGUI_FilterDlg.h
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx
src/SMESHGUI/SMESHGUI_FilterLibraryDlg.h
src/SMESHGUI/SMESHGUI_FilterUtils.cxx
src/SMESHGUI/SMESHGUI_FilterUtils.h
src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx
src/SMESHGUI/SMESHGUI_GEOMGenUtils.h
src/SMESHGUI/SMESHGUI_GroupDlg.cxx
src/SMESHGUI/SMESHGUI_GroupDlg.h
src/SMESHGUI/SMESHGUI_GroupOpDlg.cxx
src/SMESHGUI/SMESHGUI_GroupOpDlg.h
src/SMESHGUI/SMESHGUI_GroupUtils.cxx
src/SMESHGUI/SMESHGUI_GroupUtils.h
src/SMESHGUI/SMESHGUI_Hypotheses.cxx
src/SMESHGUI/SMESHGUI_Hypotheses.h
src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
src/SMESHGUI/SMESHGUI_HypothesesUtils.h
src/SMESHGUI/SMESHGUI_IdValidator.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_MeshUtils.cxx
src/SMESHGUI/SMESHGUI_MeshUtils.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_PatternUtils.cxx
src/SMESHGUI/SMESHGUI_PatternUtils.h
src/SMESHGUI/SMESHGUI_PatternWidget.cxx
src/SMESHGUI/SMESHGUI_PatternWidget.h
src/SMESHGUI/SMESHGUI_PrecisionDlg.cxx [deleted file]
src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx
src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.h
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.cxx
src/SMESHGUI/SMESHGUI_Preferences_ScalarBarDlg.h
src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.cxx
src/SMESHGUI/SMESHGUI_Preferences_SelectionDlg.h
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_SMESHGenUtils.cxx
src/SMESHGUI/SMESHGUI_SMESHGenUtils.h
src/SMESHGUI/SMESHGUI_Selection.cxx
src/SMESHGUI/SMESHGUI_Selection.h
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_SpinBox.cxx
src/SMESHGUI/SMESHGUI_SpinBox.h
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.cxx
src/SMESHGUI/SMESHGUI_StandardMeshInfosDlg.h
src/SMESHGUI/SMESHGUI_Swig.cxx
src/SMESHGUI/SMESHGUI_Swig.hxx
src/SMESHGUI/SMESHGUI_Swig.i
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_Utils.cxx
src/SMESHGUI/SMESHGUI_Utils.h
src/SMESHGUI/SMESHGUI_VTKUtils.cxx
src/SMESHGUI/SMESHGUI_VTKUtils.h
src/SMESHGUI/SMESHGUI_XmlHandler.cxx
src/SMESHGUI/SMESHGUI_XmlHandler.h
src/SMESHGUI/SMESHGUI_aParameter.h
src/SMESHGUI/SMESH_icons.po
src/SMESHGUI/SMESH_images.po
src/SMESHGUI/SMESH_msg_en.po
src/SMESH_I/Makefile.in
src/SMESH_I/SMESH.hxx
src/SMESH_I/SMESHEngine.cxx
src/SMESH_I/SMESH_1D_Algo_i.cxx
src/SMESH_I/SMESH_1D_Algo_i.hxx
src/SMESH_I/SMESH_2D_Algo_i.cxx
src/SMESH_I/SMESH_2D_Algo_i.hxx
src/SMESH_I/SMESH_2smeshpy.cxx
src/SMESH_I/SMESH_2smeshpy.hxx
src/SMESH_I/SMESH_3D_Algo_i.cxx
src/SMESH_I/SMESH_3D_Algo_i.hxx
src/SMESH_I/SMESH_Algo_i.cxx
src/SMESH_I/SMESH_Algo_i.hxx
src/SMESH_I/SMESH_DumpPython.cxx
src/SMESH_I/SMESH_Filter_i.cxx
src/SMESH_I/SMESH_Filter_i.hxx
src/SMESH_I/SMESH_Gen_i.cxx
src/SMESH_I/SMESH_Gen_i.hxx
src/SMESH_I/SMESH_Gen_i_1.cxx
src/SMESH_I/SMESH_Group_i.cxx
src/SMESH_I/SMESH_Group_i.hxx
src/SMESH_I/SMESH_Hypothesis_i.cxx
src/SMESH_I/SMESH_Hypothesis_i.hxx
src/SMESH_I/SMESH_MEDFamily_i.cxx
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_MEDSupport_i.cxx
src/SMESH_I/SMESH_MEDSupport_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_Pattern_i.hxx
src/SMESH_I/SMESH_PythonDump.hxx
src/SMESH_I/SMESH_subMesh_i.cxx
src/SMESH_I/SMESH_subMesh_i.hxx
src/SMESH_I/smeshpy.py
src/SMESH_SWIG/Makefile.in
src/SMESH_SWIG/PAL_MESH_041_mesh.py
src/SMESH_SWIG/PAL_MESH_043_2D.py
src/SMESH_SWIG/PAL_MESH_043_3D.py
src/SMESH_SWIG/SMESH_BelongToGeom.py
src/SMESH_SWIG/SMESH_GroupFromGeom.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_Sphere.py
src/SMESH_SWIG/SMESH_blocks.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_controls.py
src/SMESH_SWIG/SMESH_demo_hexa2_upd.py
src/SMESH_SWIG/SMESH_fixation.py
src/SMESH_SWIG/SMESH_fixation_hexa.py
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.py
src/SMESH_SWIG/SMESH_mechanic_editor.py
src/SMESH_SWIG/SMESH_mechanic_tetra.py
src/SMESH_SWIG/SMESH_reg.py
src/SMESH_SWIG/SMESH_shared_modules.py
src/SMESH_SWIG/SMESH_test.py
src/SMESH_SWIG/SMESH_test0.py
src/SMESH_SWIG/SMESH_test1.py
src/SMESH_SWIG/SMESH_test2.py
src/SMESH_SWIG/SMESH_test3.py
src/SMESH_SWIG/SMESH_test4.py
src/SMESH_SWIG/SMESH_test5.py
src/SMESH_SWIG/batchmode_mefisto.py
src/SMESH_SWIG/batchmode_smesh.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/libSMESH_Swig.i
src/SMESH_SWIG/smesh.py
src/StdMeshers/Makefile.in
src/StdMeshers/StdMeshers_Arithmetic1D.cxx
src/StdMeshers/StdMeshers_Arithmetic1D.hxx
src/StdMeshers/StdMeshers_AutomaticLength.cxx
src/StdMeshers/StdMeshers_AutomaticLength.hxx
src/StdMeshers/StdMeshers_Deflection1D.cxx
src/StdMeshers/StdMeshers_Deflection1D.hxx
src/StdMeshers/StdMeshers_Distribution.cxx
src/StdMeshers/StdMeshers_Distribution.hxx
src/StdMeshers/StdMeshers_Hexa_3D.cxx
src/StdMeshers/StdMeshers_Hexa_3D.hxx
src/StdMeshers/StdMeshers_LengthFromEdges.cxx
src/StdMeshers/StdMeshers_LengthFromEdges.hxx
src/StdMeshers/StdMeshers_LocalLength.cxx
src/StdMeshers/StdMeshers_LocalLength.hxx
src/StdMeshers/StdMeshers_MEFISTO_2D.cxx
src/StdMeshers/StdMeshers_MEFISTO_2D.hxx
src/StdMeshers/StdMeshers_MaxElementArea.cxx
src/StdMeshers/StdMeshers_MaxElementArea.hxx
src/StdMeshers/StdMeshers_MaxElementVolume.cxx
src/StdMeshers/StdMeshers_MaxElementVolume.hxx
src/StdMeshers/StdMeshers_NotConformAllowed.cxx
src/StdMeshers/StdMeshers_NotConformAllowed.hxx
src/StdMeshers/StdMeshers_NumberOfSegments.cxx
src/StdMeshers/StdMeshers_NumberOfSegments.hxx
src/StdMeshers/StdMeshers_Penta_3D.cxx
src/StdMeshers/StdMeshers_Penta_3D.hxx
src/StdMeshers/StdMeshers_Propagation.cxx
src/StdMeshers/StdMeshers_Propagation.hxx
src/StdMeshers/StdMeshers_QuadranglePreference.cxx
src/StdMeshers/StdMeshers_QuadranglePreference.hxx
src/StdMeshers/StdMeshers_Quadrangle_2D.cxx
src/StdMeshers/StdMeshers_Quadrangle_2D.hxx
src/StdMeshers/StdMeshers_QuadraticMesh.hxx
src/StdMeshers/StdMeshers_Regular_1D.cxx
src/StdMeshers/StdMeshers_Regular_1D.hxx
src/StdMeshers/StdMeshers_StartEndLength.cxx
src/StdMeshers/StdMeshers_StartEndLength.hxx
src/StdMeshersGUI/Makefile.in
src/StdMeshersGUI/StdMeshersGUI.cxx
src/StdMeshersGUI/StdMeshersGUI_DistrPreview.cxx
src/StdMeshersGUI/StdMeshersGUI_DistrPreview.h
src/StdMeshersGUI/StdMeshersGUI_DistrTable.cxx
src/StdMeshersGUI/StdMeshersGUI_DistrTable.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/Makefile.in
src/StdMeshers_I/StdMeshers_Arithmetic1D_i.cxx
src/StdMeshers_I/StdMeshers_Arithmetic1D_i.hxx
src/StdMeshers_I/StdMeshers_AutomaticLength_i.cxx
src/StdMeshers_I/StdMeshers_AutomaticLength_i.hxx
src/StdMeshers_I/StdMeshers_Deflection1D_i.cxx
src/StdMeshers_I/StdMeshers_Deflection1D_i.hxx
src/StdMeshers_I/StdMeshers_Hexa_3D_i.cxx
src/StdMeshers_I/StdMeshers_Hexa_3D_i.hxx
src/StdMeshers_I/StdMeshers_LengthFromEdges_i.cxx
src/StdMeshers_I/StdMeshers_LengthFromEdges_i.hxx
src/StdMeshers_I/StdMeshers_LocalLength_i.cxx
src/StdMeshers_I/StdMeshers_LocalLength_i.hxx
src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.cxx
src/StdMeshers_I/StdMeshers_MEFISTO_2D_i.hxx
src/StdMeshers_I/StdMeshers_MaxElementArea_i.cxx
src/StdMeshers_I/StdMeshers_MaxElementArea_i.hxx
src/StdMeshers_I/StdMeshers_MaxElementVolume_i.cxx
src/StdMeshers_I/StdMeshers_MaxElementVolume_i.hxx
src/StdMeshers_I/StdMeshers_NotConformAllowed_i.cxx
src/StdMeshers_I/StdMeshers_NotConformAllowed_i.hxx
src/StdMeshers_I/StdMeshers_NumberOfSegments_i.cxx
src/StdMeshers_I/StdMeshers_NumberOfSegments_i.hxx
src/StdMeshers_I/StdMeshers_Propagation_i.cxx
src/StdMeshers_I/StdMeshers_Propagation_i.hxx
src/StdMeshers_I/StdMeshers_QuadranglePreference_i.cxx
src/StdMeshers_I/StdMeshers_QuadranglePreference_i.hxx
src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.cxx
src/StdMeshers_I/StdMeshers_Quadrangle_2D_i.hxx
src/StdMeshers_I/StdMeshers_QuadraticMesh_i.hxx
src/StdMeshers_I/StdMeshers_Regular_1D_i.cxx
src/StdMeshers_I/StdMeshers_Regular_1D_i.hxx
src/StdMeshers_I/StdMeshers_StartEndLength_i.cxx
src/StdMeshers_I/StdMeshers_StartEndLength_i.hxx
src/StdMeshers_I/StdMeshers_i.cxx

diff --git a/INSTALL b/INSTALL
index e07cc99769d9a9416c3e86a73abdd88e300f5025..0ea0b81cba55a0a70280629d10bbcae883e6c3ce 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1 @@
-This is the version 3.2.0a1 of SMESH
-Compatible with :
-        - KERNEL 3.2.0a1
-       - SALOMEGUI 3.2.0a1
-       - GEOM 3.2.0a1
-       - MED 3.2.0a1
+SALOME2 : SMESH module
index f3a90dfb5a1b2f1b15f94676590ef6ca0a4db6f9..5c579e676b51720f6d19cc279ddd5d421377206d 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/ or email : webmaster.salome@opencascade.com
+#
 # -* Makefile *- 
 #
 # Author : Patrick GOLDBRONN (CEA)
 top_srcdir=@top_srcdir@
 top_builddir=.
 srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/bin:@top_srcdir@/resources:./bin:@top_srcdir@/idl
+VPATH=.:@srcdir@:@top_srcdir@/bin:./bin/salome:./resources:@top_srcdir@/resources:./bin:@top_srcdir@/idl
 
 
 @COMMENCE@
 
-SUBDIRS = idl src doc
+SUBDIRS = idl src doc adm_local
 
 RESOURCES_FILES = \
 delete.png  \
@@ -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,24 +150,41 @@ SMESH_en.xml \
 SMESH.config \
 StdMeshers.xml \
 SMESHCatalog.xml \
+SalomeApp.xml \
 mesh_pattern.png \
 pattern_sample_2d.png \
 pattern_sample_3D.png \
 mesh_add.png \
-mesh_remove.png
+mesh_remove.png \
+mesh_quad_edge.png \
+mesh_quad_triangle.png \
+mesh_quad_quadrangle.png \
+mesh_quad_tetrahedron.png \
+mesh_quad_pyramid.png \
+mesh_quad_pentahedron.png \
+mesh_quad_hexahedron.png \
+mesh_conv_to_quad.png
 
 BIN_SCRIPT= \
 VERSION
 
 # copy header files in common directory
-ifeq ($(HAVE_SSTREAM),yes)
-  include_list=include/salome/SALOMEconfig.h
-else
-  include_list=include/salome/SALOMEconfig.h include/salome/sstream
+
+include_list = include/salome/SALOMEconfig.h \
+               include/salome/SMESH_version.h
+
+ifneq ($(HAVE_SSTREAM),yes)
+       include_list += include/salome/sstream
 endif
 
 inc: idl $(include_list)
 
+bin: bin/salome/VERSION
+
+bin/salome/VERSION : bin/VERSION
+       -$(RM) $@
+       $(LN_S) ../../$< $@
+
 include/salome/SALOMEconfig.h: salome_adm/unix/SALOMEconfig.ref
        -$(RM) $@
        $(LN_S) ../../$< $@
@@ -162,6 +202,10 @@ include/salome/sstream: salome_adm/unix/sstream
        -$(RM) $@
        $(LN_S) ../../$< $@
 
+include/salome/SMESH_version.h: SMESH_version.h
+       -$(RM) $@
+       $(LN_S) ../../$< $@
+
 depend: depend_idl
 
 depend_idl:
diff --git a/adm_local/unix/config_files/check_Geom.m4 b/adm_local/unix/config_files/check_Geom.m4
deleted file mode 100644 (file)
index 13f3be4..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Check availability of Geom binary distribution
-#
-# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
-#
-
-AC_DEFUN([CHECK_GEOM],[
-
-AC_CHECKING(for Geom)
-
-Geom_ok=no
-
-AC_ARG_WITH(geom,
-           [  --with-geom=DIR root directory path of GEOM installation ],
-           GEOM_DIR="$withval",GEOM_DIR="")
-
-if test "x$GEOM_DIR" == "x" ; then
-
-# no --with-geom-dir option used
-
-   if test "x$GEOM_ROOT_DIR" != "x" ; then
-
-    # GEOM_ROOT_DIR environment variable defined
-      GEOM_DIR=$GEOM_ROOT_DIR
-
-   fi
-# 
-fi
-
-if test -f ${GEOM_DIR}/lib/salome/libGEOMClient.so ; then
-   Geom_ok=yes
-   AC_MSG_RESULT(Using Geom module distribution in ${GEOM_DIR})
-
-   if test "x$GEOM_ROOT_DIR" == "x" ; then
-      GEOM_ROOT_DIR=${GEOM_DIR}
-   fi
-   AC_SUBST(GEOM_ROOT_DIR)
-
-else
-   AC_MSG_WARN("Cannot find compiled Geom module distribution")
-fi
-
-AC_MSG_RESULT(for Geom: $Geom_ok)
-])dnl
diff --git a/adm_local/unix/config_files/check_Med.m4 b/adm_local/unix/config_files/check_Med.m4
deleted file mode 100644 (file)
index 727bf43..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Check availability of Med binary distribution
-#
-# Author : Nicolas REJNERI (OPEN CASCADE, 2003)
-#
-
-AC_DEFUN([CHECK_MED],[
-
-AC_CHECKING(for Med)
-
-Med_ok=no
-
-AC_ARG_WITH(med,
-           [  --with-med=DIR root directory path of MED installation ],
-           MED_DIR="$withval",MED_DIR="")
-
-if test "x$MED_DIR" == "x" ; then
-
-# no --with-med-dir option used
-
-   if test "x$MED_ROOT_DIR" != "x" ; then
-
-    # MED_ROOT_DIR environment variable defined
-      MED_DIR=$MED_ROOT_DIR
-
-   fi
-# 
-fi
-
-if test -f ${MED_DIR}/idl/salome/MED.idl ; then
-   Med_ok=yes
-   AC_MSG_RESULT(Using Med module distribution in ${MED_DIR})
-
-   if test "x$MED_ROOT_DIR" == "x" ; then
-      MED_ROOT_DIR=${MED_DIR}
-   fi
-   AC_SUBST(MED_ROOT_DIR)
-
-else
-   AC_MSG_WARN("Cannot find Med module sources")
-fi
-  
-AC_MSG_RESULT(for Med: $Med_ok)
-])dnl
index 5e556548ee82b6c7d7c3ddb94a5b34e12c35bc8e..71df450535eca5a9cea89302ac0b005bf8e9f910 100644 (file)
@@ -11,8 +11,8 @@ HAVE_SSTREAM=@HAVE_SSTREAM@
 
 LIBS=@LIBS@ 
 LIBSFORBIN=@LIBS@
-LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib/salome
-LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib/salome -Xlinker -rpath-link -Xlinker $(top_builddir)/lib/salome
+LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -Xlinker -rpath-link -Xlinker
+LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -Xlinker -rpath-link -Xlinker
 # add libstdc++ to link c++ library with libtool !
 LDFLAGS+= -lstdc++
 LDFLAGSFORBIN+= -lstdc++
@@ -54,8 +54,8 @@ PYTHONHOME = @PYTHONHOME@
 PYTHON_INCLUDES = @PYTHON_INCLUDES@
 PYTHON_LIBS = @PYTHON_LIBS@
 PYTHON_VERSION = @PYTHON_VERSION@
-PYTHON_SITE = @PYTHON_SITE@
-PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@
+PYTHON_SITE = $(prefix)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages
+PYTHON_SITE_INSTALL = $(prefix)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome
 
 # QT
 
@@ -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@
@@ -188,16 +192,33 @@ INSTALL_DATA=@INSTALL_DATA@
 # create a symbolic link (or a copie ?)
 LN_S=@LN_S@
 
+KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@
+KERNEL_SITE_DIR=@KERNEL_SITE_DIR@
+KERNEL_LDFLAGS=@KERNEL_LDFLAGS@
+KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@
+
+GUI_ROOT_DIR=@GUI_ROOT_DIR@
+GUI_LDFLAGS=@GUI_LDFLAGS@
+GUI_CXXFLAGS=@GUI_CXXFLAGS@
+
+MED_ROOT_DIR=@MED_ROOT_DIR@
+MED_LDFLAGS=@MED_LDFLAGS@
+MED_CXXFLAGS=@MED_CXXFLAGS@
+
+GEOM_ROOT_DIR=@GEOM_ROOT_DIR@
+GEOM_LDFLAGS=@GEOM_LDFLAGS@
+GEOM_CXXFLAGS=@GEOM_CXXFLAGS@
+
 ## Installation points
 prefix=@prefix@
 exec_prefix=@exec_prefix@
-bindir=@bindir@/salome
-libdir=@libdir@/salome
+bindir=@exec_prefix@/bin/salome
+libdir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/salome
 # warning : if user give this path in configure we could have salome/salome :-(
 includedir=@includedir@/salome
 datadir=@datadir@/salome
 idldir=$(prefix)/idl/salome
-sharedpydir=@libdir@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
+sharedpydir=@exec_prefix@/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
 
 docdir=${prefix}/doc/salome
 
@@ -224,7 +245,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,15 +266,42 @@ $(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base
        cd $(top_srcdir) && ./build_configure
 
 
-ACLOCAL_SRC = \
-ac_cxx_bool.m4                    check_corba.m4     check_vtk.m4      \
-ac_cxx_depend_flag.m4             check_hdf5.m4      enable_pthreads.m4        \
-ac_cxx_mutable.m4                 check_mico.m4      libtool.m4                \
-ac_cxx_namespaces.m4              check_omniorb.m4   pyembed.m4                \
-ac_cxx_partial_specialization.m4  check_opengl.m4    python.m4         \
-ac_cxx_typename.m4                check_pthreads.m4  check_cas.m4      \
-ac_cc_warnings.m4                 check_qt.m4        check_boost.m4     \
-check_swig.m4                      
-
-$(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%)
-       cd $(top_srcdir) ; aclocal --acdir=adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files
+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 \
+    ac_cxx_namespaces.m4 \
+    check_omniorb.m4 \
+    pyembed.m4 \
+    ac_cxx_partial_specialization.m4 \
+    python.m4 \
+    ac_cxx_typename.m4 \
+    check_pthreads.m4 \
+    check_cas.m4 \
+    ac_cc_warnings.m4 \
+    check_boost.m4 \
+    check_swig.m4                      
+
+ACLOCAL_GUI = \
+    check_vtk.m4 \
+    check_opengl.m4 \
+    check_qt.m4 \
+    check_GUI.m4 \
+    check_corba_in_GUI.m4  
+
+ACLOCAL_MED =                 check_Med.m4
+ACLOCAL_GEOM =                check_GEOM.m4                      
+
+$(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 -I adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
+                                                                      -I @GUI_ROOT_DIR@/adm_local/unix/config_files \
+                                                                      -I @MED_ROOT_DIR@/adm_local/unix/config_files \
+                                                                      -I @GEOM_ROOT_DIR@/adm_local/unix/config_files
+       
index f4827fd31992c2fbd3f07a95da943ba0ad3c2f66..37c65077f50d3343f86ce031312d98616ac43172 100644 (file)
@@ -35,9 +35,9 @@ LIB_OBJ_F    = $(patsubst %.f,   %.lo, $(filter %.f, $(LIB_SRC)))
 # all libtool obj file in library
 LIB_OBJ = $(LIB_OBJ_CXX) $(LIB_OBJ_CC) $(LIB_OBJ_C) $(LIB_CLIENT_OBJ:%.o=%.lo) $(LIB_SERVER_OBJ:%.o=%.lo) $(LIB_SWIG_OBJ) $(LIB_OBJ_F)
 
-# LIB_BUILD = $(LIB:%.la=$(top_builddir)/lib/salome/%.la)
-LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib/salome/%.la, $(filter %.la, $(LIB)))
-LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib/salome/%.a, $(filter %.a, $(LIB)))
+# LIB_BUILD = $(LIB:%.la=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la)
+LIB_BUILD = $(patsubst %.la, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la, $(filter %.la, $(LIB)))
+LIB_BUILD_A = $(patsubst %.a, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.a, $(filter %.a, $(LIB)))
 
 ifneq ($(findstring cmodule.la,$(filter %.la, $(LIB))),)
 LIB_SWIG = $(patsubst %cmodule.la,%.so, $(filter %.la, $(LIB)))
@@ -48,7 +48,7 @@ endif
 lib: $(LIB_BUILD) $(LIB_CLIENT_PY)
 # we don't build static library !
 
-$(LIB_BUILD): $(top_builddir)/lib/salome/%.la: %.la
+$(LIB_BUILD): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.la: %.la
        -$(RM) $@
        -$(RM) $(patsubst %.la, %.so, $@)
        -$(RM) $(patsubst %.la, %.a, $@)
@@ -59,10 +59,10 @@ $(LIB_BUILD): $(top_builddir)/lib/salome/%.la: %.la
              $(patsubst %.la, %.so, $@).0 || true
 
        if ! test -z $(LIB_SWIG) ; then \
-          ln -sf $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib/salome/_$(LIB_SWIG) || true;\
+          ln -sf $(patsubst %.la,%.so, $(CURDIR)/.libs/$<) $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/_$(LIB_SWIG) || true;\
        fi;
 
-$(LIB_BUILD_A): $(top_builddir)/lib/salome/%.a: %.a
+$(LIB_BUILD_A): $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/%.a: %.a
        -$(RM) $@
        ln -sf $(CURDIR)/$< $@ || true
 
@@ -106,7 +106,7 @@ $(DEST_PYSCRIPTS): $(top_builddir)/bin/salome/%: %
 
 # copy pyqt files in $(PYTHON_SHARED_SITE)
 #
-PYTHON_SHARED_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
+PYTHON_SHARED_SITE=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/salome/shared_modules
 
 $(PYTHON_SHARED_SITE):
        $(INSTALL) -d  $@
@@ -260,10 +260,10 @@ clean: mostlyclean
        -$(RM) $(LIB) $(TEST_PROGS) $(BIN) $(CLEAN)
        -$(RM) TAGS *~ *# core *.core 
        -$(RM) -r .libs
-       -$(RM) $(top_builddir)/lib/salome/$(LIB)
+       -$(RM) $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB)
        -$(RM) $(patsubst %,$(top_builddir)/bin/salome/%, $(BIN))
-       -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib/salome/$(LIB))
-       -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib/salome/$(LIB))
+       -$(RM) $(patsubst %.la, %.so, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB))
+       -$(RM) $(patsubst %.la, %.a, $(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome/$(LIB))
 # remove idl generated files (sources)
        -$(RM) $(LIB_CLIENT_SRC) $(LIB_SERVER_SRC) $(BIN_CLIENT_SRC) $(BIN_SERVER_SRC)
 # remove idl generated files (headers)
diff --git a/bin/VERSION b/bin/VERSION
deleted file mode 100755 (executable)
index 2479b4f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-THIS IS SALOME - SMESH VERSION: 3.2.0a1
index b884b17573c5c091aecfa41db38e610a7ee25b16..121fb5d2a116f22d486963009dfb19b10331853a 100755 (executable)
@@ -26,6 +26,31 @@ fi
 #    echo "failed : KERNEL_SRC variable is not correct !"
 #    exit
 #fi
+
+########################################################################
+# Test if the GUI_ROOT_DIR is set correctly
+
+if test ! -d "${GUI_ROOT_DIR}"; then
+    echo "failed : GUI_ROOT_DIR variable is not correct !"
+    exit
+fi
+
+########################################################################
+# Test if the MED_ROOT_DIR is set correctly
+
+if test ! -d "${MED_ROOT_DIR}"; then
+    echo "failed : MED_ROOT_DIR variable is not correct !"
+    exit
+fi
+
+########################################################################
+# Test if the GEOM_ROOT_DIR is set correctly
+
+if test ! -d "${GEOM_ROOT_DIR}"; then
+    echo "failed : GEOM_ROOT_DIR variable is not correct !"
+    exit
+fi
+
 ########################################################################
 # find_in - utility function
 #
@@ -125,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
@@ -203,7 +228,10 @@ else
        echo -n "Creating 'configure' script ...  "
 fi
 
-aclocal --acdir=adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files
+aclocal -I adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+                                       -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \
+                                       -I ${MED_ROOT_DIR}/adm_local/unix/config_files \
+                                       -I ${GEOM_ROOT_DIR}/adm_local/unix/config_files
 if autoconf
 then
        echo "done"
index d81e4977146d398af8715499cbdf160ef0e122a9..cc915a12021b74f44c979944be2710ccc8f9baf4 100644 (file)
@@ -22,8 +22,10 @@ AC_CANONICAL_HOST
 PACKAGE=salome
 AC_SUBST(PACKAGE)
 
-VERSION=0.0.1
+VERSION=3.2.0
+XVERSION=0x030200
 AC_SUBST(VERSION)
+AC_SUBST(XVERSION)
 
 dnl
 dnl Initialize source and build root directories
@@ -113,13 +115,7 @@ dnl
 
 AC_CXX_HAVE_SSTREAM
 
-echo
-echo ---------------------------------------------
-echo BOOST Library
-echo ---------------------------------------------
-echo
 
-CHECK_BOOST
 
 dnl
 dnl ---------------------------------------------
@@ -249,6 +245,14 @@ echo
 
 CHECK_HDF5
 
+echo
+echo ---------------------------------------------
+echo BOOST Library
+echo ---------------------------------------------
+echo
+
+CHECK_BOOST
+
 echo
 echo ---------------------------------------------
 echo Testing OpenCascade
@@ -265,6 +269,26 @@ echo
 
 CHECK_HTML_GENERATORS
 
+echo
+echo ---------------------------------------------
+echo Testing GUI
+echo ---------------------------------------------
+echo
+
+CHECK_SALOME_GUI
+
+echo
+echo ---------------------------------------------
+echo Testing full GUI
+echo ---------------------------------------------
+echo
+
+CHECK_CORBA_IN_GUI
+if test "x${CORBA_IN_GUI}" != "xyes"; then
+  echo "failed : For configure SMESH module necessary full GUI !"
+  exit
+fi
+
 echo
 echo ---------------------------------------------
 echo Testing Kernel
@@ -326,7 +350,7 @@ else
 fi
 
 # make other build directories
-for rep in salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources idl
+for rep in salome_adm adm_local doc bin/salome include/salome lib${LIB_LOCATION_SUFFIX}/salome share/salome/resources idl
 do
 #   if test ! -d $rep ; then
 #      eval mkdir $rep
index 7295ede75128e9e51b474f63ed9f8d7a128bb3df..af9e2aae518afd3ed7391580048395e10b9d01a8 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/ or email : webmaster.salome@opencascade.com
+#
 
 # -* Makefile *- 
 #
@@ -19,6 +38,17 @@ docs:
        @@SETX@; for d in $(SUBDIRS); do        \
           (cd $$d && $(MAKE) $@) || exit 1;    \
        done
+
+usr_docs:
+       @@SETX@; for d in $(SUBDIRS); do        \
+          (cd $$d && $(MAKE) $@) || exit 1;    \
+       done
+
+dev_docs:
+       @@SETX@; for d in $(SUBDIRS); do        \
+          (cd $$d && $(MAKE) $@) || exit 1;    \
+       done
+
 clean:
        @@SETX@; for d in $(SUBDIRS); do        \
           (cd $$d && $(MAKE) $@) || exit 1;    \
index 34fd25204d7f2506a236b2629cfd6157ad7c1936..d736a6ded9ab54cd3b0cccc654a7869ab7d8ece4 100644 (file)
Binary files a/doc/salome/AddNetgenInSalome2.pdf and b/doc/salome/AddNetgenInSalome2.pdf differ
index bd9a4eab57c132e129309fc3cd0304a6583186c8..4106d1ad3e2df03bc2c546bb1e82df335c65cb04 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/ or email : webmaster.salome@opencascade.com
+#
 
 # -* Makefile *- 
 #
@@ -12,33 +31,48 @@ srcdir=@srcdir@
 VPATH=.:@srcdir@
 
 SUBDIRS= tui gui
+SUBDIRSTUI= tui
+SUBDIRSGUI= gui
 
 @COMMENCE@
 
-docs:
-       @@SETX@; for d in $(SUBDIRS); do        \
+usr_docs:
+       @@SETX@; for d in $(SUBDIRSGUI); do     \
+          (cd $$d && $(MAKE) $@) || exit 1;    \
+       done; \
+
+docs: usr_docs
+
+dev_docs:
+       @@SETX@; for d in $(SUBDIRSTUI); do     \
           (cd $$d && $(MAKE) $@) || exit 1;    \
        done; \
-       cp -f $(srcdir)/SMESH_index_v3.1.0.html SMESH_index_v3.1.0.html
 
 clean:
        @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
+          if test -d $$d/SMESH; then           \
+             (cd $$d && $(MAKE) $@) || exit 1; \
+          fi;                                  \
        done
 
 distclean: clean
        @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
+          if test -d $$d/SMESH; then           \
+             (cd $$d && $(MAKE) $@) || exit 1; \
+          fi;                                  \
        done
 
 install:
        $(MAKE) docs
-       (cd tui && $(MAKE) install);
-       (cd gui && $(MAKE) install);
-       cp -f SMESH_index_v3.1.0.html $(docdir)
+       @@SETX@; for d in $(SUBDIRS); do        \
+          if test -d $$d/SMESH; then           \
+             (cd $$d && $(MAKE) $@);           \
+          fi;                                  \
+       done
 
 uninstall:
        @@SETX@; for d in $(SUBDIRS); do        \
-          (cd $$d && $(MAKE) $@) || exit 1;    \
+          if test -d $$d/SMESH; then           \
+             (cd $$d && $(MAKE) $@) || exit 1; \
+          fi;                                  \
        done; \
-       rm -fr $(docdir)/SMESH_index_v3.1.0.html
diff --git a/doc/salome/SMESH_index_v3.1.0.html b/doc/salome/SMESH_index_v3.1.0.html
deleted file mode 100644 (file)
index 8d4ef12..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-                                            
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-                                            
-  <meta name="GENERATOR"
- content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
-  <title>Mesh Module Documentation</title>
-</head>
-  <body bgcolor="#cccccc" text="#000000" link="#0000ee" alink="#0000ee"
- vlink="#551a8b">
-       
-<div align="center">    &nbsp;           
-<center>          
-<center>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
- &nbsp;&nbsp;</center>
-       
-<table width="96%" align="center">
-           <tbody>
-              <tr>
-           <td><a href="http://www.opencascade.com"><img
- src="tui/SMESH/sources/logocorp.gif" border="0" height="46" width="122">
-                </a></td>
-             <td>                                                       
-               
-      <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="tui/SMESH/sources/application.gif" border="0" height="46" width="108">
-                </a></div>
-           </td>
-           </tr>
-                                                      
-  </tbody>    
-</table>
-       
-<div align="center">    
-<center>    
-<hr width="100%" size="2">   
-<h1>Mesh MODULE Documentation</h1>
-                                     </center>
-    </div>
-       
-<table width="96%">
-      <tbody>
-               
-  </tbody>    
-</table>
-    </center>
-       
-<div align="center">       
-<p> <img src="tui/SMESH/sources/Application-About.png"
- alt="Application-About.png" width="30%" height="20%">
-    &nbsp; &nbsp;&nbsp;          </p>
-             </div>
-       
-<center>    
-<table width="96%">
-      <tbody>
-                 
-  </tbody>    
-</table>
-   <br>
-   <br>
-   <br>
-   </center>
-     
-<address> </address>
-   
-<center><big><a href="gui/SMESH/smesh.htm">GUI Documentation</a></big></center>
-      
-<address> </address>
-   
-<center></center>
-      
-<center><br>
-   </center>
-     
-<address> </address>
-   
-<center><big><a href="tui/SMESH/index.html">TUI Documentation</a></big></center>
-      
-<address> </address>
-   
-<center></center>
-      
-<center><br>
-   <br>
-    </center>
-    </div>
-     <br>
-  <br>
- <br>
-</body>
-</html>
index 883a053daa27e2b9eee958d928c7bb9925f125b7..c08ee2735815b88f393ceb3d5d0ebca65fd03bec 100644 (file)
@@ -1,6 +1,21 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
 #
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #  File   : Makefile.in
 #  Author : Vasily Rusyaev (Open Cascade NN)
@@ -14,9 +29,11 @@ VPATH=.:@srcdir@
 
 @COMMENCE@
 
-docs:
+usr_docs:
        cp -fr $(srcdir)/SMESH ./
-       -find $(PWD) -name CVS -exec rm -rf {} \;
+       -find $(PWD) -name CVS -prune -exec rm -rf {} \;
+
+docs: usr_docs
 
 clean:
        rm -fr `ls | grep -v "Makefile"`
@@ -27,7 +44,7 @@ distclean: clean
 install:
        mkdir -p $(docdir)/gui
        cp -rf SMESH $(docdir)/gui
-       -find $(PWD) -name CVS -exec rm -rf {} \;
+       -find $(PWD) -name CVS -prune -exec rm -rf {} \;
 
 uninstall:
        rm -rf $(docdir)/gui/SMESH
index 77ef549554d5c1e53ba0b61904921ef576c3e971..d47aa94f8f3ae5904ad730af8d9139877d94a84e 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>About viewing meshes</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { font-weight:bold; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:327px; height:402px; 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.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
-<!--\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\nAbout viewing meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               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
-\r
-<p class="whs2"><img src="image19.jpg" width="327px" height="402px" border="0" class="img_whs3"></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
-\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
-\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
-\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
-\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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>About viewing meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:25px; height:24px; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:404px; height:413px; border-style:none; }
+ul.whs4 { list-style:disc; }
+p.whs5 { font-weight:bold; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nViewing meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Viewing meshes</h1>
+
+<p>After definition of algorithms and hypotheses a new mesh is listed in 
+ the Object Browser. Right-click on it and select <img src="image28.gif" width="25px" height="24px" border="0" class="img_whs1"> <span 
+ style="font-weight: bold;"><B>Compute</B></span> - the mesh will be automatically 
+ displayed in the <span style="font-weight: bold;"><B><a href="files/vtk_3d_viewer.htm">VTK 
+ 3D Viewer</a>.</B></span> Alternatively click<span style="font-weight: bold;"><B> 
+ Display only</B></span> to hide all other objects at the same time. </p>
+
+<p>&nbsp;</p>
+
+<p>After the mesh has appeared in the Viewer, you can select it with left 
+ mouse click and &nbsp;get 
+ information about it, change its presentation parameters and access to 
+ other useful options by right-clicking on the selected mesh<span style="font-weight: bold;"><B>.</B></span></p>
+
+<p>&nbsp;&nbsp;</p>
+
+<p class="whs2"><img src="image15.jpg" width="404px" height="413px" border="0" class="img_whs3"></p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase all</B></span> 
+ &nbsp;- allows 
+ to hide all objects in the viewer</p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Update</B></span> 
+ - refreshes the presentation of your mesh in the Object Browser, applying 
+ all recent changes.</p></li>
+       
+       <li class=kadov-p><p><a href="files/viewing_mesh_info.htm#advanced infos" style="font-weight: bold;">Advanced Mesh Infos</a> 
+ - &nbsp;provides 
+ more detailed information about the mesh. </p></li>
+       
+       <li class=kadov-p><p class="whs5"><a href="files/viewing_mesh_info.htm#standard_infos">Standard 
+ Mesh Infos</a> - <span style="font-weight: normal;">provides basic information 
+ about the mesh.</span></p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="files/displaying_nodes_numbers.htm">Numbering</a></B></span> 
+ &nbsp;- allows 
+ to display the ID numbers of all meshing elements or nodes composing your 
+ mesh in the viewer.</p></li>
+       
+       <li class=kadov-p><p class="whs5"><a href="presentation.htm" style="font-weight: bold;">Display 
+ Mode</a> - <span style="font-weight: normal;">allows to select between 
+ Wireframe, Shading and Nodes presentation.</span></p></li>
+       
+       <li class=kadov-p><p><a href="display_entity.htm" style="font-weight: bold;">Display Entity</a> 
+ - allows to display Faces, Edges or both. </p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Colors / Size</B></span> 
+ - allows to select color and size of meshes.</p></li>
+       
+       <li class=kadov-p><p><a href="transparency.htm" style="font-weight: bold;">Transparency</a> 
+ - allows to change the transparency of mesh elements.</p></li>
+       
+       <li class=kadov-p><p><a href="clipping.htm" style="font-weight: bold;">Clipping</a> - allows 
+ to create cross-sections of the selected objects.</p></li>
+       
+       <li class=kadov-p><p><a href="files/about_quality_controls.htm" style="font-weight: bold;">Quality Controls</a> 
+ - graphically presents various information about meshes.</p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Erase</B></span> 
+ - allows to hide the selected mesh from the viewer. </p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Display Only</B></span> 
+ -allows to display only the selected mesh, hiding all other from the viewer.</p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span> 
+ - exports an object from the viewer in bmp, png, jpg or jpeg image format. 
+ </p></li>
+       
+       <li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span> 
+ - allows to redefine the background color. By default it is black. &nbsp;</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 86db2586e2604b6b9f0278222ec3f4e9be16726a..b4d5067d2b782bdbffc7ef994928b8fb6c42e78a 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Adding Quadratic Nodes and Elements</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:148px; height:168px; border-style:none; }\r
-img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
-p.WebHelpNavBar { text-align:right; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       addTocInfo("MESH module\nModifying meshes\nAdding quadratic elements");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("index.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Adding Quadratic Elements</h1>\r
-\r
-<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic \r
- Elements</B></span>.</p>\r
-\r
-<p>Quadratic Edge in not a straight but a broken line and can be defined \r
- by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic \r
- Elements</B></span> differ from ordinary ones in that they consist of Quadratic \r
- Edges.</p>\r
-\r
-<p class=TODO\r
-       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
- add a quadratic element to your mesh:</p>\r
-\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item \r
- and select one of the following: </p>\r
-\r
-<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic \r
- Element </B></span>specify the nodes which will form your triangle by selecting \r
- them in the 3D viewer with pressed Shift button. Their numbers will appear \r
- in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span> \r
- (alternatively you can just input numbers in this field without selection).The \r
- edges formed by the corner nodes will appear in the table. To define the \r
- middle nodes for each edge double-click on the respective field and input \r
- the number of the node. All edges and the object formed by them will be \r
- displayed in the Object browser. When all edges are defined you will be \r
- able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span> \r
- button to add the element to the mesh. </p>\r
-\r
-<p class="whs1">&nbsp;<img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span> \r
- button for Quadratic Edges switches the first and the last nodes. <span \r
- style="margin-left: 40px;">For all other elements it reverses the element. \r
- </span></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Adding Quadratic Nodes and Elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:148px; height:168px; border-style:none; }
+img_whs3 { border:none; width:332px; height:350px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nAdding quadratic elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Adding Quadratic Elements</h1>
+
+<p>MESH modules allows you to work with <span style="font-weight: bold;"><B>Quadratic 
+ Elements</B></span>.</p>
+
+<p>Quadratic Edge in not a straight but a broken line and can be defined 
+ by three points: first, middle and last. All more complex <span style="font-weight: bold;"><B>Quadratic 
+ Elements</B></span> differ from ordinary ones in that they consist of Quadratic 
+ Edges.</p>
+
+<p class=TODO
+       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To 
+ add a quadratic element to your mesh:</p>
+
+<p class="whs1">1. Select your mesh in the Object Browser 
+ or in the 3D viewer.</p>
+
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item 
+ and select one of the following: </p>
+
+<p class="whs1"><img src="image152.gif" width="148px" height="168px" border="0" class="img_whs2"></p>
+
+<p class="whs1">To create any <span style="font-weight: bold;"><B>Quadratic 
+ Element </B></span>specify the nodes which will form your triangle by selecting 
+ them in the 3D viewer with pressed Shift button. Their numbers will appear 
+ in the dialog box as <span style="font-weight: bold;"><B>Corner Nodes</B></span> 
+ (alternatively you can just input numbers in this field without selection).The 
+ edges formed by the corner nodes will appear in the table. To define the 
+ middle nodes for each edge double-click on the respective field and input 
+ the number of the node. All edges and the object formed by them will be 
+ displayed in the Object browser. When all edges are defined you will be 
+ able to click <span style="font-weight: bold;"><B>OK</B></span> or <span style="font-weight: bold;"><B>Apply</B></span> 
+ button to add the element to the mesh. </p>
+
+<p class="whs1">&nbsp;<img src="pics/aqt.png" x-maintain-ratio="TRUE" width="332px" height="350px" border="0" class="img_whs3"></p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>Reverse</B></span> 
+ button for Quadratic Edges switches the first and the last nodes. <span 
+ style="margin-left: 40px;">For all other elements it reverses the element. 
+ </span></p>
+
+<p class="whs1">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 20573a1fdf15a29216192b9fcdb9e15e3bdfaa3e..bd1d7ddfc7f2c5dfe8dd7e2a949ea1fe3b35d582 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Aspect ratio 3D</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nAspect ratio 3D");\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>Aspect ratio 3D</h1>\r
-\r
-<p><img src="image86.jpg" width="416px" height="385px" border="0" class="img_whs1"></p>\r
-\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
-\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
-\r
-<p>\95 For tetrahedron :</p>\r
-\r
-<p>&nbsp;<img src="image20.gif" width="258px" height="246px" border="0" class="img_whs6"></p>\r
-\r
-<p>&nbsp;<img src="image19.gif" width="133px" height="56px" border="0" class="img_whs7"></p>\r
-\r
-<p>where :</p>\r
-\r
-<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs8"> </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
-\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
-\r
-<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs9"> </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
-\r
-<p>For example, hexahedron is analysed via 6 tetrahedrons this way:</p>\r
-\r
-<p><img src="image139.gif" border="0" class="img_whs10"> </p>\r
-\r
-<p>&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
-\r
-<p>&nbsp;</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
-\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
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Aspect ratio 3D</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:416px; height:385px; border-style:none; }
+img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs3 { list-style:disc; }
+img_whs4 { border:none; width:258px; height:246px; border-style:none; float:left; }
+img_whs5 { border:none; width:133px; height:56px; border-style:none; }
+img_whs6 { border:none; width:425px; height:192px; border-style:none; }
+img_whs7 { border:none; width:89px; height:32px; border-style:none; }
+img_whs8 { border:none; width:569px; height:386px; float:none; border-style:none; }
+p.whs9 { margin-left:40px; }
+img_whs10 { border:none; width:24px; height:26px; border-style:none; }
+p.whs11 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs11 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nAspect ratio 3D");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Aspect ratio 3D</h1>
+
+<p><img src="image86.jpg" width="416px" height="385px" border="0" class="img_whs1"></p>
+
+<p>&nbsp;</p>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> The Aspect Ratio 3D mesh quality criterion calculates 
+ the same parameter as the <a href="files/aspect_ratio.htm">Aspect ratio</a> 
+ criterion, but it is applied to 3D mesh elements: tetrahedrons, pentahedrons, 
+ hexahedrons, etc. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p><img src="image20.gif" width="258px" height="246px" align="left" border="0" class="img_whs4">The <span style="font-weight: bold;"><B>Aspect 
+ Ratio</B></span> of a <span style="font-weight: bold;"><B>tetrahedron</B></span> 
+ 3D element is calculated by the formula:</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p><img src="image19.gif" width="133px" height="56px" border="0" class="img_whs5">,</p>
+
+<p>&nbsp;</p>
+
+<p>where <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span 
+ style="font-weight: bold;
+               font-style: italic;
+               vertical-align: Sub;"><I><B>K</B></I></span> is the sum of surfaces of the faces 
+ of &#1050; and <span style="font-weight: bold; font-style: italic;"><I><B>V</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>K</B></I></span> is the volume of &#1050; :</p>
+
+<p>&nbsp;</p>
+
+<p><img src="image18.gif" width="425px" height="192px" border="0" class="img_whs6">T</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p>Other element types like quadrangle, pentahedron 
+ and hexahedron use the following formula:</p></li>
+</ul>
+
+<p><img src="image30.gif" width="89px" height="32px" border="0" class="img_whs7"> , where <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>i</B></I></span> represents the value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>k</B></I></span> for all possible simplexes (of the 
+ same dimension as the element) that compose the element.</p>
+
+<p>For example, a hexahedron is split in 6 tetrahedrons, the <span style="font-weight: bold;"><B>Aspect 
+ ratio 3D</B></span> is calculated for each of them, then the greatest <span 
+ style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span style="vertical-align: Sub;
+       font-weight: bold;
+       font-style: italic;"><I><B>k</B></I></span> is considered to be the &nbsp;<span 
+ style="font-weight: bold;"><B>Aspect ratio 3D</B></span> 
+ criterion for the whole &nbsp;hexahedron.</p>
+
+<p><img src="pics/image139.gif" x-maintain-ratio="TRUE" width="569px" height="386px" border="0" class="img_whs8"></p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To apply the Aspect Ratio 3D quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs9">1. Display your mesh in the viewer.</p>
+
+<p class="whs9">&nbsp;</p>
+
+<p class="whs9">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Aspect Ratio 3D </B></span>or click <img src="image144.gif" width="24px" height="26px" border="0" class="img_whs10"> button of the toolbar. 
+ Your mesh will be displayed in the viewer with its elements colored according 
+ to the applied mesh quality control criterion:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs11"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of an <span style="font-weight: bold;"><B><a href="quality_controls.htm#bookmark11">Aspect 
+ Ratio 3D</B></span> quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index cba301b961982aaf968cfe78fd9b79c2a8894fe6..8ad86b523ba03136674e404a057568b25a92650f 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Borders at multi-connection</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nBorders at multi-connection");\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>Borders at multi-connection</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces \r
- consisting of edges belonging to several faces. The amount of faces is \r
- specified by user.</p>\r
-\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
-\r
-<p>&nbsp;</p>\r
-\r
-<p>In this picture the borders at multi-connection are displayed in white.</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
- at Multi-Connection quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Borders at multi-connection</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:223px; height:213px; border-style:none; }
+p.whs4 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs4 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nBorders at multi-connection");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Borders at multi-connection</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces 
+ consisting of edges belonging to several faces. The amount of faces is 
+ specified by user.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="image151.gif" width="223px" height="213px" border="0" class="img_whs3"></p>
+
+<p>&nbsp;</p>
+
+<p>In this picture the borders at multi-connection are displayed in blue.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark1">Borders 
+ at Multi-Connection quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 9587602aae75c2dcb17ff352045312a0b80ee106..2e9e180c0ca45acb33e35f646d1049fa57bde2ac 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Borders at multiconnection 2D</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; width:420px; height:312px; border-style:none; }\r
-p.whs3 { 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 +="</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\nBorders at multi-connection 2D");\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>Borders at multi-connection 2D</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of elements \r
- of mesh, consisting of edges belonging to several elements of mesh. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="image127.gif" width="420px" height="312px" border="0" class="img_whs2"></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#bookmark6">Borders \r
- at Multi-Connection quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Borders at multiconnection 2D</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+img_whs2 { border:none; width:420px; height:312px; border-style:none; }
+p.whs3 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs3 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nBorders at multi-connection 2D");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Borders at multi-connection 2D</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of elements 
+ of mesh, consisting of edges belonging to several elements of mesh. </p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="image127.gif" width="420px" height="312px" border="0" class="img_whs2"></p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark5">Borders 
+ at Multi-Connection quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 8652fd75fa6f6bd68c2adcdb93fbae5bd272b070..dec479c99a4d6fe453462965b82c67fe0eb42a8f 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Clipping</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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\nViewing meshes\nClipping");\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>Clipping</h1>\r
-\r
-<p>Using this menu you can create cross-section views (clipping planes) \r
- of your mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>To start, click on the New button. </p>\r
-\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
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Now you can define the parameters of your cross-section: <span style="font-weight: bold;"><B>Orientation</B></span> \r
- &nbsp;(X-Y, X-Z \r
- or Y-Z); <span style="font-weight: bold;"><B>Distance </B></span>between the \r
- opposite extremities of the object,<span style="font-weight: bold;"> <B></B></span>if \r
- it is set to 0.5 the object is split in two halves; and <span style="font-weight: bold;"><B>Rotation</B></span> \r
- (in angle degrees) <span style="font-weight: bold;"><B>around X (Y to Z) \r
- </B></span>and<span style="font-weight: bold;"><B> around Y (X to Z)</B></span>. \r
- If the <span style="font-weight: bold;"><B>Show preview</B></span> button is \r
- on, you can see the clipping plane in the <span style="font-weight: bold;"><B>Object \r
- window. </B></span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><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
-\r
-<p class="whs2"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Clipping</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:332px; height:327px; float:none; border-style:none; }
+p.whs3 { font-weight:bold; margin-left:40px; }
+img_whs4 { border:none; width:326px; height:199px; border-style:none; }
+p.whs5 { font-weight:bold; }
+img_whs6 { border:none; width:329px; height:210px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nClipping");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Clipping</h1>
+
+<p>Using this menu you can create cross-section views (clipping planes) 
+ of your mesh.</p>
+
+<p>&nbsp;</p>
+
+<p>To start, click on the New button. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs1"><img src="pics/a-clipping2.png" x-maintain-ratio="TRUE" width="332px" height="327px" border="0" class="img_whs2"></p>
+
+<p>&nbsp;</p>
+
+<p>Now you can define the parameters of your cross-section: <span style="font-weight: bold;"><B>Orientation</B></span> 
+ &nbsp;(X-Y, X-Z 
+ or Y-Z); <span style="font-weight: bold;"><B>Distance </B></span>between the 
+ opposite extremities of the object,<span style="font-weight: bold;"> <B></B></span>if 
+ it is set to 0.5 the object is split in two halves; and <span style="font-weight: bold;"><B>Rotation</B></span> 
+ (in angle degrees) <span style="font-weight: bold;"><B>around X (Y to Z) 
+ </B></span>and<span style="font-weight: bold;"><B> around Y (X to Z)</B></span>. 
+ If the <span style="font-weight: bold;"><B>Show preview</B></span> button is 
+ on, you can see the clipping plane in the <span style="font-weight: bold;"><B>Object 
+ window. </B></span></p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="image79.jpg" width="326px" height="199px" border="0" class="img_whs4"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: normal;">If the</span> 
+ Auto Apply<span style="font-weight: normal;"> button is on, you can preview 
+ the cross-section in the</span> Object window</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs3"><img src="image99.gif" width="329px" height="210px" border="0" class="img_whs6"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: normal;">To get 
+ a new object from </span>Clipping, <span style="font-weight: normal;">click</span> 
+ Ok. </p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 78d8030db746d224827eea8f82143459bdfe7499..90d82bffcd58acfd3ff2959cb461aba9ed92c21c 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Constructing Meshes</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; font-family:'Lucida Console' , monospace; }\r
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0px; margin-bottom:0px; }\r
-p.whs4 { margin-top:0px; margin-bottom:0px; }\r
-p.whs5 { margin-top:0px; margin-bottom:0px; font-family:'Times New Roman' , serif; }\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.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs5 {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\nTUI Scripts\nCreating Meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Creating Meshes</h1>\r
-\r
-<h3><a name=bookmark>Construction of a Mesh</a></h3>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</p>\r
-\r
-<p class="whs1">import StdMeshers</p>\r
-\r
-<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
- &quot;SMESH&quot;)</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
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 100., 200., 300.)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add box to the study</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy(box, \r
- &quot;box&quot;)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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">print &quot;-------------------------- \r
- NumberOfSegments&quot;</p>\r
-\r
-<p class="whs1">numberOfSegments \r
- = 7</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">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">smeshgui.SetName(salome.ObjectToID(hypNbSeg), \r
- &quot;NumberOfSegments_10&quot;)</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">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">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">smeshgui.SetName(salome.ObjectToID(hypArea), \r
- &quot;MaxElementArea_500&quot;)</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">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="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">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">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">print &quot;-------------------------- \r
- MEFISTO_2D&quot;</p>\r
-\r
-<p class="whs1">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(mefisto2D), \r
- &quot;MEFISTO_2D&quot;)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># initialize a mesh with \r
- the box</p>\r
-\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 the hypothesis to \r
- the box</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- add hypothesis to the box&quot;</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,mefisto2D)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h3><a name=bookmark1>Construction of a Submesh</a></h3>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">from \r
- geompy import *</span></p>\r
-\r
-<p class="whs3">import smesh</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create vertices</p>\r
-\r
-<p class="whs3">Point111 = MakeVertex( 0, &nbsp;0, \r
- &nbsp;0)</p>\r
-\r
-<p class="whs3">Point211 = MakeVertex(10, &nbsp;0, \r
- &nbsp;0)</p>\r
-\r
-<p class="whs3">Point121 = MakeVertex( 0, 10, &nbsp;0)</p>\r
-\r
-<p class="whs3">Point221 = MakeVertex(10, 10, &nbsp;0)</p>\r
-\r
-<p class="whs3">Point112 = MakeVertex( 0, &nbsp;0, \r
- 10)</p>\r
-\r
-<p class="whs3">Point212 = MakeVertex(10, &nbsp;0, \r
- 10)</p>\r
-\r
-<p class="whs3">Point122 = MakeVertex( 0, 10, 10)</p>\r
-\r
-<p class="whs3">Point222 = MakeVertex(10, 10, 10)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create edges</p>\r
-\r
-<p class="whs3">EdgeX111 = MakeEdge(Point111, Point211)</p>\r
-\r
-<p class="whs3">EdgeX121 = MakeEdge(Point121, Point221)</p>\r
-\r
-<p class="whs3">EdgeX112 = MakeEdge(Point112, Point212)</p>\r
-\r
-<p class="whs3">EdgeX122 = MakeEdge(Point122, Point222)</p>\r
-\r
-<p class="whs3">EdgeY11 = MakeEdge(Point111, Point121)</p>\r
-\r
-<p class="whs3">EdgeY21 = MakeEdge(Point211, Point221)</p>\r
-\r
-<p class="whs3">EdgeY12 = MakeEdge(Point112, Point122)</p>\r
-\r
-<p class="whs3">EdgeY22 = MakeEdge(Point212, Point222)</p>\r
-\r
-<p class="whs3">EdgeZ111 = MakeEdge(Point111, Point112)</p>\r
-\r
-<p class="whs3">EdgeZ211 = MakeEdge(Point211, Point212)</p>\r
-\r
-<p class="whs3">EdgeZ121 = MakeEdge(Point121, Point122)</p>\r
-\r
-<p class="whs3">EdgeZ221 = MakeEdge(Point221, Point222)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create faces</p>\r
-\r
-<p class="whs3">FaceX11 = MakeQuad(EdgeY11, EdgeZ111, \r
- EdgeY12, EdgeZ121)</p>\r
-\r
-<p class="whs3">FaceX21 = MakeQuad(EdgeY21, EdgeZ211, \r
- EdgeY22, EdgeZ221)</p>\r
-\r
-<p class="whs3">FaceY111 = MakeQuad(EdgeX111, EdgeZ111, \r
- EdgeX112, EdgeZ211)</p>\r
-\r
-<p class="whs3">FaceY121 = MakeQuad(EdgeX121, EdgeZ121, \r
- EdgeX122, EdgeZ221)</p>\r
-\r
-<p class="whs3">FaceZ11 = MakeQuad(EdgeX111, EdgeY11, \r
- EdgeX121, EdgeY21)</p>\r
-\r
-<p class="whs3">FaceZ12 = MakeQuad(EdgeX112, EdgeY12, \r
- EdgeX122, EdgeY22)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a solid</p>\r
-\r
-<p class="whs3">Block = MakeHexa(FaceX11, FaceX21, FaceY111, \r
- FaceY121, FaceZ11, FaceZ12)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a compound</p>\r
-\r
-<p class="whs3">box = MakeCompound([Block])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># add in the study</p>\r
-\r
-<p class="whs3">box_id = addToStudy(box, &quot;Box compound&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create hexahedral mesh \r
- on the box</p>\r
-\r
-<p class="whs3">hexa = smesh.Mesh(box, &quot;Box compound \r
- : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs3">algo = hexa.Segment()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut the edge in a fixed number of segments</p>\r
-\r
-<p class="whs3">algo.NumberOfSegments(4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># creates a quadrangle \r
- 2D algorithm for the faces</p>\r
-\r
-<p class="whs3">hexa.Quadrangle()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># construct a submesh with \r
- a local hypothesis</p>\r
-\r
-<p class="whs3">algo = hexa.Segment(EdgeX111)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Arithmetic1D&quot; \r
- hypothesis to cut an edge in several segments with increasing arithmetic \r
- length </p>\r
-\r
-<p class="whs3">algo.Arithmetic1D(1, 4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Propagation&quot; \r
- hypothesis that propagates all other hypothesis on all edges on the opposite \r
- side in case of quadrangular faces</p>\r
-\r
-<p class="whs3">algo.Propagation()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># compute the mesh</p>\r
-\r
-<p class="whs3">hexa.Compute() )</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h3><a name=bookmark2>Editing of a mesh</a></h3>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">import \r
- salome</span></p>\r
-\r
-<p class="whs3">import geompy</p>\r
-\r
-<p class="whs3">import SMESH</p>\r
-\r
-<p class="whs3">import StdMeshers</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
- &quot;SMESH&quot;)</p>\r
-\r
-<p class="whs3">smesh.SetCurrentStudy(salome.myStudy)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">box &nbsp;&nbsp;= \r
- geompy.MakeBox(0., 0., 0., 20., 20., 20.)</p>\r
-\r
-<p class="whs3">idbox = geompy.addToStudy(box, &quot;box&quot;)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs3">edge &nbsp;&nbsp;= \r
- subShapeList[0]</p>\r
-\r
-<p class="whs3">name &nbsp;&nbsp;= \r
- geompy.SubShapeName(edge, box)</p>\r
-\r
-<p class="whs3">idedge = geompy.addToStudyInFather(box, \r
- edge, name)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">box &nbsp;= \r
- salome.IDToObject(idbox)</p>\r
-\r
-<p class="whs3">edge = salome.IDToObject(idedge)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs3">hyp1.SetNumberOfSegments(3)</p>\r
-\r
-<p class="whs3">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs3">hyp2.SetMaxElementArea(10)</p>\r
-\r
-<p class="whs3">hyp3 = smesh.CreateHypothesis(&quot;Arithmetic1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs3">hyp3.SetLength(1,1)</p>\r
-\r
-<p class="whs3">hyp3.SetLength(6,0)</p>\r
-\r
-<p class="whs3">hyp4 = smesh.CreateHypothesis(&quot;Propagation&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs3">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">mesh = smesh.CreateMesh(box)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(box,hyp1)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(box,hyp2)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(box,algo1)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(box,algo2)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(edge,hyp3)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(edge,hyp4)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(edge,algo1)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">smesh.Compute(mesh,box)</p>\r
-\r
-<p class="whs3">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5"># remove a hypothesis</p>\r
-\r
-<p class="whs3">mesh.RemoveHypothesis(edge,hyp4)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">smesh.Compute(mesh,box)</p>\r
-\r
-<p class="whs3">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5"># change the value \r
- of the hypothesis</p>\r
-\r
-<p class="whs3">hyp2.SetMaxElementArea(2)</p>\r
-\r
-<p class="whs3">mesh.AddHypothesis(box,hyp2)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">smesh.Compute(mesh,box)</p>\r
-\r
-<p class="whs3">salome.sg.updateObjBrowser(1) </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h3><a name=bookmark3>Export of a Mesh</a></h3>\r
-\r
-<p class="whs4">&nbsp;</p>\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 StdMeshers</p>\r
-\r
-<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
- &quot;SMESH&quot;)</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
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 100., 200., 300.)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add the box to the study</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy(box, \r
- &quot;box&quot;)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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">print &quot;-------------------------- \r
- NumberOfSegments&quot;</p>\r
-\r
-<p class="whs1">numberOfSegments \r
- = 7</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">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">smeshgui.SetName(salome.ObjectToID(hypNbSeg), \r
- &quot;NumberOfSegments_10&quot;)</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">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">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">smeshgui.SetName(salome.ObjectToID(hypArea), \r
- &quot;MaxElementArea_500&quot;)</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">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="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">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">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">print &quot;-------------------------- \r
- MEFISTO_2D&quot;</p>\r
-\r
-<p class="whs1">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">smeshgui.SetName(salome.ObjectToID(mefisto2D), \r
- &quot;MEFISTO_2D&quot;)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># initialize a mesh with \r
- the box</p>\r
-\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="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add the hypothesis to \r
- the box</p>\r
-\r
-<p class="whs1">print &quot;-------------------------- \r
- add hypothesis to the box&quot;</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,mefisto2D)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs1">mesh.ExportMED(&quot;/tmp/meshMED.med&quot;,0)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs4">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Constructing Meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }
+p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0px; margin-bottom:0px; }
+p.whs4 { margin-top:0px; margin-bottom:0px; }
+p.whs5 { margin-top:0px; margin-bottom:0px; font-family:'Times New Roman' , serif; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nCreating Meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Creating Meshes</h1>
+
+<h3><a name=bookmark>Construction of a Mesh</a></h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a box</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 100., 200., 300.)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add box to the study</p>
+
+<p class="whs1">idbox = geompy.addToStudy(box, 
+ &quot;box&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a hypothesis</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ create Hypothesis&quot;</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ NumberOfSegments&quot;</p>
+
+<p class="whs1">numberOfSegments 
+ = 7</p>
+
+<p class="whs1">hypNbSeg = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>
+
+<p class="whs1">print hypNbSeg.GetName()</p>
+
+<p class="whs1">print hypNbSeg.GetId()</p>
+
+<p class="whs1">print hypNbSeg.GetNumberOfSegments()</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypNbSeg), 
+ &quot;NumberOfSegments_10&quot;)</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ MaxElementArea&quot;</p>
+
+<p class="whs1">maxElementArea = 
+ 800</p>
+
+<p class="whs1">hypArea = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypArea.SetMaxElementArea(maxElementArea)</p>
+
+<p class="whs1">print hypArea.GetName()</p>
+
+<p class="whs1">print hypArea.GetId()</p>
+
+<p class="whs1">print hypArea.GetMaxElementArea()</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypArea), 
+ &quot;MaxElementArea_500&quot;)</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ MaxElementVolume&quot;</p>
+
+<p class="whs1">maxElementVolume 
+ = 900</p>
+
+<p class="whs1">hypVolume = smesh.CreateHypothesis(&quot;MaxElementVolume&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypVolume.SetMaxElementVolume(maxElementVolume)</p>
+
+<p class="whs1">print hypVolume.GetName()</p>
+
+<p class="whs1">print hypVolume.GetId()</p>
+
+<p class="whs1">print hypVolume.GetMaxElementVolume()</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypVolume), 
+ &quot;MaxElementVolume_500&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create algorithms</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ create Algorithms&quot;</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ Regular_1D&quot;</p>
+
+<p class="whs1">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(regular1D), 
+ &quot;Wire Discretisation&quot;)</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ MEFISTO_2D&quot;</p>
+
+<p class="whs1">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(mefisto2D), 
+ &quot;MEFISTO_2D&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># initialize a mesh with 
+ the box</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(box)</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(mesh), 
+ &quot;MeshBox&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add the hypothesis to 
+ the box</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ add hypothesis to the box&quot;</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypNbSeg)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypArea)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypVolume)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,regular1D)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,mefisto2D)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># compute the mesh</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ compute the mesh of the box&quot;</p>
+
+<p class="whs1">ret = smesh.Compute(mesh,box)</p>
+
+<p class="whs1">print ret</p>
+
+<p class="whs1">if ret == 0:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;probleme when computing the mesh&quot;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<h3><a name=bookmark1>Construction of a Submesh</a></h3>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">from 
+ geompy import *</span></p>
+
+<p class="whs3">import smesh</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create vertices</p>
+
+<p class="whs3">Point111 = MakeVertex( 0, &nbsp;0, 
+ &nbsp;0)</p>
+
+<p class="whs3">Point211 = MakeVertex(10, &nbsp;0, 
+ &nbsp;0)</p>
+
+<p class="whs3">Point121 = MakeVertex( 0, 10, &nbsp;0)</p>
+
+<p class="whs3">Point221 = MakeVertex(10, 10, &nbsp;0)</p>
+
+<p class="whs3">Point112 = MakeVertex( 0, &nbsp;0, 
+ 10)</p>
+
+<p class="whs3">Point212 = MakeVertex(10, &nbsp;0, 
+ 10)</p>
+
+<p class="whs3">Point122 = MakeVertex( 0, 10, 10)</p>
+
+<p class="whs3">Point222 = MakeVertex(10, 10, 10)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create edges</p>
+
+<p class="whs3">EdgeX111 = MakeEdge(Point111, Point211)</p>
+
+<p class="whs3">EdgeX121 = MakeEdge(Point121, Point221)</p>
+
+<p class="whs3">EdgeX112 = MakeEdge(Point112, Point212)</p>
+
+<p class="whs3">EdgeX122 = MakeEdge(Point122, Point222)</p>
+
+<p class="whs3">EdgeY11 = MakeEdge(Point111, Point121)</p>
+
+<p class="whs3">EdgeY21 = MakeEdge(Point211, Point221)</p>
+
+<p class="whs3">EdgeY12 = MakeEdge(Point112, Point122)</p>
+
+<p class="whs3">EdgeY22 = MakeEdge(Point212, Point222)</p>
+
+<p class="whs3">EdgeZ111 = MakeEdge(Point111, Point112)</p>
+
+<p class="whs3">EdgeZ211 = MakeEdge(Point211, Point212)</p>
+
+<p class="whs3">EdgeZ121 = MakeEdge(Point121, Point122)</p>
+
+<p class="whs3">EdgeZ221 = MakeEdge(Point221, Point222)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create faces</p>
+
+<p class="whs3">FaceX11 = MakeQuad(EdgeY11, EdgeZ111, 
+ EdgeY12, EdgeZ121)</p>
+
+<p class="whs3">FaceX21 = MakeQuad(EdgeY21, EdgeZ211, 
+ EdgeY22, EdgeZ221)</p>
+
+<p class="whs3">FaceY111 = MakeQuad(EdgeX111, EdgeZ111, 
+ EdgeX112, EdgeZ211)</p>
+
+<p class="whs3">FaceY121 = MakeQuad(EdgeX121, EdgeZ121, 
+ EdgeX122, EdgeZ221)</p>
+
+<p class="whs3">FaceZ11 = MakeQuad(EdgeX111, EdgeY11, 
+ EdgeX121, EdgeY21)</p>
+
+<p class="whs3">FaceZ12 = MakeQuad(EdgeX112, EdgeY12, 
+ EdgeX122, EdgeY22)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a solid</p>
+
+<p class="whs3">Block = MakeHexa(FaceX11, FaceX21, FaceY111, 
+ FaceY121, FaceZ11, FaceZ12)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a compound</p>
+
+<p class="whs3">box = MakeCompound([Block])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># add in the study</p>
+
+<p class="whs3">box_id = addToStudy(box, &quot;Box compound&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create hexahedral mesh 
+ on the box</p>
+
+<p class="whs3">hexa = smesh.Mesh(box, &quot;Box compound 
+ : hexahedrical mesh&quot;)</p>
+
+<p class="whs3">algo = hexa.Segment()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut the edge in a fixed number of segments</p>
+
+<p class="whs3">algo.NumberOfSegments(4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># creates a quadrangle 
+ 2D algorithm for the faces</p>
+
+<p class="whs3">hexa.Quadrangle()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># construct a submesh with 
+ a local hypothesis</p>
+
+<p class="whs3">algo = hexa.Segment(EdgeX111)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Arithmetic1D&quot; 
+ hypothesis to cut an edge in several segments with increasing arithmetic 
+ length </p>
+
+<p class="whs3">algo.Arithmetic1D(1, 4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Propagation&quot; 
+ hypothesis that propagates all other hypothesis on all edges on the opposite 
+ side in case of quadrangular faces</p>
+
+<p class="whs3">algo.Propagation()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># compute the mesh</p>
+
+<p class="whs3">hexa.Compute() </p>
+
+<p class="whs3">&nbsp;</p>
+
+<h3><a name=bookmark2>Editing of a mesh</a></h3>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs3">import geompy</p>
+
+<p class="whs3">import SMESH</p>
+
+<p class="whs3">import StdMeshers</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs3">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">box &nbsp;&nbsp;= 
+ geompy.MakeBox(0., 0., 0., 20., 20., 20.)</p>
+
+<p class="whs3">idbox = geompy.addToStudy(box, &quot;box&quot;)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs3">edge &nbsp;&nbsp;= 
+ subShapeList[0]</p>
+
+<p class="whs3">name &nbsp;&nbsp;= 
+ geompy.SubShapeName(edge, box)</p>
+
+<p class="whs3">idedge = geompy.addToStudyInFather(box, 
+ edge, name)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">box &nbsp;= 
+ salome.IDToObject(idbox)</p>
+
+<p class="whs3">edge = salome.IDToObject(idedge)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs3">hyp1.SetNumberOfSegments(3)</p>
+
+<p class="whs3">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs3">hyp2.SetMaxElementArea(10)</p>
+
+<p class="whs3">hyp3 = smesh.CreateHypothesis(&quot;Arithmetic1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs3">hyp3.SetLength(1,1)</p>
+
+<p class="whs3">hyp3.SetLength(6,0)</p>
+
+<p class="whs3">hyp4 = smesh.CreateHypothesis(&quot;Propagation&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs3">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">mesh = smesh.CreateMesh(box)</p>
+
+<p class="whs3">mesh.AddHypothesis(box,hyp1)</p>
+
+<p class="whs3">mesh.AddHypothesis(box,hyp2)</p>
+
+<p class="whs3">mesh.AddHypothesis(box,algo1)</p>
+
+<p class="whs3">mesh.AddHypothesis(box,algo2)</p>
+
+<p class="whs3">mesh.AddHypothesis(edge,hyp3)</p>
+
+<p class="whs3">mesh.AddHypothesis(edge,hyp4)</p>
+
+<p class="whs3">mesh.AddHypothesis(edge,algo1)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">smesh.Compute(mesh,box)</p>
+
+<p class="whs3">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5"># remove a hypothesis</p>
+
+<p class="whs3">mesh.RemoveHypothesis(edge,hyp4)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">smesh.Compute(mesh,box)</p>
+
+<p class="whs3">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5"># change the value 
+ of the hypothesis</p>
+
+<p class="whs3">hyp2.SetMaxElementArea(2)</p>
+
+<p class="whs3">mesh.AddHypothesis(box,hyp2)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">smesh.Compute(mesh,box)</p>
+
+<p class="whs3">salome.sg.updateObjBrowser(1) </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h3><a name=bookmark3>Export of a Mesh</a></h3>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a box</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 100., 200., 300.)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add the box to the study</p>
+
+<p class="whs1">idbox = geompy.addToStudy(box, 
+ &quot;box&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a hypothesis</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ create Hypothesis&quot;</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ NumberOfSegments&quot;</p>
+
+<p class="whs1">numberOfSegments 
+ = 7</p>
+
+<p class="whs1">hypNbSeg = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>
+
+<p class="whs1">print hypNbSeg.GetName()</p>
+
+<p class="whs1">print hypNbSeg.GetId()</p>
+
+<p class="whs1">print hypNbSeg.GetNumberOfSegments()</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypNbSeg), 
+ &quot;NumberOfSegments_10&quot;)</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ MaxElementArea&quot;</p>
+
+<p class="whs1">maxElementArea = 
+ 800</p>
+
+<p class="whs1">hypArea = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypArea.SetMaxElementArea(maxElementArea)</p>
+
+<p class="whs1">print hypArea.GetName()</p>
+
+<p class="whs1">print hypArea.GetId()</p>
+
+<p class="whs1">print hypArea.GetMaxElementArea()</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypArea), 
+ &quot;MaxElementArea_500&quot;)</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ MaxElementVolume&quot;</p>
+
+<p class="whs1">maxElementVolume 
+ = 900</p>
+
+<p class="whs1">hypVolume = smesh.CreateHypothesis(&quot;MaxElementVolume&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypVolume.SetMaxElementVolume(maxElementVolume)</p>
+
+<p class="whs1">print hypVolume.GetName()</p>
+
+<p class="whs1">print hypVolume.GetId()</p>
+
+<p class="whs1">print hypVolume.GetMaxElementVolume()</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(hypVolume), 
+ &quot;MaxElementVolume_500&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create algorithms</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ create Algorithms&quot;</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ Regular_1D&quot;</p>
+
+<p class="whs1">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(regular1D), 
+ &quot;Wire Discretisation&quot;)</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ MEFISTO_2D&quot;</p>
+
+<p class="whs1">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(mefisto2D), 
+ &quot;MEFISTO_2D&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># initialize a mesh with 
+ the box</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(box)</p>
+
+<p class="whs1">smeshgui.SetName(salome.ObjectToID(mesh), 
+ &quot;MeshBox&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add the hypothesis to 
+ the box</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ add hypothesis to the box&quot;</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypNbSeg)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypArea)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypVolume)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,regular1D)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,mefisto2D)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># compute the mesh</p>
+
+<p class="whs1">print &quot;-------------------------- 
+ compute the mesh of the box&quot;</p>
+
+<p class="whs1">ret = smesh.Compute(mesh,box)</p>
+
+<p class="whs1">print ret</p>
+
+<p class="whs1">if ret == 0:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;probleme when computing the mesh&quot;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs1">mesh.ExportMED(&quot;/tmp/meshMED.med&quot;,0)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 2e1891e5388b4a2bf0d8fec044b324cb7a643e1e..4a4ee57e107c42adf1c68e679c1db41af3c3d943 100755 (executable)
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="JavaScript">\r
-<!--\r
-\r
-var gArrayCsh = new Array();\r
-\r
-var gstrWindowOption = "";\r
-var gstrURL = "";\r
-var gbWithNavPane = false;\r
-\r
-function CshEntityItem(strAliasId, nTopicNum, strUrl) \r
-{\r
-    this.strAliasId = strAliasId;\r
-    this.nTopicNum = nTopicNum;\r
-    this.strUrl = strUrl;\r
-}\r
-\r
-\r
-//Try to get to topic number from hash string\r
-function GetTopicNumberAuto(strMayBeNumber)\r
-{\r
-   var nNum = -1;\r
-   if (strMayBeNumber.length >= 1)\r
-   {\r
-               var strTmp = strMayBeNumber;\r
-               var iEnd = strTmp.length;\r
-               for (var i=0; i<iEnd; i++)\r
-               {\r
-                         var ch = strTmp.charAt(i);\r
-                         if (!((ch == "0") || (ch == "1") ||\r
-                               (ch == "2") || (ch == "3") ||\r
-                               (ch == "4") || (ch == "5") ||\r
-                               (ch == "6") || (ch == "7") ||\r
-                               (ch == "8") || (ch == "9")))\r
-                             return GetTopicNumberById(strTmp);\r
-               }\r
-               nNum = parseInt(strTmp);\r
-   }\r
-   return nNum;\r
-}\r
-\r
-function GetTopicNumber(strHashString)\r
-{\r
-       var nTopicEndPos = strHashString.indexOf(',')\r
-       if (nTopicEndPos == -1) { // no window option.\r
-               return GetTopicNumberOnly(strHashString);\r
-       }\r
-       else {\r
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);\r
-               var strWithNavPane = 'withnavpane=true';\r
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)\r
-               {\r
-                       if (strWindowOption.length > strWithNavPane.length)\r
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);\r
-                       else\r
-                               gstrWindowOption = "";\r
-                       gbWithNavPane = true;\r
-               }\r
-               else\r
-                       gstrWindowOption = strWindowOption;\r
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            \r
-       }\r
-}\r
-\r
-function GetTopicNumberOnly(strTopicString)\r
-{\r
-       var nEqualPos = strTopicString.indexOf('=');\r
-       if (nEqualPos == -1) {\r
-               return GetTopicNumberAuto(strTopicString);\r
-       }\r
-       else {\r
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);\r
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {\r
-                       return parseInt(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("context") == 0) {\r
-                       return GetTopicNumberById(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {\r
-                       gstrURL = strValue;\r
-                       return -1;\r
-               }\r
-\r
-       }\r
-}\r
-\r
-//Find HomePage of the WebHelp system\r
-// we try to get the topic from remote project if it exists.\r
-function RedirectToHomePage()\r
-{\r
-       if (parent && parent != this && parent.goNext)\r
-       {\r
-               var sHome = parent.goNext();\r
-               if (sHome != "")\r
-                       RedirectTo(sHome);\r
-       }\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       if (parent && parent != this && parent.getRelHomePage)\r
-       {\r
-               return parent.getRelHomePage(document.location.href);\r
-       }\r
-       return "";\r
-}\r
-\r
-function addRemoteProject(strPath)\r
-{\r
-       if (parent && parent != this && parent.addProject)\r
-       {\r
-               parent.addProject(strPath);\r
-       }\r
-}\r
-\r
-//Redirect page to...\r
-function RedirectTo(strUrl)\r
-{\r
-   if (gstrWindowOption.length != 0) {\r
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);\r
-               // close current window and rename the stub window to current window.\r
-               if (wnd)\r
-                       wnd.focus();\r
-               if (parent)\r
-                       parent.close();\r
-   }\r
-   else {\r
-       parent.document.location.href = strUrl;\r
-       window.focus();\r
-  }\r
-}\r
-\r
-//Prompt the user that we can not find...\r
-function FailToFind(strMsg)\r
-{\r
-    RedirectToHomePage();\r
-}\r
-\r
-//Find topic by topic number (defined in h file)\r
-function FindTopicByTopicNum(nTopicNum)\r
-{\r
-       var i = 0;\r
-       var iEnd = gArrayCsh.length;\r
-       for (i=0; i<iEnd; i++)\r
-       {\r
-               if (gArrayCsh[i].nTopicNum == nTopicNum)\r
-               {\r
-                       var strURL = gArrayCsh[i].strUrl;\r
-                       if (gbWithNavPane)\r
-                       {\r
-                               var strHomePage = getHomePage();\r
-                               if (strHomePage.length != 0)\r
-                                       strURL = strHomePage + strURL;\r
-                       }       \r
-                       RedirectTo(strURL);\r
-                       return true;\r
-               }\r
-       }\r
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);\r
-       return false;\r
-}\r
-\r
-var oldPrefix = "HelpIdFromHTMLHelp_"\r
-//Find topic by topic id (alias id defined in ali file)\r
-function GetTopicNumberById(strTopicId)\r
-{\r
-   if (strTopicId.indexOf(oldPrefix) == 0)\r
-   {\r
-               strTopicId = strTopicId.substring(oldPrefix.length);\r
-   }\r
-\r
-   var i = 0;\r
-   var iEnd = gArrayCsh.length;\r
-   for (i=0; i<iEnd; i++)\r
-   {\r
-       if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())\r
-       {\r
-           return gArrayCsh[i].nTopicNum;\r
-        }\r
-   }\r
-   gstrURL = "";\r
-   return -1;\r
-}\r
-\r
-//Set Context-sensitive help entity...\r
-function SetCsh(n, strAliasId, nTopicNum, strUrl)\r
-{\r
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
-}\r
-\r
-\r
-function getHash()\r
-{\r
-       if (parent && parent != this)\r
-               return parent.location.hash;\r
-       else\r
-               return "";\r
-}\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-\r
-\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-//Find CSH according to hash string after this page\r
-if (getHash().length > 0)\r
-{\r
-   // VH 05/16/00 now support \r
-   // TopicID=\r
-   // TopicNumber=\r
-   // RemoteURL=   \r
-   // and WindowsOptions\r
-   // with the format #a=xxx,b=xxx,c=xxx...\r
-   var strHashString = getHash().toString();\r
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. \r
-   // so here need to change it back.\r
-   strHashString = strHashString.substring(1,strHashString.length);\r
-   strHashString = strHashString.replace("%072%057%057", "://");\r
-   var nTopicNum = GetTopicNumber(strHashString);\r
-\r
-   if (nTopicNum != -1)\r
-   {\r
-      FindTopicByTopicNum(nTopicNum);\r
-   }\r
-   else\r
-   {\r
-      if (gstrURL.length > 0) \r
-       RedirectTo(gstrURL);\r
-      else\r
-       RedirectToHomePage();\r
-   }\r
-}\r
-else\r
-{\r
-   RedirectToHomePage();\r
-}\r
-//-->\r
-</script>\r
-<noscript>\r
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>\r
-</noscript>\r
-</body>\r
-</html>\r
-\r
-\r
-\r
-\r
-\r
-\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="JavaScript">
+<!--
+
+var gArrayCsh = new Array();
+
+var gstrWindowOption = "";
+var gstrURL = "";
+var gbWithNavPane = false;
+
+function CshEntityItem(strAliasId, nTopicNum, strUrl) 
+{
+    this.strAliasId = strAliasId;
+    this.nTopicNum = nTopicNum;
+    this.strUrl = strUrl;
+}
+
+
+//Try to get to topic number from hash string
+function GetTopicNumberAuto(strMayBeNumber)
+{
+   var nNum = -1;
+   if (strMayBeNumber.length >= 1)
+   {
+               var strTmp = strMayBeNumber;
+               var iEnd = strTmp.length;
+               for (var i=0; i<iEnd; i++)
+               {
+                         var ch = strTmp.charAt(i);
+                         if (!((ch == "0") || (ch == "1") ||
+                               (ch == "2") || (ch == "3") ||
+                               (ch == "4") || (ch == "5") ||
+                               (ch == "6") || (ch == "7") ||
+                               (ch == "8") || (ch == "9")))
+                             return GetTopicNumberById(strTmp);
+               }
+               nNum = parseInt(strTmp);
+   }
+   return nNum;
+}
+
+function GetTopicNumber(strHashString)
+{
+       var nTopicEndPos = strHashString.indexOf(',')
+       if (nTopicEndPos == -1) { // no window option.
+               return GetTopicNumberOnly(strHashString);
+       }
+       else {
+               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
+               var strWithNavPane = 'withnavpane=true';
+               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
+               {
+                       if (strWindowOption.length > strWithNavPane.length)
+                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
+                       else
+                               gstrWindowOption = "";
+                       gbWithNavPane = true;
+               }
+               else
+                       gstrWindowOption = strWindowOption;
+               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            
+       }
+}
+
+function GetTopicNumberOnly(strTopicString)
+{
+       var nEqualPos = strTopicString.indexOf('=');
+       if (nEqualPos == -1) {
+               return GetTopicNumberAuto(strTopicString);
+       }
+       else {
+               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
+               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
+                       return parseInt(strValue);
+               } else if (strTopicString.toLowerCase().indexOf("context") == 0) {
+                       return GetTopicNumberById(strValue);
+               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
+                       gstrURL = strValue;
+                       return -1;
+               }
+
+       }
+}
+
+//Find HomePage of the WebHelp system
+// we try to get the topic from remote project if it exists.
+function RedirectToHomePage()
+{
+       if (parent && parent != this && parent.goNext)
+       {
+               var sHome = parent.goNext();
+               if (sHome != "")
+                       RedirectTo(sHome);
+       }
+}
+
+function getHomePage()
+{
+       if (parent && parent != this && parent.getRelHomePage)
+       {
+               return parent.getRelHomePage(document.location.href);
+       }
+       return "";
+}
+
+function addRemoteProject(strPath)
+{
+       if (parent && parent != this && parent.addProject)
+       {
+               parent.addProject(strPath);
+       }
+}
+
+//Redirect page to...
+function RedirectTo(strUrl)
+{
+   if (gstrWindowOption.length != 0) {
+               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
+               // close current window and rename the stub window to current window.
+               if (wnd)
+                       wnd.focus();
+               if (parent)
+                       parent.close();
+   }
+   else {
+       parent.document.location.href = strUrl;
+       window.focus();
+  }
+}
+
+//Prompt the user that we can not find...
+function FailToFind(strMsg)
+{
+    RedirectToHomePage();
+}
+
+//Find topic by topic number (defined in h file)
+function FindTopicByTopicNum(nTopicNum)
+{
+       var i = 0;
+       var iEnd = gArrayCsh.length;
+       for (i=0; i<iEnd; i++)
+       {
+               if (gArrayCsh[i].nTopicNum == nTopicNum)
+               {
+                       var strURL = gArrayCsh[i].strUrl;
+                       if (gbWithNavPane)
+                       {
+                               var strHomePage = getHomePage();
+                               if (strHomePage.length != 0)
+                                       strURL = strHomePage + strURL;
+                       }       
+                       RedirectTo(strURL);
+                       return true;
+               }
+       }
+       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
+       return false;
+}
+
+var oldPrefix = "HelpIdFromHTMLHelp_"
+//Find topic by topic id (alias id defined in ali file)
+function GetTopicNumberById(strTopicId)
+{
+   if (strTopicId.indexOf(oldPrefix) == 0)
+   {
+               strTopicId = strTopicId.substring(oldPrefix.length);
+   }
+
+   var i = 0;
+   var iEnd = gArrayCsh.length;
+   for (i=0; i<iEnd; i++)
+   {
+       if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())
+       {
+           return gArrayCsh[i].nTopicNum;
+        }
+   }
+   gstrURL = "";
+   return -1;
+}
+
+//Set Context-sensitive help entity...
+function SetCsh(n, strAliasId, nTopicNum, strUrl)
+{
+   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
+}
+
+
+function getHash()
+{
+       if (parent && parent != this)
+               return parent.location.hash;
+       else
+               return "";
+}
+//-->
+</script>
+<script language="javascript">
+<!--
+
+
+//-->
+</script>
+<script language="javascript">
+<!--
+//Find CSH according to hash string after this page
+if (getHash().length > 0)
+{
+   // VH 05/16/00 now support 
+   // TopicID=
+   // TopicNumber=
+   // RemoteURL=   
+   // and WindowsOptions
+   // with the format #a=xxx,b=xxx,c=xxx...
+   var strHashString = getHash().toString();
+   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. 
+   // so here need to change it back.
+   strHashString = strHashString.substring(1,strHashString.length);
+   strHashString = strHashString.replace("%072%057%057", "://");
+   var nTopicNum = GetTopicNumber(strHashString);
+
+   if (nTopicNum != -1)
+   {
+      FindTopicByTopicNum(nTopicNum);
+   }
+   else
+   {
+      if (gstrURL.length > 0) 
+       RedirectTo(gstrURL);
+      else
+       RedirectToHomePage();
+   }
+}
+else
+{
+   RedirectToHomePage();
+}
+//-->
+</script>
+<noscript>
+ <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
+</noscript>
+</body>
+</html>
+
+
+
+
+
+
index 2fefa3ad420c5ddf286c98184fb936c02268ca41..db3b49a38c7ffe8dcd03bb6955e9161c1e7caffb 100755 (executable)
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="JavaScript">\r
-<!--\r
-\r
-var gArrayCsh = new Array();\r
-\r
-var gstrWindowOption = "";\r
-var gstrURL = "";\r
-var gbWithNavPane = false;\r
-\r
-function CshEntityItem(strAliasId, nTopicNum, strUrl) \r
-{\r
-    this.strAliasId = strAliasId;\r
-    this.nTopicNum = nTopicNum;\r
-    this.strUrl = strUrl;\r
-}\r
-\r
-\r
-//Try to get to topic number from hash string\r
-function GetTopicNumberAuto(strMayBeNumber)\r
-{\r
-   var nNum = -1;\r
-   if (strMayBeNumber.length >= 1)\r
-   {\r
-               var strTmp = strMayBeNumber;\r
-               var iEnd = strTmp.length;\r
-               for (var i=0; i<iEnd; i++)\r
-               {\r
-                         var ch = strTmp.charAt(i);\r
-                         if (!((ch == "0") || (ch == "1") ||\r
-                               (ch == "2") || (ch == "3") ||\r
-                               (ch == "4") || (ch == "5") ||\r
-                               (ch == "6") || (ch == "7") ||\r
-                               (ch == "8") || (ch == "9")))\r
-                             return GetTopicNumberById(strTmp);\r
-               }\r
-               nNum = parseInt(strTmp);\r
-   }\r
-   return nNum;\r
-}\r
-\r
-function GetTopicNumber(strHashString)\r
-{\r
-       var nTopicEndPos = strHashString.indexOf(',')\r
-       if (nTopicEndPos == -1) { // no window option.\r
-               return GetTopicNumberOnly(strHashString);\r
-       }\r
-       else {\r
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);\r
-               var strWithNavPane = 'withnavpane=true';\r
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)\r
-               {\r
-                       if (strWindowOption.length > strWithNavPane.length)\r
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);\r
-                       else\r
-                               gstrWindowOption = "";\r
-                       gbWithNavPane = true;\r
-               }\r
-               else\r
-                       gstrWindowOption = strWindowOption;\r
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            \r
-       }\r
-}\r
-\r
-function GetTopicNumberOnly(strTopicString)\r
-{\r
-       var nEqualPos = strTopicString.indexOf('=');\r
-       if (nEqualPos == -1) {\r
-               return GetTopicNumberAuto(strTopicString);\r
-       }\r
-       else {\r
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);\r
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {\r
-                       return parseInt(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {\r
-                       return GetTopicNumberById(strValue);\r
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {\r
-                       gstrURL = strValue;\r
-                       return -1;\r
-               }\r
-\r
-       }\r
-}\r
-\r
-//Find HomePage of the WebHelp system\r
-// we try to get the topic from remote project if it exists.\r
-function RedirectToHomePage()\r
-{\r
-       if (parent && parent != this && parent.goNext)\r
-       {\r
-               var sHome = parent.goNext();\r
-               if (sHome != "")\r
-                       RedirectTo(sHome);\r
-       }\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       if (parent && parent != this && parent.getRelHomePage)\r
-       {\r
-               return parent.getRelHomePage(document.location.href);\r
-       }\r
-       return "";\r
-}\r
-\r
-function addRemoteProject(strPath)\r
-{\r
-       if (parent && parent != this && parent.addProject)\r
-       {\r
-               parent.addProject(strPath);\r
-       }\r
-}\r
-\r
-//Redirect page to...\r
-function RedirectTo(strUrl)\r
-{\r
-   if (gstrWindowOption.length != 0) {\r
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);\r
-               // close current window and rename the stub window to current window.\r
-               wnd.focus();\r
-               if (parent)\r
-                       parent.close();\r
-   }\r
-   else {\r
-       parent.document.location.href = strUrl;\r
-       window.focus();\r
-  }\r
-}\r
-\r
-//Prompt the user that we can not find...\r
-function FailToFind(strMsg)\r
-{\r
-    RedirectToHomePage();\r
-}\r
-\r
-//Find topic by topic number (defined in h file)\r
-function FindTopicByTopicNum(nTopicNum)\r
-{\r
-       var i = 0;\r
-       var iEnd = gArrayCsh.length;\r
-       for (i=0; i<iEnd; i++)\r
-       {\r
-               if (gArrayCsh[i].nTopicNum == nTopicNum)\r
-               {\r
-                       var strURL = gArrayCsh[i].strUrl;\r
-                       if (gbWithNavPane)\r
-                       {\r
-                               var strHomePage = getHomePage();\r
-                               if (strHomePage.length != 0)\r
-                                       strURL = strHomePage + strURL;\r
-                       }       \r
-                       RedirectTo(strURL);\r
-                       return true;\r
-               }\r
-       }\r
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);\r
-       return false;\r
-}\r
-\r
-//Find topic by topic id (alias id defined in ali file)\r
-function GetTopicNumberById(strTopicId)\r
-{\r
-   var i = 0;\r
-   var iEnd = gArrayCsh.length;\r
-   for (i=0; i<iEnd; i++)\r
-   {\r
-       if (gArrayCsh[i].strAliasId == strTopicId)\r
-       {\r
-           return gArrayCsh[i].nTopicNum;\r
-        }\r
-   }\r
-   gstrURL = "";\r
-   return -1;\r
-}\r
-\r
-//Set Context-sensitive help entity...\r
-function SetCsh(n, strAliasId, nTopicNum, strUrl)\r
-{\r
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
-}\r
-\r
-\r
-function getHash()\r
-{\r
-       if (parent && parent != this)\r
-               return parent.location.hash;\r
-       else\r
-               return "";\r
-}\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-\r
-\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-//Find CSH according to hash string after this page\r
-if (getHash().length > 0)\r
-{\r
-   // VH 05/16/00 now support \r
-   // TopicID=\r
-   // TopicNumber=\r
-   // RemoteURL=   \r
-   // and WindowsOptions\r
-   // with the format #a=xxx,b=xxx,c=xxx...\r
-   var strHashString = getHash().toString();\r
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. \r
-   // so here need to change it back.\r
-   strHashString = strHashString.substring(1,strHashString.length);\r
-   strHashString = strHashString.replace("%072%057%057", "://");\r
-   var nTopicNum = GetTopicNumber(strHashString);\r
-\r
-   if (nTopicNum != -1)\r
-   {\r
-      FindTopicByTopicNum(nTopicNum);\r
-   }\r
-   else\r
-   {\r
-      if (gstrURL.length > 0) \r
-       RedirectTo(gstrURL);\r
-      else\r
-       RedirectToHomePage();\r
-   }\r
-}\r
-else\r
-{\r
-   RedirectToHomePage();\r
-}\r
-//-->\r
-</script>\r
-<noscript>\r
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>\r
-</noscript>\r
-</body>\r
-</html>\r
-\r
-\r
-\r
-\r
-\r
-\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="JavaScript">
+<!--
+
+var gArrayCsh = new Array();
+
+var gstrWindowOption = "";
+var gstrURL = "";
+var gbWithNavPane = false;
+
+function CshEntityItem(strAliasId, nTopicNum, strUrl) 
+{
+    this.strAliasId = strAliasId;
+    this.nTopicNum = nTopicNum;
+    this.strUrl = strUrl;
+}
+
+
+//Try to get to topic number from hash string
+function GetTopicNumberAuto(strMayBeNumber)
+{
+   var nNum = -1;
+   if (strMayBeNumber.length >= 1)
+   {
+               var strTmp = strMayBeNumber;
+               var iEnd = strTmp.length;
+               for (var i=0; i<iEnd; i++)
+               {
+                         var ch = strTmp.charAt(i);
+                         if (!((ch == "0") || (ch == "1") ||
+                               (ch == "2") || (ch == "3") ||
+                               (ch == "4") || (ch == "5") ||
+                               (ch == "6") || (ch == "7") ||
+                               (ch == "8") || (ch == "9")))
+                             return GetTopicNumberById(strTmp);
+               }
+               nNum = parseInt(strTmp);
+   }
+   return nNum;
+}
+
+function GetTopicNumber(strHashString)
+{
+       var nTopicEndPos = strHashString.indexOf(',')
+       if (nTopicEndPos == -1) { // no window option.
+               return GetTopicNumberOnly(strHashString);
+       }
+       else {
+               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
+               var strWithNavPane = 'withnavpane=true';
+               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
+               {
+                       if (strWindowOption.length > strWithNavPane.length)
+                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
+                       else
+                               gstrWindowOption = "";
+                       gbWithNavPane = true;
+               }
+               else
+                       gstrWindowOption = strWindowOption;
+               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            
+       }
+}
+
+function GetTopicNumberOnly(strTopicString)
+{
+       var nEqualPos = strTopicString.indexOf('=');
+       if (nEqualPos == -1) {
+               return GetTopicNumberAuto(strTopicString);
+       }
+       else {
+               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
+               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
+                       return parseInt(strValue);
+               } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {
+                       return GetTopicNumberById(strValue);
+               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
+                       gstrURL = strValue;
+                       return -1;
+               }
+
+       }
+}
+
+//Find HomePage of the WebHelp system
+// we try to get the topic from remote project if it exists.
+function RedirectToHomePage()
+{
+       if (parent && parent != this && parent.goNext)
+       {
+               var sHome = parent.goNext();
+               if (sHome != "")
+                       RedirectTo(sHome);
+       }
+}
+
+function getHomePage()
+{
+       if (parent && parent != this && parent.getRelHomePage)
+       {
+               return parent.getRelHomePage(document.location.href);
+       }
+       return "";
+}
+
+function addRemoteProject(strPath)
+{
+       if (parent && parent != this && parent.addProject)
+       {
+               parent.addProject(strPath);
+       }
+}
+
+//Redirect page to...
+function RedirectTo(strUrl)
+{
+   if (gstrWindowOption.length != 0) {
+               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
+               // close current window and rename the stub window to current window.
+               wnd.focus();
+               if (parent)
+                       parent.close();
+   }
+   else {
+       parent.document.location.href = strUrl;
+       window.focus();
+  }
+}
+
+//Prompt the user that we can not find...
+function FailToFind(strMsg)
+{
+    RedirectToHomePage();
+}
+
+//Find topic by topic number (defined in h file)
+function FindTopicByTopicNum(nTopicNum)
+{
+       var i = 0;
+       var iEnd = gArrayCsh.length;
+       for (i=0; i<iEnd; i++)
+       {
+               if (gArrayCsh[i].nTopicNum == nTopicNum)
+               {
+                       var strURL = gArrayCsh[i].strUrl;
+                       if (gbWithNavPane)
+                       {
+                               var strHomePage = getHomePage();
+                               if (strHomePage.length != 0)
+                                       strURL = strHomePage + strURL;
+                       }       
+                       RedirectTo(strURL);
+                       return true;
+               }
+       }
+       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
+       return false;
+}
+
+//Find topic by topic id (alias id defined in ali file)
+function GetTopicNumberById(strTopicId)
+{
+   var i = 0;
+   var iEnd = gArrayCsh.length;
+   for (i=0; i<iEnd; i++)
+   {
+       if (gArrayCsh[i].strAliasId == strTopicId)
+       {
+           return gArrayCsh[i].nTopicNum;
+        }
+   }
+   gstrURL = "";
+   return -1;
+}
+
+//Set Context-sensitive help entity...
+function SetCsh(n, strAliasId, nTopicNum, strUrl)
+{
+   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
+}
+
+
+function getHash()
+{
+       if (parent && parent != this)
+               return parent.location.hash;
+       else
+               return "";
+}
+//-->
+</script>
+<script language="javascript">
+<!--
+
+
+//-->
+</script>
+<script language="javascript">
+<!--
+//Find CSH according to hash string after this page
+if (getHash().length > 0)
+{
+   // VH 05/16/00 now support 
+   // TopicID=
+   // TopicNumber=
+   // RemoteURL=   
+   // and WindowsOptions
+   // with the format #a=xxx,b=xxx,c=xxx...
+   var strHashString = getHash().toString();
+   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. 
+   // so here need to change it back.
+   strHashString = strHashString.substring(1,strHashString.length);
+   strHashString = strHashString.replace("%072%057%057", "://");
+   var nTopicNum = GetTopicNumber(strHashString);
+
+   if (nTopicNum != -1)
+   {
+      FindTopicByTopicNum(nTopicNum);
+   }
+   else
+   {
+      if (gstrURL.length > 0) 
+       RedirectTo(gstrURL);
+      else
+       RedirectToHomePage();
+   }
+}
+else
+{
+   RedirectToHomePage();
+}
+//-->
+</script>
+<noscript>
+ <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
+</noscript>
+</body>
+</html>
+
+
+
+
+
+
index de2e5d955068e5135152a18b39282a1280ef05e5..1f8d6d7723e712de7dfe09085e3238e07473d413 100755 (executable)
-BODY { \r
-      background-color:#ffffff; \r
-      font-family:"Times New Roman" , serif;  }\r
-H1 { \r
-    font-weight:bold; \r
-    font-size:24.0pt;  }\r
-LI.kadov-H1 { \r
-             font-weight:bold; \r
-             font-size:24.0pt;  }\r
-H2 { \r
-    font-weight:bold; \r
-    font-size:18.0pt;  }\r
-LI.kadov-H2 { \r
-             font-weight:bold; \r
-             font-size:18.0pt;  }\r
-H3 { \r
-    font-weight:bold; \r
-    font-size:14.0pt;  }\r
-LI.kadov-H3 { \r
-             font-weight:bold; \r
-             font-size:14.0pt;  }\r
-H4 { \r
-    font-weight:bold; \r
-    font-size:12.0pt;  }\r
-LI.kadov-H4 { \r
-             font-weight:bold; \r
-             font-size:12.0pt;  }\r
-H5 { \r
-    font-weight:bold; \r
-    font-size:10.0pt;  }\r
-LI.kadov-H5 { \r
-             font-weight:bold; \r
-             font-size:10.0pt;  }\r
-H6 { \r
-    font-weight:bold; \r
-    font-size:8.0pt;  }\r
-LI.kadov-H6 { \r
-             font-weight:bold; \r
-             font-size:8.0pt;  }\r
-P { \r
-   font-size:12.0pt; \r
-   margin-top:0pt; \r
-   margin-bottom:0pt;  }\r
-LI.kadov-P { \r
-            font-size:12.0pt;  }\r
-A.expandspot { \r
-              color:#008000; \r
-              cursor:hand; \r
-              font-style:italic; \r
-              x-text-underline:off; \r
-              x-text-overline:off; \r
-              x-text-line-through:off; \r
-              text-decoration:none none none;  }\r
-SPAN.expandtext { \r
-                 font-style:italic; \r
-                 font-weight:normal; \r
-                 color:#ff0000;  }\r
-A.dropspot { \r
-            cursor:hand; \r
-            color:#008000; \r
-            font-style:italic; \r
-            x-text-underline:off; \r
-            x-text-overline:off; \r
-            x-text-line-through:off; \r
-            text-decoration:none none none;  }\r
-A.glossterm { \r
-             color:#800000; \r
-             cursor:hand; \r
-             font-style:italic; \r
-             x-text-underline:off; \r
-             x-text-overline:off; \r
-             x-text-line-through:off; \r
-             text-decoration:none none none;  }\r
-SPAN.glosstext { \r
-                font-style:italic; \r
-                font-weight:normal; \r
-                color:#0000ff;  }\r
-OL { \r
-    margin-top:0px; \r
-    margin-bottom:0px;  }\r
-UL { \r
-    margin-top:0px; \r
-    margin-bottom:0px;  }\r
-A:active {  }\r
-A:hover { \r
-         x-text-underline:Off; \r
-         text-decoration:none;  }\r
-A:link { \r
-        x-text-underline:Off; \r
-        text-decoration:none;  }\r
-A:visited { \r
-           x-text-underline:Off; \r
-           text-decoration:none;  }\r
-P.TODO { \r
-        font-weight:normal; \r
-        font-style:italic; \r
-        font-family:"Arial Black" , sans-serif;  }\r
-LI.kadov-P-CTODO { \r
-                  font-weight:normal; \r
-                  font-style:italic; \r
-                  font-family:"Arial Black" , sans-serif;  }\r
+BODY { 
+      background-color:#ffffff; 
+      font-family:"Times New Roman" , serif;  }
+H1 { 
+    font-weight:bold; 
+    font-size:24.0pt;  }
+LI.kadov-H1 { 
+             font-weight:bold; 
+             font-size:24.0pt;  }
+H2 { 
+    font-weight:bold; 
+    font-size:18.0pt;  }
+LI.kadov-H2 { 
+             font-weight:bold; 
+             font-size:18.0pt;  }
+H3 { 
+    font-weight:bold; 
+    font-size:14.0pt;  }
+LI.kadov-H3 { 
+             font-weight:bold; 
+             font-size:14.0pt;  }
+H4 { 
+    font-weight:bold; 
+    font-size:12.0pt;  }
+LI.kadov-H4 { 
+             font-weight:bold; 
+             font-size:12.0pt;  }
+H5 { 
+    font-weight:bold; 
+    font-size:10.0pt;  }
+LI.kadov-H5 { 
+             font-weight:bold; 
+             font-size:10.0pt;  }
+H6 { 
+    font-weight:bold; 
+    font-size:8.0pt;  }
+LI.kadov-H6 { 
+             font-weight:bold; 
+             font-size:8.0pt;  }
+P { 
+   font-size:12.0pt; 
+   margin-top:0pt; 
+   margin-bottom:0pt;  }
+LI.kadov-P { 
+            font-size:12.0pt;  }
+A.expandspot { 
+              color:#008000; 
+              cursor:hand; 
+              font-style:italic; 
+              x-text-underline:off; 
+              x-text-overline:off; 
+              x-text-line-through:off; 
+              text-decoration:none none none;  }
+SPAN.expandtext { 
+                 font-style:italic; 
+                 font-weight:normal; 
+                 color:#ff0000;  }
+A.dropspot { 
+            cursor:hand; 
+            color:#008000; 
+            font-style:italic; 
+            x-text-underline:off; 
+            x-text-overline:off; 
+            x-text-line-through:off; 
+            text-decoration:none none none;  }
+A.glossterm { 
+             color:#800000; 
+             cursor:hand; 
+             font-style:italic; 
+             x-text-underline:off; 
+             x-text-overline:off; 
+             x-text-line-through:off; 
+             text-decoration:none none none;  }
+SPAN.glosstext { 
+                font-style:italic; 
+                font-weight:normal; 
+                color:#0000ff;  }
+OL { 
+    margin-top:0px; 
+    margin-bottom:0px;  }
+UL { 
+    margin-top:0px; 
+    margin-bottom:0px;  }
+A:active {  }
+A:hover { 
+         x-text-underline:Off; 
+         text-decoration:none;  }
+A:link { 
+        x-text-underline:Off; 
+        text-decoration:none;  }
+A:visited { 
+           x-text-underline:Off; 
+           text-decoration:none;  }
+P.TODO { 
+        font-weight:normal; 
+        font-style:italic; 
+        font-family:"Arial Black" , sans-serif;  }
+LI.kadov-P-CTODO { 
+                  font-weight:normal; 
+                  font-style:italic; 
+                  font-family:"Arial Black" , sans-serif;  }
index 3eeb3c49656ad0f0c62497bfb3ac18e8e7a00177..46e8b0018d0c393b09a0c0587a2d9fd4866ca388 100755 (executable)
-BODY { \r
-      background-color:#ffffff; \r
-      font-family:"Times New Roman"  , serif;  }\r
-H1 { \r
-    font-weight:bold; \r
-    font-size:24.0pt; \r
-    font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-H1 { \r
-             font-weight:bold; \r
-             font-size:24.0pt;  }\r
-H2 { \r
-    font-weight:bold; \r
-    font-size:18.0pt; \r
-    font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-H2 { \r
-             font-weight:bold; \r
-             font-size:18.0pt;  }\r
-H3 { \r
-    font-weight:bold; \r
-    font-size:14.0pt; \r
-    font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-H3 { \r
-             font-weight:bold; \r
-             font-size:14.0pt;  }\r
-H4 { \r
-    font-weight:bold; \r
-    font-size:12.0pt; \r
-    font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-H4 { \r
-             font-weight:bold; \r
-             font-size:12.0pt;  }\r
-H5 { \r
-    font-weight:bold; \r
-    font-size:10.0pt; \r
-    font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-H5 { \r
-             font-weight:bold; \r
-             font-size:10.0pt;  }\r
-H6 { \r
-    font-weight:bold; \r
-    font-size:8.0pt; \r
-    font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-H6 { \r
-             font-weight:bold; \r
-             font-size:8.0pt;  }\r
-P { \r
-   font-size:12.0pt; \r
-   margin-top:1pt; \r
-   margin-bottom:1pt; \r
-   font-family:"Times New Roman"  , serif;  }\r
-LI.kadov-P { \r
-            font-size:12.0pt;  }\r
-A.expandspot { \r
-              color:#008000; \r
-              cursor:hand; \r
-              font-style:italic; \r
-              x-text-underline:off; \r
-              x-text-overline:off; \r
-              x-text-line-through:off; \r
-              text-decoration:none none none;  }\r
-SPAN.expandtext { \r
-                 font-style:italic; \r
-                 font-weight:normal; \r
-                 color:#ff0000;  }\r
-A.dropspot { \r
-            cursor:hand; \r
-            color:#008000; \r
-            font-style:italic; \r
-            x-text-underline:off; \r
-            x-text-overline:off; \r
-            x-text-line-through:off; \r
-            text-decoration:none none none;  }\r
-A.glossterm { \r
-             color:#800000; \r
-             cursor:hand; \r
-             font-style:italic; \r
-             x-text-underline:off; \r
-             x-text-overline:off; \r
-             x-text-line-through:off; \r
-             text-decoration:none none none;  }\r
-SPAN.glosstext { \r
-                font-style:italic; \r
-                font-weight:normal; \r
-                color:#0000ff;  }\r
-OL { \r
-    margin-top:0px; \r
-    margin-bottom:0px; \r
-    font-family:"Times New Roman"  , serif;  }\r
-UL { \r
-    margin-top:0px; \r
-    margin-bottom:0px; \r
-    font-family:"Times New Roman"  , serif;  }\r
-A:active {  }\r
-A:hover { \r
-         x-text-underline:Off; \r
-         text-decoration:none;  }\r
-A:link { \r
-        x-text-underline:Off; \r
-        text-decoration:none;  }\r
-A:visited { \r
-           x-text-underline:Off; \r
-           text-decoration:none;  }\r
-P.TODO { \r
-        font-weight:normal; \r
-        font-style:italic; \r
-        font-family:"Arial Black"  , sans-serif;  }\r
-LI.kadov-P-CTODO { \r
-                  font-weight:normal; \r
-                  font-style:italic; \r
-                  font-family:"Arial Black"  , sans-serif;  }\r
-ol ol { \r
-       margin-top:1px;  }\r
-ol ul { \r
-       margin-top:1px;  }\r
-ul ul { \r
-       margin-top:1px;  }\r
-ul ol { \r
-       margin-top:1px;  }\r
+BODY { 
+      background-color:#ffffff; 
+      font-family:"Times New Roman"  , serif;  }
+H1 { 
+    font-weight:bold; 
+    font-size:24.0pt; 
+    font-family:"Times New Roman"  , serif;  }
+LI.kadov-H1 { 
+             font-weight:bold; 
+             font-size:24.0pt;  }
+H2 { 
+    font-weight:bold; 
+    font-size:18.0pt; 
+    font-family:"Times New Roman"  , serif;  }
+LI.kadov-H2 { 
+             font-weight:bold; 
+             font-size:18.0pt;  }
+H3 { 
+    font-weight:bold; 
+    font-size:14.0pt; 
+    font-family:"Times New Roman"  , serif;  }
+LI.kadov-H3 { 
+             font-weight:bold; 
+             font-size:14.0pt;  }
+H4 { 
+    font-weight:bold; 
+    font-size:12.0pt; 
+    font-family:"Times New Roman"  , serif;  }
+LI.kadov-H4 { 
+             font-weight:bold; 
+             font-size:12.0pt;  }
+H5 { 
+    font-weight:bold; 
+    font-size:10.0pt; 
+    font-family:"Times New Roman"  , serif;  }
+LI.kadov-H5 { 
+             font-weight:bold; 
+             font-size:10.0pt;  }
+H6 { 
+    font-weight:bold; 
+    font-size:8.0pt; 
+    font-family:"Times New Roman"  , serif;  }
+LI.kadov-H6 { 
+             font-weight:bold; 
+             font-size:8.0pt;  }
+P { 
+   font-size:12.0pt; 
+   margin-top:1pt; 
+   margin-bottom:1pt; 
+   font-family:"Times New Roman"  , serif;  }
+LI.kadov-P { 
+            font-size:12.0pt;  }
+A.expandspot { 
+              color:#008000; 
+              cursor:hand; 
+              font-style:italic; 
+              x-text-underline:off; 
+              x-text-overline:off; 
+              x-text-line-through:off; 
+              text-decoration:none none none;  }
+SPAN.expandtext { 
+                 font-style:italic; 
+                 font-weight:normal; 
+                 color:#ff0000;  }
+A.dropspot { 
+            cursor:hand; 
+            color:#008000; 
+            font-style:italic; 
+            x-text-underline:off; 
+            x-text-overline:off; 
+            x-text-line-through:off; 
+            text-decoration:none none none;  }
+A.glossterm { 
+             color:#800000; 
+             cursor:hand; 
+             font-style:italic; 
+             x-text-underline:off; 
+             x-text-overline:off; 
+             x-text-line-through:off; 
+             text-decoration:none none none;  }
+SPAN.glosstext { 
+                font-style:italic; 
+                font-weight:normal; 
+                color:#0000ff;  }
+OL { 
+    margin-top:0px; 
+    margin-bottom:0px; 
+    font-family:"Times New Roman"  , serif;  }
+UL { 
+    margin-top:0px; 
+    margin-bottom:0px; 
+    font-family:"Times New Roman"  , serif;  }
+A:active {  }
+A:hover { 
+         x-text-underline:Off; 
+         text-decoration:none;  }
+A:link { 
+        x-text-underline:Off; 
+        text-decoration:none;  }
+A:visited { 
+           x-text-underline:Off; 
+           text-decoration:none;  }
+P.TODO { 
+        font-weight:normal; 
+        font-style:italic; 
+        font-family:"Arial Black"  , sans-serif;  }
+LI.kadov-P-CTODO { 
+                  font-weight:normal; 
+                  font-style:italic; 
+                  font-family:"Arial Black"  , sans-serif;  }
+ol ol { 
+       margin-top:1px;  }
+ol ul { 
+       margin-top:1px;  }
+ul ul { 
+       margin-top:1px;  }
+ul ol { 
+       margin-top:1px;  }
index 581805053ad610e95c56764e29a6b9b0da72e5c8..7f8e0df5a94d8df6302e155ad440ac805f899a8e 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Defining hypotheses TUI</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>\r
-<!--\r
-P { margin-top:0pt; margin-bottom:0pt; }\r
-LI.kadov-P {  }\r
--->\r
-</style><style type="text/css">\r
-<!--\r
-p.whs1 { font-weight:bold; }\r
-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
--->\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-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
-//-->\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\nTUI Scripts\nDefining Hypotheses");\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>Defining Hypotheses and Algorithms</h1>\r
-\r
-<h3>Defining 1D Hypotheses</h3>\r
-\r
-<p class="whs1"><a name=bookmark>1D Arithmetic</a></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">from geompy import \r
- *</p>\r
-\r
-<p class="whs2">import smesh</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create vertices</p>\r
-\r
-<p class="whs2">Point111 = MakeVertex( \r
- 0, &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point211 = MakeVertex(10, \r
- &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point121 = MakeVertex( \r
- 0, 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point221 = MakeVertex(10, \r
- 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point112 = MakeVertex( \r
- 0, &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point212 = MakeVertex(10, \r
- &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point122 = MakeVertex( \r
- 0, 10, 10)</p>\r
-\r
-<p class="whs2">Point222 = MakeVertex(10, \r
- 10, 10)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create edges</p>\r
-\r
-<p class="whs2">EdgeX111 = MakeEdge(Point111, \r
- Point211)</p>\r
-\r
-<p class="whs2">EdgeX121 = MakeEdge(Point121, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeX112 = MakeEdge(Point112, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeX122 = MakeEdge(Point122, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeY11 = MakeEdge(Point111, \r
- Point121)</p>\r
-\r
-<p class="whs2">EdgeY21 = MakeEdge(Point211, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeY12 = MakeEdge(Point112, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeY22 = MakeEdge(Point212, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeZ111 = MakeEdge(Point111, \r
- Point112)</p>\r
-\r
-<p class="whs2">EdgeZ211 = MakeEdge(Point211, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeZ121 = MakeEdge(Point121, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeZ221 = MakeEdge(Point221, \r
- Point222)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create faces</p>\r
-\r
-<p class="whs2">FaceX11 = MakeQuad(EdgeY11, \r
- EdgeZ111, EdgeY12, EdgeZ121)</p>\r
-\r
-<p class="whs2">FaceX21 = MakeQuad(EdgeY21, \r
- EdgeZ211, EdgeY22, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceY111 = MakeQuad(EdgeX111, \r
- EdgeZ111, EdgeX112, EdgeZ211)</p>\r
-\r
-<p class="whs2">FaceY121 = MakeQuad(EdgeX121, \r
- EdgeZ121, EdgeX122, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, \r
- EdgeY11, EdgeX121, EdgeY21)</p>\r
-\r
-<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, \r
- EdgeY12, EdgeX122, EdgeY22)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a solid</p>\r
-\r
-<p class="whs2">Block = MakeHexa(FaceX11, \r
- FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a compound</p>\r
-\r
-<p class="whs2">box = MakeCompound([Block])</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># add in the study</p>\r
-\r
-<p class="whs2">box_id = addToStudy(box, \r
- &quot;Box compound&quot;)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a hexahedral mesh on the box</p>\r
-\r
-<p class="whs2">hexa = smesh.Mesh(box, \r
- &quot;Box compound : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs2">algo = hexa.Segment()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;NumberOfSegments&quot; hypothesis to cut an edge in a \r
- fixed number of segments</p>\r
-\r
-<p class="whs2">algo.NumberOfSegments(4)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a quadrangle 2D algorithm for faces</p>\r
-\r
-<p class="whs2">hexa.Quadrangle()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a hexahedron 3D algorithm for solids</p>\r
-\r
-<p class="whs2">hexa.Hexahedron()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a local hypothesis</p>\r
-\r
-<p class="whs2">algo = hexa.Segment(EdgeX111)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;Arithmetic1D&quot; hypothesis to cut an edge in several \r
- segments with arithmetic length increasing</p>\r
-\r
-<p class="whs2">algo.Arithmetic1D(1, \r
- 4)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;Propagation&quot; hypothesis that propagates all other \r
- hypothesis on all edges on the opposite side in case of quadrangular faces</p>\r
-\r
-<p class="whs2">algo.Propagation()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># compute the mesh</p>\r
-\r
-<p class="whs2">hexa.Compute() </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h4><a name=bookmark9>Deflection 1D and Number of Segments</a></h4>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">import smesh</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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create vertices</p>\r
-\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;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 100., 0. &nbsp;)</p>\r
-\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, \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, \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, \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 \r
- the wire</p>\r
-\r
-<p class="whs2">face1 = geompy.MakeFace(wire, \r
- isPlanarFace)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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">&nbsp;</p>\r
-\r
-<p class="whs3"># 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 class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create hexahedral mesh</p>\r
-\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; \r
- hypothesis to be applied &nbsp;to \r
- each triangle</p>\r
-\r
-<p class="whs2">algo.MaxElementArea(30)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a quadrangle \r
- 2D algorithm for faces</p>\r
-\r
-<p class="whs2">hexa.Quadrangle()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a local hypothesis</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; \r
- hypothesis to cut an 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 &quot;Deflection1D&quot; \r
- hypothesis</p>\r
-\r
-<p class="whs2">algo.Deflection1D(1)</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
-\r
-<p>&nbsp;</p>\r
-\r
-<h4><a name=bookmark2>Start and End Length</a></h4>\r
-\r
-<p class="whs2">from geompy import \r
- *</p>\r
-\r
-<p class="whs2">import smesh</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create vertices</p>\r
-\r
-<p class="whs2">Point111 = MakeVertex( \r
- 0, &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point211 = MakeVertex(10, \r
- &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point121 = MakeVertex( \r
- 0, 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point221 = MakeVertex(10, \r
- 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point112 = MakeVertex( \r
- 0, &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point212 = MakeVertex(10, \r
- &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point122 = MakeVertex( \r
- 0, 10, 10)</p>\r
-\r
-<p class="whs2">Point222 = MakeVertex(10, \r
- 10, 10)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create edges</p>\r
-\r
-<p class="whs2">EdgeX111 = MakeEdge(Point111, \r
- Point211)</p>\r
-\r
-<p class="whs2">EdgeX121 = MakeEdge(Point121, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeX112 = MakeEdge(Point112, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeX122 = MakeEdge(Point122, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeY11 = MakeEdge(Point111, \r
- Point121)</p>\r
-\r
-<p class="whs2">EdgeY21 = MakeEdge(Point211, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeY12 = MakeEdge(Point112, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeY22 = MakeEdge(Point212, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeZ111 = MakeEdge(Point111, \r
- Point112)</p>\r
-\r
-<p class="whs2">EdgeZ211 = MakeEdge(Point211, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeZ121 = MakeEdge(Point121, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeZ221 = MakeEdge(Point221, \r
- Point222)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create faces</p>\r
-\r
-<p class="whs2">FaceX11 = MakeQuad(EdgeY11, \r
- EdgeZ111, EdgeY12, EdgeZ121)</p>\r
-\r
-<p class="whs2">FaceX21 = MakeQuad(EdgeY21, \r
- EdgeZ211, EdgeY22, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceY111 = MakeQuad(EdgeX111, \r
- EdgeZ111, EdgeX112, EdgeZ211)</p>\r
-\r
-<p class="whs2">FaceY121 = MakeQuad(EdgeX121, \r
- EdgeZ121, EdgeX122, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, \r
- EdgeY11, EdgeX121, EdgeY21)</p>\r
-\r
-<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, \r
- EdgeY12, EdgeX122, EdgeY22)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a solid</p>\r
-\r
-<p class="whs2">Block = MakeHexa(FaceX11, \r
- FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a compound</p>\r
-\r
-<p class="whs2">box = MakeCompound([Block])</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># add in the study</p>\r
-\r
-<p class="whs2">box_id = addToStudy(box, \r
- &quot;Box compound&quot;)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a hexahedral mesh on the box</p>\r
-\r
-<p class="whs2">hexa = smesh.Mesh(box, \r
- &quot;Box compound : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs2">algo = hexa.Segment()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;NumberOfSegments&quot; hypothesis to cut an edge in a \r
- fixed number of segments</p>\r
-\r
-<p class="whs2">algo.NumberOfSegments(4)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a quadrangle 2D algorithm for faces</p>\r
-\r
-<p class="whs2">hexa.Quadrangle()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a hexahedron 3D algorithm for solids</p>\r
-\r
-<p class="whs2">hexa.Hexahedron()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create a local hypothesis</p>\r
-\r
-<p class="whs2">algo = hexa.Segment(EdgeX111)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;StartEndLength&quot; hypothesis to cut an edge in several \r
- segments with increasing geometric length </p>\r
-\r
-<p class="whs2">algo.StartEndLength(1, \r
- 6)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;Propagation&quot; hypothesis that propagates all other \r
- hypothesis on all edges on the opposite side in case of quadrangular faces</p>\r
-\r
-<p class="whs2">algo.Propagation()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># compute the mesh</p>\r
-\r
-<p class="whs2">hexa.Compute() </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h4><a name=bookmark3>Average Length</a></h4>\r
-\r
-<p class="whs2">from geompy import \r
- *</p>\r
-\r
-<p class="whs2">import smesh</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create vertices</p>\r
-\r
-<p class="whs2">Point111 = MakeVertex( \r
- 0, &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point211 = MakeVertex(10, \r
- &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point121 = MakeVertex( \r
- 0, 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point221 = MakeVertex(10, \r
- 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point112 = MakeVertex( \r
- 0, &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point212 = MakeVertex(10, \r
- &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point122 = MakeVertex( \r
- 0, 10, 10)</p>\r
-\r
-<p class="whs2">Point222 = MakeVertex(10, \r
- 10, 10)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create edges</p>\r
-\r
-<p class="whs2">EdgeX111 = MakeEdge(Point111, \r
- Point211)</p>\r
-\r
-<p class="whs2">EdgeX121 = MakeEdge(Point121, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeX112 = MakeEdge(Point112, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeX122 = MakeEdge(Point122, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeY11 = MakeEdge(Point111, \r
- Point121)</p>\r
-\r
-<p class="whs2">EdgeY21 = MakeEdge(Point211, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeY12 = MakeEdge(Point112, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeY22 = MakeEdge(Point212, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeZ111 = MakeEdge(Point111, \r
- Point112)</p>\r
-\r
-<p class="whs2">EdgeZ211 = MakeEdge(Point211, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeZ121 = MakeEdge(Point121, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeZ221 = MakeEdge(Point221, \r
- Point222)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create faces</p>\r
-\r
-<p class="whs2">FaceX11 = MakeQuad(EdgeY11, \r
- EdgeZ111, EdgeY12, EdgeZ121)</p>\r
-\r
-<p class="whs2">FaceX21 = MakeQuad(EdgeY21, \r
- EdgeZ211, EdgeY22, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceY111 = MakeQuad(EdgeX111, \r
- EdgeZ111, EdgeX112, EdgeZ211)</p>\r
-\r
-<p class="whs2">FaceY121 = MakeQuad(EdgeX121, \r
- EdgeZ121, EdgeX122, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, \r
- EdgeY11, EdgeX121, EdgeY21)</p>\r
-\r
-<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, \r
- EdgeY12, EdgeX122, EdgeY22)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a solid</p>\r
-\r
-<p class="whs2">Block = 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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a hexahedral \r
- mesh on the box</p>\r
-\r
-<p class="whs2">hexa = smesh.Mesh(box, \r
- &quot;Box compound : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs2">algo = hexa.Segment()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs2">algo.NumberOfSegments(4)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a quadrangle \r
- 2D algorithm for faces</p>\r
-\r
-<p class="whs2">hexa.Quadrangle()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a hexahedron \r
- 3D algorithm for solids</p>\r
-\r
-<p class="whs2">hexa.Hexahedron()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a local hypothesis</p>\r
-\r
-<p class="whs2">algo = hexa.Segment(EdgeX111)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># define &quot;LocalLength&quot; \r
- hypothesis to cut an edge in several segments with the same length</p>\r
-\r
-<p class="whs2">algo.LocalLength(2)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># define &quot;Propagation&quot; \r
- hypothesis that propagates all other hypothesis on all edges on<span style="font-family: 'Times New Roman', serif;"> \r
- the opposite side in case of quadrangular faces</span></p>\r
-\r
-<p class="whs2">algo.Propagation()</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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3>Defining 2D and 3D hypotheses</h3>\r
-\r
-<h4><a name=bookmark4>Maximum Element Area</a></h4>\r
-\r
-<p class="whs4">import smesh</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
-\r
-<p class="whs5"># 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="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a vector from \r
- two points</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
-\r
-<p class="whs5"># create a face from the \r
- wire</p>\r
-\r
-<p class="whs4">face1 = 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
-\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="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a hexahedral mesh</p>\r
-\r
-<p class="whs4">hexa = smesh.Mesh(face1, \r
- &quot;Face compound : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs4">algo = hexa.Triangle()</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># define &quot;MaxElementArea&quot; \r
- hypothesis to be applied to each triangle</p>\r
-\r
-<p class="whs4">algo.MaxElementArea(7)</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a quadrangle 2D \r
- algorithm for faces</p>\r
-\r
-<p class="whs4">hexa.Quadrangle()</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create a local hypothesis</p>\r
-\r
-<p class="whs6">algo = hexa.Segment(wire)</p>\r
-\r
-<p class="whs5">&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
-\r
-<p class="whs4">algo.NumberOfSegments(10)</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># compute the mesh</p>\r
-\r
-<p class="whs4">hexa.Compute() </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4><a name=bookmark5>Maximum Element Volume</a></h4>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import \r
- salome</span></p>\r
-\r
-<p class="whs4">import geompy</p>\r
-\r
-<p class="whs4">import StdMeshers</p>\r
-\r
-<p class="whs4">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
- &quot;SMESH&quot;)</p>\r
-\r
-<p class="whs4">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.Init(salome.myStudyId);</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create a box</p>\r
-\r
-<p class="whs4">box = geompy.MakeCylinderRH(30, \r
- 50) #MakeBox(0., 0., 0., 100., 200., 300.)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># add the box to the \r
- study</p>\r
-\r
-<p class="whs4">idbox = geompy.addToStudy(box, \r
- &quot;box&quot;)</p>\r
-\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
-\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
-\r
-<p class="whs4">print &quot;-------------------------- \r
- NumberOfSegments&quot;</p>\r
-\r
-<p class="whs4">numberOfSegments \r
- = 7</p>\r
-\r
-<p class="whs4">hypNbSeg = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>\r
-\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
-\r
-<p class="whs4">print &quot;-------------------------- \r
- MaxElementArea&quot;</p>\r
-\r
-<p class="whs4">maxElementArea = \r
- 800</p>\r
-\r
-<p class="whs4">hypArea = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">hypArea.SetMaxElementArea(maxElementArea)</p>\r
-\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
-\r
-<p class="whs4">maxElementVolume \r
- = 900</p>\r
-\r
-<p class="whs4">hypVolume = smesh.CreateHypothesis(&quot;MaxElementVolume&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">hypVolume.SetMaxElementVolume(maxElementVolume)</p>\r
-\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
- &quot;MaxElementVolume_900&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># create algorithms</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- create Algorithms&quot;</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- Regular_1D&quot;</p>\r
-\r
-<p class="whs4">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<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
-\r
-<p class="whs4">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<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
-\r
-<p class="whs4">hexa3D = smesh.CreateHypothesis(&quot;Hexa_3D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(hexa3D), \r
- &quot;HEXA_3D&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs7"># initialize a mesh \r
- with the box</p>\r
-\r
-<p class="whs4">mesh = smesh.CreateMesh(box)</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(mesh), \r
- &quot;MeshBox&quot;)</p>\r
-\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
-\r
-<p class="whs4">mesh.AddHypothesis(box,hypNbSeg)</p>\r
-\r
-<p class="whs4">mesh.AddHypothesis(box,hypArea)</p>\r
-\r
-<p class="whs4">mesh.AddHypothesis(box,hypVolume)</p>\r
-\r
-<p class="whs4">mesh.AddHypothesis(box,regular1D)</p>\r
-\r
-<p class="whs4">mesh.AddHypothesis(box,mefisto2D)</p>\r
-\r
-<p class="whs4">mesh.AddHypothesis(box,hexa3D)</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
-\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
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h3>Defining Additional Hypotheses</h3>\r
-\r
-<h4><a name=bookmark6>Length from Edges</a></h4>\r
-\r
-<p class="whs2">import smesh</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
-\r
-<p>&nbsp;</p>\r
-\r
-<p># 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
-\r
-<p class="whs2">sketcher2 = geompy.MakeSketcher(&quot;Sketcher:F \r
- 20 20:TT 50 20:TT 50 50:TT 20 50:WW&quot;)</p>\r
-\r
-<p class="whs2">isPlanarFace = 1</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create faces from two wires</p>\r
-\r
-<p class="whs2">face1 = geompy.MakeFaces([sketcher1, \r
- sketcher2],isPlanarFace)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># add objects 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
-\r
-<p># create a mesh</p>\r
-\r
-<p class="whs2">hexa = 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
-\r
-<p class="whs2">algo.MaxElementArea(30)</p>\r
-\r
-<p>&nbsp;</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
-\r
-<p class="whs2">algo.LengthFromEdges()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># create local hypothesis</p>\r
-\r
-<p class="whs2">algo = hexa.Segment()</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># define &quot;NumberOfSegments&quot; hypothesis to cut an edge in a \r
- fixed number of segments</p>\r
-\r
-<p class="whs2">algo.NumberOfSegments(2)</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p># compute the mesh</p>\r
-\r
-<p class="whs2">hexa.Compute() </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h4><a name=bookmark7>Propagation</a></h4>\r
-\r
-<p class="whs2">from geompy import \r
- *</p>\r
-\r
-<p class="whs2">import smesh</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create vertices</p>\r
-\r
-<p class="whs2">Point111 = MakeVertex( \r
- 0, &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point211 = MakeVertex(10, \r
- &nbsp;0, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point121 = MakeVertex( \r
- 0, 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point221 = MakeVertex(10, \r
- 10, &nbsp;0)</p>\r
-\r
-<p class="whs2">Point112 = MakeVertex( \r
- 0, &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point212 = MakeVertex(10, \r
- &nbsp;0, 10)</p>\r
-\r
-<p class="whs2">Point122 = MakeVertex( \r
- 0, 10, 10)</p>\r
-\r
-<p class="whs2">Point222 = MakeVertex(10, \r
- 10, 10)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create edges</p>\r
-\r
-<p class="whs2">EdgeX111 = MakeEdge(Point111, \r
- Point211)</p>\r
-\r
-<p class="whs2">EdgeX121 = MakeEdge(Point121, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeX112 = MakeEdge(Point112, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeX122 = MakeEdge(Point122, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeY11 = MakeEdge(Point111, \r
- Point121)</p>\r
-\r
-<p class="whs2">EdgeY21 = MakeEdge(Point211, \r
- Point221)</p>\r
-\r
-<p class="whs2">EdgeY12 = MakeEdge(Point112, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeY22 = MakeEdge(Point212, \r
- Point222)</p>\r
-\r
-<p class="whs2">EdgeZ111 = MakeEdge(Point111, \r
- Point112)</p>\r
-\r
-<p class="whs2">EdgeZ211 = MakeEdge(Point211, \r
- Point212)</p>\r
-\r
-<p class="whs2">EdgeZ121 = MakeEdge(Point121, \r
- Point122)</p>\r
-\r
-<p class="whs2">EdgeZ221 = MakeEdge(Point221, \r
- Point222)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create faces</p>\r
-\r
-<p class="whs2">FaceX11 = MakeQuad(EdgeY11, \r
- EdgeZ111, EdgeY12, EdgeZ121)</p>\r
-\r
-<p class="whs2">FaceX21 = MakeQuad(EdgeY21, \r
- EdgeZ211, EdgeY22, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceY111 = MakeQuad(EdgeX111, \r
- EdgeZ111, EdgeX112, EdgeZ211)</p>\r
-\r
-<p class="whs2">FaceY121 = MakeQuad(EdgeX121, \r
- EdgeZ121, EdgeX122, EdgeZ221)</p>\r
-\r
-<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, \r
- EdgeY11, EdgeX121, EdgeY21)</p>\r
-\r
-<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, \r
- EdgeY12, EdgeX122, EdgeY22)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a solid</p>\r
-\r
-<p class="whs2">Block = 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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a hexahedral \r
- mesh on the box</p>\r
-\r
-<p class="whs2">hexa = smesh.Mesh(box, \r
- &quot;Box compound : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs2">algo = hexa.Segment()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs2">algo.NumberOfSegments(4)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a quadrangle \r
- 2D algorithm for faces</p>\r
-\r
-<p class="whs2">hexa.Quadrangle()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a hexahedron \r
- 3D algorithm for solids</p>\r
-\r
-<p class="whs2">hexa.Hexahedron()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"># create a local hypothesis</p>\r
-\r
-<p class="whs2">algo = hexa.Segment(EdgeX111)</p>\r
-\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
-\r
-<p class="whs2">algo.Arithmetic1D(1, \r
- 4)</p>\r
-\r
-<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
-\r
-<p class="whs2">algo.Propagation()</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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import \r
- salome</span></p>\r
-\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
-<p class="whs4">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.Init(salome.myStudyId);</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5"># create algorithms</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- create Algorithms&quot;</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- Regular_1D (Wire discretisation)&quot;</p>\r
-\r
-<p class="whs4">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(regular1D), \r
- &quot;Wire Discretisation&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- MEFISTO_2D (Triangle meshing algorithm)&quot;</p>\r
-\r
-<p class="whs4">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(mefisto2D), \r
- &quot;MEFISTO_2D&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- Quadrangle_2D (Quadrangle meshing algorithm)&quot;</p>\r
-\r
-<p class="whs4">quad2D = smesh.CreateHypothesis( \r
- &quot;Quadrangle_2D&quot;, &quot;libStdMeshersEngine.so&quot; )</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(quad2D), \r
- &quot;Quadrangle_2D&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- Hexa_3D (Hexahedron meshing algorithm)&quot;</p>\r
-\r
-<p class="whs4">hexa3D = smesh.CreateHypothesis(&quot;Hexa_3D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(hexa3D), \r
- &quot;HEXA_3D&quot;)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">print &quot;-------------------------- \r
- NETGEN_3D (Tetrahedron meshing algorithm)&quot;</p>\r
-\r
-<p class="whs4">netgen3D = smesh.CreateHypothesis(&quot;NETGEN_3D&quot;, \r
- &quot;libNETGENEngine.so&quot;)</p>\r
-\r
-<p class="whs4">smeshgui.SetName(salome.ObjectToID(netgen3D), \r
- &quot;NETGEN_3D&quot;)</p>\r
-\r
-<p class="whs4">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Defining hypotheses TUI</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
+<!--
+P { margin-top:0pt; margin-bottom:0pt; }
+LI.kadov-P {  }
+-->
+</style><style type="text/css">
+<!--
+p.whs1 { font-weight:bold; }
+p.whs2 { font-family:'Lucida Console' , monospace; }
+p.whs3 { font-family:'Times New Roman' , serif; }
+p.whs4 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
+p.whs6 { margin-top:0pt; margin-bottom:0pt; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nDefining Hypotheses");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Defining Hypotheses and Algorithms</h1>
+
+<h3>Defining 1D Hypotheses</h3>
+
+<p class="whs1"><a name=bookmark>1D Arithmetic</a></p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">from geompy import 
+ *</p>
+
+<p class="whs2">import smesh</p>
+
+<p>&nbsp;</p>
+
+<p># create vertices</p>
+
+<p class="whs2">Point111 = MakeVertex( 
+ 0, &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point211 = MakeVertex(10, 
+ &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point121 = MakeVertex( 
+ 0, 10, &nbsp;0)</p>
+
+<p class="whs2">Point221 = MakeVertex(10, 
+ 10, &nbsp;0)</p>
+
+<p class="whs2">Point112 = MakeVertex( 
+ 0, &nbsp;0, 10)</p>
+
+<p class="whs2">Point212 = MakeVertex(10, 
+ &nbsp;0, 10)</p>
+
+<p class="whs2">Point122 = MakeVertex( 
+ 0, 10, 10)</p>
+
+<p class="whs2">Point222 = MakeVertex(10, 
+ 10, 10)</p>
+
+<p>&nbsp;</p>
+
+<p># create edges</p>
+
+<p class="whs2">EdgeX111 = MakeEdge(Point111, 
+ Point211)</p>
+
+<p class="whs2">EdgeX121 = MakeEdge(Point121, 
+ Point221)</p>
+
+<p class="whs2">EdgeX112 = MakeEdge(Point112, 
+ Point212)</p>
+
+<p class="whs2">EdgeX122 = MakeEdge(Point122, 
+ Point222)</p>
+
+<p class="whs2">EdgeY11 = MakeEdge(Point111, 
+ Point121)</p>
+
+<p class="whs2">EdgeY21 = MakeEdge(Point211, 
+ Point221)</p>
+
+<p class="whs2">EdgeY12 = MakeEdge(Point112, 
+ Point122)</p>
+
+<p class="whs2">EdgeY22 = MakeEdge(Point212, 
+ Point222)</p>
+
+<p class="whs2">EdgeZ111 = MakeEdge(Point111, 
+ Point112)</p>
+
+<p class="whs2">EdgeZ211 = MakeEdge(Point211, 
+ Point212)</p>
+
+<p class="whs2">EdgeZ121 = MakeEdge(Point121, 
+ Point122)</p>
+
+<p class="whs2">EdgeZ221 = MakeEdge(Point221, 
+ Point222)</p>
+
+<p>&nbsp;</p>
+
+<p># create faces</p>
+
+<p class="whs2">FaceX11 = MakeQuad(EdgeY11, 
+ EdgeZ111, EdgeY12, EdgeZ121)</p>
+
+<p class="whs2">FaceX21 = MakeQuad(EdgeY21, 
+ EdgeZ211, EdgeY22, EdgeZ221)</p>
+
+<p class="whs2">FaceY111 = MakeQuad(EdgeX111, 
+ EdgeZ111, EdgeX112, EdgeZ211)</p>
+
+<p class="whs2">FaceY121 = MakeQuad(EdgeX121, 
+ EdgeZ121, EdgeX122, EdgeZ221)</p>
+
+<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, 
+ EdgeY11, EdgeX121, EdgeY21)</p>
+
+<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, 
+ EdgeY12, EdgeX122, EdgeY22)</p>
+
+<p>&nbsp;</p>
+
+<p># create a solid</p>
+
+<p class="whs2">Block = MakeHexa(FaceX11, 
+ FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>
+
+<p>&nbsp;</p>
+
+<p># create a compound</p>
+
+<p class="whs2">box = MakeCompound([Block])</p>
+
+<p>&nbsp;</p>
+
+<p># add in the study</p>
+
+<p class="whs2">box_id = addToStudy(box, 
+ &quot;Box compound&quot;)</p>
+
+<p>&nbsp;</p>
+
+<p># create a hexahedral mesh on the box</p>
+
+<p class="whs2">hexa = smesh.Mesh(box, 
+ &quot;Box compound : hexahedrical mesh&quot;)</p>
+
+<p class="whs2">algo = hexa.Segment()</p>
+
+<p>&nbsp;</p>
+
+<p># define &quot;NumberOfSegments&quot; hypothesis to cut an edge in a 
+ fixed number of segments</p>
+
+<p class="whs2">algo.NumberOfSegments(4)</p>
+
+<p>&nbsp;</p>
+
+<p># create a quadrangle 2D algorithm for faces</p>
+
+<p class="whs2">hexa.Quadrangle()</p>
+
+<p>&nbsp;</p>
+
+<p># create a hexahedron 3D algorithm for solids</p>
+
+<p class="whs2">hexa.Hexahedron()</p>
+
+<p>&nbsp;</p>
+
+<p># create a local hypothesis</p>
+
+<p class="whs2">algo = hexa.Segment(EdgeX111)</p>
+
+<p>&nbsp;</p>
+
+<p># define &quot;Arithmetic1D&quot; hypothesis to cut an edge in several 
+ segments with arithmetic length increasing</p>
+
+<p class="whs2">algo.Arithmetic1D(1, 
+ 4)</p>
+
+<p>&nbsp;</p>
+
+<p># define &quot;Propagation&quot; hypothesis that propagates all other 
+ hypothesis on all edges on the opposite side in case of quadrangular faces</p>
+
+<p class="whs2">algo.Propagation()</p>
+
+<p>&nbsp;</p>
+
+<p># compute the mesh</p>
+
+<p class="whs2">hexa.Compute() </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h4><a name=bookmark9>Deflection 1D and Number of Segments</a></h4>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">import smesh</p>
+
+<p class="whs2">import geompy</p>
+
+<p class="whs2">import salome</p>
+
+<p class="whs2">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create vertices</p>
+
+<p class="whs2">px &nbsp;&nbsp;= 
+ geompy.MakeVertex(100., 0. &nbsp;, 
+ 0. &nbsp;)</p>
+
+<p class="whs2">py &nbsp;&nbsp;= 
+ geompy.MakeVertex(0. &nbsp;, 
+ 100., 0. &nbsp;)</p>
+
+<p class="whs2">pz &nbsp;&nbsp;= 
+ geompy.MakeVertex(0. &nbsp;, 
+ 0. &nbsp;, 100.)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a vector from 
+ two points</p>
+
+<p class="whs2">vxy = geompy.MakeVector(px, 
+ py)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create an arc from 
+ three points</p>
+
+<p class="whs2">arc = geompy.MakeArc(py, 
+ pz, px)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a wire</p>
+
+<p class="whs2">wire = geompy.MakeWire([vxy, 
+ arc])</p>
+
+<p class="whs2">isPlanarFace = 1</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a face from 
+ the wire</p>
+
+<p class="whs2">face1 = geompy.MakeFace(wire, 
+ isPlanarFace)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"><span style="font-family: 'Times New Roman', serif;"># 
+ get edges from the face</span></p>
+
+<p class="whs2">vxy,arc = geompy.SubShapeAll(face1,geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># add objects in the 
+ study</p>
+
+<p class="whs2">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>
+
+<p class="whs2">id_arc = geompy.addToStudyInFather(face1,arc,&quot;Arc 
+ Edge&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># display faces</p>
+
+<p class="whs2">gg.createAndDisplayGO(id_face1)</p>
+
+<p class="whs2">gg.setDisplayMode(id_face1,1)</p>
+
+<p class="whs2">gg.setTransparency(id_face1,0.2)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create hexahedral mesh</p>
+
+<p class="whs2">hexa = smesh.Mesh(face1, 
+ &quot;Face compound : hexahedrical mesh&quot;)</p>
+
+<p class="whs2">algo = hexa.Triangle()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;MaxElementArea&quot; 
+ hypothesis</p>
+
+<p class="whs2">algo.MaxElementArea(30)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a local hypothesis 
+ on the wire</p>
+
+<p class="whs2">algo = hexa.Segment(wire)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut a straight edge in a fixed number of segments</p>
+
+<p class="whs2">algo.NumberOfSegments(6)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define a local &quot;Deflection1D&quot; 
+ hypothesis on the arc</p>
+
+<p class="whs2">algo = hexa.Segment(arc)</p>
+
+<p class="whs2">algo.Deflection1D(1)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># compute the mesh</p>
+
+<p class="whs2">hexa.Compute() </p>
+
+<p>&nbsp;</p>
+
+<h4><a name=bookmark2>Start and End Length</a></h4>
+
+<p class="whs2">from geompy import 
+ *</p>
+
+<p class="whs2">import smesh</p>
+
+<p>&nbsp;</p>
+
+<p># create vertices</p>
+
+<p class="whs2">Point111 = MakeVertex( 
+ 0, &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point211 = MakeVertex(10, 
+ &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point121 = MakeVertex( 
+ 0, 10, &nbsp;0)</p>
+
+<p class="whs2">Point221 = MakeVertex(10, 
+ 10, &nbsp;0)</p>
+
+<p class="whs2">Point112 = MakeVertex( 
+ 0, &nbsp;0, 10)</p>
+
+<p class="whs2">Point212 = MakeVertex(10, 
+ &nbsp;0, 10)</p>
+
+<p class="whs2">Point122 = MakeVertex( 
+ 0, 10, 10)</p>
+
+<p class="whs2">Point222 = MakeVertex(10, 
+ 10, 10)</p>
+
+<p>&nbsp;</p>
+
+<p># create edges</p>
+
+<p class="whs2">EdgeX111 = MakeEdge(Point111, 
+ Point211)</p>
+
+<p class="whs2">EdgeX121 = MakeEdge(Point121, 
+ Point221)</p>
+
+<p class="whs2">EdgeX112 = MakeEdge(Point112, 
+ Point212)</p>
+
+<p class="whs2">EdgeX122 = MakeEdge(Point122, 
+ Point222)</p>
+
+<p class="whs2">EdgeY11 = MakeEdge(Point111, 
+ Point121)</p>
+
+<p class="whs2">EdgeY21 = MakeEdge(Point211, 
+ Point221)</p>
+
+<p class="whs2">EdgeY12 = MakeEdge(Point112, 
+ Point122)</p>
+
+<p class="whs2">EdgeY22 = MakeEdge(Point212, 
+ Point222)</p>
+
+<p class="whs2">EdgeZ111 = MakeEdge(Point111, 
+ Point112)</p>
+
+<p class="whs2">EdgeZ211 = MakeEdge(Point211, 
+ Point212)</p>
+
+<p class="whs2">EdgeZ121 = MakeEdge(Point121, 
+ Point122)</p>
+
+<p class="whs2">EdgeZ221 = MakeEdge(Point221, 
+ Point222)</p>
+
+<p>&nbsp;</p>
+
+<p># create faces</p>
+
+<p class="whs2">FaceX11 = MakeQuad(EdgeY11, 
+ EdgeZ111, EdgeY12, EdgeZ121)</p>
+
+<p class="whs2">FaceX21 = MakeQuad(EdgeY21, 
+ EdgeZ211, EdgeY22, EdgeZ221)</p>
+
+<p class="whs2">FaceY111 = MakeQuad(EdgeX111, 
+ EdgeZ111, EdgeX112, EdgeZ211)</p>
+
+<p class="whs2">FaceY121 = MakeQuad(EdgeX121, 
+ EdgeZ121, EdgeX122, EdgeZ221)</p>
+
+<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, 
+ EdgeY11, EdgeX121, EdgeY21)</p>
+
+<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, 
+ EdgeY12, EdgeX122, EdgeY22)</p>
+
+<p>&nbsp;</p>
+
+<p># create a solid</p>
+
+<p class="whs2">Block = MakeHexa(FaceX11, 
+ FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>
+
+<p>&nbsp;</p>
+
+<p># create a compound</p>
+
+<p class="whs2">box = MakeCompound([Block])</p>
+
+<p>&nbsp;</p>
+
+<p># add in the study</p>
+
+<p class="whs2">box_id = addToStudy(box, 
+ &quot;Box compound&quot;)</p>
+
+<p>&nbsp;</p>
+
+<p># create a hexahedral mesh on the box</p>
+
+<p class="whs2">hexa = smesh.Mesh(box, 
+ &quot;Box compound : hexahedrical mesh&quot;)</p>
+
+<p class="whs2">algo = hexa.Segment()</p>
+
+<p>&nbsp;</p>
+
+<p># define &quot;NumberOfSegments&quot; hypothesis to cut an edge in a 
+ fixed number of segments</p>
+
+<p class="whs2">algo.NumberOfSegments(4)</p>
+
+<p>&nbsp;</p>
+
+<p># create a quadrangle 2D algorithm for faces</p>
+
+<p class="whs2">hexa.Quadrangle()</p>
+
+<p>&nbsp;</p>
+
+<p># create a hexahedron 3D algorithm for solids</p>
+
+<p class="whs2">hexa.Hexahedron()</p>
+
+<p>&nbsp;</p>
+
+<p># create a local hypothesis</p>
+
+<p class="whs2">algo = hexa.Segment(EdgeX111)</p>
+
+<p>&nbsp;</p>
+
+<p># define &quot;StartEndLength&quot; hypothesis to cut an edge in several 
+ segments with increasing geometric length </p>
+
+<p class="whs2">algo.StartEndLength(1, 
+ 6)</p>
+
+<p>&nbsp;</p>
+
+<p># define &quot;Propagation&quot; hypothesis that propagates all other 
+ hypothesis on all edges on the opposite side in case of quadrangular faces</p>
+
+<p class="whs2">algo.Propagation()</p>
+
+<p>&nbsp;</p>
+
+<p># compute the mesh</p>
+
+<p class="whs2">hexa.Compute() </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h4><a name=bookmark3>Average Length</a></h4>
+
+<p class="whs2">from geompy import 
+ *</p>
+
+<p class="whs2">import smesh</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create vertices</p>
+
+<p class="whs2">Point111 = MakeVertex( 
+ 0, &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point211 = MakeVertex(10, 
+ &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point121 = MakeVertex( 
+ 0, 10, &nbsp;0)</p>
+
+<p class="whs2">Point221 = MakeVertex(10, 
+ 10, &nbsp;0)</p>
+
+<p class="whs2">Point112 = MakeVertex( 
+ 0, &nbsp;0, 10)</p>
+
+<p class="whs2">Point212 = MakeVertex(10, 
+ &nbsp;0, 10)</p>
+
+<p class="whs2">Point122 = MakeVertex( 
+ 0, 10, 10)</p>
+
+<p class="whs2">Point222 = MakeVertex(10, 
+ 10, 10)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create edges</p>
+
+<p class="whs2">EdgeX111 = MakeEdge(Point111, 
+ Point211)</p>
+
+<p class="whs2">EdgeX121 = MakeEdge(Point121, 
+ Point221)</p>
+
+<p class="whs2">EdgeX112 = MakeEdge(Point112, 
+ Point212)</p>
+
+<p class="whs2">EdgeX122 = MakeEdge(Point122, 
+ Point222)</p>
+
+<p class="whs2">EdgeY11 = MakeEdge(Point111, 
+ Point121)</p>
+
+<p class="whs2">EdgeY21 = MakeEdge(Point211, 
+ Point221)</p>
+
+<p class="whs2">EdgeY12 = MakeEdge(Point112, 
+ Point122)</p>
+
+<p class="whs2">EdgeY22 = MakeEdge(Point212, 
+ Point222)</p>
+
+<p class="whs2">EdgeZ111 = MakeEdge(Point111, 
+ Point112)</p>
+
+<p class="whs2">EdgeZ211 = MakeEdge(Point211, 
+ Point212)</p>
+
+<p class="whs2">EdgeZ121 = MakeEdge(Point121, 
+ Point122)</p>
+
+<p class="whs2">EdgeZ221 = MakeEdge(Point221, 
+ Point222)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create faces</p>
+
+<p class="whs2">FaceX11 = MakeQuad(EdgeY11, 
+ EdgeZ111, EdgeY12, EdgeZ121)</p>
+
+<p class="whs2">FaceX21 = MakeQuad(EdgeY21, 
+ EdgeZ211, EdgeY22, EdgeZ221)</p>
+
+<p class="whs2">FaceY111 = MakeQuad(EdgeX111, 
+ EdgeZ111, EdgeX112, EdgeZ211)</p>
+
+<p class="whs2">FaceY121 = MakeQuad(EdgeX121, 
+ EdgeZ121, EdgeX122, EdgeZ221)</p>
+
+<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, 
+ EdgeY11, EdgeX121, EdgeY21)</p>
+
+<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, 
+ EdgeY12, EdgeX122, EdgeY22)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a solid</p>
+
+<p class="whs2">Block = MakeHexa(FaceX11, 
+ FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a compound</p>
+
+<p class="whs2">box = MakeCompound([Block])</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># add in the study</p>
+
+<p class="whs2">box_id = addToStudy(box, 
+ &quot;Box compound&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a hexahedral 
+ mesh on the box</p>
+
+<p class="whs2">hexa = smesh.Mesh(box, 
+ &quot;Box compound : hexahedrical mesh&quot;)</p>
+
+<p class="whs2">algo = hexa.Segment()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut an edge in a fixed number of segments</p>
+
+<p class="whs2">algo.NumberOfSegments(4)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a quadrangle 
+ 2D algorithm for faces</p>
+
+<p class="whs2">hexa.Quadrangle()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a hexahedron 
+ 3D algorithm for solids</p>
+
+<p class="whs2">hexa.Hexahedron()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a local hypothesis</p>
+
+<p class="whs2">algo = hexa.Segment(EdgeX111)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;LocalLength&quot; 
+ hypothesis to cut an edge in several segments with the same length</p>
+
+<p class="whs2">algo.LocalLength(2)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;Propagation&quot; 
+ hypothesis that propagates all other hypothesis on all edges on<span style="font-family: 'Times New Roman', serif;"> 
+ the opposite side in case of quadrangular faces</span></p>
+
+<p class="whs2">algo.Propagation()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># compute the mesh</p>
+
+<p class="whs2">hexa.Compute() </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3>Defining 2D and 3D hypotheses</h3>
+
+<h4><a name=bookmark4>Maximum Element Area</a></h4>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import 
+ smesh</span></p>
+
+<p class="whs4">import geompy</p>
+
+<p class="whs4">import salome</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># create a face</p>
+
+<p class="whs4">px &nbsp;&nbsp;= 
+ geompy.MakeVertex(100., 0. &nbsp;, 
+ 0. &nbsp;)</p>
+
+<p class="whs4">py &nbsp;&nbsp;= 
+ geompy.MakeVertex(0. &nbsp;, 
+ 100., 0. &nbsp;)</p>
+
+<p class="whs4">pz &nbsp;&nbsp;= 
+ geompy.MakeVertex(0. &nbsp;, 
+ 0. &nbsp;, 100.)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">vxy = geompy.MakeVector(px, 
+ py)</p>
+
+<p class="whs4">arc = geompy.MakeArc(py, 
+ pz, px)</p>
+
+<p class="whs4">wire = geompy.MakeWire([vxy, 
+ arc])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">isPlanarFace = 1</p>
+
+<p class="whs4">face = geompy.MakeFace(wire, 
+ isPlanarFace)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># add the face in the 
+ study</p>
+
+<p class="whs4">id_face = geompy.addToStudy(face, 
+ &quot;Face to be meshed&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># create a mesh</p>
+
+<p class="whs4">tria_mesh = smesh.Mesh(face, 
+ &quot;Face : triangulation&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># define 1D meshing:</p>
+
+<p class="whs4">algo = tria_mesh.Segment()</p>
+
+<p class="whs4">algo.NumberOfSegments(20)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># define 2D meshing:</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"># assign triangulation 
+ algorithm</p>
+
+<p class="whs4">algo = tria_mesh.Triangle()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># apply &quot;Max Element 
+ Area&quot; hypothesis to each triangle</p>
+
+<p class="whs4">algo.MaxElementArea(100)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># compute the mesh</p>
+
+<p class="whs4">tria_mesh.Compute() 
+ &nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4><a name=bookmark5>Maximum Element Volume</a></h4>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs4">import geompy</p>
+
+<p class="whs4">import StdMeshers</p>
+
+<p class="whs4">import NETGENPlugin</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs4">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs4">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># create a box</p>
+
+<p class="whs4">box = geompy.MakeCylinderRH(30, 
+ 50) #MakeBox(0., 0., 0., </p>
+
+<p class="whs4">100., 200., 300.)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># add the box in the 
+ study</p>
+
+<p class="whs4">idbox = geompy.addToStudy(box, 
+ &quot;box&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># create a set of hypotheses</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"># Number of Segments</p>
+
+<p class="whs4">numberOfSegments 
+ = 7</p>
+
+<p class="whs4">hypNbSeg = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>
+
+<p class="whs4">print hypNbSeg.GetName()</p>
+
+<p class="whs4">print hypNbSeg.GetNumberOfSegments()</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(hypNbSeg), 
+ &quot;NumberOfSegments_7&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># Max Element Area</p>
+
+<p class="whs4">maxElementArea = 
+ 800</p>
+
+<p class="whs4">hypArea = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">hypArea.SetMaxElementArea(maxElementArea)</p>
+
+<p class="whs4">print hypArea.GetName()</p>
+
+<p class="whs4">print hypArea.GetMaxElementArea()</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(hypArea), 
+ &quot;MaxElementArea_800&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># Max Element Volume</p>
+
+<p class="whs4">maxElementVolume 
+ = 900</p>
+
+<p class="whs4">hypVolume = smesh.CreateHypothesis(&quot;MaxElementVolume&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">hypVolume.SetMaxElementVolume(maxElementVolume)</p>
+
+<p class="whs4">print hypVolume.GetName()</p>
+
+<p class="whs4">print hypVolume.GetMaxElementVolume()</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(hypVolume), 
+ &quot;MaxElementVolume_900&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># create a set of algorithms</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"># Regular_1D</p>
+
+<p class="whs4">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(regular1D), 
+ &quot;Wire Discretisation&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># MEFISTO_2D</p>
+
+<p class="whs4">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(mefisto2D), 
+ &quot;MEFISTO_2D&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># NETGEN_3D (Tetrahedron 
+ meshing algorithm)</p>
+
+<p class="whs4">tetra3D = smesh.CreateHypothesis(&quot;NETGEN_3D&quot;, 
+ &quot;libNETGENEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(tetra3D), 
+ &quot;NETGEN_3D&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># initialize a mesh 
+ with the box</p>
+
+<p class="whs4">mesh = smesh.CreateMesh(box)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(mesh), 
+ &quot;MeshBox&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># add hypotheses and 
+ algorithms to the box</p>
+
+<p class="whs4">mesh.AddHypothesis(box,hypNbSeg)</p>
+
+<p class="whs4">mesh.AddHypothesis(box,hypArea)</p>
+
+<p class="whs4">mesh.AddHypothesis(box,hypVolume)</p>
+
+<p class="whs4">mesh.AddHypothesis(box,regular1D)</p>
+
+<p class="whs4">mesh.AddHypothesis(box,mefisto2D)</p>
+
+<p class="whs4">mesh.AddHypothesis(box,tetra3D)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"># compute the mesh</p>
+
+<p class="whs4">ret = smesh.Compute(mesh,box)</p>
+
+<p class="whs4">if ret == 0:</p>
+
+<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;probleme when computing the mesh&quot;</p>
+
+<p class="whs4">else:</p>
+
+<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Computation succeded&quot;</p>
+
+<p class="whs4">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4><a name=bookmark6>Length from Edges</a></h4>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs2">import geompy</p>
+
+<p class="whs2">import smesh</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create sketchers</p>
+
+<p class="whs2">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F 
+ 0 0:TT 70 0:TT 70 70:TT 0 70:WW&quot;)</p>
+
+<p class="whs2">sketcher2 = geompy.MakeSketcher(&quot;Sketcher:F 
+ 20 20:TT 50 20:TT 50 50:TT 20 50:WW&quot;)</p>
+
+<p class="whs2">isPlanarFace = 1</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a face from 
+ two wires</p>
+
+<p class="whs2">face1 = geompy.MakeFaces([sketcher1, 
+ sketcher2],isPlanarFace)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># add object in the study</p>
+
+<p class="whs2">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a mesh</p>
+
+<p class="whs2">tria = smesh.Mesh(face1, 
+ &quot;Face : triangle 2D mesh&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># Define 1D meshing</p>
+
+<p class="whs2">algo = tria.Segment()</p>
+
+<p class="whs2">algo.NumberOfSegments(2)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create and assign the 
+ algorithm for 2D meshing with triangles</p>
+
+<p class="whs2">algo = tria.Triangle()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create and assign &quot;LengthFromEdges&quot; 
+ hypothesis to build triangles </p>
+
+<p class="whs3"># based on the length 
+ of the edges taken from the wire</p>
+
+<p class="whs2">algo.LengthFromEdges()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># compute the mesh</p>
+
+<p class="whs2">tria.Compute() </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3>Defining Additional Hypotheses</h3>
+
+<h4><a name=bookmark7>Propagation</a></h4>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">from 
+ geompy import *</span></p>
+
+<p class="whs2">import smesh</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create vertices</p>
+
+<p class="whs2">Point111 = MakeVertex( 
+ 0, &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point211 = MakeVertex(10, 
+ &nbsp;0, &nbsp;0)</p>
+
+<p class="whs2">Point121 = MakeVertex( 
+ 0, 10, &nbsp;0)</p>
+
+<p class="whs2">Point221 = MakeVertex(10, 
+ 10, &nbsp;0)</p>
+
+<p class="whs2">Point112 = MakeVertex( 
+ 0, &nbsp;0, 10)</p>
+
+<p class="whs2">Point212 = MakeVertex(10, 
+ &nbsp;0, 10)</p>
+
+<p class="whs2">Point122 = MakeVertex( 
+ 0, 10, 10)</p>
+
+<p class="whs2">Point222 = MakeVertex(10, 
+ 10, 10)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create edges</p>
+
+<p class="whs2">EdgeX111 = MakeEdge(Point111, 
+ Point211)</p>
+
+<p class="whs2">EdgeX121 = MakeEdge(Point121, 
+ Point221)</p>
+
+<p class="whs2">EdgeX112 = MakeEdge(Point112, 
+ Point212)</p>
+
+<p class="whs2">EdgeX122 = MakeEdge(Point122, 
+ Point222)</p>
+
+<p class="whs2">EdgeY11 = MakeEdge(Point111, 
+ Point121)</p>
+
+<p class="whs2">EdgeY21 = MakeEdge(Point211, 
+ Point221)</p>
+
+<p class="whs2">EdgeY12 = MakeEdge(Point112, 
+ Point122)</p>
+
+<p class="whs2">EdgeY22 = MakeEdge(Point212, 
+ Point222)</p>
+
+<p class="whs2">EdgeZ111 = MakeEdge(Point111, 
+ Point112)</p>
+
+<p class="whs2">EdgeZ211 = MakeEdge(Point211, 
+ Point212)</p>
+
+<p class="whs2">EdgeZ121 = MakeEdge(Point121, 
+ Point122)</p>
+
+<p class="whs2">EdgeZ221 = MakeEdge(Point221, 
+ Point222)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create faces</p>
+
+<p class="whs2">FaceX11 = MakeQuad(EdgeY11, 
+ EdgeZ111, EdgeY12, EdgeZ121)</p>
+
+<p class="whs2">FaceX21 = MakeQuad(EdgeY21, 
+ EdgeZ211, EdgeY22, EdgeZ221)</p>
+
+<p class="whs2">FaceY111 = MakeQuad(EdgeX111, 
+ EdgeZ111, EdgeX112, EdgeZ211)</p>
+
+<p class="whs2">FaceY121 = MakeQuad(EdgeX121, 
+ EdgeZ121, EdgeX122, EdgeZ221)</p>
+
+<p class="whs2">FaceZ11 = MakeQuad(EdgeX111, 
+ EdgeY11, EdgeX121, EdgeY21)</p>
+
+<p class="whs2">FaceZ12 = MakeQuad(EdgeX112, 
+ EdgeY12, EdgeX122, EdgeY22)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a solid</p>
+
+<p class="whs2">box = MakeHexa(FaceX11, 
+ FaceX21, FaceY111, FaceY121, FaceZ11, FaceZ12)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># add in the study</p>
+
+<p class="whs2">box_id = addToStudy(box, 
+ &quot;Box&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a hexahedral 
+ mesh on the box</p>
+
+<p class="whs2">hexa = smesh.Mesh(box, 
+ &quot;Box : hexahedrical mesh&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create an 1D algorithm 
+ for edges</p>
+
+<p class="whs2">algo = hexa.Segment()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut an edge in a fixed number of segments</p>
+
+<p class="whs2">algo.NumberOfSegments(4)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a quadrangle 
+ 2D algorithm for faces</p>
+
+<p class="whs2">hexa.Quadrangle()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a hexahedron 
+ 3D algorithm for solids</p>
+
+<p class="whs2">hexa.Hexahedron()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># create a local hypothesis</p>
+
+<p class="whs2">algo = hexa.Segment(EdgeX111)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;Arithmetic1D&quot; 
+ hypothesis to cut an edge<span style="font-family: 'Times New Roman', serif;"> 
+ in several segments with increasing length</span></p>
+
+<p class="whs2">algo.Arithmetic1D(1, 
+ 4)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># define &quot;Propagation&quot; 
+ hypothesis that propagates all other 1D hypotheses</p>
+
+<p class="whs3"># from all edges on the 
+ opposite side of a face in case of quadrangular faces</p>
+
+<p class="whs2">algo.Propagation()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"># compute the mesh</p>
+
+<p class="whs2">hexa.Compute() &nbsp;</p>
+
+<h3><a name=bookmark8>Defining Meshing Algorithms</a></h3>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs4">import StdMeshers</p>
+
+<p class="whs4">import NETGENPlugin</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs4">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs4">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6"># create algorithms</p>
+
+<p class="whs4">print &quot;-------------------------- 
+ create Algorithms&quot;</p>
+
+<p class="whs4">print &quot;-------------------------- 
+ Regular_1D (Wire discretisation)&quot;</p>
+
+<p class="whs4">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(regular1D), 
+ &quot;Wire Discretisation&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">print &quot;-------------------------- 
+ MEFISTO_2D (Triangle meshing algorithm)&quot;</p>
+
+<p class="whs4">mefisto2D = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(mefisto2D), 
+ &quot;MEFISTO_2D&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">print &quot;-------------------------- 
+ Quadrangle_2D (Quadrangle meshing algorithm)&quot;</p>
+
+<p class="whs4">quad2D = smesh.CreateHypothesis( 
+ &quot;Quadrangle_2D&quot;, &quot;libStdMeshersEngine.so&quot; )</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(quad2D), 
+ &quot;Quadrangle_2D&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">print &quot;-------------------------- 
+ Hexa_3D (Hexahedron meshing algorithm)&quot;</p>
+
+<p class="whs4">hexa3D = smesh.CreateHypothesis(&quot;Hexa_3D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(hexa3D), 
+ &quot;HEXA_3D&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">print &quot;-------------------------- 
+ NETGEN_3D (Tetrahedron meshing algorithm)&quot;</p>
+
+<p class="whs4">netgen3D = smesh.CreateHypothesis(&quot;NETGEN_3D&quot;, 
+ &quot;libNETGENEngine.so&quot;)</p>
+
+<p class="whs4">smeshgui.SetName(salome.ObjectToID(netgen3D), 
+ &quot;NETGEN_3D&quot;)</p>
+
+<p class="whs4">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs6">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 85b2735713c906a44caab08425540d93ccd97383..02a7b47e274748e575f706f9a4e5cf3c8f200273 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Deleting Groups</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-p.whs1 { margin-top:0pt; margin-bottom:0pt; }\r
-img_whs2 { border:none; width:306px; height:234px; float:none; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-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\nGrouping elements\nDeleting Groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Deleting Groups</h1>\r
-\r
-<p class="whs1">To delete a group in the \r
- <span style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>Mesh \r
- </B></span><span style="font-family: Arial, sans-serif;">-&gt;</span><span \r
- style="font-weight: bold;"><B> Delete Groups</B></span> and select one or several \r
- groups you wish to delete in the 3D viewer or in the Object Browser.</p>\r
-\r
-<p class="whs1">The selected groups will \r
- be listed in <span style="font-weight: bold;"><B>Delete groups with contents</B></span> \r
- menu. Then click Ok button to remove the selected groups and close the \r
- menu or Apply button to remove them and proceed with the selection. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="pics/deletegroups.png" x-maintain-ratio="TRUE" width="306px" height="234px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">Please, note that this \r
- operation <span style="font-weight: bold;"><B>removes groups with their elements</B></span>. \r
- To delete a group and leave its elements intact, right-click on the group \r
- in the Object Browser and select <span style="font-weight: bold;"><B>Delete</B></span> \r
- in the pop-up menu or select the group and choose <span style="font-weight: bold;"><B>Edit \r
- -&gt; Delete</B></span> in the <span style="font-weight: bold;"><B>Main Menu.</B></span> \r
- &nbsp;&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Deleting Groups</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { margin-top:0pt; margin-bottom:0pt; }
+img_whs2 { border:none; width:306px; height:234px; float:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nGrouping elements\nDeleting Groups");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Deleting Groups</h1>
+
+<p class="whs1">To delete a group in the 
+ <span style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>Mesh 
+ </B></span><span style="font-family: Arial, sans-serif;">-&gt;</span><span 
+ style="font-weight: bold;"><B> Delete Groups</B></span> and select one or several 
+ groups you wish to delete in the 3D viewer or in the Object Browser.</p>
+
+<p class="whs1">The selected groups will 
+ be listed in <span style="font-weight: bold;"><B>Delete groups with contents</B></span> 
+ menu. Then click Ok button to remove the selected groups and close the 
+ menu or Apply button to remove them and proceed with the selection. </p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="pics/deletegroups.png" x-maintain-ratio="TRUE" width="306px" height="234px" border="0" class="img_whs2"></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">Please, note that this 
+ operation <span style="font-weight: bold;"><B>removes groups with their elements</B></span>. 
+ To delete a group and leave its elements intact, right-click on the group 
+ in the Object Browser and select <span style="font-weight: bold;"><B>Delete</B></span> 
+ in the pop-up menu or select the group and choose <span style="font-weight: bold;"><B>Edit 
+ -&gt; Delete</B></span> in the <span style="font-weight: bold;"><B>Main Menu.</B></span> 
+ &nbsp;&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 8195fc5802f194386ab7395b729572083c2f18b0..51d7d6604c08012a57c71b5f1371344c5ea6d05a 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Display Entity</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; height:282px; width:259px; }\r
-img_whs2 { border:none; height:287px; width:257px; }\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\nViewing meshes\nDisplay Entity");\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>Display Entity</h1>\r
-\r
-<p>In this submenu you can choose to display only faces,</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="image56.jpg" height="282px" width="259px" border="0" class="img_whs1"></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
-\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
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Display Entity</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; font-weight:bold; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; height:285px; width:260px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nDisplay Entity");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Display Entity</h1>
+
+<p>In this submenu you can choose to display only volumes, faces or edges 
+ or combine them. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs1">Only Faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Only 
+ Edges</p>
+
+<p class="whs2"><img src="image56.jpg" height="285px" width="260px" border="0" class="img_whs3"> &nbsp;<img src="image58.gif" height="285px" width="260px" border="0" class="img_whs3"></p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index be729a46cb8f469a476a8dc61f31b4802a47a6a8..8d61adcdc34531f371757eb95af83cba283f70b0 100755 (executable)
@@ -1,10 +1,10 @@
-<?xml version="1.0"?>\r
-<!DOCTYPE SYSTEM "ehelpopt.dtd">\r
-<FILE-OPTIONS FILE-VERSION="2" FILE-KEY="f974c843_2d19_491f_a339_b0affd721669">\r
-</FILE-OPTIONS>\r
-<EHELP-OPTIONS FORMAT-VERSION="1.0">\r
- <OPTIONS ENABLED="NO" EMBEDDED="YES" MAIN-WINDOW-ONLY="NO" COMMUNITY-NOTIFY="NO" FIRST-PAGE="NOT-SET">\r
- </OPTIONS>\r
- <BUTTON-LABEL>WebSearch\r
- </BUTTON-LABEL>\r
+<?xml version="1.0"?>
+<!DOCTYPE SYSTEM "ehelpopt.dtd">
+<FILE-OPTIONS FILE-VERSION="2" FILE-KEY="f974c843_2d19_491f_a339_b0affd721669">
+</FILE-OPTIONS>
+<EHELP-OPTIONS FORMAT-VERSION="1.0">
+ <OPTIONS ENABLED="NO" EMBEDDED="YES" MAIN-WINDOW-ONLY="NO" COMMUNITY-NOTIFY="NO" FIRST-PAGE="NOT-SET">
+ </OPTIONS>
+ <BUTTON-LABEL>WebSearch
+ </BUTTON-LABEL>
 </EHELP-OPTIONS>
\ No newline at end of file
index 6cfd2e4635ab4c1d1c212bcbecc78145599fd148..7bcb2499374ebd5524175157dd65d3acbb2c66ed 100755 (executable)
-// eHelp® Corporation Dynamic HTML JavaScript \r
-// Copyright© 1998-2003 eHelp® Corporation.All rights reserved.\r
-// Version=4.82\r
-\r
-// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.\r
-\r
-//// Segment Begin -- (JavaScript 1.0)\r
-\r
-/// Section Begin - General and relative topics(JavaScript 1.0)\r
-\r
-//{{HH_SYMBOL_SECTION\r
-var HH_ChmFilename = "";\r
-var HH_WindowName = "";\r
-var HH_GlossaryFont = "";\r
-var HH_Glossary = "";\r
-var HH_Avenue = "";\r
-var HH_ActiveX = false;\r
-//}}HH_SYMBOL_SECTION\r
-\r
-//Begin to support previous generic parameters\r
-//Get the information about the browser.\r
-var gstrBsAgent        = navigator.userAgent.toLowerCase();\r
-var gnBsVer                    = parseInt(navigator.appVersion);\r
-\r
-var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);\r
-var gbBsKonqueror      = (gstrBsAgent.indexOf('konqueror') != -1);\r
-var gbBsSafari         = (gstrBsAgent.indexOf('safari') != -1);\r
-var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;\r
-var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;\r
-\r
-var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);\r
-var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));\r
-var gbBsSunOS          = (gstrBsAgent.indexOf("sunos") != -1);\r
-\r
-var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));\r
-var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));\r
-\r
-var gbBsNS2                    = ((gbBsNS) && (gnBsVer <= 2));\r
-var gbBsNS3                    = ((gbBsNS) && (gnBsVer == 3));\r
-var gbBsIE300301       = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));\r
-var gbBsIE302          = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));\r
-\r
-var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));\r
-var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));\r
-var    gbBsNS7                 = false;\r
-\r
-var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));\r
-var gbBsIE5                    = false;\r
-var gbBsIE55           = false;\r
-\r
-var gbBsOpera6         = false;\r
-var gbBsOpera7         = false;\r
-\r
-var gbBsKonqueror3     = false;\r
-\r
-\r
-\r
-gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;;\r
-if (gbBsIE)\r
-{\r
-       if (parseInt(navigator.appVersion) >= 4) {\r
-               gbBsIE4 = true;\r
-               if (gbBsIE4) {\r
-                       var nPos = gstrBsAgent.indexOf("msie");\r
-                       var strIEversion = gstrBsAgent.substring(nPos + 5);\r
-                       var nVersion =  parseFloat(strIEversion);\r
-                       if (nVersion >= 5)\r
-                               gbBsIE5 = true;\r
-                       if (nVersion >= 5.5)\r
-                               gbBsIE55 = true;\r
-               }\r
-       }\r
-}\r
-if (gbBsNS6)\r
-{\r
-       var nPos=gstrBsAgent.indexOf("gecko");\r
-       if(nPos!=-1)\r
-       {\r
-               var nPos2=gstrBsAgent.indexOf("/", nPos);\r
-               if(nPos2!=-1)\r
-               {\r
-                       var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1));\r
-                       if (nVersion>=20020823)\r
-                               gbBsNS7=true;\r
-               }\r
-       }       \r
-}\r
-if (gbBsOpera)\r
-{\r
-       var nPos = gstrBsAgent.indexOf("opera");\r
-       if(nPos!=-1)\r
-       {\r
-               var nVersion = parseFloat(gstrBsAgent.substring(nPos+6));\r
-               if (nVersion >= 6)\r
-               {\r
-                       gbBsOpera6=true;\r
-                       if (nVersion >=7)\r
-                               gbBsOpera7=true;        \r
-               }\r
-       }\r
-}\r
-if (gbBsKonqueror)\r
-{\r
-       var nPos = gstrBsAgent.indexOf("konqueror");\r
-       if(nPos!=-1)\r
-       {\r
-               var nVersion = parseFloat(gstrBsAgent.substring(nPos+10));\r
-               if (nVersion >= 3)\r
-               {\r
-                       gbBsKonqueror3=true;\r
-               }\r
-       }\r
-}\r
-\r
-function insertAdjacentHTML(obj, where, htmlStr)\r
-{\r
-       if (gbBsIE || gbBsOpera7)\r
-       {\r
-               obj.insertAdjacentHTML(where, htmlStr);\r
-       }\r
-       else if (gbBsNS6 || gbBsSafari)\r
-       {\r
-               var r = obj.ownerDocument.createRange();\r
-               r.setStartBefore(obj);\r
-               var     parsedHTML = r.createContextualFragment(htmlStr);\r
-               \r
-               switch (where){\r
-               case 'beforeBegin':\r
-                       obj.parentNode.insertBefore(parsedHTML,obj);\r
-                       break;\r
-               case 'afterBegin':\r
-                       obj.insertBefore(parsedHTML,obj.firstChild);\r
-                       break;\r
-               case 'beforeEnd':\r
-                       obj.appendChild(parsedHTML);\r
-                       break;\r
-               case 'afterEnd':\r
-                       if (obj.nextSibling){\r
-                       obj.parentNode.insertBefore(parsedHTML,obj.nextSibling);\r
-                       } else {\r
-                       obj.parentNode.appendChild(parsedHTML);\r
-                       }\r
-                       break;\r
-               }\r
-       }\r
-}\r
-\r
-// Utilities functions.\r
-function BsscHasExtJs()\r
-{\r
-       if( gbBsIE3Before || gbBsNS3Before)\r
-               return false;\r
-       return true;\r
-}\r
-\r
-// Register event handler\r
-var gBsOnLoads                         = new Array();  // An array holds all the onload event handler.\r
-var gBsOnClicks                = new Array();  // An array holds all the onClick event handler.\r
-var gBsOnUnLoads               = new Array();  // An array holds all the OnUnLoad event handler.\r
-var gBsOnMouseOvers    = new Array();  // An array holds all the OnMouseOver event handler.\r
-var gBsOnMouseOuts             = new Array();  // An array holds all the OnMouseOut event handler.\r
-\r
-var gbOrignalOnMouseDown = null;\r
-\r
-function BsscRegisterOnLoad(funcHandler)\r
-{\r
-       var nLength = gBsOnLoads.length;\r
-       gBsOnLoads[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnClick(funcHandler)\r
-{\r
-       var nLength = gBsOnClicks.length;\r
-       gBsOnClicks[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnUnLoad(funcHandler)\r
-{\r
-       var nLength = gBsOnUnLoads.length;\r
-       gBsOnUnLoads[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnMouseOver(funcHandler)\r
-{\r
-       var nLength = gBsOnMouseOvers.length;\r
-       gBsOnMouseOvers[nLength] = funcHandler;\r
-}\r
-\r
-function BsscRegisterOnMouseOut(funcHandler)\r
-{\r
-       var nLength = gBsOnMouseOuts.length;\r
-       gBsOnMouseOuts[nLength] = funcHandler;\r
-}\r
-\r
-function BsGeneralOnLoad()\r
-{\r
-       if (!gbBsIE4 && !gbBsNS4)\r
-               return;\r
-\r
-       // Make everything visible in navigator\r
-       if (gbBsNS4 && !gbBsNS6) {\r
-               // Make some special effects items visible\r
-               for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {\r
-                       document.layers[iLayer].visibility = "show";\r
-                       document.layers[iLayer].left = 0;\r
-               }\r
-       }\r
-}\r
-\r
-// If resize the netscape browser, need to reload it.\r
-function BsReDo()\r
-{\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-// End of the local functions.\r
-\r
-// The following functions are used by the html files.\r
-function BSSCOnLoad()\r
-{\r
-       if( !BsscHasExtJs() )\r
-               return;\r
-       for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)\r
-               gBsOnLoads[nElement]();\r
-}\r
-\r
-function BSSCOnClick()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-               \r
-       for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)\r
-               gBsOnClicks[nElement]();\r
-}\r
-\r
-function BSSCOnUnload()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-       for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)\r
-               gBsOnUnLoads[nElement]();\r
-}\r
-\r
-function BSSCOnMouseOver()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)\r
-               gBsOnMouseOvers[nElement]();\r
-}\r
-\r
-function BSSCOnMouseOut()\r
-{\r
-       if (!BsscHasExtJs()) return;\r
-       for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)\r
-       {\r
-               gBsOnMouseOuts[nElement]();\r
-       }\r
-}\r
-// End of invocation of the event handle functions.\r
-\r
-// Add the GereralOnLoad to the onload array.\r
-if (typeof(BsscRegisterOnLoad) != "undefined")\r
-{\r
-       BsscRegisterOnLoad(BsGeneralOnLoad);\r
-}\r
-if (gbBsNS4&&!gbBsNS6) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = BsReDo;\r
-}\r
-//End to support previous generic parameters\r
-\r
-//Begin to support previous HHActiveX invoking\r
-function BsHHActivateComponents()\r
-{\r
-       if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))\r
-       {\r
-               var objBody = getElementsByTag(document,"BODY")[0];\r
-               if( typeof(objBody) == "object" )\r
-               {\r
-                       insertAdjacentHTML(objBody, "beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');\r
-                       if (HHComponentActivator.object)\r
-                               HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);\r
-               }\r
-       }\r
-}\r
-\r
-function BsHHActivXOnLoad()\r
-{      \r
-       if( gbBsIE4 )\r
-               BsHHActivateComponents(); \r
-}\r
-\r
-if( typeof(BsscRegisterOnLoad) != "undefined" )\r
-{\r
-       BsscRegisterOnLoad(BsHHActivXOnLoad);\r
-}\r
-//End to support previous HHActiveX invoking\r
-\r
-//Begin to support previous relative topics\r
-//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here\r
-var gbPopupMenuTimeoutExpired = false;\r
-var gbInPopupMenu = false;\r
-var gbPopupMenuTopicList = null;\r
-var gOlddocumentClick = null;\r
-\r
-//////////////////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Popup Menu code\r
-//\r
-//////////////////////////////////////////////////////////////////////////////////////////\r
-\r
-var g_bIsPopupMenuInit = false;\r
-function _WritePopupMenuLayer()\r
-{\r
-       if (!g_bIsPopupMenuInit)\r
-        {\r
-         if (gbBsNS4&&!gbBsNS6) {\r
-//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...\r
-               document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");\r
-         } else{\r
-         document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-         if (!(gbBsNS4&&!gbBsNS6)) {\r
-               document.write("<STYLE TYPE='text/css'>");\r
-               if (gbBsMac&&gbBsIE4) {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-               } else {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");\r
-               }\r
-               document.write("</STYLE>");\r
-          }\r
-          }\r
-         g_bIsPopupMenuInit = true;\r
-       }\r
-}\r
-\r
-//Seek for the bsscright frame \r
-function _SeekFrameByName( cRoot, strName )\r
-{\r
-       if( cRoot == null )     return null;\r
-       if( cRoot.frames == null )      return null;\r
-       if( cRoot.frames[strName] != null )     return cRoot.frames[strName];\r
-       for (var i=0; i<cRoot.frames.length; i++)\r
-       {\r
-               var cObj = null;\r
-               if (!gbBsNS6) \r
-                       cObj = _SeekFrameByName( cRoot.frames(i).document, strName );\r
-               else\r
-                       cObj = _SeekFrameByName( cRoot.frames[i], strName );\r
-               if( cObj != null )              return cObj;\r
-       };\r
-       return null;\r
-}\r
-function _GetFrameByName( cRoot, strName )\r
-{\r
-       if( cRoot == null )     return null;\r
-       var cRet = _SeekFrameByName(cRoot, strName);\r
-       if( cRet != null )      return cRet;\r
-       if (cRoot.parent != cRoot)\r
-               return _GetFrameByName( cRoot.parent, strName );\r
-       else\r
-               return null;\r
-}\r
-\r
-var gfn_arguments = null;\r
-function _PopupMenu_Invoke(fn_arguments)\r
-{\r
-       gfn_arguments = fn_arguments;\r
-       if (gbBsOpera6&&gbBsMac)\r
-       {\r
-               var wndOldPopupLinks= window.open(document.location.href, "popuplinks");\r
-               wndOldPopupLinks.close();\r
-               setTimeout("_PopupMenu_Invoke_2();",100);\r
-       }\r
-       else\r
-       {\r
-               _PopupMenu_Invoke_2();\r
-       }\r
-}\r
-\r
-function _PopupMenu_Invoke_2()\r
-{\r
-       var fn_arguments = gfn_arguments;\r
-       gfn_arguments = null;\r
-       \r
-       // Make sure we have reasonable arguments\r
-       var argLen = fn_arguments.length;\r
-       if (argLen < 3) {\r
-               return false;\r
-       }\r
-\r
-       // Check to see if we only have one target\r
-       var strTarget = "";\r
-       var targetDoc = null;\r
-       if (fn_arguments[1] == '') {\r
-               if (BSSCPopup_IsPopup()) {\r
-                       targetDoc = parent;\r
-                       strTarget = "TARGET= _parent";\r
-               }\r
-               else\r
-                       targetDoc = window.document;\r
-       } else {\r
-               targetDoc = _GetFrameByName( parent, fn_arguments[1] );\r
-\r
-               strTarget = "TARGET='" + fn_arguments[1] + "'";\r
-       }\r
-\r
-       if ((!gbBsIE4 && !gbBsNS4 && !gbBsOpera7 && !gbBsKonqueror3 &&!gbBsSafari) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {\r
-       \r
-               var argLen      = fn_arguments.length;\r
-\r
-               // Create the window that the hyperlinks will go into\r
-               var nHeight = argLen * 15;\r
-               var nWidth = 400;\r
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";\r
-               strParam += ",height=" + nHeight + ",width=200";\r
-               strParam += ",resizable";\r
-\r
-               var wndTemp=null;\r
-               // Create a temporary window first to ensure the real popup comes up on top\r
-               if (!gbBsOpera)\r
-                       wndTemp = window.open("", "temp", strParam);\r
-\r
-               // Create the real popup window\r
-               var wndPopupLinks=null;\r
-               if (gbBsOpera&&gbBsMac)\r
-               {\r
-                       wndTemp = window.open(document.location.href, "temp", strParam);\r
-                       wndPopupLinks= window.open(document.location.href, "popuplinks", strParam);\r
-               }\r
-               else\r
-                       wndPopupLinks= window.open("", "popuplinks", strParam);\r
-               wndPopupLinks.document.open("text/html");\r
-\r
-               // Close the temporary\r
-               if (wndTemp)\r
-                       wndTemp.close();\r
-\r
-               var sHTML="<html><head></head>";\r
-               sHTML+="<body onBlur=\'self.focus();\'>";\r
-               var strParaLine = "";\r
-               for (var i = 0; i < (argLen - 2) / 2; i++) {\r
-                       strParaLine = "";\r
-                       strParaLine += "<a href=\"javascript:";\r
-                       if (gbBsIE) {\r
-                               strParaLine += "onBlur=null; ";\r
-                       }\r
-                       strParaLine += "opener.location=\'";\r
-                       strParaLine += fn_arguments[2 * i + 3];\r
-                       strParaLine += "\';close();\"";\r
-                       strParaLine += strTarget;\r
-\r
-                       strParaLine += ">";\r
-                       strParaLine += fn_arguments[2 * i + 2];\r
-                       strParaLine += "</a>";\r
-                       strParaLine += "<br>";\r
-                       sHTML+=strParaLine;\r
-               }\r
-               sHTML+="</body></html>";\r
-               wndPopupLinks.document.write(sHTML);\r
-               wndPopupLinks.document.close();\r
-               window.gbInPopupMenu = true;\r
-               if (!gbBsIE) {\r
-                       wndPopupLinks.focus();\r
-               }\r
-               return false;\r
-       }\r
-\r
-       if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||\r
-               ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {\r
-               // Get the place that we will be putting the topic into\r
-               var strURL = "";\r
-               if (isNaN(fn_arguments[2]) ||  (gbPopupMenuTopicList == null)) {\r
-                       strURL = fn_arguments[3];\r
-               }\r
-               else    {\r
-                       strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;\r
-               }\r
-\r
-               if (targetDoc != null) {\r
-                       targetDoc.location.href = strURL;\r
-               }\r
-               else {\r
-                       if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")\r
-                               window.open(strURL, fn_arguments[1]);\r
-                       else\r
-                               window.open(strURL);\r
-               }               \r
-               window.gbInPopupMenu = true;\r
-               return false;\r
-       }\r
-       \r
-       var strMenu = "";\r
-       if (gbBsNS4&&!gbBsNS6) {\r
-               strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';\r
-       } else {\r
-               strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
-               if (gbBsMac) {\r
-                       strMenu += ' CELLPADDING=4';\r
-               } else {\r
-                       strMenu += ' CELLPADDING=2';\r
-               }       \r
-               strMenu += ' BGCOLOR=#c0c0c0>';\r
-       }\r
-       // Add each of the items\r
-       var i = 2;\r
-       while (i <= argLen - 1) {\r
-               strMenu += '<TR><TD><NOBR>'\r
-               // If the destination is a number then look it up in the topic list\r
-               if (isNaN(fn_arguments[i]) ||  (gbPopupMenuTopicList == null)) {\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;\r
-               } else {\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;\r
-               }\r
-               strMenu += ' onclick="PopupMenu_HandleClick(event);"';\r
-               strMenu += ' onmouseover="PopupMenu_Over(event);"';\r
-               strMenu += ' onmouseout="PopupMenu_Out(event);"';\r
-               strMenu += '>';\r
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
-               } else {\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';\r
-               }\r
-               strMenu += '</A></DIV></NOBR></TD></TR>';\r
-\r
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {\r
-                       i += 2;\r
-               } else {\r
-                       i += 1;\r
-               }\r
-       }\r
-       strMenu += "</TABLE>";\r
-\r
-       if (gbBsMac) {\r
-       // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.\r
-               strMenu +="<TABLE></TABLE>";\r
-       }\r
-\r
-       var layerPopup = null;\r
-       var stylePopup = null;\r
-       var nEventX = 0;\r
-       var nEventY = 0;\r
-       var nWindowWidth = 0;\r
-       if (gbBsIE4 || gbBsOpera7) {\r
-\r
-               layerPopup = getElement("PopupMenu");\r
-               layerPopup.innerHTML = strMenu;\r
-               stylePopup = layerPopup.style;\r
-\r
-               _BSPSGetClientSize();\r
-\r
-               // Get the position of the item causing the event (relative to its parent)\r
-               nEventX = window.event.clientX;\r
-               nEventY = window.event.clientY;\r
-\r
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {\r
-                       nEventY += document.body.scrollTop + 10;\r
-               } else {\r
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;\r
-               }\r
-               stylePopup.top = nEventY;\r
-               \r
-               var nPopupWidth = layerPopup.scrollWidth;\r
-               if (gbBsMac) {\r
-                       nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.\r
-               }\r
-               if (nEventX + nPopupWidth + 20 > gBsClientWidth) {\r
-                       if (gBsClientWidth - nPopupWidth < 5) {\r
-                               stylePopup.left = 5;\r
-                       } else {\r
-                               stylePopup.left = gBsClientWidth - nPopupWidth - 5;\r
-                       }\r
-               } else {\r
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;\r
-               }\r
-\r
-               stylePopup.visibility = "visible";\r
-               if (!gOlddocumentClick && document.onclick)\r
-                       gOlddocumentClick = document.onclick;\r
-               document.onclick = PopupMenu_HandleClick;\r
-\r
-       } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) {\r
-               layerPopup = getElement("PopupMenu");\r
-               layerPopup.style.visibility = "hidden";\r
-       \r
-               if (gbBsNS6)\r
-               {\r
-                       var e = fn_arguments[0];\r
-                       nEventX = e.pageX;\r
-                       nEventY = e.pageY;\r
-               }\r
-               else\r
-               {\r
-                       nEventX = window.event.clientX;\r
-                       nEventY = window.event.clientY;\r
-               }\r
-               _BSPSGetClientSize();\r
-               layerPopup.innerHTML = strMenu;\r
-\r
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {\r
-                       nEventY += 20;\r
-               } else {\r
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;\r
-               }\r
-\r
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {\r
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {\r
-                               nEventX = 5;\r
-                       } else {\r
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;\r
-                       }\r
-               } else {\r
-                       nEventX += 20;\r
-               }\r
-               layerPopup.style.top = nEventY;\r
-               layerPopup.style.left = nEventX;\r
-               // set again to avoid the stupid frash in netscape 6.\r
-               layerPopup.innerHTML = strMenu;\r
-               layerPopup.style.visibility = "visible";\r
-               //window.captureEvents(Event.MOUSEDOWN);\r
-               if (!gOlddocumentClick && document.onclick)\r
-                       gOlddocumentClick = document.onclick;\r
-               window.onclick = PopupMenu_HandleClick;\r
-       }\r
-       else if (gbBsNS4) {\r
-               layerPopup = document.layers.PopupMenu;\r
-               layerPopup.visibility = "hide";\r
-               stylePopup = layerPopup.document;\r
-               stylePopup.write(strMenu);\r
-               stylePopup.close();\r
-               var e = fn_arguments[0];\r
-               nEventX = e.pageX;\r
-               nEventY = e.pageY;\r
-               _BSPSGetClientSize();\r
-               if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {\r
-                       nEventY += 20;\r
-               } else {\r
-                       nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;\r
-               }\r
-               layerPopup.top = nEventY;\r
-\r
-               if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {\r
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {\r
-                               nEventX = 5;\r
-                       } else {\r
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;\r
-                       }\r
-               } else {\r
-                       nEventX += 20;\r
-               }\r
-\r
-               layerPopup.left = nEventX;\r
-\r
-               layerPopup.visibility = "show";\r
-\r
-               window.captureEvents(Event.MOUSEDOWN);\r
-               if (!gOlddocumentClick && document.onmousedown)\r
-                       gOlddocumentClick = document.onmousedown;\r
-               window.onmousedown = PopupMenu_HandleClick;\r
-       }\r
-\r
-       window.gbInPopupMenu = true;\r
-       window.gbPopupMenuTimeoutExpired = false;\r
-       setTimeout("PopupMenu_Timeout();", 100);\r
-       return false;\r
-}\r
-\r
-function PopupMenu_Timeout()\r
-{\r
-       window.gbPopupMenuTimeoutExpired = true;\r
-}\r
-\r
-function PopupMenu_Over(e)\r
-{\r
-    if (gbBsIE4||gbBsOpera7)\r
-               e.srcElement.className = "PopupOver";\r
-    else if (gbBsNS6)\r
-               e.target.parentNode.className = "PopupOver";\r
-       return;\r
-}\r
-\r
-function PopupMenu_Out(e)\r
-{\r
-    if (gbBsIE4||gbBsOpera7)\r
-               e.srcElement.className = "PopupNotOver";\r
-    else if (gbBsNS6)\r
-               e.target.parentNode.className = "PopupNotOver";\r
-       return;\r
-}\r
-\r
-function PopupMenu_HandleClick(e)\r
-{\r
-       if (window.gbPopupMenuTimeoutExpired) {\r
-               window.gbInPopupMenu = false;\r
-               if (gbBsNS4 && !gbBsNS6) {\r
-                       window.releaseEvents(Event.MOUSEDOWN);\r
-               }\r
-\r
-               var layerPopup = null;\r
-               if (gbBsNS4&&!gbBsNS6) {\r
-                       layerPopup = document.layers.PopupMenu;\r
-                       layerPopup.visibility = "hide";\r
-               } else {\r
-                       layerPopup = getElement("PopupMenu");\r
-                       layerPopup.style.visibility = "hidden";\r
-               }\r
-       \r
-               if (gOlddocumentClick)\r
-               {\r
-                       if (gbBsNS4 && !gbBsNS6)\r
-                               document.onmousedown = gOlddocumentClick;\r
-                       else\r
-                               document.onclick = gOlddocumentClick;\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-function BSSCPopup_ClickMac()\r
-{\r
-       if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7))\r
-       {       \r
-               var bClickOnAnchor = false;\r
-               var el;\r
-               if ((window.event != null) &&\r
-                   (window.event.srcElement != null))\r
-               {\r
-                   el = window.event.srcElement;\r
-                       while (el != null)\r
-                       {\r
-                               if ((el.tagName == "A") || (el.tagName == "AREA"))      {\r
-                                       bClickOnAnchor = true;\r
-                                       break;\r
-                               }\r
-                               if (el.tagName == "BODY") {\r
-                                       break;\r
-                               }\r
-                               el = getParentNode(el);\r
-                       }\r
-               }\r
-               if (BSSCPopup_IsPopup())\r
-               {\r
-                       if (!bClickOnAnchor) {\r
-                               parent.window.gPopupWindow = null;\r
-                               self.close();\r
-                       }\r
-               }\r
-               else\r
-               {\r
-                       bClosePopupWindow = true;\r
-                       if ((bClickOnAnchor) &&\r
-                               (el.href) &&\r
-                           ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))\r
-                       {\r
-                               bClosePopupWindow = false;\r
-                       }\r
-                       if (bClosePopupWindow)\r
-                       {\r
-                               if (window.gPopupWindow != null && !window.gPopupWindow.closed )\r
-                               {\r
-                                       window.gPopupWindow.close();\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function BsPopupOnClick()\r
-{\r
-       if (!gbBsIE4 && !gbBsOpera7)\r
-               return;\r
-\r
-       BSSCPopup_ClickMac();\r
-}\r
-\r
-function _BSSCOnError(message)\r
-{\r
-       if(-1 != message.indexOf("denied") \r
-               || -1 != message.indexOf("Object required"))\r
-        return true;\r
-}\r
-\r
-//End to support previous relative topics\r
-\r
-/// Section End - General and relative topics (JavaScript 1.0)\r
-\r
-/// Section Begin  - Popup (JavaScript 1.0)\r
-//Begin to support previous popup functions\r
-\r
-//variables used to isolate the browser type\r
-var gBsStyVisShow      = null;\r
-var gBsStyVisHide      = null;\r
-var gBsClientWidth     = 640;\r
-var gBsClientHeight = 480;\r
-\r
-// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.\r
-var gBRateH_W          = 0.618; // 1.618 Golden cut.\r
-var gBMaxXOfParent     = 0.8; \r
-var gBMaxYOfParent     = 0.8;\r
-var gBscrollHeight   = 16;\r
-var gBscrollWidth   =  16;\r
-var gBpermitXDelta     = 3;\r
-var gBpermitYDelta     = 3;\r
-\r
-\r
-var arrayPopupURL = new Array();\r
-var arrayAbsPopupURL = new Array();\r
-\r
-var arrayDirty = new Array();\r
-\r
-function setAbsPopupURL(nIndex, strURL)\r
-{\r
-       arrayAbsPopupURL[nIndex] = strURL;\r
-}\r
-\r
-function getAbsPopupURL(nIndex)\r
-{\r
-       if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;\r
-       else \r
-               return arrayAbsPopupURL[nIndex];\r
-}\r
-\r
-function getPopupURL(nIndex)\r
-{\r
-       if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;\r
-       else \r
-               return arrayPopupURL[nIndex];\r
-}\r
-\r
-function getPopupID(nIndex)\r
-{\r
-       return gstrPopupID + nIndex;\r
-}\r
-\r
-function getPopupShadowID(nIndex)\r
-{\r
-       return gstrPopupShadowID + nIndex;\r
-}\r
-\r
-function getPopupTopicID(nIndex)\r
-{\r
-       return gstrPopupTopicID + nIndex;\r
-}\r
-\r
-function getPopupIFrameID(nIndex)\r
-{\r
-       return gstrPopupIFrameID + nIndex;\r
-}\r
-\r
-function getPopupIFrameName(nIndex)\r
-{\r
-       return gstrPopupIFrameName + nIndex;\r
-}\r
-\r
-\r
-function getPopupTopicStyle(nIndex)\r
-{\r
-       return getElement(getPopupTopicID(nIndex)).style;\r
-}\r
-\r
-function getPopupShadowStyle(nIndex)\r
-{\r
-       return getElement(getPopupShadowID(nIndex)).style;\r
-}\r
-\r
-function getPopupIFrame(nIndex)\r
-{\r
-       if (gbBsNS6)\r
-               return eval("window.frames['" + getPopupIFrameName(nIndex) + "']");\r
-       else\r
-               return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");\r
-}\r
-\r
-function getPopupDivStyle(nIndex)\r
-{\r
-       return getElement(getPopupID(nIndex)).style;\r
-}\r
-\r
-function getPopupIFrameStyle(nIndex)\r
-{\r
-       return getElement(getPopupIFrameID(nIndex)).style;\r
-}\r
-\r
-\r
-function findDiv(strURL)\r
-{\r
-       for (var i = 0; i < arrayPopupURL.length; i ++ ) {\r
-               if (arrayPopupURL[i] == strURL) {\r
-                       return i;\r
-               }\r
-       }\r
-       return -1;\r
-}\r
-\r
-var gnToken = -1;\r
-function takeToken()\r
-{\r
-       gnToken ++;\r
-       if (gnToken > 10000) gnToken = 0;\r
-       return gnToken;\r
-}\r
-\r
-function IsValidToken(nToken)\r
-{\r
-       return (gnToken == nToken);\r
-}\r
-\r
-function addDiv(strURL)\r
-{\r
-       for (var i = 0; i < arrayPopupURL.length; i ++) {\r
-               if (arrayPopupURL[i] == null) {\r
-                       arrayPopupURL[i] = strURL;\r
-                       return i;\r
-               }\r
-       }       \r
-       arrayPopupURL[i] = strURL;\r
-       arrayDirty[i] = true;\r
-       return i;\r
-}\r
-\r
-function setDirty()\r
-{\r
-       for (var i = 0; i < arrayPopupURL.length; i ++ )\r
-               arrayDirty[i] = true;\r
-}\r
-\r
-function IsDirty(nIndex)\r
-{\r
-       if (nIndex == -1)\r
-               return true;\r
-       else \r
-               if (arrayDirty.length > nIndex) \r
-                       return arrayDirty[nIndex];\r
-               else\r
-                       return true;\r
-}\r
-\r
-function hideAll()\r
-{\r
-       for (var i = 0; i < arrayPopupURL.length; i ++ )\r
-       {\r
-               getPopupDivStyle(i).visibility = gBsStyVisHide;\r
-               getPopupIFrameStyle(i).visibility = gBsStyVisHide;\r
-       }\r
-}\r
-\r
-function getCurrentPopupIFrame()\r
-{\r
-       for (var i = 0; i < arrayPopupURL.length; i ++)\r
-               if (getPopupDivStyle(i).visibility == gBsStyVisShow)\r
-                       return getPopupIFrame(i);\r
-       return null;\r
-}\r
-\r
-function setClear(nIndex)\r
-{\r
-       if (nIndex != -1)\r
-               arrayDirty[nIndex] = false;\r
-}\r
-\r
-function _BSSCCreatePopupDiv(strURL)\r
-{\r
-       var nIndex = findDiv(strURL);\r
-       if (nIndex == -1 ) {\r
-               nIndex = addDiv(strURL);\r
-               BsPopup_CreateDiv(nIndex);\r
-       }\r
-       else {\r
-               if (IsDirty(nIndex)) {\r
-                       if("object" == typeof(getPopupIFrame(nIndex).document))\r
-                               getPopupIFrame(nIndex).document.location.href = strURL;\r
-               }\r
-       }\r
-       return nIndex;\r
-}\r
-\r
-//Here is the browser type \r
-function _BSPSGetBrowserInfo()\r
-{\r
-       if (gbBsNS4&&!gbBsNS6)\r
-       {\r
-               gBsStyVisShow   = "show";\r
-               gBsStyVisHide   = "hide";\r
-       }\r
-       else\r
-       {\r
-               gBsStyVisShow   = "visible";\r
-               gBsStyVisHide   = "hidden";\r
-       }\r
-}\r
-\r
-_BSPSGetBrowserInfo();\r
-\r
-//Get client size info\r
-function _BSPSGetClientSize()\r
-{\r
-       if (gbBsNS4||gbBsKonqueror3||gbBsSafari)\r
-       {\r
-               gBsClientWidth  = innerWidth;\r
-               gBsClientHeight = innerHeight;\r
-       }\r
-       else if (gbBsIE4 || gbBsOpera7)\r
-       {\r
-               gBsClientWidth  = document.body.clientWidth;\r
-               gBsClientHeight = document.body.clientHeight;\r
-       }\r
-}\r
-\r
-var gstrPopupID = 'BSSCPopup';\r
-var gstrPopupShadowID = 'BSSCPopupShadow';\r
-var gstrPopupTopicID = 'BSSCPopupTopic';\r
-var gstrPopupIFrameID = 'BSSCPopupIFrame';\r
-var gstrPopupIFrameName = 'BSSCPopupIFrameName';\r
-\r
-var gstrPopupSecondWindowName = 'BSSCPopup';\r
-\r
-var gPopupWindow = null;\r
-var gnPopupClickX = 0;\r
-var gnPopupClickY = 0;\r
-\r
-var gnPopupScreenClickX = 0;\r
-var gnPopupScreenClickY = 0;\r
-\r
-var gbPopupTimeoutExpired = false;\r
-\r
-function DHTMLPopupSupport()\r
-{\r
-       if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) {\r
-               return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-function BSSCPopup_IsPopup()\r
-{\r
-       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {\r
-               return true;\r
-       } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) {\r
-               return true;\r
-       } else {\r
-               return false;\r
-       }\r
-}\r
-\r
-// If there is a hyperlink in a popup window, display the hyperlink in\r
-// the original window. (bsscright)\r
-if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) {\r
-       document.write("<base target=\"bsscright\">");\r
-}\r
-\r
-// Local functions.\r
-function BsPopup_CreateDiv(nIndex)\r
-{\r
-       if(!DHTMLPopupSupport())\r
-               return;\r
-       // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.\r
-       var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";\r
-       strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#C0C0C0;\"></DIV>";\r
-       strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#FFFFFF;border:1px #000000 outset;\">";\r
-       strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";\r
-       strPopupDiv += "</DIV></DIV>";\r
-\r
-       var objBody = getElementsByTag(document, "BODY")[0];\r
-       if( typeof(objBody) != "object" )\r
-               return;\r
-\r
-       insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv);\r
-}\r
-\r
-function handleLoadNS()\r
-{\r
-       if (this.id)\r
-       {\r
-               var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length));\r
-               BSSCPopup_PostWork(nIndex);\r
-       }\r
-}\r
-\r
-function BSSCPopup_PostWork(nIndex)\r
-{\r
-       getPopupDivStyle(nIndex).visibility = gBsStyVisShow;\r
-       getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow;\r
-\r
-       setClear(nIndex);\r
-       window.gbPopupTimeoutExpired = true;\r
-\r
-       BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);\r
-       if (gbBsNS6)\r
-               getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false);\r
-       else\r
-               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;\r
-\r
-       if (!gbOrignalOnMouseDown && document.onmousedown)\r
-               gbOrignalOnMouseDown = document.onmousedown;\r
-\r
-       if (gbBsNS6)\r
-               document.addEventListener("mousedown", BSSCPopupParentClicked,false);\r
-       else\r
-               document.onmousedown = BSSCPopupParentClicked;\r
-}\r
-\r
-function BSSCPopup_Timeout(nIndex, nToken)\r
-{\r
-    if (!IsValidToken(nToken)) return;\r
-\r
-       if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") &&\r
-               (getPopupIFrame(nIndex).document.body != null))) {\r
-               BSSCPopup_PostWork(nIndex);\r
-       } else {\r
-               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);\r
-       }\r
-}\r
-\r
-// VH 08/10/00 \r
-// do not change target to parent if the href is using javascript\r
-function BSSCPopup_ChangeTargettoParent(tagsObject)\r
-{\r
-       var collA = getElementsByTag(tagsObject, "A");\r
-       BSSCPopup_ChangeTargettoParent2(collA);\r
-\r
-       var collIMG = getElementsByTag(tagsObject,"IMG");\r
-       BSSCPopup_ChangeTargettoParent2(collIMG);\r
-}\r
-\r
-function BSSCPopup_ChangeTargettoParent2(colls)\r
-{\r
-       if (colls != null)  {\r
-               for (var j = 0; j < colls.length; j ++ )\r
-               {\r
-                       var strtemp = colls[j].href;\r
-                       if (strtemp)\r
-                       {\r
-                               strtemp = strtemp.toLowerCase();\r
-                               if (strtemp.indexOf("javascript:") == -1)\r
-                               if (colls[j].target == "")\r
-                                       colls[j].target = "_parent";\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function BSPSPopupTopicWinHelp(strURL)\r
-{\r
-       _BSSCPopup(strURL);\r
-       return;\r
-}\r
-\r
-function _BSSCPopup(strURL, width, height)\r
-{\r
-       var cuswidth = 0;\r
-       var cusheight = 0;\r
-       if ("undefined" != typeof(width) && "undefined" != typeof(height)) {\r
-               cuswidth = width;\r
-               cusheight= height;\r
-       }\r
-       \r
-       if (DHTMLPopupSupport()) {\r
-               var nToken = takeToken(); // take  token first.\r
-               var nIndex = _BSSCCreatePopupDiv(strURL);\r
-               window.gbPopupTimeoutExpired = false;\r
-               var ntWidth = gBsClientWidth;\r
-               var ntHeight = gBsClientHeight;\r
-               _BSPSGetClientSize();\r
-               if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {\r
-                       setDirty();\r
-               }\r
-\r
-               if (IsDirty(nIndex)) {\r
-                       if (gbBsMac) {\r
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);\r
-                       } else {\r
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);\r
-                       }\r
-               }\r
-               else {\r
-                       MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);\r
-               }\r
-       } else {\r
-               _BSSCPopup2(strURL, cuswidth, cusheight);\r
-       }\r
-       return;\r
-}\r
-\r
-if (gbBsIE55)\r
-{\r
-       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;\r
-       var gnBsUnload=0;\r
-       window.onbeforeunload = window_BUnload;\r
-}\r
-       \r
-function window_BUnload()\r
-{\r
-       gnBsUnload++;\r
-       if (gnBsUnload>1)\r
-               return;\r
-       for (var i = 0; i < arrayPopupURL.length; i ++)\r
-               removeThis(document.all(getPopupID(i)));\r
-       arrayPopupURL.length = 0;       \r
-       if (ehlpdhtm_fOldBefureUnload)\r
-               ehlpdhtm_fOldBefureUnload();\r
-}\r
-\r
-function _BSSCPopup2(strURL, width, height)\r
-{\r
-       if (gbBsOpera6&&gbBsMac)\r
-       {\r
-               var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName);\r
-               wmTemp.close();\r
-               setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100);\r
-       }\r
-       else\r
-               _BSSCPopup3(strURL, width, height);\r
-}\r
-               \r
-function _BSSCPopup3(strURL, width, height)\r
-{\r
-       if (window.name == gstrPopupSecondWindowName) {\r
-               window.location = strURL;\r
-       } else {\r
-               if (!gbBsMac || !gbBsNS4) {\r
-                       BSSCHidePopupWindow();\r
-               }\r
-               var nX = 0;\r
-               var nY = 0;\r
-               var nHeight = 300;\r
-               var nWidth = 400;\r
-               if (width > 0 && height > 0) {\r
-                       nHeight = height;\r
-                       nWidth = width;\r
-               }\r
-               _BSPSGetClientSize();\r
-\r
-               nX = window.gnPopupScreenClickX;\r
-               nY = window.gnPopupScreenClickY;\r
-\r
-               if (nY + nHeight + 40 > screen.availHeight) {\r
-                       nY = screen.availHeight - nHeight - 40;\r
-               }\r
-               if (nX + nWidth + 40 > screen.availWidth) {\r
-                       nX = screen.availWidth - nWidth - 40;\r
-               }\r
-\r
-               // Launch a separate window\r
-               var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";\r
-               if (gbBsNS) {\r
-                       if (gbBsNS6) {\r
-                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;\r
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;\r
-                               strParam += ",dependent=yes";\r
-                       }\r
-                       else {\r
-                               strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;\r
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;\r
-                               strParam += ",dependent=yes";\r
-                       }\r
-               }\r
-               else {\r
-                       strParam += ",height=" + nHeight + ",width=" + nWidth;\r
-                       strParam += ",left=" + nX + ",top=" + nY;\r
-               }\r
-               if (gbBsSafari)\r
-               {\r
-                       if (window.gPopupWindow)\r
-                               window.gPopupWindow.close();            \r
-                       window.gPopupWindow = window.open(strURL, "", strParam);\r
-                       window.gPopupWindow.name = gstrPopupSecondWindowName;\r
-                       window.gPopupWindow.moveTo(nX, nY);\r
-                       widnow.gPopupWindow.document.location.reload();\r
-               }       \r
-               else\r
-               {\r
-                       var wmTemp=null;\r
-                       if (gbBsKonqueror3)\r
-                       {\r
-                               if (window.gPopupWindow)\r
-                                       window.gPopupWindow.close();\r
-                       }\r
-                       if (gbBsOpera&&gbBsMac)\r
-                       {\r
-                               wmTemp= window.open(document.location.href, "Temp", strParam);\r
-                       }\r
-                       window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);\r
-                       if (!gbBsIE)\r
-                               window.gPopupWindow.focus();\r
-                               \r
-                       if (wmTemp)\r
-                               wmTemp.close();\r
-               }\r
-\r
-               if (gbBsNS4)\r
-                       setEventHandle();\r
-               else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3)\r
-                       setTimeout("setPopupFocus();", 100);\r
-       }\r
-       return;\r
-}\r
-\r
-function setEventHandle()\r
-{\r
-       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR);\r
-       window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
-       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;\r
-}\r
-\r
-function setPopupFocus()\r
-{\r
-       window.gPopupWindow.focus();\r
-}\r
-\r
-function NonIEPopup_HandleBlur(e)\r
-{\r
-       window.gPopupWindow.focus();\r
-}\r
-\r
-function NonIEPopup_HandleClick(e)\r
-{\r
-       // Because navigator will give the event to the handler before the hyperlink, let's\r
-       // first route the event to see if we are clicking on a Popup menu in a popup.\r
-       document.routeEvent(e);\r
-\r
-       // If a popup menu is active then don't do anything with the click\r
-       if (window.gPopupWindow.gbInPopupMenu) {\r
-               window.gPopupWindow.captureEvents(Event.CLICK);\r
-               window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
-               return false;\r
-       }\r
-\r
-       // Close the popup window\r
-       if(e.target.href)\r
-       {\r
-               if(e.target.href.indexOf("javascript:")==-1) \r
-               {\r
-                       if (e.target.target=="")\r
-                               window.location.href = e.target.href;\r
-                       else\r
-                               window.open(e.target.href, e.target.target);\r
-                       this.close();\r
-               }\r
-       } \r
-       else\r
-               this.close();\r
-       return false;\r
-}\r
-\r
-function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)\r
-{      \r
-       if (!window.getPopupIFrame(nIndex).document) {\r
-               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);\r
-               return;\r
-       }\r
-       \r
-    if (!IsValidToken(nToken)) return;\r
-\r
-       if (gbBsNS6)\r
-       {\r
-               setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.\r
-               BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);\r
-               return;\r
-       }\r
-       \r
-       if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&\r
-               (window.getPopupIFrame(nIndex).document.body != null)) {\r
-                       if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.\r
-                               window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);\r
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
-                       }\r
-                       else\r
-                               {\r
-                                       setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.\r
-                                       BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);\r
-                               }\r
-       } else {\r
-               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
-       }\r
-}\r
-\r
-function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)\r
-{\r
-       if (window.gbPopupTimeoutExpired) return;\r
-\r
-    if (!IsValidToken(nToken)) return;\r
-\r
-       getPopupDivStyle(nIndex).visibility = gBsStyVisHide;\r
-       getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide;\r
-\r
-       // Determine the width and height for the window\r
-       _BSPSGetClientSize();\r
-\r
-       var size = new BSSCSize(0, 0);\r
-\r
-       if (cuswidth <= 0 || cusheight <= 0)\r
-               BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
-       else {\r
-               size.x = cuswidth;\r
-               size.y = cusheight;\r
-       }\r
-\r
-       // Determine the width and height for the window\r
-       var nWidth = size.x;\r
-       var nHeight = size.y;\r
-\r
-       // for small popup size, we should allow any size.\r
-       // The popup size should be ok if bigger than 0\r
-       if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              \r
-\r
-       getPopupDivStyle(nIndex).width = nWidth;\r
-       getPopupDivStyle(nIndex).height = nHeight;\r
-\r
-       getPopupShadowStyle(nIndex).width = nWidth;\r
-       getPopupShadowStyle(nIndex).height = nHeight;\r
-       getPopupTopicStyle(nIndex).width = nWidth;\r
-       getPopupTopicStyle(nIndex).height = nHeight;\r
-       if (gbBsIE55)\r
-       {\r
-               getPopupShadowStyle(nIndex).width = nWidth + 2;\r
-               getPopupShadowStyle(nIndex).height = nHeight + 2;\r
-               getPopupTopicStyle(nIndex).width = nWidth + 2;\r
-               getPopupTopicStyle(nIndex).height = nHeight + 2;\r
-       }\r
-\r
-       getPopupIFrameStyle(nIndex).width = nWidth;\r
-       getPopupIFrameStyle(nIndex).height = nHeight;\r
-       if (gbBsIE55 || gbBsNS6)\r
-       {\r
-               getPopupIFrameStyle(nIndex).top = 0;\r
-               getPopupIFrameStyle(nIndex).left = 0;\r
-       }\r
-       \r
-       var strURL = getPopupURL(nIndex);\r
-       if (strURL.indexOf("#") != -1&&gbBsNS6)\r
-               getPopupIFrame(nIndex).location.reload();\r
-       else if (strURL.indexOf("#") != -1||gbBsNS6)\r
-               getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.\r
-               \r
-       MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);\r
-}\r
-\r
-function getScrollLeft()\r
-{\r
-       if (document.body.scrollLeft)\r
-               return document.body.scrollLeft;\r
-       else if (window.pageXOffset)\r
-               return window.pageXOffset;\r
-       else\r
-               return 0;\r
-}\r
-\r
-function getScrollTop()\r
-{\r
-       if (document.body.scrollTop)\r
-               return document.body.scrollTop;\r
-       else if (window.pageYOffset)\r
-               return window.pageYOffset;\r
-       else\r
-               return 0;\r
-}\r
-\r
-\r
-function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)\r
-{\r
-       if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.\r
-                       window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);\r
-                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);\r
-                       return;\r
-       }\r
-\r
-       // Determine the position of the window\r
-       var nClickX = window.gnPopupClickX;\r
-       var nClickY = window.gnPopupClickY;\r
-       var nTop = 0;\r
-       var nLeft = 0;\r
-\r
-       var nWidth = parseInt(getPopupDivStyle(nIndex).width);\r
-       var nHeight = parseInt(getPopupDivStyle(nIndex).height);\r
-\r
-       if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) {\r
-               nTop = nClickY + 10;\r
-       } else {\r
-               nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20;\r
-       }\r
-       if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) {\r
-               nLeft = nClickX;\r
-       } else {\r
-               nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8;\r
-       }\r
-\r
-       if (nTop < getScrollTop()) nTop  = getScrollTop() + 1;\r
-       if (nLeft< getScrollLeft())  nLeft = getScrollLeft() + 1;\r
-\r
-       getPopupDivStyle(nIndex).left = nLeft;\r
-       getPopupDivStyle(nIndex).top = nTop;\r
-\r
-       // Set the location of the background blocks\r
-       getPopupShadowStyle(nIndex).left = 6;\r
-       getPopupShadowStyle(nIndex).top = 6;\r
-       if (gbBsIE55)\r
-       {\r
-               getPopupShadowStyle(nIndex).left = 4;\r
-               getPopupShadowStyle(nIndex).top = 4;\r
-       }\r
-\r
-       if (gbBsMac&&gbBsIE4) {\r
-               // Total hack on the iMac to get the IFrame to position properly\r
-               getPopupIFrameStyle(nIndex).pixelLeft = 100;\r
-               getPopupIFrameStyle(nIndex).pixelLeft = 0;\r
-               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it\r
-               getPopupIFrame(nIndex).window.BSSCOnLoad();\r
-       }\r
-\r
-       if (gbBsNS6&&IsDirty(nIndex))\r
-               getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false);\r
-       else\r
-               BSSCPopup_Timeout(nIndex , nToken );\r
-       return;\r
-}\r
-\r
-function       BSSCSize(x, y)\r
-{\r
-       this.x = x;\r
-       this.y = y;\r
-}\r
-\r
-function BSSCGetContentSize(thisWindow, size)\r
-{\r
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4)\r
-               return;\r
-\r
-       if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) {\r
-               size.x = 320;\r
-               size.y = 180;\r
-               return;\r
-       }\r
-\r
-       // Resize the width until it is wide enough to handle the content\r
-       // The trick is to start wide and determine when the scrollHeight changes\r
-       // because then we know a scrollbar is necessary. We can then go back\r
-       // to the next widest size (for no scrollbar)\r
-\r
-       var ClientRate = gBsClientHeight / gBsClientWidth;\r
-\r
-       \r
-       var GoldenSize = new BSSCSize(0,0);\r
-       GoldenSize.x = gBsClientWidth * gBMaxXOfParent;\r
-       GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;\r
-\r
-       if (ClientRate > gBRateH_W) {\r
-               GoldenSize.y = GoldenSize.x * gBRateH_W;\r
-       }\r
-       else {\r
-               GoldenSize.x = GoldenSize.y / gBRateH_W;\r
-       }\r
-\r
-       // Try to using parent specified max x.\r
-       var x = 0;\r
-       var maxgoldx = GoldenSize.x;\r
-       var maxx = gBsClientWidth * gBMaxXOfParent;\r
-       \r
-       // This double resize causes the document to re-render (and we need it to)\r
-       if (!gbBsIE5)\r
-               thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.\r
-               \r
-       thisWindow.resizeTo(1, 1);\r
-       thisWindow.resizeTo(1, 1);\r
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-               \r
-       var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;\r
-       \r
-       if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can\r
-       {\r
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);\r
-               \r
-               miny =  thisWindow.document.body.scrollHeight + gBscrollHeight;\r
-               maxy = gBsClientHeight * gBMaxYOfParent;\r
-               \r
-               if (miny > maxy) { // the popup must have a scroll, OK let it be.\r
-                       miny = maxy;\r
-                       size.x = maxx;\r
-                       size.y = maxy;\r
-                       thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.\r
-               }\r
-               else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.\r
-                       size.y = miny;\r
-                       \r
-                       //  downsize from maxx , now I try to using binary divide.\r
-                       x = maxx;\r
-                       deltax = -maxx/2;\r
-                       //j = 0;\r
-                       while (true) {\r
-                               x = x + deltax;\r
-                               thisWindow.resizeTo(x, miny);\r
-                               thisWindow.resizeTo(x, miny);\r
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;\r
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter\r
-                                       deltax = Math.abs(deltax) /2;\r
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter\r
-                                       deltax = -Math.abs(deltax) /2;\r
-                               else \r
-                                       // the y is close enough to wanted.\r
-                                       break;\r
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
-                                       break;\r
-                       }\r
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
-                       size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     \r
-                       thisWindow.document.body.scroll = 'no';\r
-               }\r
-       }\r
-       else {\r
-               if (thisWindow.document.body.scrollWidth > maxgoldx) {\r
-                       size.x = maxx; \r
-                       size.y = miny;  \r
-                       thisWindow.document.body.scroll = 'yes';\r
-               }\r
-               else {\r
-                       //  downsize from maxgoldx , now I try to using binary divide.\r
-                       x = maxgoldx;\r
-                       deltax = -maxgoldx/2;\r
-                       while (true) {\r
-                               x = x + deltax;\r
-                               thisWindow.resizeTo(x, miny);\r
-                               thisWindow.resizeTo(x, miny);\r
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;\r
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter\r
-                                       deltax = Math.abs(deltax) /2;\r
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter\r
-                                       deltax = -Math.abs(deltax) /2;\r
-                               else \r
-                                       // the y is close enough to wanted.\r
-                                       break;\r
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.\r
-                                       break;\r
-                       }\r
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;\r
-                       size.y = thisWindow.document.body.scrollHeight ;\r
-                       thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.\r
-                       thisWindow.resizeTo(size.x, size.y);\r
-                       if (thisWindow.document.body.scrollWidth > size.x)\r
-                       {\r
-                               size.x = thisWindow.document.body.scrollWidth;\r
-                       }\r
-                       if (thisWindow.document.body.scrollHeight > size.y)\r
-                       {\r
-                               size.y = thisWindow.document.body.scrollHeight;\r
-                       }\r
-               }\r
-       }\r
-       thisWindow.resizeTo(size.x, size.y);\r
-       thisWindow.resizeTo(size.x, size.y);\r
-       return;\r
-}\r
-\r
-function BSSCPopupParentClicked()\r
-{\r
-       if (!window.gbPopupTimeoutExpired) {\r
-               return false;\r
-       }\r
-       \r
-       document.onmousedown = gbOrignalOnMouseDown;\r
-\r
-       // Simply hide the popup\r
-       hideAll();\r
-\r
-       window.gbPopupTimeoutExpired = false;\r
-\r
-       return true;\r
-}\r
-\r
-function isInsideHyperLink(obj)\r
-{\r
-       if (obj&&obj!=getParentNode(obj))\r
-       {\r
-               if (obj.tagName=="A"||obj.tagName=="IMG")\r
-                       return true;\r
-               else\r
-                       return isInsideHyperLink(getParentNode(obj));\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function BSSCPopupClicked(e)\r
-{\r
-       if (!window.gbPopupTimeoutExpired) {\r
-               return false;\r
-       }\r
-\r
-       var popupIFrame = getCurrentPopupIFrame();\r
-       if (popupIFrame == null) {\r
-               return true;\r
-       }\r
-\r
-       if (gbBsIE4 && (!((popupIFrame.window.event != null) &&\r
-               (popupIFrame.window.event.srcElement != null) &&\r
-               isInsideHyperLink(popupIFrame.window.event.srcElement)))) {\r
-               document.onmousedown = gbOrignalOnMouseDown;\r
-               \r
-               // Simply hide the popup\r
-               hideAll();\r
-               window.gbPopupTimeoutExpired = false;\r
-               return true;\r
-       }\r
-       else if (gbBsNS6 && (!((e != null) &&\r
-                       (e.target!= null) && isInsideHyperLink(e.target))))\r
-       {\r
-               document.addEventListener("mousedown", gbOrignalOnMouseDown,false);\r
-               // Simply hide the popup\r
-               hideAll();\r
-               window.gbPopupTimeoutExpired = false;\r
-               return true;            \r
-       }\r
-}\r
-\r
-//trace the mouse over's position for hotspot\r
-function  BSPSPopupOnMouseOver(event)\r
-{\r
-       if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) {\r
-               window.gnPopupClickX = event.clientX + getScrollLeft();\r
-               window.gnPopupClickY = event.clientY + getScrollTop();\r
-               window.gnPopupScreenClickX = event.screenX;\r
-               window.gnPopupScreenClickY = event.screenY;\r
-       } else if (gbBsSafari) {\r
-               window.gnPopupClickX = event.clientX + getScrollLeft();\r
-               window.gnPopupClickY = event.clientY + getScrollTop();\r
-               window.gnPopupScreenClickX = event.screenX + window.screenX;\r
-               window.gnPopupScreenClickY = event.screenY + window.screenY;\r
-       } else if (gbBsNS4) {\r
-               window.gnPopupClickX = event.pageX - window.pageXOffset;\r
-               window.gnPopupClickY = event.pageY - window.pageYOffset;\r
-               window.gnPopupScreenClickX = event.screenX - window.pageXOffset;\r
-               window.gnPopupScreenClickY = event.screenY - window.pageYOffset;\r
-       }\r
-}\r
-\r
-function BSSCHidePopupWindow()\r
-{\r
-       if (window.gPopupWindow != null) {\r
-               if (gbBsNS4) {\r
-                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {\r
-                               window.gPopupWindow.close();\r
-                               window.gPopupWindow = null;\r
-                       }\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-// Add the PopupOnClick to the onclick array.\r
-if (typeof(BsscRegisterOnClick) != "undefined")\r
-{\r
-       BsscRegisterOnClick(BsPopupOnClick);\r
-}\r
-//End to support previous popup functions\r
-\r
-/// Section End  - Popup (JavaScript 1.0)\r
-\r
-/// Section Begin - Embedded Stub (JavaScript 1.0)\r
-\r
-function BSSCCreatePopupDiv()\r
-{\r
-       return;\r
-}\r
-\r
-function WritePopupMenuLayer()\r
-{\r
-       if (BsscHasExtJs()) {_WritePopupMenuLayer();}\r
-}\r
-\r
-function BSSCPopup(strURL, width, height)\r
-{\r
-       var re = new RegExp("'", 'g');\r
-       strURL = strURL.replace(re, "%27");\r
-\r
-       if (BsscHasExtJs())     { \r
-               _BSSCPopup(strURL, width, height);\r
-       }else{\r
-               //Create a temporary window first to ensure the real popup comes up on top\r
-               var wndTemp = null;\r
-               if (!gbBsNS3) {\r
-                       wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
-               }\r
-               // Create the real popup window\r
-               var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");\r
-               // Close the temporary\r
-               if (!gbBsNS3) {\r
-                       wndTemp.close();\r
-               } else {\r
-                       wndPopup.focus();\r
-               }\r
-       }\r
-}\r
-\r
-var gbWndTemp = null, gbWndPopupLinks = null;\r
-var gbstrParaTotal = "";\r
-\r
-function PopupMenu_Invoke()\r
-{\r
-       if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function')\r
-       {\r
-               if (Number(gsSkinVersion) > 2 && IsFlashSupported())\r
-               {\r
-                       return wfRelatedTopic(PopupMenu_Invoke.arguments);\r
-               }\r
-       }\r
-       if (BsscHasExtJs()) {\r
-               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);\r
-       }\r
-       if (gbBsNS3Before || gbBsIE3Before )    {\r
-               var argLen      = PopupMenu_Invoke.arguments.length;\r
-               if (argLen < 5) {\r
-                       window.document.location.href = PopupMenu_Invoke.arguments[3];\r
-                       return false;\r
-               }\r
-               gbWndTemp = null;\r
-               gbWndPopupLinks = null;\r
-               gbstrParaTotal = "";\r
-               for (var i = 0; i < (argLen - 2) / 2; i++) {\r
-                       var strParaLine = "";\r
-                       if (gbBsNS2){\r
-                               strParaLine += "<a href=\"";\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
-                               strParaLine += "\">"\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];\r
-                               strParaLine += "</a>";\r
-                       } else {\r
-                               strParaLine += "<a href=\"javascript:";\r
-                               strParaLine += "gotoUrl(\'";\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];\r
-                               strParaLine += "\');\"";\r
-                               if (PopupMenu_Invoke.arguments[1] != '') {\r
-                                       strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";\r
-                               }\r
-                               strParaLine += ">";\r
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];\r
-                               strParaLine += "</a>";\r
-                       }\r
-                       strParaLine += "<br>";\r
-                       gbstrParaTotal += strParaLine;\r
-               }\r
-               var nHeight = argLen * 15;\r
-               var nWidth = 400;\r
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";\r
-               strParam += ",height=" + nHeight + ",width=200,resizable";\r
-               \r
-               //Create a temporary window first to ensure the real popup comes up on top\r
-               //var wndTemp = null;\r
-               if (!gbBsNS3) {\r
-                       gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");\r
-               } \r
-               gbWndPopupLinks = window.open("", "popuplinks", strParam);\r
-\r
-               setTimeout("Wait_PopupMenuReady()", 100);\r
-       }\r
-       return true;\r
-}\r
-\r
-function Wait_PopupMenuReady() \r
-{\r
-       if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {\r
-               PopupMenu_InvokeReady();\r
-       }\r
-       else \r
-               setTimeout("Wait_PopupMenuReady()", 100);\r
-}\r
-\r
-function PopupMenu_InvokeReady()\r
-{\r
-       if (gbWndPopupLinks != null) {\r
-               gbWndPopupLinks.document.open("text/html");\r
-               gbWndPopupLinks.document.write("<html><head>");\r
-               if (gbBsNS2) {\r
-                       gbWndPopupLinks.document.write("<base href=\"" + location +"\">");\r
-               } else {\r
-                       //YJ: IE301,302 and NS3.x works fine\r
-                       gbWndPopupLinks.document.write("<");\r
-                       gbWndPopupLinks.document.write("script>");\r
-                       gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");\r
-                       gbWndPopupLinks.document.write("<");\r
-                       gbWndPopupLinks.document.write("/script>");\r
-               }\r
-               gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");\r
-               gbWndPopupLinks.document.write(gbstrParaTotal);\r
-               gbWndPopupLinks.document.write("</body></html>");\r
-               gbWndPopupLinks.document.close();\r
-\r
-               // Close the temporary\r
-               if (!gbBsNS3 && gbWndTemp != null) {\r
-                       gbWndTemp.close();\r
-               }else {\r
-                       gbWndPopupLinks.focus();\r
-               }\r
-\r
-               return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-/// Section End - Embedded Stub (JavaScript 1.0)\r
-\r
-//// Segment End -- (JavaScript 1.0)\r
-\r
-//// Segment Begin -- (JavaScript 1.2)\r
-/// Section Begin  - kadov DHTM (JavaScript 1.2)\r
-\r
-//Begin to support extended and dropdown text effects.\r
-function kadovIsParagraph(el)\r
-{\r
-       return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;\r
-}\r
-\r
-function kadovInitEachChild(el)\r
-{      \r
-       for(var i=0; i<getChildNodes(el).length; i++)\r
-       {\r
-               var child = getChildNodes(el)[i];\r
-               if( child.tagName == "SCRIPT" || child.tagName == "!" )\r
-                       continue;\r
-\r
-               if( child.id != "" )\r
-               {\r
-                       // to wipe out the onload effects\r
-                       if (gbBsIE4&&!gbBsMac)\r
-                       {\r
-                               var onLoadEffect = child.style.getAttribute( "x-on-pageload" );\r
-                               if( (onLoadEffect != null) && (onLoadEffect > "") )\r
-                                       child.style.setAttribute( "x-on-pageload", "" );\r
-                       }\r
-                       \r
-                       var href = child.getAttribute("href")\r
-                       if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )\r
-                               kadovFilePopupInit(child.id); // Init for Popup\r
-                       else if( child.className == "dropspot" || child.className == "expandspot" || \r
-                                        child.className == "glossterm" )\r
-                               kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text\r
-                       else if( child.className == "trigger")\r
-                               kadovInitTrigger(child.id);// Init for Trigger\r
-                       else\r
-                       {\r
-                               kadovInitEffects(child.id);// Init for DHTML effects\r
-                               CEngine.SetOneTargetInitialState( child.id );\r
-                       }\r
-               }\r
-               \r
-               if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )\r
-                       child.start = "mouseover";// to start a AVI file. fileopen doesn't work\r
-\r
-               kadovInitEachChild(child);\r
-       }\r
-}\r
-\r
-function kadovRetrieveTextInner(el)\r
-{      \r
-       var x = "";\r
-       if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))\r
-               return x;\r
-\r
-       if( kadovIsParagraph(el) )\r
-       {\r
-               var strNewID = " ";\r
-               if( el.id != "" )\r
-                       strNewID += "id=" + el.id + "_NewSpan ";\r
-               x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";\r
-       }\r
-       else\r
-       {\r
-               for(var i=0; i<getChildNodes(el).length; i++)\r
-                       x += kadovRetrieveTextInner( getChildNodes(el)[i] );\r
-       }\r
-       return x;\r
-}\r
-\r
-function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )\r
-{      \r
-       var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );\r
-       if( nTagOpen < 0 )\r
-               return strRawHTML;\r
-\r
-       var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);\r
-       if( nTagClose < nTagOpen )\r
-               return strRawHTML;\r
-               \r
-       if( typeof(nDistance) == "number" && nDistance > 0 )\r
-               if( (nTagClose - nTagOpen) != nDistance )\r
-                       return strRawHTML;\r
-               \r
-       var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;\r
-       return  kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );\r
-}\r
-\r
-function kadovAdjustObjectTag(strRawHTML, nStartPos)\r
-{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings\r
-       \r
-       //Is there any DTC?\r
-       var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';\r
-       var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';\r
-       var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );\r
-       if( nDTCTagOpen < 0 )\r
-               return strRawHTML;\r
-       var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );\r
-       if( nDTCTagClose < nDTCTagOpen)\r
-               return strRawHTML; // no Design Time Controls;\r
-               \r
-       //Is the DTC HTML Help Control?\r
-       var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';\r
-       var strRTObjTagClose = '</OBJECT>';\r
-       var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );\r
-       if( nRTObjTagOpen < nDTCTagOpen )\r
-               return strRawHTML;\r
-       var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );\r
-       if( nRTObjTagClose < nRTObjTagOpen )\r
-               return strRawHTML; // is not a HTML help control\r
-               \r
-       // Is it a related Topics html help control?\r
-       var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';\r
-       if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )\r
-               return strRawHTML;\r
-       \r
-       // does the commented object tag contain a items parameters             \r
-       var strRTItemsOpen = '<param name="Items" value="';\r
-       var strRTItemsClose = '$$**$$" >';\r
-       var strRTItemsClose2 = '$$**$$">';\r
-\r
-       var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);\r
-       if( nRTItemsOpen < nDTCTagOpen )\r
-               return strRawHTML;\r
-       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);\r
-       if (nRTItemsClose == -1)\r
-               nRTItemsClose = strRawHTML.indexOf(strRTItemsClose2, nRTItemsOpen);\r
-       if( nRTItemsClose < nRTItemsOpen )\r
-               return strRawHTML;\r
-               \r
-       // found a items string\r
-       var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);\r
-       if( strItems.length < 1 )\r
-               return strRawHTML;\r
-       \r
-       // to reconstruct the item(s) param tag(s)\r
-       var strItemsArray = strItems.split('$$**$$');\r
-       if( strItemsArray.length < 1 )\r
-               return strRawHTML;\r
-       var strRunTimeItemParam = "";\r
-       for( var i = 0; i < strItemsArray.length; i++ )\r
-       {\r
-               strRunTimeItemParam += '<PARAM  NAME="Item' + (i+1);\r
-               strRunTimeItemParam += '"' + '  VALUE="';\r
-               strRunTimeItemParam += strItemsArray[i];\r
-               strRunTimeItemParam += '">';\r
-       }\r
-       \r
-       // to insert the reconstructed item params into runtime object tag\r
-       var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);\r
-       return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);\r
-}\r
-\r
-function kadovTextPopupOnLoad( el )\r
-{\r
-       if( typeof(el) == "string" )\r
-               el = getElement(el);\r
-\r
-       var src = el.getAttribute( "x-use-popup" );\r
-       var bNeedMove=true;\r
-       if(!src&&el.id)\r
-       {\r
-               for (var i=0;i<gPopupData.length;i++)\r
-                       if (gPopupData[i].el==el.id)\r
-                       {\r
-                               src=gPopupData[i].popupId;\r
-                               bNeedMove=false;\r
-                               break;\r
-                       }\r
-       }\r
-       if(!src)\r
-               src = el.style.getAttribute( "x-use-popup" );   \r
-       if (!src)       \r
-               return 0;\r
-\r
-       var name = src;\r
-       if( src.substr(0,1) == "#" ) \r
-               name = src.substr(1, src.length-1);\r
-       var srcDiv = getElement(name);\r
-       if( !srcDiv )\r
-               return 1;\r
-\r
-       if (bNeedMove)\r
-       {\r
-               var type = el.getAttribute( "x-popup-type" );\r
-               if (!type)\r
-                       type = el.style.getAttribute("x-popup-type");\r
-               if (!type)              \r
-                       return 1;               \r
-               var setup = el.getAttribute( "x-tmp-setup" );\r
-               var newId = name;\r
-               if( newId.indexOf( "_tmp") <= 0 )\r
-                       newId += "_tmp";\r
-\r
-               if( !setup)\r
-               {\r
-                       el.setAttribute( "x-tmp-setup", 1 );\r
-\r
-                       if( type == "pulldown"  )\r
-                       {\r
-                               var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);\r
-                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
-                               \r
-                               //work around the bug in HH.exe that highlight the phrases when use Search tab\r
-                               //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime\r
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);\r
-                               \r
-                               var strStyle = " style='display:none; position:relative;";\r
-                               var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";\r
-\r
-                               removeThis(srcDiv); // empty the original DIV tag\r
-                               var elParentPra = kadovFindParentParagraph(el);\r
-                               if( elParentPra )\r
-                                       insertAdjacentHTML(elParentPra, "afterEnd", newDiv );\r
-                       }\r
-                       else if( type == "expanding"  )\r
-                       {\r
-                               var inner = kadovRetrieveTextInner(srcDiv);\r
-                               if( inner == "" )\r
-                                       inner = srcDiv.innerHTML;\r
-                               var strAdjust = kadovAdjustObjectTag(inner,0);\r
-                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");\r
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");\r
-                               var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";\r
-                               var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";\r
-                               removeThis(srcDiv); // empty the original DIV tag\r
-                               insertAdjacentHTML(el, "afterEnd", newSpan );\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               srcDiv.style.display = "none";\r
-       }\r
-       return 0;\r
-}\r
-\r
-function getElementsByTag(obj,sTagName)\r
-{\r
-       if(obj.getElementsByTagName)\r
-               return obj.getElementsByTagName(sTagName);\r
-       else if(obj.all)\r
-               return obj.all.tags(sTagName);\r
-       return null;\r
-}\r
-\r
-function getElement(sID)\r
-{\r
-       if(document.getElementById)\r
-               return document.getElementById(sID);\r
-       else if(document.all)\r
-               return document.all(sID);\r
-       return null;\r
-}\r
-\r
-function getParentNode(obj)\r
-{\r
-       if(obj.parentNode)\r
-               return obj.parentNode;\r
-       else if(obj.parentElement)\r
-               return obj.parentElement;\r
-       return null;\r
-}\r
-\r
-function getChildNodes(obj)\r
-{\r
-       if(obj.childNodes)\r
-       {\r
-               var children = new Array();\r
-               for (var i = 0; i < obj.childNodes.length; i++)\r
-               {\r
-                       if (obj.childNodes[i].nodeType == 1)\r
-                               children[children.length] = obj.childNodes[i];\r
-               }\r
-               return children;\r
-       }\r
-       else if(obj.children)\r
-               return obj.children;\r
-       return null;    \r
-}\r
-\r
-function removeThis(obj)\r
-{\r
-       if(obj.parentNode)\r
-               obj.parentNode.removeChild(obj);\r
-       else\r
-               obj.outerHTML="";\r
-}\r
-\r
-function kadovTextPopup( el )\r
-{\r
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 )\r
-               return;\r
-\r
-       var bNeedMove=true;\r
-       \r
-       if (window.event)\r
-               window.event.cancelBubble = true;\r
-\r
-       if( typeof(el) == "string" )\r
-               el = getElement(el);\r
-\r
-       if (!el||el==window)\r
-               return;\r
-       \r
-       var src = el.getAttribute( "x-use-popup" );\r
-       if(!src&&el.id)\r
-       {\r
-               for (var i=0;i<gPopupData.length;i++)\r
-                       if (gPopupData[i].el==el.id)\r
-                       {\r
-                               src=gPopupData[i].popupId;\r
-                               bNeedMove=false;\r
-                               break;\r
-                       }\r
-       }\r
-       if(!src)\r
-               src = el.style.getAttribute( "x-use-popup" );   \r
-       if(!src)\r
-               return;\r
-               \r
-       var name = src;\r
-       if( src.substr(0,1) == "#" ) \r
-       if (bNeedMove)\r
-               name = src.substr(1, src.length-1) + "_tmp";\r
-       else\r
-               name = src.substr(1, src.length-1);\r
-\r
-       var srcDiv = getElement(name);\r
-       if( !srcDiv )\r
-               return;\r
-\r
-       if( srcDiv )\r
-       {\r
-               if( srcDiv.style.display == "" )\r
-                       srcDiv.style.display = "none";\r
-               else\r
-               {\r
-                       srcDiv.style.display = "";\r
-                       if( typeof(srcDiv.bInitialized) == "undefined" )\r
-                       {\r
-                               srcDiv.bInitialized = true;\r
-                               kadovInitEffects(name);\r
-                               kadovInitEachChild(srcDiv);\r
-                       }\r
-               }\r
-       }\r
-       if(gbBsIE4)\r
-               event.returnValue=false;\r
-       return;\r
-}\r
-\r
-function kadovFindParentParagraph( el )\r
-{\r
-       if( typeof(el) == "string" )\r
-               el = getElement(el);\r
-       if( (!el) || el.tagName == "BODY" )\r
-               return null;\r
-       if( kadovIsParagraph(getParentNode(el)) )\r
-               return getParentNode(el);\r
-       else\r
-               return kadovFindParentParagraph( getParentNode(el) );\r
-}\r
-\r
-//Begin HTML code invoked function\r
-function kadovRegisterEventHandler( obj, strEvent, strEventHandler )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );\r
-}\r
-\r
-function textPopupData(el, popupId)\r
-{\r
-       this.el = el;\r
-       this.popupId = "#"+popupId;\r
-}\r
-\r
-var gPopupData = new Array();\r
-\r
-function kadovTextPopupInit( el, popupId)\r
-{\r
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3)\r
-               return;\r
-               \r
-       if( typeof(el) == "string" )\r
-       {\r
-               if (popupId)\r
-               {\r
-                       gPopupData[gPopupData.length]=new textPopupData(el, popupId);\r
-               }\r
-               el = getElement(el);\r
-       }\r
-               \r
-       if( el != null )\r
-       {\r
-               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(\"" + el.id +"\");" );\r
-               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(\"" + el.id +"\");" );\r
-       }\r
-}\r
-//End HTML code invoked function\r
-\r
-//End to support extended and dropdown text effects.\r
-\r
-//Begin to convert iWrite format to RoboEditor Format for DHTML effects\r
-function kadovInitTriggersInHead( )\r
-{\r
-  if( Object.xDelayedInitElements )\r
-  {\r
-     var x = Object.xDelayedInitElements;\r
-     for(i=0; i<x.length; i++)\r
-       kadovInitTrigger( x[i] );\r
-  }\r
-}\r
-\r
-//Begin HTML code invoked function\r
-function kadovFilePopupInit( el )\r
-{\r
-       if( typeof(el) == "string" )\r
-               el = getElement(el);\r
-\r
-       if( el != null )\r
-               CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );\r
-}\r
-\r
-function kadovInitTrigger( element )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       var srcElement = element;\r
-       if( typeof(srcElement) == "string" )\r
-       {\r
-               srcElement = getElement(element,0);\r
-               if(srcElement == null)\r
-                       return;\r
-       }\r
-       \r
-       if( !kadovIsParentVisible(srcElement) )\r
-               return;\r
-\r
-       var targets = srcElement.getAttribute( "x-targets" );\r
-       if (!targets)\r
-               targets = srcElement.style.getAttribute("x-targets");\r
-       if (!targets)\r
-               return; \r
-       var arrOneTarget = targets.split( "," );\r
-       for( var i = 0; i < arrOneTarget.length; i ++ )\r
-               bsscFXInit( element, arrOneTarget[i], null, null, null, null );\r
-}\r
-\r
-function kadovIsParentVisible( el )\r
-{\r
-       if( typeof(el) == "string" )\r
-               el = getElement(el);\r
-       if( (!el) || el.tagName == "BODY" )\r
-               return true;\r
-       if( el.style.display == 'none' ) //el.visibility == 'hidden' || \r
-               return false;\r
-       else\r
-               return kadovIsParentVisible( getParentNode(el) );\r
-}\r
-\r
-function kadovInitEffects( element )\r
-{\r
-       if( !gbBsIE4 )\r
-               return;\r
-       var srcElement = element;\r
-       if( typeof(srcElement) == "string" )\r
-       {\r
-               srcElement = getElement(element,0);\r
-               if(srcElement == null)\r
-                       return;\r
-       }\r
-       \r
-       if( !kadovIsParentVisible(srcElement) )\r
-               return;\r
-       \r
-       kadovInitEffect( srcElement, "x-on-hover" );\r
-       kadovInitEffect( srcElement, "x-on-pageclick" );\r
-       kadovInitEffect( srcElement, "x-on-pageload" );\r
-       kadovInitEffect( srcElement, "x-on-trigger-1" );\r
-       kadovInitEffect( srcElement, "x-on-trigger-2" );\r
-}\r
-//End HTML code invoked function\r
-\r
-function kadovInitEffect( element, prop )\r
-{\r
-       var values = null;\r
-       if( element.getAttribute( "currentStyle" )  && element.currentStyle.getAttribute)\r
-               values = element.currentStyle.getAttribute( prop );\r
-       else  if (element.style.getAttribute)\r
-               values = element.style.getAttribute( prop );\r
-       if( !values )\r
-               return;\r
-\r
-       var functions = new Array();\r
-       var nIdx = 0, nStart = 0;\r
-       var nNext = values.indexOf( "\)", 0);\r
-       while( nNext >= 0 && nNext < values.length )\r
-       {\r
-               functions[nIdx] = values.substr( nStart, nNext-nStart+1);\r
-               nStart = nNext + 1;\r
-               nIdx++;\r
-               nNext = values.indexOf( "\)", nStart);\r
-       }\r
-               \r
-       for( var i=0; i<functions.length; i++)\r
-       {\r
-               var id = element.getAttribute( "id" );\r
-               var translatedProp = kadovTranslateProp(prop);\r
-\r
-               var lp = functions[i].indexOf( "(" );\r
-               var fnname = functions[i].substring(0, lp);\r
-               var srcargs = functions[i].substring(lp+1, functions[i].length-1);\r
-               \r
-               var nClickTimes = 1;\r
-               var arrForClickCount = srcargs.split( "," );\r
-               for( var j = 0; j < arrForClickCount.length; j++ )\r
-               {// to locate and get the "clicks=99" settings\r
-                       var nPageClick = arrForClickCount[j].indexOf("clicks");\r
-                       if( nPageClick >= 0 )\r
-                       {\r
-                               nPageClick = arrForClickCount[j].indexOf("=");\r
-                               if( nPageClick > 0 )\r
-                               {\r
-                                       nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-               var args = srcargs;\r
-               if( j < arrForClickCount.length )\r
-               {// to strip out the "clicks=99" from the arguments string\r
-                       args = "";\r
-                       for( var k = 0; k < arrForClickCount.length; k ++ )\r
-                       {\r
-                               if( k != j )\r
-                               {\r
-                                       args += arrForClickCount[k];\r
-                                       if( k < arrForClickCount.length - 1 )\r
-                                               args += ",";\r
-                               }\r
-                       }\r
-               }\r
-               bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );\r
-       }\r
-}\r
-\r
-function kadovTranslateProp( prop )\r
-{\r
-       switch( prop )\r
-       {\r
-       case "x-on-hover" :     return "bsschover";\r
-       case "x-on-pageclick" : return "bsscpageclick";\r
-       case "x-on-pageload" :  return "bsscpageload";\r
-       case "x-on-trigger-1" : return "bssctrigger1";\r
-       case "x-on-trigger-2" : return "bssctrigger2";\r
-       }\r
-       return null;\r
-}\r
-//End to convert iWrite format to RoboEditor Format for DHTML effects\r
-\r
-//Begin the definition of one entry to DHTML effects\r
-function bsscFXInit( trigger_ID, target_ID, event_type, \r
-       action_type, action_setting, event_addional )\r
-{\r
-       if( (!gbBsWindows && !gbBsSunOS  && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID\r
-               return; // we don't support Navigator yet\r
-       \r
-       if( typeof(event_type) == "string" )\r
-               event_type = event_type.toLowerCase();\r
-       if( typeof(action_type) == "string" )\r
-               action_type = action_type.toLowerCase();\r
-       if( typeof(action_setting) == "string" )\r
-                action_setting = action_setting.toLowerCase();\r
-       \r
-       // to get the target element then add it to the target list\r
-       var eleTarget = CCSSP.GetObject( target_ID );\r
-       if( (eleTarget != null) && (event_type != null) && (action_type != null) )\r
-       {\r
-               CEngine.AddOneTarget( target_ID, eleTarget );\r
-               CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);\r
-       }\r
-       \r
-       // to validate the trigger_ID parameter\r
-       if( typeof(trigger_ID) == "string" && trigger_ID != "" )\r
-               CEngine.BuildTriggerObject( trigger_ID, target_ID );\r
-}      \r
-//End the definition of one entry to DHTML effects\r
-\r
-/// Section End  - kadov DHTM (JavaScript 1.2)\r
-\r
-/// Section Begin  - CCSSP DHTM (JavaScript 1.2)\r
-\r
-//Begin JavaScript libary for cross-platform positioning object.\r
-function CCSSP(){} // constructor of CCSSP class\r
-\r
-CCSSP.GetObject = function( obj )\r
-{//convert object name string or reference into a valid object reference\r
-       if( typeof(obj) == "object" )\r
-               return obj;\r
-       else if( typeof(obj) == "string" && obj != "")\r
-       {\r
-               if( gbBsNS4 )\r
-                       return eval("document." + obj);\r
-               else\r
-                       return eval("document.all(\"" + obj + "\")");\r
-       }\r
-       else\r
-               return null;\r
-}\r
-\r
-CCSSP.MoveObjectTo = function(obj, x, y)\r
-{//positioning an object at a specific pixel coordinate\r
-       if( gbBsNS4 )\r
-               obj.moveTo(x,y);\r
-       else\r
-       {\r
-               obj.style.pixelLeft = x;\r
-               obj.style.pixelTop = y;\r
-       }\r
-}\r
-\r
-CCSSP.MoveObjectBy = function(obj, dx, dy)\r
-{//moveing a object by x and/or y pixel\r
-       if( gbBsNS4 )\r
-               obj.moveBy(dx,dy);\r
-       else\r
-       {\r
-               obj.style.pixelLeft += dx;\r
-               obj.style.pixelTop += dy;\r
-       }\r
-}\r
-\r
-CCSSP.SetObjectBGColor = function(obj, color)\r
-{//set the background color of an object\r
-       if( gbBsNS4 )\r
-               obj.bgColor = color;\r
-       else\r
-               obj.style.backgroundColor = color;\r
-}\r
-\r
-CCSSP.ShowObject = function(obj, bShow)\r
-{// set the object to be visible or invisible\r
-       if( gbBsNS4 )\r
-               obj.visibility = (bShow == true) ? 'show' : 'hide';\r
-       else\r
-               obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.\r
-}\r
-\r
-CCSSP.GetObjectLeft = function(obj)\r
-{// retrieve the x coordinate of a posionable object\r
-       if( gbBsNS4 )\r
-               return obj.left;\r
-       else\r
-               return obj.style.pixelLeft;\r
-}\r
-\r
-CCSSP.GetObjectTop = function(obj)\r
-{// retrieve the y coordinate of a posionable object\r
-       if( gbBsNS4 )\r
-               return obj.top;\r
-       else\r
-               return obj.style.pixelTop;\r
-}\r
-\r
-CCSSP.GetObjectContainLeft = function(obj)\r
-{// retrieve the x coordinate of a posionable object relative to it's parent element\r
-       if( gbBsNS4 )\r
-               return obj.pageX;\r
-       else\r
-       {\r
-               if( obj == document.body )\r
-                       return obj.clientLeft;\r
-               else\r
-                       return obj.offsetLeft;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectWindowLeft = function(obj)\r
-{// retrieve the x coordinate of a posionable object relative to browser window\r
-       if( gbBsNS4 )\r
-               return obj.pageX;\r
-       else\r
-       {\r
-               var nOffsetWindowLeft = 0;\r
-               for(var element = obj; element; element = element.offsetParent)\r
-                       nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);\r
-               return nOffsetWindowLeft;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectContainTop = function(obj)\r
-{// retrieve the y coordinate of a posionable object relative to it's parent element\r
-       if( gbBsNS4 )\r
-               return obj.pageY;\r
-       else\r
-       {\r
-               if( obj == document.body )\r
-                       return obj.clientTop;\r
-               else\r
-                       return obj.offsetTop;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectWindowTop = function(obj)\r
-{// retrieve the y coordinate of a posionable object relative to browser window\r
-       if( gbBsNS4 )\r
-               return obj.pageY;\r
-       else\r
-       {\r
-               var nOffsetWindowTop = 0;\r
-               for(var element = obj; element; element = element.offsetParent)\r
-                       nOffsetWindowTop += CCSSP.GetObjectContainTop(element);\r
-               return nOffsetWindowTop;\r
-       }\r
-}\r
-\r
-CCSSP.GetObjectHeight = function(obj)\r
-{// retrieve the height of a posionable object\r
-       if( gbBsNS4 )\r
-               return obj.clip.height;\r
-       else\r
-               return obj.offsetHeight;\r
-}\r
-\r
-CCSSP.GetObjectWidth = function(obj)\r
-{// retrieve the width of a posionable object\r
-       if( gbBsNS4 )\r
-               return obj.clip.width;\r
-       else\r
-               return obj.offsetWidth;\r
-}\r
-\r
-CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )\r
-{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined\r
-       if (gbBsNS4 && !gbBsNS6)\r
-               return ;\r
-               \r
-       var oldHandler = "";\r
-\r
-       if (gbBsMac &&gbBsIE4&&!gbBsIE5)\r
-       {\r
-               if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")\r
-               { //search for <SCRIPT> tag which define the event handler\r
-                       for( var i = 0; i < document.scripts.length; i++ ) \r
-                       {\r
-                               var script = document.scripts[i];\r
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )\r
-                               {\r
-                                       oldHandler = script.innerHTML;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var oldInlineHandler = srcObj[rawEventName.toLowerCase()];\r
-               if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")\r
-               {\r
-                       var functionDefinition = oldInlineHandler.toString();\r
-                       var bodyStart = functionDefinition.indexOf( "{" );\r
-                       var bodyEnd = functionDefinition.lastIndexOf( "}" );\r
-                       if( bodyStart > 0 || bodyEnd > bodyStart )\r
-                               oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );\r
-               }\r
-               else if( gbBsIE4 )\r
-               { //search for <SCRIPT> tag which define the event handler\r
-                       for( var i = 0; i < document.scripts.length; i++ ) \r
-                       {\r
-                               var script = document.scripts[i];\r
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )\r
-                               {\r
-                                       oldHandler = script.innerHTML;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       if( oldHandler.indexOf(funcHandler) >= 0 )\r
-               return;// to prevent register the funtion twice.\r
-\r
-       if( gbBsNS4 ) // only "onload, onresize, onfocus" apply to window\r
-       {// other raw events will apply to layer\r
-               var noOn = rawEventName.substring(2, rawEventName.length);\r
-               if( typeof(noOn) == "string" && noOn.length > 3 ) {\r
-                       if (srcObj.captureEvents)\r
-                               srcObj.captureEvents( Event[noOn.toUpperCase()] );\r
-               }\r
-       }\r
-       \r
-       var newHandler = oldHandler;\r
-       if( newHandler.length == 0 )\r
-               newHandler = funcHandler;\r
-       else\r
-               newHandler += "; " + funcHandler;\r
-       \r
-       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );\r
-}\r
-\r
-CCSSP.GetWindowHeight = function()\r
-{// retrieve the height of available content in browser window\r
-       if( gbBsNS4 )\r
-               return window.innerHeight;\r
-       else\r
-               return document.body.clientHeight;\r
-}\r
-\r
-CCSSP.GetWindowBottom = function()\r
-{// retrieve the bottom postion of browser window\r
-       if( gbBsNS4 )\r
-               return window.outerHeight + window.pageYOffset;\r
-       else\r
-               return document.body.clientHeight + document.body.scrollTop;\r
-}\r
-\r
-CCSSP.GetWindowWidth = function()\r
-{// retrieve the width of available content in browser window\r
-       if( gbBsNS4 )\r
-               return window.innerWidth;\r
-       else\r
-               return document.body.clientWidth;\r
-}\r
-\r
-CCSSP.GetWindowRight = function()\r
-{// retrieve the right postion of browser window\r
-       if( gbBsNS4 )\r
-               return window.outerWidth + window.pageXOffset;\r
-       else\r
-               return document.body.clientWidth + document.body.scrollLeft;\r
-}\r
-\r
-CCSSP.TrimString = function( objString, subtrim )\r
-{// to trim the "subtrim" in the beginning and ending of a string object\r
-       if( typeof(subtrim) != "string" || subtrim == null )\r
-               return objString;\r
-       var strHead = objString.substring(0, 1);\r
-       var strRear = objString.substring(objString.length-1, objString.length);\r
-       if( strHead != subtrim && strRear != subtrim )\r
-               return objString;\r
-       \r
-       var spacePos = objString.indexOf(subtrim);\r
-       if( spacePos < 0 )\r
-               return objString;\r
-       else if( spacePos == objString.length - 1 )\r
-               return objString.substring(0, spacePos);\r
-       else\r
-       {\r
-               var newString = objString.substring( spacePos + 1, objString.length);\r
-               return CCSSP.TrimString( newString, subtrim );\r
-       }\r
-}\r
-\r
-CCSSP.TrimSpace = function( objString )\r
-{\r
-       var Trim1 = CCSSP.TrimString( objString, " ");\r
-       return CCSSP.TrimString( Trim1, "\'");\r
-}\r
-\r
-CCSSP.GetEventElement = function( navEventObject )\r
-{// to get the element who fired the current event\r
-       if(gbBsNS4) \r
-               if (gbBsNS6)\r
-                       return null;\r
-               else\r
-                        navEventObject.target;\r
-       else\r
-               return event.srcElement;\r
-}\r
-\r
-CCSSP.PrepareFilter = function( Obj )\r
-{//to prepare for making the filter work\r
-       Obj.style.filter = "";\r
-       if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )\r
-               return;\r
-       Obj.style.height = CCSSP.GetObjectHeight(Obj);\r
-}\r
-\r
-CCSSP.IsDescendant = function( progenitor, progeny )\r
-{\r
-       if( typeof(progeny) == "undefined" || progeny == null )\r
-               return false;\r
-       else if( progeny == progenitor )\r
-               return true; \r
-       else if( progeny.id == progenitor.id ) \r
-               return true; \r
-       else if( getParentNode(progeny) == getParentNode(progenitor))\r
-               return false;\r
-       else\r
-               return CCSSP.IsDescendant( progenitor, getParentNode(progeny));\r
-}\r
-\r
-CCSSP.IsTextTag = function( Obj )\r
-{\r
-       if( typeof( Obj.tagName ) == "undefined" )\r
-               return false;\r
-       return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" || \r
-                       Obj.tagName == "FONT" || Obj.tagName == "SPAN" );\r
-}\r
-\r
-//End JavaScript libary for cross-platform positioning object.\r
-\r
-/// Section End  - CCSSP DHTM (JavaScript 1.2)\r
-\r
-/// Section Begin  - CCSSP DHTM 1 (JavaScript 1.2)\r
-\r
-//Begin the definition of class CTrigger\r
-function CTrigger( TriggerElement )\r
-{\r
-       // object : the trigger element. Never be null. \r
-       this.eleTrigger = TriggerElement;\r
-       \r
-       // number : the click counter number: only 3 values: 0,1,2;\r
-       this.nCounter = 0; \r
-       \r
-       //object as associative array of string:\r
-       // the associate target ID strings; one element at least.                       \r
-       this.objStrTarget = new Object();\r
-       this.eleTrigger.style.cursor = "hand";\r
-       if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )\r
-               this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map\r
-}\r
-\r
-CTrigger.prototype.AddTargetID = function( strTargetID )\r
-{// add one target ID string to the objStrTarget\r
-       if( typeof(strTargetID) != "string" )\r
-               return ;\r
-       if( typeof(this.objStrTarget[strTargetID]) != "string" )\r
-               this.objStrTarget[strTargetID] = strTargetID;\r
-}\r
-\r
-CTrigger.prototype.OnTriggerClick = function()\r
-{// to activate all asociated target\r
-       var strEventType = ( (this.nCounter++)% 2 == 0 ) ? \r
-               "bssctrigger1" : "bssctrigger2";\r
-               \r
-       // to enumerate associative target element's ID string\r
-       for( var strTargetID in this.objStrTarget ) \r
-               CEngine.SendEventToOneTarget( strTargetID, strEventType );\r
-}\r
-//End the definition of class CTrigger\r
-\r
-//Begin the definition of class CTarget\r
-function CTarget( TargetElement )\r
-{\r
-       // object : the target element. Never be null.\r
-       this.eleTarget = TargetElement;\r
-       this.objManager = new Object(); // object: the event manager\r
-} \r
-\r
-CTarget.nPageClickCounter = 0;// static class property.\r
-\r
-CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )\r
-{// return the action agency ( effect )object's refernece \r
-       switch( str_action_type )\r
-       {\r
-       case "show":return new CAgencyShow( this.eleTarget, true ) ;\r
-       case "hide":return new CAgencyShow( this.eleTarget, false ) ;\r
-\r
-    case "flyin" : \r
-       return new CAgencyFly(this.eleTarget, action_setting, true);\r
-    case "flyout" : \r
-       return new CAgencyFly(this.eleTarget, action_setting, false);\r
-    case "spiralin" : \r
-       return new CAgencySpiral(this.eleTarget, action_setting, true);\r
-    case "spiralout" : \r
-       return new CAgencySpiral(this.eleTarget, action_setting, false);\r
-    case "zoomin" :\r
-       return new CAgencyZoom(this.eleTarget, action_setting, true);\r
-    case "zoomout" : \r
-       return new CAgencyZoom(this.eleTarget, action_setting, false);\r
-    case "elastic" : \r
-               return new CAgencyElastic(this.eleTarget, action_setting);\r
-               \r
-    case "fadein" : \r
-       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;\r
-    case "fadeout" :\r
-       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;\r
-    case "rockrollstatic" :\r
-    case "rockroll" :\r
-       return (gbBsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;\r
\r
-    case "glow":\r
-       return (gbBsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;\r
-    case "dropshadow":\r
-       return (gbBsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;\r
-    case "transition" :\r
-       return (gbBsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;\r
-    case "blur" :\r
-       return (gbBsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;\r
-\r
-    case "fliph" : // all these 4 do NOT need any parameters\r
-    case "flipv" :\r
-    case "invert":\r
-    case "gray" :\r
-       return (gbBsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;\r
-    \r
-    case "fontchange": // the effects below change the style on the fly, so won't work in Navigator\r
-       return (gbBsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;\r
-    case "boderchange": \r
-    case "stylechange":\r
-       return (gbBsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;\r
-\r
-       default: return null;\r
-       }\r
-}\r
-\r
-CTarget.prototype.SetEventManager = function( \r
-       one_event_type,str_action_type,action_setting,event_additional)\r
-{// to set the event manager with specified action \r
-       if( typeof( one_event_type ) != "string" ||     \r
-               typeof( str_action_type ) != "string"||\r
-               typeof( action_setting ) != "string" )\r
-               return false;\r
-       if( typeof(this.objManager[one_event_type]) == "undefined" )\r
-       {\r
-               this.objManager[one_event_type] = new Object();\r
-               this.objManager[one_event_type].length = 0;\r
-       }\r
-       \r
-       var eventAgency = this.GetAgencyObject(str_action_type,action_setting);\r
-       if( eventAgency != null )\r
-       {\r
-               var ct = this.objManager[one_event_type].length ++;\r
-               this.objManager[one_event_type][ct] = eventAgency;\r
-               \r
-               if( one_event_type == "bsscpageclick" )\r
-               {// to deal with the "number of pageclick" stuff\r
-                       if( typeof(event_additional) == "number" )\r
-                               this.objManager[one_event_type][ct].nPageClick = event_additional;\r
-                       else // set the default number \r
-                               this.objManager[one_event_type][ct].nPageClick = 1;\r
-                       \r
-                       if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||\r
-                           (this.objManager[one_event_type][ct].nPageClick < \r
-                                       this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )\r
-                               this.objManager.nMinPageClickIndex = ct;\r
-               }\r
-               \r
-               //hide the object blindly,SetState function will take care of the final correct state\r
-               if( ((one_event_type == "bsscpageclick") && \r
-                        (this.objManager[one_event_type][ct].nPageClick == 1)) ||\r
-                       one_event_type == "bsscpageload" ||\r
-                       one_event_type == "bssctrigger1" )\r
-                       CCSSP.ShowObject( this.eleTarget, false );\r
-               \r
-               if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )\r
-                       if( typeof( this.strTriggerEvent ) == "undefined" )\r
-                               this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";\r
-                       \r
-               return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-CTarget.prototype.OnEvent = function( strBsscEvent )\r
-{// response to the event ( bssc format )\r
-       if( typeof(this.objManager[strBsscEvent]) == "object" )\r
-       { // to get the event agency from the event manager\r
-               var eventAgency = this.objManager[strBsscEvent];\r
-               for( var i = 0; i < eventAgency.length; i++ )\r
-               {\r
-                       if( strBsscEvent == "bsscpageclick" && \r
-                               eventAgency[i].nPageClick != CTarget.nPageClickCounter )\r
-                                continue;\r
-                       else if( strBsscEvent == "bsschover" && event.type == "mouseout" )\r
-                               eventAgency[i].EndEffect();\r
-                       else // to invoke the unified function in effect object \r
-                               eventAgency[i].UpdateEffect(); \r
-               }\r
-       }\r
-}\r
-\r
-CTarget.prototype.SetState = function( strBsscEvent )\r
-{\r
-       if( typeof(this.objManager[strBsscEvent]) != "object" )\r
-               return false;\r
-\r
-       // to get the event agency from the event manager\r
-       var eventAgency = this.objManager[strBsscEvent];\r
-       \r
-       if( strBsscEvent == "bsscpageclick" )\r
-       {// we only set the initial state for the minium number of pageclick \r
-               eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();\r
-               return true;\r
-       }\r
-       else\r
-       {\r
-               for( var i = 0; i < eventAgency.length; i++ )\r
-                       eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object       \r
-               if( i > 0 )\r
-                       return true;\r
-               else\r
-                       return false;\r
-       }\r
-}\r
-//End the definition of class CTarget\r
-\r
-//Begin the definition of CEngine class\r
-function CEngine(){}// all properities are going be "class" properities\r
-\r
-// object : as associative array of trigger objects\r
-CEngine.objTrigger = new Object();\r
-// object : as associative array of target objects \r
-CEngine.objTarget = new Object(); \r
-\r
-// Array : each element is a CAgencyXXX animation object\r
-CEngine.arrAnimation = new Array();\r
-CEngine.PerformAnimation = function( nIndex )\r
-{// animation : update effects function\r
-       CEngine.arrAnimation[nIndex].UpdateEffect();\r
-}\r
-\r
-CEngine.AddOneTrigger = function(TriggerID,TriggerElement)\r
-{// add one Trigger object into the trigger array\r
-       if( typeof(TriggerID) != "string" || TriggerElement == null ||\r
-           typeof(TriggerElement) != "object" )\r
-               return;\r
-       if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )\r
-               CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);\r
-}\r
-       \r
-CEngine.AddOneTarget = function(TargetID, TargetElement)\r
-{// add one Target object into the target array\r
-       if( typeof(TargetID) != "string" || TargetElement == null ||\r
-               typeof(TargetElement) != "object" )\r
-               return;\r
-       if( typeof(CEngine.objTarget[TargetID]) != "object" )\r
-               CEngine.objTarget[TargetID] = new CTarget( TargetElement );\r
-}\r
-\r
-CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )\r
-{// to activate one target object\r
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) \r
-       {\r
-               if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )\r
-               {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle\r
-                       if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )\r
-                               strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";\r
-                       CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;\r
-               }\r
-               CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );\r
-       }\r
-}\r
-\r
-CEngine.SendEventToAllTarget = function( strBsscEvent )\r
-{ //to activate all target associative to the BSSC event\r
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target\r
-               CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );\r
-}\r
-\r
-CEngine.SetOneTargetInitialState = function( strTargetID )\r
-{// only invoked after ALL effects for the target have been set\r
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) \r
-       {// to get target object\r
-               var objTarget = CEngine.objTarget[strTargetID];\r
-               if( objTarget.SetState( "bsscpageload" ) == false )\r
-               {\r
-                       objTarget.SetState( "bsscpageclick" );\r
-                       objTarget.SetState( "bssctrigger1" );\r
-               }\r
-       }\r
-}\r
-\r
-CEngine.AdjustPageClickCounter = function()\r
-{\r
-       var nAdjustedClickCounter = CTarget.nPageClickCounter;\r
-       var bAdjusted = false;\r
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target\r
-       {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter\r
-               var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;\r
-               if( objEventPageClick != null )\r
-               {\r
-                       for( var i = 0; i < objEventPageClick.length; i++ )\r
-                       {\r
-                               var nOtherPageClick = objEventPageClick[i].nPageClick;\r
-                               if( nOtherPageClick == CTarget.nPageClickCounter )\r
-                                       return;\r
-                               if( nOtherPageClick > CTarget.nPageClickCounter )\r
-                               {\r
-                                       if( !bAdjusted )\r
-                                       {\r
-                                               nAdjustedClickCounter = nOtherPageClick;\r
-                                               bAdjusted = true;\r
-                                       }\r
-                                       else if( nOtherPageClick < nAdjustedClickCounter )\r
-                                               nAdjustedClickCounter = nOtherPageClick;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       CTarget.nPageClickCounter = nAdjustedClickCounter;\r
-}\r
-\r
-CEngine.OnPageLoad = function()\r
-{      \r
-       // first, to set all target's initial state\r
-       for( var strTargetID in CEngine.objTarget )\r
-               CEngine.SetOneTargetInitialState( strTargetID );\r
-       \r
-       // to invoke all target's onpageload handler\r
-       CEngine.SendEventToAllTarget( "bsscpageload" );\r
-}\r
-\r
-CEngine.OnPageClick = function()\r
-{ // to invoke all target's onpageclick handler\r
-       var src = CCSSP.GetEventElement( arguments[0] );\r
-       if( src == null )\r
-               return;\r
-               \r
-       var objClickedTrigger = null;\r
-       for( var strTriggerID in CEngine.objTrigger )\r
-       { // to detect which trigger is clicked\r
-               if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )\r
-               {\r
-                       objClickedTrigger = CEngine.objTrigger[strTriggerID];\r
-                       break;\r
-               }\r
-       }\r
-       \r
-       if( objClickedTrigger != null) // the clicked trigger found\r
-               objClickedTrigger.OnTriggerClick();\r
-       else // no trigger is clicked\r
-       { // to send PageClick event to all target\r
-               CTarget.nPageClickCounter++;\r
-               CEngine.AdjustPageClickCounter();\r
-               CEngine.SendEventToAllTarget( "bsscpageclick" );\r
-       }\r
-}      \r
-\r
-CEngine.OnMouseOver = function()\r
-{ // to invoke all target's onpageload handler\r
-       var src = CCSSP.GetEventElement( arguments[0] );\r
-       if( src == null )\r
-               return;\r
-               \r
-       var strHoveredTargetID = null;\r
-       for( var strTargetID in CEngine.objTarget )\r
-       { // to detect which Target is hovering on\r
-               if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )\r
-           {\r
-                       strHoveredTargetID = strTargetID;\r
-                       break;\r
-           }\r
-       }\r
-       \r
-       if( strHoveredTargetID != null ) // the hovered target found\r
-               CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );\r
-}\r
-\r
-CEngine.BuildTargetObject = function(target_ID,event_type,action_type,\r
-                       action_setting, event_additional)\r
-{// to build target object \r
-       // to get the target object\r
-       if( typeof( CEngine.objTarget[target_ID] ) != "object" )\r
-               return false;// the engine's AddOneTarget function might have failed.\r
-       var TargetObject = CEngine.objTarget[target_ID];\r
-       \r
-       // to prepare the parameters for the event manager\r
-       var arrEvent = event_type.split("|"); // to split the combined event_type string\r
-       var arrAction = action_type.split("|");//to split the combined action_type string\r
-       for( var trim = 0; trim < arrEvent.length; trim++ )\r
-               arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);\r
-       \r
-       for( trim = 0; trim < arrAction.length; trim++ )\r
-               arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);\r
-       \r
-       var arrSetting = new Array(); \r
-       if( typeof(action_setting) == "string" )\r
-               arrSetting = action_setting.split("|");// to split the combined action_setting string\r
-       // to calibrate the arrays\r
-       for( var i = arrSetting.length; i < arrAction.length; i++ )\r
-       {\r
-               if( typeof(arrSetting[i]) != "string" )\r
-                        arrSetting[i] = "";\r
-       }                                \r
-\r
-       // to prepare for dealing with the absolute posioning element\r
-       TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );\r
-       TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );\r
-\r
-       if( arrEvent.length > 1 )\r
-       {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"\r
-               if( arrAction.length != 2 )\r
-                       return false; // if event is combined, there must be 2 actions\r
-               for( i = 0 ; i < 2; i++ )\r
-               {\r
-                       if( TargetObject.SetEventManager(arrEvent[i], arrAction[i], \r
-                               arrSetting[i], event_additional) == false )\r
-                               return false; // the event manager has not been set up\r
-               }\r
-       }\r
-       else // the event_type string is not combined\r
-       {\r
-               for( i = 0 ; i < arrAction.length; i++ )\r
-               {\r
-                       TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);\r
-                       // to validate the event manager\r
-                       if( typeof(TargetObject.objManager[event_type]) != "object" ||\r
-                                       typeof(TargetObject.objManager[event_type][i]) != "object" )\r
-                               return false; // the event manager has not been set up\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-CEngine.BuildTriggerObject = function(trigger_ID, target_ID)\r
-{// to build the trigger object\r
-       var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string\r
-       for( var i = 0; i < arrTrigger.length; i ++ )\r
-       {// to get the trigger element then add it to the trigger list\r
-               arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );\r
-               var eleTrigger = CCSSP.GetObject( arrTrigger[i] );\r
-               if( eleTrigger == null )\r
-                       continue; // the trigger_ID string in the HTML code maybe wrong\r
-               CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );\r
-\r
-               // to get the target object\r
-               if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )\r
-                       continue;// the engine's AddOneTarget function might have failed.\r
-               CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );\r
-       }\r
-}\r
-//End the definition of CEngine class\r
-\r
-/// Section End  - CCSSP DHTM 1 (JavaScript 1.2)\r
-\r
-/// Section Begin  - CCSSP DHTM 2 (JavaScript 1.2)\r
-\r
-//Begin the definition of CAgencyXXXX classes\r
-\r
-//Begin of the CAgencyShow definition\r
-function CAgencyShow( element, bIsShow )\r
-{\r
-       this.ele = element;\r
-       this.bIsShow = bIsShow;\r
-}\r
-\r
-CAgencyShow.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject( this.ele, !this.bIsShow );\r
-}\r
-\r
-CAgencyShow.prototype.UpdateEffect = function()\r
-{\r
-       CCSSP.ShowObject( this.ele, this.bIsShow );\r
-}\r
-\r
-CAgencyShow.prototype.EndEffect = function()\r
-{\r
-       CCSSP.ShowObject( this.ele, !this.bIsShow );\r
-}\r
-// End of the CAgencyShow definition\r
-\r
-// Begin of CAgencyFly definition\r
-function CAgencyFly( element, settings, bIsIn )\r
-{\r
-       this.ele = element;\r
-       this.bIsIn = bIsIn;\r
-       this.duration = 1000; // default\r
-       this.direction = "right";\r
-\r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               case "direction" : this.direction = arrOneSet[1]; break;\r
-               }\r
-       }\r
-               \r
-       if( gbBsIE5 && this.ele.style.position != "absolute" )\r
-               this.ele.style.position = "relative";\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyFly.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
-}\r
-\r
-CAgencyFly.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var newX = this.startX*(1.0-percent) +  this.finalX*percent;\r
-               var newY = this.startY*(1.0-percent) +  this.finalY*percent;\r
-               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyFly.prototype.EndEffect = function()\r
-{\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-\r
-       if( this.bIsIn ) // FlyIn\r
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
-       else // FlyOut\r
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       CCSSP.ShowObject(this.ele, this.bIsIn );\r
-}\r
-\r
-CAgencyFly.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       CCSSP.ShowObject(this.ele, true );\r
-\r
-       this.startX = 0;\r
-       this.startY = 0;\r
-       this.finalX = 0;\r
-       this.finalY = 0; \r
-       \r
-       var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;\r
-       var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;\r
-       var offsetRight = CCSSP.GetWindowRight();\r
-       var offsetBottom = CCSSP.GetWindowBottom();\r
-\r
-       if( this.bIsIn )\r
-       { // FlyIn\r
-               this.finalX = this.ele.ABSX;\r
-               this.finalY = this.ele.ABSY;\r
-\r
-               switch( this.direction )\r
-               {\r
-               case "right": this.startX = offsetRight; this.startY = this.finalY; break;\r
-               case "left": this.startX = -offsetLeft;  this.startY = this.finalY; break;\r
-               case "down": this.startY = offsetBottom; this.startX = this.finalX; break;\r
-               case "up":  this.startY = -offsetTop;    this.startX = this.finalX; break;\r
-               case "downright":\r
-                       this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;\r
-                       this.startY = this.startX;              break;\r
-               case "upright":\r
-                       this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;\r
-                       this.startY = -this.startX;             break;\r
-               case "upleft":\r
-                       this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);\r
-                       this.startY = this.startX;              break;\r
-               case "downleft":\r
-                       this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);\r
-                       this.startY = -this.startX;     break;\r
-               }\r
-       }\r
-       else\r
-       { // FlyOut\r
-               this.startX = this.ele.ABSX;\r
-               this.startY = this.ele.ABSY;\r
-\r
-               switch( this.direction )\r
-               {\r
-               case "right": this.finalX = offsetRight;  this.finalY = this.startY; break;\r
-               case "left": this.finalX = -offsetLeft;   this.finalY = this.startY;  break;\r
-               case "down": this.finalY = offsetBottom;  this.finalX = this.startX; break;\r
-               case "up":  this.finalY = -offsetTop;     this.finalX = this.startX; break;\r
-               case "downright":\r
-                       this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;\r
-                       this.finalY = this.finalX;              break;\r
-               case "upright":\r
-                       this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;\r
-                       this.finalY = -this.finalX;             break;\r
-               case "upleft":\r
-                       this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);\r
-                       this.finalY = this.finalX;              break;\r
-               case "downleft":\r
-                       this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);\r
-                       this.finalY = -this.finalX;     break;\r
-               }\r
-       }\r
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of the CAgencyFly definition\r
-\r
-// Begin of CAgencySpiral\r
-function CAgencySpiral( element, settings, bIsIn )\r
-{\r
-       this.ele = element;\r
-       this.bIsIn = bIsIn;\r
-       this.duration = 1000; // default\r
-\r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               }\r
-       }\r
-\r
-       if( gbBsIE5 && this.ele.style.position != "absolute" )\r
-               this.ele.style.position = "relative";\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencySpiral.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
-}\r
-\r
-CAgencySpiral.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var rf = (this.bIsIn)? (1.0 - percent) : percent; \r
-               var t = (1.0-rf) * 4.0 * Math.PI\r
-               var rxP = (this.bIsIn)? this.startX : this.finalX; \r
-               var ryP = (this.bIsIn)? this.startY : this.finalY; \r
-               var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;\r
-               var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;\r
-\r
-               var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;\r
-               var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;\r
-               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencySpiral.prototype.EndEffect = function()\r
-{\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-       \r
-       if( this.bIsIn ) // In\r
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
-       else // Out\r
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       CCSSP.ShowObject(this.ele, this.bIsIn );\r
-}\r
-\r
-CAgencySpiral.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       CCSSP.ShowObject(this.ele, true );\r
-       this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;\r
-       this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;\r
-       this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();\r
-       this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom(); \r
-       \r
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of CAgencySpiral\r
-\r
-// Begin of CAgencyElastic\r
-function CAgencyElastic( element, settings)\r
-{\r
-       this.ele = element;\r
-       this.duration = 1000; // default\r
-       this.direction = "right";\r
-\r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               case "direction" : this.direction = arrOneSet[1]; break;\r
-               }\r
-       }\r
-               \r
-       if( gbBsIE5 && this.ele.style.position != "absolute" )\r
-               this.ele.style.position = "relative";\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyElastic.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, false );\r
-}\r
-\r
-CAgencyElastic.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var newX = this.startX;\r
-               var newY = this.startY;\r
-               var rf = Math.exp(-percent*3);\r
-               var t = percent * 1.5 * Math.PI\r
-               var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;\r
-               switch (this.direction )\r
-               {\r
-               case "left":   \r
-               case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;\r
-               case "up":         \r
-               case "down" :  newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;\r
-               }\r
-               CCSSP.MoveObjectTo(this.ele, newX, newY);\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyElastic.prototype.EndEffect = function()\r
-{\r
-       CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-}\r
-\r
-CAgencyElastic.prototype.ResetParameters = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, true );\r
-       this.startX = this.ele.ABSX;\r
-       this.finalX = this.ele.ABSX;\r
-       this.startY = this.ele.ABSY;\r
-       this.finalY = this.ele.ABSY;\r
-       \r
-       switch (this.direction)\r
-       { \r
-       case "left":  this.startX = -this.ele.offsetWidth; break;\r
-       case "right": this.startX = this.ele.offsetWidth;  break;\r
-       case "up":    this.startY = -this.ele.offsetHeight;break;\r
-       case "down":  this.startY = this.ele.offsetHeight; break;\r
-       }\r
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of CAgencyElastic\r
-\r
-// Begin of CAgencyZoom\r
-function CAgencyZoom( element, settings, bIsIn)\r
-{\r
-       this.ele = element;\r
-       this.duration = 1000; // default\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               }\r
-       }\r
-\r
-       this.bIsIn = bIsIn;\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyZoom.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, false);\r
-}\r
-\r
-CAgencyZoom.prototype.UpdateEffect = function()\r
-{\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else\r
-       {\r
-               var nFactorIn = Math.ceil(50+50*percent);\r
-               var nFactorOut = Math.ceil(100+200*(1-percent));\r
-               var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";\r
-               var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;\r
-               \r
-               this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);\r
-               for(var index = 0; index < this.ele.all.length; index++)\r
-                       this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);\r
-                       \r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)\r
-{\r
-       if( CCSSP.IsTextTag(child) )\r
-               child.style.fontSize = FontSize;\r
-       else\r
-       {\r
-               if( typeof(child.orgWidth) == "number" )\r
-                       child.style.width = Factor * child.orgWidth;\r
-               if( typeof(child.orgHeight) == "number" )\r
-                       child.style.height = Factor * child.orgHeight;\r
-       }\r
-}\r
-\r
-CAgencyZoom.prototype.EndEffect = function()\r
-{\r
-       this.EndEffectAllChildren(this.ele);\r
-       for(var index = 0; index < this.ele.all.length; index++)\r
-               this.EndEffectAllChildren(this.ele.all[index]);\r
-       \r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-}\r
-\r
-CAgencyZoom.prototype.EndEffectAllChildren = function( child )\r
-{      \r
-       if( CCSSP.IsTextTag(child) )\r
-               child.style.fontSize = child.orgFontSize;\r
-       else\r
-       {\r
-               if( typeof(child.intactWidth) != "undefined" )\r
-               {\r
-                       child.width = child.intactWidth;\r
-                       child.height = child.intactHeight;\r
-               }\r
-               else if( typeof(child.style.intactPixelWidth) != "undefined" )\r
-               {\r
-                       child.style.pixelWidth = child.style.intactPixelWidth;\r
-                       child.style.pixelHeight = child.style.intactPixelHeight;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyZoom.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       this.ResetParametersAllChildren( this.ele );\r
-       for(var index = 0; index < this.ele.all.length; index++)\r
-               this.ResetParametersAllChildren(this.ele.all[index]);\r
-               \r
-       this.startTime = (new Date()).getTime();\r
-}\r
-\r
-CAgencyZoom.prototype.ResetParametersAllChildren = function( child )\r
-{\r
-       CCSSP.ShowObject(child, true );\r
-       if( (child.tagName == "DIV") && (getParentNode(child).tagName == "TD") )\r
-               child.width = "100%";// if the div is inside a cell of table, we need the this hack\r
-       \r
-       if( CCSSP.IsTextTag(child) )\r
-               child.orgFontSize = child.style.fontSize;\r
-       else\r
-       {\r
-               if( child.width > "" || child.height > "" )\r
-               {\r
-                       child.orgWidth = child.intactWidth = child.width;\r
-                       child.orgHeight = child.intactHeight = child.height;\r
-               }\r
-               else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )\r
-               {\r
-                       child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;\r
-                       child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;\r
-               }\r
-       }\r
-}\r
-// End of CAgencyZoom\r
-\r
-//// the following effects will use IE's exclusive "filter" function ////\r
-// Begin of CAgencyAlpha definition\r
-function CAgencyAlpha( element, settings, bIsIn )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-       this.bIsIn = bIsIn;\r
-\r
-       // to set the default value\r
-       this.startOpacity = (this.bIsIn) ? 0 : 100;\r
-       this.endOpacity = (this.bIsIn) ? 100 : 0;\r
-       \r
-       this.duration = 1000; // default\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;\r
-               }\r
-       }\r
-       \r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyAlpha.prototype.PrepareEffect = function()\r
-{// to set the visual filter function\r
-       // the visual filter ONLY work when set by "Width and Height" or\r
-       // absolute position for DIV, SPAN and normal tag ( such as p )\r
-       // but, "absolute" cause the following elements overlap, so:\r
-       CCSSP.PrepareFilter( this.ele );\r
-       CCSSP.ShowObject(this.ele, !this.bIsIn );\r
-}\r
-\r
-CAgencyAlpha.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-       if( typeof(this.ele.filters.alpha) != "object" )\r
-       {\r
-               this.EndEffect();\r
-               return;\r
-       }\r
-\r
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-       if( percent >= 1.0 )\r
-               this.EndEffect();\r
-       else if( typeof(this.ele.filters.alpha) == "object" )\r
-       {\r
-               this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;\r
-               if( this.timer == null )\r
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );\r
-       }\r
-}\r
-\r
-CAgencyAlpha.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-       this.ele.style.filter = "";\r
-       CCSSP.ShowObject(this.ele, this.bIsIn );\r
-}\r
-\r
-CAgencyAlpha.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       CCSSP.ShowObject(this.ele, true );\r
-       this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of the CAgencyAlpha definition\r
-\r
-// Begin of CAgencyWave definition\r
-function CAgencyWave( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       this.duration = 0; // default\r
-       this.strength = 10;\r
-       this.freq = 1;\r
-       this.lightstrength = 1;\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "duration" : this.duration = 100000/arrOneSet[1]; break;\r
-               case "strength" : this.strength = arrOneSet[1]; break;\r
-               case "freq" : this.freq = arrOneSet[1]; break;\r
-               case "lightstrength" : this.lightstrength = arrOneSet[1]; break;\r
-               }\r
-       }\r
-\r
-       this.timer = null;\r
-       this.aniIndex = CEngine.arrAnimation.length;\r
-       CEngine.arrAnimation[this.aniIndex] = this;\r
-}\r
-\r
-CAgencyWave.prototype.PrepareEffect = function()\r
-{// to set the visual filter function\r
-       CCSSP.PrepareFilter(this.ele);\r
-\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyWave.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       if( this.timer == null )\r
-               this.ResetParameters();\r
-       if( typeof(this.ele.filters.wave) != "object" )\r
-       {\r
-               this.EndEffect();\r
-               return;\r
-       }\r
-\r
-       if( this.duration > 0 )\r
-       {\r
-               var percent = ((new Date()).getTime() - this.startTime)/this.duration;\r
-               if( percent >= 1.0 )\r
-               {\r
-                       this.EndEffect();\r
-                       return;\r
-               }\r
-       }\r
-       \r
-       this.ele.filters.wave.phase += 5;\r
-       this.ele.filters.wave.phase %= 100;\r
-       if( this.timer == null )\r
-               this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );\r
-}\r
-\r
-CAgencyWave.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-       clearInterval( this.timer );\r
-       this.timer = null;\r
-}\r
-\r
-CAgencyWave.prototype.ResetParameters = function()\r
-{\r
-       this.PrepareEffect();\r
-       this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" + \r
-        this.freq +", lightstrength=" + this.lightstrength +",phase=0);";\r
-       this.startTime = (new Date()).getTime();\r
-}\r
-// End of the CAgencyWave definition\r
-\r
-// Begin of CAgencyGlow definition\r
-function CAgencyGlow( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.glowColor = "green";\r
-       this.glowStrength = "3";\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "color" : this.glowColor = arrOneSet[1]; break;\r
-               case "strength" : this.glowStrength = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyGlow.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-       if( this.ele.style.backgroundColor != "" )\r
-       {//style.backgroundColor somehow stop the visual filter\r
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;\r
-               this.ele.style.backgroundColor = "";\r
-       }\r
-}\r
-\r
-CAgencyGlow.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       this.PrepareEffect();\r
-       this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" + \r
-               this.glowStrength + ", enabled=true" +")";\r
-}\r
-\r
-CAgencyGlow.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )\r
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;\r
-}\r
-// End of the CAgencyGlow definition\r
-\r
-// Begin of CAgencyDropShadow definition\r
-function CAgencyDropShadow( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.shadowColor = "black"; \r
-       this.shadowOffx = "1";\r
-       this.shadowOffy = "1";\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "color" : this.shadowColor = arrOneSet[1]; break;\r
-               case "offx" : this.shadowOffx = arrOneSet[1]; break;\r
-               case "offy" : this.shadowOffy = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyDropShadow.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-       \r
-       if( this.ele.style.backgroundColor != "" )\r
-       {//style.backgroundColor somehow stop the visual filter\r
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;\r
-               this.ele.style.backgroundColor = "";\r
-       }\r
-}\r
-\r
-CAgencyDropShadow.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       this.PrepareEffect();\r
-       this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" + \r
-               this.shadowOffx + ", offy=" + this.shadowOffy + ")";\r
-}\r
-\r
-CAgencyDropShadow.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )\r
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;\r
-}\r
-// End of the CAgencyDropShadow definition\r
-\r
-// Begin of CAgencyRevealTrans definition\r
-function CAgencyRevealTrans( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).\r
-       this.transition = 0;\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "type" : this.transition = arrOneSet[1]; break;\r
-               case "duration" : this.duration = 100/arrOneSet[1];     break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyRevealTrans.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject( this.ele, false);\r
-}\r
-\r
-CAgencyRevealTrans.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
-       {\r
-               if( this.ele.filters.RevealTrans.status == 2 )\r
-                       this.ele.filters.RevealTrans.stop();  \r
-       }\r
-\r
-       this.PrepareEffect();\r
-       \r
-       this.ele.style.filter = "RevealTrans(duration=" + this.duration + \r
-               ", transition=" + this.transition + ")";\r
-       \r
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
-    {\r
-               this.ele.filters.RevealTrans.apply();\r
-               CCSSP.ShowObject( this.ele, true);\r
-               this.ele.filters.RevealTrans.play();  \r
-       }\r
-       else\r
-               CCSSP.ShowObject( this.ele, true);\r
-}\r
-\r
-CAgencyRevealTrans.prototype.EndEffect = function()\r
-{\r
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )\r
-               this.ele.filters.RevealTrans.stop();  \r
-       this.ele.style.filter = "";\r
-}\r
-// End of the CAgencyRevealTrans definition\r
-\r
-// Begin of CAgencyBlur definition\r
-function CAgencyBlur( element, settings )\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.strength = "5";\r
-       this.direction = "90";\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "strength" : this.strength = arrOneSet[1]; break;\r
-               case "direction" : this.direction = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyBlur.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyBlur.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       CCSSP.PrepareFilter(this.ele);\r
-       this.ele.style.filter = "blur(strength=" + this.strength + \r
-               ", direction=" + this.direction + ")";\r
-}\r
-\r
-CAgencyBlur.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-}\r
-// End of the CAgencyBlur definition\r
-\r
-// Begin of CAgencyChangeFilter definition\r
-function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,\r
-{// because of "visual filter" style, this won't work in Navigator\r
-       this.ele = element;\r
-\r
-       // to set the default value\r
-       this.filterFunction = settings;\r
-}\r
-\r
-CAgencyChangeFilter.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.PrepareFilter(this.ele);\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyChangeFilter.prototype.UpdateEffect = function()\r
-{// to set the visual filter function\r
-       CCSSP.PrepareFilter(this.ele);\r
-       this.ele.style.filter = this.filterFunction;\r
-}\r
-\r
-CAgencyChangeFilter.prototype.EndEffect = function()\r
-{// to remove the visual filter function\r
-       this.ele.style.filter = "";\r
-}\r
-// End of the CAgencyChangeFilter definition\r
-\r
-// The effects below change the style on the fly, so they won't work in Navigator\r
-\r
-// Begin of CAgencyFontChange definition, \r
-function CAgencyFontChange( element, settings )\r
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.\r
-       this.ele = element;\r
-       \r
-       // to retrieve the original font style\r
-       this.RetrieveOldFont( this.ele );\r
-       \r
-       // to set the default font to change\r
-       this.newfontFamily = this.ele.oldFontFamily;\r
-       this.newfColor = this.ele.oldColor;\r
-       this.newtextDecoration = this.ele.oldTextDecoration;\r
-       this.newfontWeight = this.ele.oldFontWeight;\r
-       this.newfontStyle = this.ele.oldFontStyle;\r
-       this.newfontSize = this.ele.oldFontSize;\r
-       this.newBackgroundColor = this.ele.oldBackgroundColor;\r
-       \r
-       var arrAllSet = settings.split(",");\r
-       for( var i = 0; i < arrAllSet.length; i ++ )\r
-       {// to retrieve the setting\r
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);\r
-               var arrOneSet = arrAllSet[i].split("=");\r
-               for( var j = 0; j < arrOneSet.length; j++ )\r
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);\r
-               switch( arrOneSet[0] )\r
-               {\r
-               case "font-family" : this.newfontFamily = arrOneSet[1]; break;\r
-               case "color" : this.newfColor = arrOneSet[1]; break;\r
-               case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;\r
-               case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;\r
-               case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;\r
-               case "size" : this.newfontSize = arrOneSet[1]; break;\r
-               case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;\r
-               }\r
-       }\r
-}\r
-\r
-CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)\r
-{\r
-       if( typeof(objChild.oldFontFamily) == "undefined" )\r
-               objChild.oldFontFamily = objChild.style.fontFamily;\r
-       if( typeof(objChild.oldColor) == "undefined" )\r
-               objChild.oldColor = objChild.style.color;\r
-       if( typeof(objChild.oldTextDecoration) == "undefined" )\r
-               objChild.oldTextDecoration = objChild.style.textDecoration;\r
-       if( typeof(objChild.oldFontWeight) == "undefined" )\r
-               objChild.oldFontWeight = objChild.style.fontWeight;\r
-       if( typeof(objChild.oldFontStyle) == "undefined" )\r
-               objChild.oldFontStyle = objChild.style.fontStyle;\r
-       if( typeof(objChild.oldFontSize) == "undefined" )\r
-               objChild.oldFontSize = objChild.style.fontSize;\r
-       if( typeof(objChild.oldBackgroundColor) == "undefined" )\r
-               objChild.oldBackgroundColor = objChild.style.backgroundColor;\r
-}\r
-\r
-CAgencyFontChange.prototype.PrepareEffect = function()\r
-{\r
-       // as for expanding text, the child is created after the constructor called\r
-       for(var index = 0; index < this.ele.all.length; index++)\r
-               this.RetrieveOldFont(this.ele.all[index]);\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyFontChange.prototype.UpdateEffect = function()\r
-{// to change the font\r
-       this.PrepareEffect();\r
-       this.UpdateEffectAllChildren( this.ele );\r
-       for( var index = 0; index < this.ele.all.length; index++)\r
-               this.UpdateEffectAllChildren(this.ele.all[index]);\r
-}\r
-\r
-CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)\r
-{\r
-       objChild.style.fontFamily = this.newfontFamily;\r
-       objChild.style.color = this.newfColor;\r
-       objChild.style.textDecoration = this.newtextDecoration;\r
-       objChild.style.fontWeight = this.newfontWeight;\r
-       objChild.style.fontStyle = this.newfontStyle;\r
-       objChild.style.fontSize = this.newfontSize;\r
-       objChild.style.backgroundColor = this.newBackgroundColor;\r
-}\r
-\r
-CAgencyFontChange.prototype.EndEffect = function()\r
-{// to reinstate the original font style\r
-       this.EndEffectAllChildren( this.ele );\r
-       for( var index = 0; index < this.ele.all.length; index++)\r
-               this.EndEffectAllChildren(this.ele.all[index]);\r
-}\r
-\r
-CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )\r
-{\r
-       if( typeof(objChild.oldFontFamily) != "undefined" )\r
-               objChild.style.fontFamily = objChild.oldFontFamily;\r
-       if( typeof(objChild.oldColor) != "undefined" )\r
-               objChild.style.color = objChild.oldColor;\r
-       if( typeof(objChild.oldFontWeight) != "undefined" )\r
-               objChild.style.fontWeight = objChild.oldFontWeight;\r
-       if( typeof(objChild.oldFontStyle) != "undefined" )\r
-               objChild.style.fontStyle = objChild.oldFontStyle;\r
-       if( typeof(objChild.oldFontSize) != "undefined" )\r
-               objChild.style.fontSize = objChild.oldFontSize;\r
-       if( typeof(objChild.oldTextDecoration) != "undefined" )\r
-               objChild.style.textDecoration = objChild.oldTextDecoration;\r
-       if( typeof(objChild.oldBackgroundColor) != "undefined" )\r
-               objChild.style.backgroundColor = objChild.oldBackgroundColor;\r
-}\r
-// End of the CAgencyFontChange definition\r
-\r
-// Begin of the CAgencyChangeStyle definition\r
-function CAgencyChangeStyle( element, settings )\r
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.\r
-       this.ele = element;\r
-       \r
-       // to retrieve the original style\r
-       this.oldstyle = this.ele.style.cssText;\r
-       \r
-       // to set the default style\r
-       this.newStyle = this.oldstyle;\r
-       \r
-       if( typeof(settings) == "string" && settings.length > 1 )\r
-               this.newStyle = this.oldstyle + " " + settings;\r
-}\r
-\r
-CAgencyChangeStyle.prototype.PrepareEffect = function()\r
-{\r
-       CCSSP.ShowObject(this.ele, true );\r
-}\r
-\r
-CAgencyChangeStyle.prototype.UpdateEffect = function()\r
-{// to change the style\r
-       this.ele.style.cssText = this.newStyle;\r
-}\r
-\r
-CAgencyChangeStyle.prototype.EndEffect = function()\r
-{// to reinstate the original style\r
-       this.ele.style.cssText = this.oldStyle;\r
-}\r
-// End of the CAgencyChangeStyle definition\r
-\r
-//End the definition of CAgencyXXXX classes\r
-\r
-//Begin to collaborate with other event handler settings \r
-CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");\r
-CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");\r
-CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );\r
-CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );\r
-CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");\r
-//End to collaborate with other event handler settings\r
-\r
-/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)\r
-\r
+// eHelp® Corporation Dynamic HTML JavaScript 
+// Copyright© 1998-2003 eHelp® Corporation.All rights reserved.
+// Version=4.82
+
+// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.
+
+//// Segment Begin -- (JavaScript 1.0)
+
+/// Section Begin - General and relative topics(JavaScript 1.0)
+
+//{{HH_SYMBOL_SECTION
+var HH_ChmFilename = "";
+var HH_WindowName = "";
+var HH_GlossaryFont = "";
+var HH_Glossary = "";
+var HH_Avenue = "";
+var HH_ActiveX = false;
+//}}HH_SYMBOL_SECTION
+
+//Begin to support previous generic parameters
+//Get the information about the browser.
+var gstrBsAgent        = navigator.userAgent.toLowerCase();
+var gnBsVer                    = parseInt(navigator.appVersion);
+
+var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);
+var gbBsKonqueror      = (gstrBsAgent.indexOf('konqueror') != -1);
+var gbBsSafari         = (gstrBsAgent.indexOf('safari') != -1);
+var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
+var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
+
+var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);
+var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));
+var gbBsSunOS          = (gstrBsAgent.indexOf("sunos") != -1);
+
+var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));
+var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));
+
+var gbBsNS2                    = ((gbBsNS) && (gnBsVer <= 2));
+var gbBsNS3                    = ((gbBsNS) && (gnBsVer == 3));
+var gbBsIE300301       = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));
+var gbBsIE302          = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));
+
+var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));
+var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));
+var    gbBsNS7                 = false;
+
+var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));
+var gbBsIE5                    = false;
+var gbBsIE55           = false;
+
+var gbBsOpera6         = false;
+var gbBsOpera7         = false;
+
+var gbBsKonqueror3     = false;
+
+
+
+gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;;
+if (gbBsIE)
+{
+       if (parseInt(navigator.appVersion) >= 4) {
+               gbBsIE4 = true;
+               if (gbBsIE4) {
+                       var nPos = gstrBsAgent.indexOf("msie");
+                       var strIEversion = gstrBsAgent.substring(nPos + 5);
+                       var nVersion =  parseFloat(strIEversion);
+                       if (nVersion >= 5)
+                               gbBsIE5 = true;
+                       if (nVersion >= 5.5)
+                               gbBsIE55 = true;
+               }
+       }
+}
+if (gbBsNS6)
+{
+       var nPos=gstrBsAgent.indexOf("gecko");
+       if(nPos!=-1)
+       {
+               var nPos2=gstrBsAgent.indexOf("/", nPos);
+               if(nPos2!=-1)
+               {
+                       var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1));
+                       if (nVersion>=20020823)
+                               gbBsNS7=true;
+               }
+       }       
+}
+if (gbBsOpera)
+{
+       var nPos = gstrBsAgent.indexOf("opera");
+       if(nPos!=-1)
+       {
+               var nVersion = parseFloat(gstrBsAgent.substring(nPos+6));
+               if (nVersion >= 6)
+               {
+                       gbBsOpera6=true;
+                       if (nVersion >=7)
+                               gbBsOpera7=true;        
+               }
+       }
+}
+if (gbBsKonqueror)
+{
+       var nPos = gstrBsAgent.indexOf("konqueror");
+       if(nPos!=-1)
+       {
+               var nVersion = parseFloat(gstrBsAgent.substring(nPos+10));
+               if (nVersion >= 3)
+               {
+                       gbBsKonqueror3=true;
+               }
+       }
+}
+
+function insertAdjacentHTML(obj, where, htmlStr)
+{
+       if (gbBsIE || gbBsOpera7)
+       {
+               obj.insertAdjacentHTML(where, htmlStr);
+       }
+       else if (gbBsNS6 || gbBsSafari)
+       {
+               var r = obj.ownerDocument.createRange();
+               r.setStartBefore(obj);
+               var     parsedHTML = r.createContextualFragment(htmlStr);
+               
+               switch (where){
+               case 'beforeBegin':
+                       obj.parentNode.insertBefore(parsedHTML,obj);
+                       break;
+               case 'afterBegin':
+                       obj.insertBefore(parsedHTML,obj.firstChild);
+                       break;
+               case 'beforeEnd':
+                       obj.appendChild(parsedHTML);
+                       break;
+               case 'afterEnd':
+                       if (obj.nextSibling){
+                       obj.parentNode.insertBefore(parsedHTML,obj.nextSibling);
+                       } else {
+                       obj.parentNode.appendChild(parsedHTML);
+                       }
+                       break;
+               }
+       }
+}
+
+// Utilities functions.
+function BsscHasExtJs()
+{
+       if( gbBsIE3Before || gbBsNS3Before)
+               return false;
+       return true;
+}
+
+// Register event handler
+var gBsOnLoads                         = new Array();  // An array holds all the onload event handler.
+var gBsOnClicks                = new Array();  // An array holds all the onClick event handler.
+var gBsOnUnLoads               = new Array();  // An array holds all the OnUnLoad event handler.
+var gBsOnMouseOvers    = new Array();  // An array holds all the OnMouseOver event handler.
+var gBsOnMouseOuts             = new Array();  // An array holds all the OnMouseOut event handler.
+
+var gbOrignalOnMouseDown = null;
+
+function BsscRegisterOnLoad(funcHandler)
+{
+       var nLength = gBsOnLoads.length;
+       gBsOnLoads[nLength] = funcHandler;
+}
+
+function BsscRegisterOnClick(funcHandler)
+{
+       var nLength = gBsOnClicks.length;
+       gBsOnClicks[nLength] = funcHandler;
+}
+
+function BsscRegisterOnUnLoad(funcHandler)
+{
+       var nLength = gBsOnUnLoads.length;
+       gBsOnUnLoads[nLength] = funcHandler;
+}
+
+function BsscRegisterOnMouseOver(funcHandler)
+{
+       var nLength = gBsOnMouseOvers.length;
+       gBsOnMouseOvers[nLength] = funcHandler;
+}
+
+function BsscRegisterOnMouseOut(funcHandler)
+{
+       var nLength = gBsOnMouseOuts.length;
+       gBsOnMouseOuts[nLength] = funcHandler;
+}
+
+function BsGeneralOnLoad()
+{
+       if (!gbBsIE4 && !gbBsNS4)
+               return;
+
+       // Make everything visible in navigator
+       if (gbBsNS4 && !gbBsNS6) {
+               // Make some special effects items visible
+               for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {
+                       document.layers[iLayer].visibility = "show";
+                       document.layers[iLayer].left = 0;
+               }
+       }
+}
+
+// If resize the netscape browser, need to reload it.
+function BsReDo()
+{
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+// End of the local functions.
+
+// The following functions are used by the html files.
+function BSSCOnLoad()
+{
+       if( !BsscHasExtJs() )
+               return;
+       for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)
+               gBsOnLoads[nElement]();
+}
+
+function BSSCOnClick()
+{
+       if (!BsscHasExtJs()) return;
+               
+       for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)
+               gBsOnClicks[nElement]();
+}
+
+function BSSCOnUnload()
+{
+       if (!BsscHasExtJs()) return;
+       for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)
+               gBsOnUnLoads[nElement]();
+}
+
+function BSSCOnMouseOver()
+{
+       if (!BsscHasExtJs()) return;
+       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)
+               gBsOnMouseOvers[nElement]();
+}
+
+function BSSCOnMouseOut()
+{
+       if (!BsscHasExtJs()) return;
+       for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)
+       {
+               gBsOnMouseOuts[nElement]();
+       }
+}
+// End of invocation of the event handle functions.
+
+// Add the GereralOnLoad to the onload array.
+if (typeof(BsscRegisterOnLoad) != "undefined")
+{
+       BsscRegisterOnLoad(BsGeneralOnLoad);
+}
+if (gbBsNS4&&!gbBsNS6) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = BsReDo;
+}
+//End to support previous generic parameters
+
+//Begin to support previous HHActiveX invoking
+function BsHHActivateComponents()
+{
+       if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))
+       {
+               var objBody = getElementsByTag(document,"BODY")[0];
+               if( typeof(objBody) == "object" )
+               {
+                       insertAdjacentHTML(objBody, "beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');
+                       if (HHComponentActivator.object)
+                               HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);
+               }
+       }
+}
+
+function BsHHActivXOnLoad()
+{      
+       if( gbBsIE4 )
+               BsHHActivateComponents(); 
+}
+
+if( typeof(BsscRegisterOnLoad) != "undefined" )
+{
+       BsscRegisterOnLoad(BsHHActivXOnLoad);
+}
+//End to support previous HHActiveX invoking
+
+//Begin to support previous relative topics
+//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here
+var gbPopupMenuTimeoutExpired = false;
+var gbInPopupMenu = false;
+var gbPopupMenuTopicList = null;
+var gOlddocumentClick = null;
+
+//////////////////////////////////////////////////////////////////////////////////////////
+//
+// Popup Menu code
+//
+//////////////////////////////////////////////////////////////////////////////////////////
+
+var g_bIsPopupMenuInit = false;
+function _WritePopupMenuLayer()
+{
+       if (!g_bIsPopupMenuInit)
+        {
+         if (gbBsNS4&&!gbBsNS6) {
+//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...
+               document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");
+         } else{
+         document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
+         if (!(gbBsNS4&&!gbBsNS6)) {
+               document.write("<STYLE TYPE='text/css'>");
+               if (gbBsMac&&gbBsIE4) {
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
+               } else {
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
+               }
+               document.write("</STYLE>");
+          }
+          }
+         g_bIsPopupMenuInit = true;
+       }
+}
+
+//Seek for the bsscright frame 
+function _SeekFrameByName( cRoot, strName )
+{
+       if( cRoot == null )     return null;
+       if( cRoot.frames == null )      return null;
+       if( cRoot.frames[strName] != null )     return cRoot.frames[strName];
+       for (var i=0; i<cRoot.frames.length; i++)
+       {
+               var cObj = null;
+               if (!gbBsNS6) 
+                       cObj = _SeekFrameByName( cRoot.frames(i).document, strName );
+               else
+                       cObj = _SeekFrameByName( cRoot.frames[i], strName );
+               if( cObj != null )              return cObj;
+       };
+       return null;
+}
+function _GetFrameByName( cRoot, strName )
+{
+       if( cRoot == null )     return null;
+       var cRet = _SeekFrameByName(cRoot, strName);
+       if( cRet != null )      return cRet;
+       if (cRoot.parent != cRoot)
+               return _GetFrameByName( cRoot.parent, strName );
+       else
+               return null;
+}
+
+var gfn_arguments = null;
+function _PopupMenu_Invoke(fn_arguments)
+{
+       gfn_arguments = fn_arguments;
+       if (gbBsOpera6&&gbBsMac)
+       {
+               var wndOldPopupLinks= window.open(document.location.href, "popuplinks");
+               wndOldPopupLinks.close();
+               setTimeout("_PopupMenu_Invoke_2();",100);
+       }
+       else
+       {
+               _PopupMenu_Invoke_2();
+       }
+}
+
+function _PopupMenu_Invoke_2()
+{
+       var fn_arguments = gfn_arguments;
+       gfn_arguments = null;
+       
+       // Make sure we have reasonable arguments
+       var argLen = fn_arguments.length;
+       if (argLen < 3) {
+               return false;
+       }
+
+       // Check to see if we only have one target
+       var strTarget = "";
+       var targetDoc = null;
+       if (fn_arguments[1] == '') {
+               if (BSSCPopup_IsPopup()) {
+                       targetDoc = parent;
+                       strTarget = "TARGET= _parent";
+               }
+               else
+                       targetDoc = window.document;
+       } else {
+               targetDoc = _GetFrameByName( parent, fn_arguments[1] );
+
+               strTarget = "TARGET='" + fn_arguments[1] + "'";
+       }
+
+       if ((!gbBsIE4 && !gbBsNS4 && !gbBsOpera7 && !gbBsKonqueror3 &&!gbBsSafari) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {
+       
+               var argLen      = fn_arguments.length;
+
+               // Create the window that the hyperlinks will go into
+               var nHeight = argLen * 15;
+               var nWidth = 400;
+               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
+               strParam += ",height=" + nHeight + ",width=200";
+               strParam += ",resizable";
+
+               var wndTemp=null;
+               // Create a temporary window first to ensure the real popup comes up on top
+               if (!gbBsOpera)
+                       wndTemp = window.open("", "temp", strParam);
+
+               // Create the real popup window
+               var wndPopupLinks=null;
+               if (gbBsOpera&&gbBsMac)
+               {
+                       wndTemp = window.open(document.location.href, "temp", strParam);
+                       wndPopupLinks= window.open(document.location.href, "popuplinks", strParam);
+               }
+               else
+                       wndPopupLinks= window.open("", "popuplinks", strParam);
+               wndPopupLinks.document.open("text/html");
+
+               // Close the temporary
+               if (wndTemp)
+                       wndTemp.close();
+
+               var sHTML="<html><head></head>";
+               sHTML+="<body onBlur=\'self.focus();\'>";
+               var strParaLine = "";
+               for (var i = 0; i < (argLen - 2) / 2; i++) {
+                       strParaLine = "";
+                       strParaLine += "<a href=\"javascript:";
+                       if (gbBsIE) {
+                               strParaLine += "onBlur=null; ";
+                       }
+                       strParaLine += "opener.location=\'";
+                       strParaLine += fn_arguments[2 * i + 3];
+                       strParaLine += "\';close();\"";
+                       strParaLine += strTarget;
+
+                       strParaLine += ">";
+                       strParaLine += fn_arguments[2 * i + 2];
+                       strParaLine += "</a>";
+                       strParaLine += "<br>";
+                       sHTML+=strParaLine;
+               }
+               sHTML+="</body></html>";
+               wndPopupLinks.document.write(sHTML);
+               wndPopupLinks.document.close();
+               window.gbInPopupMenu = true;
+               if (!gbBsIE) {
+                       wndPopupLinks.focus();
+               }
+               return false;
+       }
+
+       if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||
+               ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {
+               // Get the place that we will be putting the topic into
+               var strURL = "";
+               if (isNaN(fn_arguments[2]) ||  (gbPopupMenuTopicList == null)) {
+                       strURL = fn_arguments[3];
+               }
+               else    {
+                       strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;
+               }
+
+               if (targetDoc != null) {
+                       targetDoc.location.href = strURL;
+               }
+               else {
+                       if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
+                               window.open(strURL, fn_arguments[1]);
+                       else
+                               window.open(strURL);
+               }               
+               window.gbInPopupMenu = true;
+               return false;
+       }
+       
+       var strMenu = "";
+       if (gbBsNS4&&!gbBsNS6) {
+               strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';
+       } else {
+               strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
+               if (gbBsMac) {
+                       strMenu += ' CELLPADDING=4';
+               } else {
+                       strMenu += ' CELLPADDING=2';
+               }       
+               strMenu += ' BGCOLOR=#c0c0c0>';
+       }
+       // Add each of the items
+       var i = 2;
+       while (i <= argLen - 1) {
+               strMenu += '<TR><TD><NOBR>'
+               // If the destination is a number then look it up in the topic list
+               if (isNaN(fn_arguments[i]) ||  (gbPopupMenuTopicList == null)) {
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;
+               } else {
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;
+               }
+               strMenu += ' onclick="PopupMenu_HandleClick(event);"';
+               strMenu += ' onmouseover="PopupMenu_Over(event);"';
+               strMenu += ' onmouseout="PopupMenu_Out(event);"';
+               strMenu += '>';
+               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
+               } else {
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';
+               }
+               strMenu += '</A></DIV></NOBR></TD></TR>';
+
+               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
+                       i += 2;
+               } else {
+                       i += 1;
+               }
+       }
+       strMenu += "</TABLE>";
+
+       if (gbBsMac) {
+       // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.
+               strMenu +="<TABLE></TABLE>";
+       }
+
+       var layerPopup = null;
+       var stylePopup = null;
+       var nEventX = 0;
+       var nEventY = 0;
+       var nWindowWidth = 0;
+       if (gbBsIE4 || gbBsOpera7) {
+
+               layerPopup = getElement("PopupMenu");
+               layerPopup.innerHTML = strMenu;
+               stylePopup = layerPopup.style;
+
+               _BSPSGetClientSize();
+
+               // Get the position of the item causing the event (relative to its parent)
+               nEventX = window.event.clientX;
+               nEventY = window.event.clientY;
+
+               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
+                       nEventY += document.body.scrollTop + 10;
+               } else {
+                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
+               }
+               stylePopup.top = nEventY;
+               
+               var nPopupWidth = layerPopup.scrollWidth;
+               if (gbBsMac) {
+                       nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.
+               }
+               if (nEventX + nPopupWidth + 20 > gBsClientWidth) {
+                       if (gBsClientWidth - nPopupWidth < 5) {
+                               stylePopup.left = 5;
+                       } else {
+                               stylePopup.left = gBsClientWidth - nPopupWidth - 5;
+                       }
+               } else {
+                       stylePopup.left = nEventX + document.body.scrollLeft + 20;
+               }
+
+               stylePopup.visibility = "visible";
+               if (!gOlddocumentClick && document.onclick)
+                       gOlddocumentClick = document.onclick;
+               document.onclick = PopupMenu_HandleClick;
+
+       } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) {
+               layerPopup = getElement("PopupMenu");
+               layerPopup.style.visibility = "hidden";
+       
+               if (gbBsNS6)
+               {
+                       var e = fn_arguments[0];
+                       nEventX = e.pageX;
+                       nEventY = e.pageY;
+               }
+               else
+               {
+                       nEventX = window.event.clientX;
+                       nEventY = window.event.clientY;
+               }
+               _BSPSGetClientSize();
+               layerPopup.innerHTML = strMenu;
+
+               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {
+                       nEventY += 20;
+               } else {
+                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
+               }
+
+               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
+                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
+                               nEventX = 5;
+                       } else {
+                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
+                       }
+               } else {
+                       nEventX += 20;
+               }
+               layerPopup.style.top = nEventY;
+               layerPopup.style.left = nEventX;
+               // set again to avoid the stupid frash in netscape 6.
+               layerPopup.innerHTML = strMenu;
+               layerPopup.style.visibility = "visible";
+               //window.captureEvents(Event.MOUSEDOWN);
+               if (!gOlddocumentClick && document.onclick)
+                       gOlddocumentClick = document.onclick;
+               window.onclick = PopupMenu_HandleClick;
+       }
+       else if (gbBsNS4) {
+               layerPopup = document.layers.PopupMenu;
+               layerPopup.visibility = "hide";
+               stylePopup = layerPopup.document;
+               stylePopup.write(strMenu);
+               stylePopup.close();
+               var e = fn_arguments[0];
+               nEventX = e.pageX;
+               nEventY = e.pageY;
+               _BSPSGetClientSize();
+               if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {
+                       nEventY += 20;
+               } else {
+                       nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;
+               }
+               layerPopup.top = nEventY;
+
+               if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {
+                       if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {
+                               nEventX = 5;
+                       } else {
+                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;
+                       }
+               } else {
+                       nEventX += 20;
+               }
+
+               layerPopup.left = nEventX;
+
+               layerPopup.visibility = "show";
+
+               window.captureEvents(Event.MOUSEDOWN);
+               if (!gOlddocumentClick && document.onmousedown)
+                       gOlddocumentClick = document.onmousedown;
+               window.onmousedown = PopupMenu_HandleClick;
+       }
+
+       window.gbInPopupMenu = true;
+       window.gbPopupMenuTimeoutExpired = false;
+       setTimeout("PopupMenu_Timeout();", 100);
+       return false;
+}
+
+function PopupMenu_Timeout()
+{
+       window.gbPopupMenuTimeoutExpired = true;
+}
+
+function PopupMenu_Over(e)
+{
+    if (gbBsIE4||gbBsOpera7)
+               e.srcElement.className = "PopupOver";
+    else if (gbBsNS6)
+               e.target.parentNode.className = "PopupOver";
+       return;
+}
+
+function PopupMenu_Out(e)
+{
+    if (gbBsIE4||gbBsOpera7)
+               e.srcElement.className = "PopupNotOver";
+    else if (gbBsNS6)
+               e.target.parentNode.className = "PopupNotOver";
+       return;
+}
+
+function PopupMenu_HandleClick(e)
+{
+       if (window.gbPopupMenuTimeoutExpired) {
+               window.gbInPopupMenu = false;
+               if (gbBsNS4 && !gbBsNS6) {
+                       window.releaseEvents(Event.MOUSEDOWN);
+               }
+
+               var layerPopup = null;
+               if (gbBsNS4&&!gbBsNS6) {
+                       layerPopup = document.layers.PopupMenu;
+                       layerPopup.visibility = "hide";
+               } else {
+                       layerPopup = getElement("PopupMenu");
+                       layerPopup.style.visibility = "hidden";
+               }
+       
+               if (gOlddocumentClick)
+               {
+                       if (gbBsNS4 && !gbBsNS6)
+                               document.onmousedown = gOlddocumentClick;
+                       else
+                               document.onclick = gOlddocumentClick;
+               }
+       }
+       return;
+}
+
+function BSSCPopup_ClickMac()
+{
+       if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7))
+       {       
+               var bClickOnAnchor = false;
+               var el;
+               if ((window.event != null) &&
+                   (window.event.srcElement != null))
+               {
+                   el = window.event.srcElement;
+                       while (el != null)
+                       {
+                               if ((el.tagName == "A") || (el.tagName == "AREA"))      {
+                                       bClickOnAnchor = true;
+                                       break;
+                               }
+                               if (el.tagName == "BODY") {
+                                       break;
+                               }
+                               el = getParentNode(el);
+                       }
+               }
+               if (BSSCPopup_IsPopup())
+               {
+                       if (!bClickOnAnchor) {
+                               parent.window.gPopupWindow = null;
+                               self.close();
+                       }
+               }
+               else
+               {
+                       bClosePopupWindow = true;
+                       if ((bClickOnAnchor) &&
+                               (el.href) &&
+                           ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))
+                       {
+                               bClosePopupWindow = false;
+                       }
+                       if (bClosePopupWindow)
+                       {
+                               if (window.gPopupWindow != null && !window.gPopupWindow.closed )
+                               {
+                                       window.gPopupWindow.close();
+                               }
+                       }
+               }
+       }
+}
+
+function BsPopupOnClick()
+{
+       if (!gbBsIE4 && !gbBsOpera7)
+               return;
+
+       BSSCPopup_ClickMac();
+}
+
+function _BSSCOnError(message)
+{
+       if(-1 != message.indexOf("denied") 
+               || -1 != message.indexOf("Object required"))
+        return true;
+}
+
+//End to support previous relative topics
+
+/// Section End - General and relative topics (JavaScript 1.0)
+
+/// Section Begin  - Popup (JavaScript 1.0)
+//Begin to support previous popup functions
+
+//variables used to isolate the browser type
+var gBsStyVisShow      = null;
+var gBsStyVisHide      = null;
+var gBsClientWidth     = 640;
+var gBsClientHeight = 480;
+
+// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.
+var gBRateH_W          = 0.618; // 1.618 Golden cut.
+var gBMaxXOfParent     = 0.8; 
+var gBMaxYOfParent     = 0.8;
+var gBscrollHeight   = 16;
+var gBscrollWidth   =  16;
+var gBpermitXDelta     = 3;
+var gBpermitYDelta     = 3;
+
+
+var arrayPopupURL = new Array();
+var arrayAbsPopupURL = new Array();
+
+var arrayDirty = new Array();
+
+function setAbsPopupURL(nIndex, strURL)
+{
+       arrayAbsPopupURL[nIndex] = strURL;
+}
+
+function getAbsPopupURL(nIndex)
+{
+       if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;
+       else 
+               return arrayAbsPopupURL[nIndex];
+}
+
+function getPopupURL(nIndex)
+{
+       if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;
+       else 
+               return arrayPopupURL[nIndex];
+}
+
+function getPopupID(nIndex)
+{
+       return gstrPopupID + nIndex;
+}
+
+function getPopupShadowID(nIndex)
+{
+       return gstrPopupShadowID + nIndex;
+}
+
+function getPopupTopicID(nIndex)
+{
+       return gstrPopupTopicID + nIndex;
+}
+
+function getPopupIFrameID(nIndex)
+{
+       return gstrPopupIFrameID + nIndex;
+}
+
+function getPopupIFrameName(nIndex)
+{
+       return gstrPopupIFrameName + nIndex;
+}
+
+
+function getPopupTopicStyle(nIndex)
+{
+       return getElement(getPopupTopicID(nIndex)).style;
+}
+
+function getPopupShadowStyle(nIndex)
+{
+       return getElement(getPopupShadowID(nIndex)).style;
+}
+
+function getPopupIFrame(nIndex)
+{
+       if (gbBsNS6)
+               return eval("window.frames['" + getPopupIFrameName(nIndex) + "']");
+       else
+               return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");
+}
+
+function getPopupDivStyle(nIndex)
+{
+       return getElement(getPopupID(nIndex)).style;
+}
+
+function getPopupIFrameStyle(nIndex)
+{
+       return getElement(getPopupIFrameID(nIndex)).style;
+}
+
+
+function findDiv(strURL)
+{
+       for (var i = 0; i < arrayPopupURL.length; i ++ ) {
+               if (arrayPopupURL[i] == strURL) {
+                       return i;
+               }
+       }
+       return -1;
+}
+
+var gnToken = -1;
+function takeToken()
+{
+       gnToken ++;
+       if (gnToken > 10000) gnToken = 0;
+       return gnToken;
+}
+
+function IsValidToken(nToken)
+{
+       return (gnToken == nToken);
+}
+
+function addDiv(strURL)
+{
+       for (var i = 0; i < arrayPopupURL.length; i ++) {
+               if (arrayPopupURL[i] == null) {
+                       arrayPopupURL[i] = strURL;
+                       return i;
+               }
+       }       
+       arrayPopupURL[i] = strURL;
+       arrayDirty[i] = true;
+       return i;
+}
+
+function setDirty()
+{
+       for (var i = 0; i < arrayPopupURL.length; i ++ )
+               arrayDirty[i] = true;
+}
+
+function IsDirty(nIndex)
+{
+       if (nIndex == -1)
+               return true;
+       else 
+               if (arrayDirty.length > nIndex) 
+                       return arrayDirty[nIndex];
+               else
+                       return true;
+}
+
+function hideAll()
+{
+       for (var i = 0; i < arrayPopupURL.length; i ++ )
+       {
+               getPopupDivStyle(i).visibility = gBsStyVisHide;
+               getPopupIFrameStyle(i).visibility = gBsStyVisHide;
+       }
+}
+
+function getCurrentPopupIFrame()
+{
+       for (var i = 0; i < arrayPopupURL.length; i ++)
+               if (getPopupDivStyle(i).visibility == gBsStyVisShow)
+                       return getPopupIFrame(i);
+       return null;
+}
+
+function setClear(nIndex)
+{
+       if (nIndex != -1)
+               arrayDirty[nIndex] = false;
+}
+
+function _BSSCCreatePopupDiv(strURL)
+{
+       var nIndex = findDiv(strURL);
+       if (nIndex == -1 ) {
+               nIndex = addDiv(strURL);
+               BsPopup_CreateDiv(nIndex);
+       }
+       else {
+               if (IsDirty(nIndex)) {
+                       if("object" == typeof(getPopupIFrame(nIndex).document))
+                               getPopupIFrame(nIndex).document.location.href = strURL;
+               }
+       }
+       return nIndex;
+}
+
+//Here is the browser type 
+function _BSPSGetBrowserInfo()
+{
+       if (gbBsNS4&&!gbBsNS6)
+       {
+               gBsStyVisShow   = "show";
+               gBsStyVisHide   = "hide";
+       }
+       else
+       {
+               gBsStyVisShow   = "visible";
+               gBsStyVisHide   = "hidden";
+       }
+}
+
+_BSPSGetBrowserInfo();
+
+//Get client size info
+function _BSPSGetClientSize()
+{
+       if (gbBsNS4||gbBsKonqueror3||gbBsSafari)
+       {
+               gBsClientWidth  = innerWidth;
+               gBsClientHeight = innerHeight;
+       }
+       else if (gbBsIE4 || gbBsOpera7)
+       {
+               gBsClientWidth  = document.body.clientWidth;
+               gBsClientHeight = document.body.clientHeight;
+       }
+}
+
+var gstrPopupID = 'BSSCPopup';
+var gstrPopupShadowID = 'BSSCPopupShadow';
+var gstrPopupTopicID = 'BSSCPopupTopic';
+var gstrPopupIFrameID = 'BSSCPopupIFrame';
+var gstrPopupIFrameName = 'BSSCPopupIFrameName';
+
+var gstrPopupSecondWindowName = 'BSSCPopup';
+
+var gPopupWindow = null;
+var gnPopupClickX = 0;
+var gnPopupClickY = 0;
+
+var gnPopupScreenClickX = 0;
+var gnPopupScreenClickY = 0;
+
+var gbPopupTimeoutExpired = false;
+
+function DHTMLPopupSupport()
+{
+       if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) {
+               return true;
+       }
+       return false;
+}
+
+function BSSCPopup_IsPopup()
+{
+       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {
+               return true;
+       } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) {
+               return true;
+       } else {
+               return false;
+       }
+}
+
+// If there is a hyperlink in a popup window, display the hyperlink in
+// the original window. (bsscright)
+if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) {
+       document.write("<base target=\"bsscright\">");
+}
+
+// Local functions.
+function BsPopup_CreateDiv(nIndex)
+{
+       if(!DHTMLPopupSupport())
+               return;
+       // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.
+       var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";
+       strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#C0C0C0;\"></DIV>";
+       strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#FFFFFF;border:1px #000000 outset;\">";
+       strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";
+       strPopupDiv += "</DIV></DIV>";
+
+       var objBody = getElementsByTag(document, "BODY")[0];
+       if( typeof(objBody) != "object" )
+               return;
+
+       insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv);
+}
+
+function handleLoadNS()
+{
+       if (this.id)
+       {
+               var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length));
+               BSSCPopup_PostWork(nIndex);
+       }
+}
+
+function BSSCPopup_PostWork(nIndex)
+{
+       getPopupDivStyle(nIndex).visibility = gBsStyVisShow;
+       getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow;
+
+       setClear(nIndex);
+       window.gbPopupTimeoutExpired = true;
+
+       BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);
+       if (gbBsNS6)
+               getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false);
+       else
+               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;
+
+       if (!gbOrignalOnMouseDown && document.onmousedown)
+               gbOrignalOnMouseDown = document.onmousedown;
+
+       if (gbBsNS6)
+               document.addEventListener("mousedown", BSSCPopupParentClicked,false);
+       else
+               document.onmousedown = BSSCPopupParentClicked;
+}
+
+function BSSCPopup_Timeout(nIndex, nToken)
+{
+    if (!IsValidToken(nToken)) return;
+
+       if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") &&
+               (getPopupIFrame(nIndex).document.body != null))) {
+               BSSCPopup_PostWork(nIndex);
+       } else {
+               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);
+       }
+}
+
+// VH 08/10/00 
+// do not change target to parent if the href is using javascript
+function BSSCPopup_ChangeTargettoParent(tagsObject)
+{
+       var collA = getElementsByTag(tagsObject, "A");
+       BSSCPopup_ChangeTargettoParent2(collA);
+
+       var collIMG = getElementsByTag(tagsObject,"IMG");
+       BSSCPopup_ChangeTargettoParent2(collIMG);
+}
+
+function BSSCPopup_ChangeTargettoParent2(colls)
+{
+       if (colls != null)  {
+               for (var j = 0; j < colls.length; j ++ )
+               {
+                       var strtemp = colls[j].href;
+                       if (strtemp)
+                       {
+                               strtemp = strtemp.toLowerCase();
+                               if (strtemp.indexOf("javascript:") == -1)
+                               if (colls[j].target == "")
+                                       colls[j].target = "_parent";
+                       }
+               }
+       }
+}
+
+function BSPSPopupTopicWinHelp(strURL)
+{
+       _BSSCPopup(strURL);
+       return;
+}
+
+function _BSSCPopup(strURL, width, height)
+{
+       var cuswidth = 0;
+       var cusheight = 0;
+       if ("undefined" != typeof(width) && "undefined" != typeof(height)) {
+               cuswidth = width;
+               cusheight= height;
+       }
+       
+       if (DHTMLPopupSupport()) {
+               var nToken = takeToken(); // take  token first.
+               var nIndex = _BSSCCreatePopupDiv(strURL);
+               window.gbPopupTimeoutExpired = false;
+               var ntWidth = gBsClientWidth;
+               var ntHeight = gBsClientHeight;
+               _BSPSGetClientSize();
+               if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {
+                       setDirty();
+               }
+
+               if (IsDirty(nIndex)) {
+                       if (gbBsMac) {
+                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);
+                       } else {
+                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);
+                       }
+               }
+               else {
+                       MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);
+               }
+       } else {
+               _BSSCPopup2(strURL, cuswidth, cusheight);
+       }
+       return;
+}
+
+if (gbBsIE55)
+{
+       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;
+       var gnBsUnload=0;
+       window.onbeforeunload = window_BUnload;
+}
+       
+function window_BUnload()
+{
+       gnBsUnload++;
+       if (gnBsUnload>1)
+               return;
+       for (var i = 0; i < arrayPopupURL.length; i ++)
+               removeThis(document.all(getPopupID(i)));
+       arrayPopupURL.length = 0;       
+       if (ehlpdhtm_fOldBefureUnload)
+               ehlpdhtm_fOldBefureUnload();
+}
+
+function _BSSCPopup2(strURL, width, height)
+{
+       if (gbBsOpera6&&gbBsMac)
+       {
+               var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName);
+               wmTemp.close();
+               setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100);
+       }
+       else
+               _BSSCPopup3(strURL, width, height);
+}
+               
+function _BSSCPopup3(strURL, width, height)
+{
+       if (window.name == gstrPopupSecondWindowName) {
+               window.location = strURL;
+       } else {
+               if (!gbBsMac || !gbBsNS4) {
+                       BSSCHidePopupWindow();
+               }
+               var nX = 0;
+               var nY = 0;
+               var nHeight = 300;
+               var nWidth = 400;
+               if (width > 0 && height > 0) {
+                       nHeight = height;
+                       nWidth = width;
+               }
+               _BSPSGetClientSize();
+
+               nX = window.gnPopupScreenClickX;
+               nY = window.gnPopupScreenClickY;
+
+               if (nY + nHeight + 40 > screen.availHeight) {
+                       nY = screen.availHeight - nHeight - 40;
+               }
+               if (nX + nWidth + 40 > screen.availWidth) {
+                       nX = screen.availWidth - nWidth - 40;
+               }
+
+               // Launch a separate window
+               var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";
+               if (gbBsNS) {
+                       if (gbBsNS6) {
+                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;
+                               strParam += ",screenX=" + nX + ",screenY=" + nY;
+                               strParam += ",dependent=yes";
+                       }
+                       else {
+                               strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;
+                               strParam += ",screenX=" + nX + ",screenY=" + nY;
+                               strParam += ",dependent=yes";
+                       }
+               }
+               else {
+                       strParam += ",height=" + nHeight + ",width=" + nWidth;
+                       strParam += ",left=" + nX + ",top=" + nY;
+               }
+               if (gbBsSafari)
+               {
+                       if (window.gPopupWindow)
+                               window.gPopupWindow.close();            
+                       window.gPopupWindow = window.open(strURL, "", strParam);
+                       window.gPopupWindow.name = gstrPopupSecondWindowName;
+                       window.gPopupWindow.moveTo(nX, nY);
+                       widnow.gPopupWindow.document.location.reload();
+               }       
+               else
+               {
+                       var wmTemp=null;
+                       if (gbBsKonqueror3)
+                       {
+                               if (window.gPopupWindow)
+                                       window.gPopupWindow.close();
+                       }
+                       if (gbBsOpera&&gbBsMac)
+                       {
+                               wmTemp= window.open(document.location.href, "Temp", strParam);
+                       }
+                       window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);
+                       if (!gbBsIE)
+                               window.gPopupWindow.focus();
+                               
+                       if (wmTemp)
+                               wmTemp.close();
+               }
+
+               if (gbBsNS4)
+                       setEventHandle();
+               else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3)
+                       setTimeout("setPopupFocus();", 100);
+       }
+       return;
+}
+
+function setEventHandle()
+{
+       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR);
+       window.gPopupWindow.onclick = NonIEPopup_HandleClick;
+       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;
+}
+
+function setPopupFocus()
+{
+       window.gPopupWindow.focus();
+}
+
+function NonIEPopup_HandleBlur(e)
+{
+       window.gPopupWindow.focus();
+}
+
+function NonIEPopup_HandleClick(e)
+{
+       // Because navigator will give the event to the handler before the hyperlink, let's
+       // first route the event to see if we are clicking on a Popup menu in a popup.
+       document.routeEvent(e);
+
+       // If a popup menu is active then don't do anything with the click
+       if (window.gPopupWindow.gbInPopupMenu) {
+               window.gPopupWindow.captureEvents(Event.CLICK);
+               window.gPopupWindow.onclick = NonIEPopup_HandleClick;
+               return false;
+       }
+
+       // Close the popup window
+       if(e.target.href)
+       {
+               if(e.target.href.indexOf("javascript:")==-1) 
+               {
+                       if (e.target.target=="")
+                               window.location.href = e.target.href;
+                       else
+                               window.open(e.target.href, e.target.target);
+                       this.close();
+               }
+       } 
+       else
+               this.close();
+       return false;
+}
+
+function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)
+{      
+       if (!window.getPopupIFrame(nIndex).document) {
+               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);
+               return;
+       }
+       
+    if (!IsValidToken(nToken)) return;
+
+       if (gbBsNS6)
+       {
+               setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
+               BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
+               return;
+       }
+       
+       if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&
+               (window.getPopupIFrame(nIndex).document.body != null)) {
+                       if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.
+                               window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
+                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
+                       }
+                       else
+                               {
+                                       setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
+                                       BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
+                               }
+       } else {
+               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
+       }
+}
+
+function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)
+{
+       if (window.gbPopupTimeoutExpired) return;
+
+    if (!IsValidToken(nToken)) return;
+
+       getPopupDivStyle(nIndex).visibility = gBsStyVisHide;
+       getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide;
+
+       // Determine the width and height for the window
+       _BSPSGetClientSize();
+
+       var size = new BSSCSize(0, 0);
+
+       if (cuswidth <= 0 || cusheight <= 0)
+               BSSCGetContentSize(window.getPopupIFrame(nIndex), size);
+       else {
+               size.x = cuswidth;
+               size.y = cusheight;
+       }
+
+       // Determine the width and height for the window
+       var nWidth = size.x;
+       var nHeight = size.y;
+
+       // for small popup size, we should allow any size.
+       // The popup size should be ok if bigger than 0
+       if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              
+
+       getPopupDivStyle(nIndex).width = nWidth;
+       getPopupDivStyle(nIndex).height = nHeight;
+
+       getPopupShadowStyle(nIndex).width = nWidth;
+       getPopupShadowStyle(nIndex).height = nHeight;
+       getPopupTopicStyle(nIndex).width = nWidth;
+       getPopupTopicStyle(nIndex).height = nHeight;
+       if (gbBsIE55)
+       {
+               getPopupShadowStyle(nIndex).width = nWidth + 2;
+               getPopupShadowStyle(nIndex).height = nHeight + 2;
+               getPopupTopicStyle(nIndex).width = nWidth + 2;
+               getPopupTopicStyle(nIndex).height = nHeight + 2;
+       }
+
+       getPopupIFrameStyle(nIndex).width = nWidth;
+       getPopupIFrameStyle(nIndex).height = nHeight;
+       if (gbBsIE55 || gbBsNS6)
+       {
+               getPopupIFrameStyle(nIndex).top = 0;
+               getPopupIFrameStyle(nIndex).left = 0;
+       }
+       
+       var strURL = getPopupURL(nIndex);
+       if (strURL.indexOf("#") != -1&&gbBsNS6)
+               getPopupIFrame(nIndex).location.reload();
+       else if (strURL.indexOf("#") != -1||gbBsNS6)
+               getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.
+               
+       MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);
+}
+
+function getScrollLeft()
+{
+       if (document.body.scrollLeft)
+               return document.body.scrollLeft;
+       else if (window.pageXOffset)
+               return window.pageXOffset;
+       else
+               return 0;
+}
+
+function getScrollTop()
+{
+       if (document.body.scrollTop)
+               return document.body.scrollTop;
+       else if (window.pageYOffset)
+               return window.pageYOffset;
+       else
+               return 0;
+}
+
+
+function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)
+{
+       if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.
+                       window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
+                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
+                       return;
+       }
+
+       // Determine the position of the window
+       var nClickX = window.gnPopupClickX;
+       var nClickY = window.gnPopupClickY;
+       var nTop = 0;
+       var nLeft = 0;
+
+       var nWidth = parseInt(getPopupDivStyle(nIndex).width);
+       var nHeight = parseInt(getPopupDivStyle(nIndex).height);
+
+       if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) {
+               nTop = nClickY + 10;
+       } else {
+               nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20;
+       }
+       if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) {
+               nLeft = nClickX;
+       } else {
+               nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8;
+       }
+
+       if (nTop < getScrollTop()) nTop  = getScrollTop() + 1;
+       if (nLeft< getScrollLeft())  nLeft = getScrollLeft() + 1;
+
+       getPopupDivStyle(nIndex).left = nLeft;
+       getPopupDivStyle(nIndex).top = nTop;
+
+       // Set the location of the background blocks
+       getPopupShadowStyle(nIndex).left = 6;
+       getPopupShadowStyle(nIndex).top = 6;
+       if (gbBsIE55)
+       {
+               getPopupShadowStyle(nIndex).left = 4;
+               getPopupShadowStyle(nIndex).top = 4;
+       }
+
+       if (gbBsMac&&gbBsIE4) {
+               // Total hack on the iMac to get the IFrame to position properly
+               getPopupIFrameStyle(nIndex).pixelLeft = 100;
+               getPopupIFrameStyle(nIndex).pixelLeft = 0;
+               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it
+               getPopupIFrame(nIndex).window.BSSCOnLoad();
+       }
+
+       if (gbBsNS6&&IsDirty(nIndex))
+               getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false);
+       else
+               BSSCPopup_Timeout(nIndex , nToken );
+       return;
+}
+
+function       BSSCSize(x, y)
+{
+       this.x = x;
+       this.y = y;
+}
+
+function BSSCGetContentSize(thisWindow, size)
+{
+       if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4)
+               return;
+
+       if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) {
+               size.x = 320;
+               size.y = 180;
+               return;
+       }
+
+       // Resize the width until it is wide enough to handle the content
+       // The trick is to start wide and determine when the scrollHeight changes
+       // because then we know a scrollbar is necessary. We can then go back
+       // to the next widest size (for no scrollbar)
+
+       var ClientRate = gBsClientHeight / gBsClientWidth;
+
+       
+       var GoldenSize = new BSSCSize(0,0);
+       GoldenSize.x = gBsClientWidth * gBMaxXOfParent;
+       GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;
+
+       if (ClientRate > gBRateH_W) {
+               GoldenSize.y = GoldenSize.x * gBRateH_W;
+       }
+       else {
+               GoldenSize.x = GoldenSize.y / gBRateH_W;
+       }
+
+       // Try to using parent specified max x.
+       var x = 0;
+       var maxgoldx = GoldenSize.x;
+       var maxx = gBsClientWidth * gBMaxXOfParent;
+       
+       // This double resize causes the document to re-render (and we need it to)
+       if (!gbBsIE5)
+               thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.
+               
+       thisWindow.resizeTo(1, 1);
+       thisWindow.resizeTo(1, 1);
+       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
+       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
+               
+       var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
+       
+       if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can
+       {
+               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
+               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
+               
+               miny =  thisWindow.document.body.scrollHeight + gBscrollHeight;
+               maxy = gBsClientHeight * gBMaxYOfParent;
+               
+               if (miny > maxy) { // the popup must have a scroll, OK let it be.
+                       miny = maxy;
+                       size.x = maxx;
+                       size.y = maxy;
+                       thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.
+               }
+               else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.
+                       size.y = miny;
+                       
+                       //  downsize from maxx , now I try to using binary divide.
+                       x = maxx;
+                       deltax = -maxx/2;
+                       //j = 0;
+                       while (true) {
+                               x = x + deltax;
+                               thisWindow.resizeTo(x, miny);
+                               thisWindow.resizeTo(x, miny);
+                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;
+                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
+                                       deltax = Math.abs(deltax) /2;
+                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
+                                       deltax = -Math.abs(deltax) /2;
+                               else 
+                                       // the y is close enough to wanted.
+                                       break;
+                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
+                                       break;
+                       }
+                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
+                       size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     
+                       thisWindow.document.body.scroll = 'no';
+               }
+       }
+       else {
+               if (thisWindow.document.body.scrollWidth > maxgoldx) {
+                       size.x = maxx; 
+                       size.y = miny;  
+                       thisWindow.document.body.scroll = 'yes';
+               }
+               else {
+                       //  downsize from maxgoldx , now I try to using binary divide.
+                       x = maxgoldx;
+                       deltax = -maxgoldx/2;
+                       while (true) {
+                               x = x + deltax;
+                               thisWindow.resizeTo(x, miny);
+                               thisWindow.resizeTo(x, miny);
+                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;
+                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
+                                       deltax = Math.abs(deltax) /2;
+                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
+                                       deltax = -Math.abs(deltax) /2;
+                               else 
+                                       // the y is close enough to wanted.
+                                       break;
+                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
+                                       break;
+                       }
+                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
+                       size.y = thisWindow.document.body.scrollHeight ;
+                       thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.
+                       thisWindow.resizeTo(size.x, size.y);
+                       if (thisWindow.document.body.scrollWidth > size.x)
+                       {
+                               size.x = thisWindow.document.body.scrollWidth;
+                       }
+                       if (thisWindow.document.body.scrollHeight > size.y)
+                       {
+                               size.y = thisWindow.document.body.scrollHeight;
+                       }
+               }
+       }
+       thisWindow.resizeTo(size.x, size.y);
+       thisWindow.resizeTo(size.x, size.y);
+       return;
+}
+
+function BSSCPopupParentClicked()
+{
+       if (!window.gbPopupTimeoutExpired) {
+               return false;
+       }
+       
+       document.onmousedown = gbOrignalOnMouseDown;
+
+       // Simply hide the popup
+       hideAll();
+
+       window.gbPopupTimeoutExpired = false;
+
+       return true;
+}
+
+function isInsideHyperLink(obj)
+{
+       if (obj&&obj!=getParentNode(obj))
+       {
+               if (obj.tagName=="A"||obj.tagName=="IMG")
+                       return true;
+               else
+                       return isInsideHyperLink(getParentNode(obj));
+       }
+       else
+               return false;
+}
+
+function BSSCPopupClicked(e)
+{
+       if (!window.gbPopupTimeoutExpired) {
+               return false;
+       }
+
+       var popupIFrame = getCurrentPopupIFrame();
+       if (popupIFrame == null) {
+               return true;
+       }
+
+       if (gbBsIE4 && (!((popupIFrame.window.event != null) &&
+               (popupIFrame.window.event.srcElement != null) &&
+               isInsideHyperLink(popupIFrame.window.event.srcElement)))) {
+               document.onmousedown = gbOrignalOnMouseDown;
+               
+               // Simply hide the popup
+               hideAll();
+               window.gbPopupTimeoutExpired = false;
+               return true;
+       }
+       else if (gbBsNS6 && (!((e != null) &&
+                       (e.target!= null) && isInsideHyperLink(e.target))))
+       {
+               document.addEventListener("mousedown", gbOrignalOnMouseDown,false);
+               // Simply hide the popup
+               hideAll();
+               window.gbPopupTimeoutExpired = false;
+               return true;            
+       }
+}
+
+//trace the mouse over's position for hotspot
+function  BSPSPopupOnMouseOver(event)
+{
+       if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) {
+               window.gnPopupClickX = event.clientX + getScrollLeft();
+               window.gnPopupClickY = event.clientY + getScrollTop();
+               window.gnPopupScreenClickX = event.screenX;
+               window.gnPopupScreenClickY = event.screenY;
+       } else if (gbBsSafari) {
+               window.gnPopupClickX = event.clientX + getScrollLeft();
+               window.gnPopupClickY = event.clientY + getScrollTop();
+               window.gnPopupScreenClickX = event.screenX + window.screenX;
+               window.gnPopupScreenClickY = event.screenY + window.screenY;
+       } else if (gbBsNS4) {
+               window.gnPopupClickX = event.pageX - window.pageXOffset;
+               window.gnPopupClickY = event.pageY - window.pageYOffset;
+               window.gnPopupScreenClickX = event.screenX - window.pageXOffset;
+               window.gnPopupScreenClickY = event.screenY - window.pageYOffset;
+       }
+}
+
+function BSSCHidePopupWindow()
+{
+       if (window.gPopupWindow != null) {
+               if (gbBsNS4) {
+                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {
+                               window.gPopupWindow.close();
+                               window.gPopupWindow = null;
+                       }
+               }
+       }
+       return;
+}
+
+// Add the PopupOnClick to the onclick array.
+if (typeof(BsscRegisterOnClick) != "undefined")
+{
+       BsscRegisterOnClick(BsPopupOnClick);
+}
+//End to support previous popup functions
+
+/// Section End  - Popup (JavaScript 1.0)
+
+/// Section Begin - Embedded Stub (JavaScript 1.0)
+
+function BSSCCreatePopupDiv()
+{
+       return;
+}
+
+function WritePopupMenuLayer()
+{
+       if (BsscHasExtJs()) {_WritePopupMenuLayer();}
+}
+
+function BSSCPopup(strURL, width, height)
+{
+       var re = new RegExp("'", 'g');
+       strURL = strURL.replace(re, "%27");
+
+       if (BsscHasExtJs())     { 
+               _BSSCPopup(strURL, width, height);
+       }else{
+               //Create a temporary window first to ensure the real popup comes up on top
+               var wndTemp = null;
+               if (!gbBsNS3) {
+                       wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
+               }
+               // Create the real popup window
+               var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");
+               // Close the temporary
+               if (!gbBsNS3) {
+                       wndTemp.close();
+               } else {
+                       wndPopup.focus();
+               }
+       }
+}
+
+var gbWndTemp = null, gbWndPopupLinks = null;
+var gbstrParaTotal = "";
+
+function PopupMenu_Invoke()
+{
+       if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function')
+       {
+               if (Number(gsSkinVersion) > 2 && IsFlashSupported())
+               {
+                       return wfRelatedTopic(PopupMenu_Invoke.arguments);
+               }
+       }
+       if (BsscHasExtJs()) {
+               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);
+       }
+       if (gbBsNS3Before || gbBsIE3Before )    {
+               var argLen      = PopupMenu_Invoke.arguments.length;
+               if (argLen < 5) {
+                       window.document.location.href = PopupMenu_Invoke.arguments[3];
+                       return false;
+               }
+               gbWndTemp = null;
+               gbWndPopupLinks = null;
+               gbstrParaTotal = "";
+               for (var i = 0; i < (argLen - 2) / 2; i++) {
+                       var strParaLine = "";
+                       if (gbBsNS2){
+                               strParaLine += "<a href=\"";
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
+                               strParaLine += "\">"
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
+                               strParaLine += "</a>";
+                       } else {
+                               strParaLine += "<a href=\"javascript:";
+                               strParaLine += "gotoUrl(\'";
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
+                               strParaLine += "\');\"";
+                               if (PopupMenu_Invoke.arguments[1] != '') {
+                                       strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";
+                               }
+                               strParaLine += ">";
+                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
+                               strParaLine += "</a>";
+                       }
+                       strParaLine += "<br>";
+                       gbstrParaTotal += strParaLine;
+               }
+               var nHeight = argLen * 15;
+               var nWidth = 400;
+               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
+               strParam += ",height=" + nHeight + ",width=200,resizable";
+               
+               //Create a temporary window first to ensure the real popup comes up on top
+               //var wndTemp = null;
+               if (!gbBsNS3) {
+                       gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
+               } 
+               gbWndPopupLinks = window.open("", "popuplinks", strParam);
+
+               setTimeout("Wait_PopupMenuReady()", 100);
+       }
+       return true;
+}
+
+function Wait_PopupMenuReady() 
+{
+       if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {
+               PopupMenu_InvokeReady();
+       }
+       else 
+               setTimeout("Wait_PopupMenuReady()", 100);
+}
+
+function PopupMenu_InvokeReady()
+{
+       if (gbWndPopupLinks != null) {
+               gbWndPopupLinks.document.open("text/html");
+               gbWndPopupLinks.document.write("<html><head>");
+               if (gbBsNS2) {
+                       gbWndPopupLinks.document.write("<base href=\"" + location +"\">");
+               } else {
+                       //YJ: IE301,302 and NS3.x works fine
+                       gbWndPopupLinks.document.write("<");
+                       gbWndPopupLinks.document.write("script>");
+                       gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");
+                       gbWndPopupLinks.document.write("<");
+                       gbWndPopupLinks.document.write("/script>");
+               }
+               gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");
+               gbWndPopupLinks.document.write(gbstrParaTotal);
+               gbWndPopupLinks.document.write("</body></html>");
+               gbWndPopupLinks.document.close();
+
+               // Close the temporary
+               if (!gbBsNS3 && gbWndTemp != null) {
+                       gbWndTemp.close();
+               }else {
+                       gbWndPopupLinks.focus();
+               }
+
+               return true;
+       }
+       return false;
+}
+
+/// Section End - Embedded Stub (JavaScript 1.0)
+
+//// Segment End -- (JavaScript 1.0)
+
+//// Segment Begin -- (JavaScript 1.2)
+/// Section Begin  - kadov DHTM (JavaScript 1.2)
+
+//Begin to support extended and dropdown text effects.
+function kadovIsParagraph(el)
+{
+       return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;
+}
+
+function kadovInitEachChild(el)
+{      
+       for(var i=0; i<getChildNodes(el).length; i++)
+       {
+               var child = getChildNodes(el)[i];
+               if( child.tagName == "SCRIPT" || child.tagName == "!" )
+                       continue;
+
+               if( child.id != "" )
+               {
+                       // to wipe out the onload effects
+                       if (gbBsIE4&&!gbBsMac)
+                       {
+                               var onLoadEffect = child.style.getAttribute( "x-on-pageload" );
+                               if( (onLoadEffect != null) && (onLoadEffect > "") )
+                                       child.style.setAttribute( "x-on-pageload", "" );
+                       }
+                       
+                       var href = child.getAttribute("href")
+                       if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )
+                               kadovFilePopupInit(child.id); // Init for Popup
+                       else if( child.className == "dropspot" || child.className == "expandspot" || 
+                                        child.className == "glossterm" )
+                               kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text
+                       else if( child.className == "trigger")
+                               kadovInitTrigger(child.id);// Init for Trigger
+                       else
+                       {
+                               kadovInitEffects(child.id);// Init for DHTML effects
+                               CEngine.SetOneTargetInitialState( child.id );
+                       }
+               }
+               
+               if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )
+                       child.start = "mouseover";// to start a AVI file. fileopen doesn't work
+
+               kadovInitEachChild(child);
+       }
+}
+
+function kadovRetrieveTextInner(el)
+{      
+       var x = "";
+       if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))
+               return x;
+
+       if( kadovIsParagraph(el) )
+       {
+               var strNewID = " ";
+               if( el.id != "" )
+                       strNewID += "id=" + el.id + "_NewSpan ";
+               x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";
+       }
+       else
+       {
+               for(var i=0; i<getChildNodes(el).length; i++)
+                       x += kadovRetrieveTextInner( getChildNodes(el)[i] );
+       }
+       return x;
+}
+
+function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )
+{      
+       var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );
+       if( nTagOpen < 0 )
+               return strRawHTML;
+
+       var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);
+       if( nTagClose < nTagOpen )
+               return strRawHTML;
+               
+       if( typeof(nDistance) == "number" && nDistance > 0 )
+               if( (nTagClose - nTagOpen) != nDistance )
+                       return strRawHTML;
+               
+       var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;
+       return  kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );
+}
+
+function kadovAdjustObjectTag(strRawHTML, nStartPos)
+{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings
+       
+       //Is there any DTC?
+       var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';
+       var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';
+       var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );
+       if( nDTCTagOpen < 0 )
+               return strRawHTML;
+       var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );
+       if( nDTCTagClose < nDTCTagOpen)
+               return strRawHTML; // no Design Time Controls;
+               
+       //Is the DTC HTML Help Control?
+       var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';
+       var strRTObjTagClose = '</OBJECT>';
+       var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );
+       if( nRTObjTagOpen < nDTCTagOpen )
+               return strRawHTML;
+       var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );
+       if( nRTObjTagClose < nRTObjTagOpen )
+               return strRawHTML; // is not a HTML help control
+               
+       // Is it a related Topics html help control?
+       var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';
+       if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )
+               return strRawHTML;
+       
+       // does the commented object tag contain a items parameters             
+       var strRTItemsOpen = '<param name="Items" value="';
+       var strRTItemsClose = '$$**$$" >';
+       var strRTItemsClose2 = '$$**$$">';
+
+       var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);
+       if( nRTItemsOpen < nDTCTagOpen )
+               return strRawHTML;
+       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);
+       if (nRTItemsClose == -1)
+               nRTItemsClose = strRawHTML.indexOf(strRTItemsClose2, nRTItemsOpen);
+       if( nRTItemsClose < nRTItemsOpen )
+               return strRawHTML;
+               
+       // found a items string
+       var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);
+       if( strItems.length < 1 )
+               return strRawHTML;
+       
+       // to reconstruct the item(s) param tag(s)
+       var strItemsArray = strItems.split('$$**$$');
+       if( strItemsArray.length < 1 )
+               return strRawHTML;
+       var strRunTimeItemParam = "";
+       for( var i = 0; i < strItemsArray.length; i++ )
+       {
+               strRunTimeItemParam += '<PARAM  NAME="Item' + (i+1);
+               strRunTimeItemParam += '"' + '  VALUE="';
+               strRunTimeItemParam += strItemsArray[i];
+               strRunTimeItemParam += '">';
+       }
+       
+       // to insert the reconstructed item params into runtime object tag
+       var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);
+       return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);
+}
+
+function kadovTextPopupOnLoad( el )
+{
+       if( typeof(el) == "string" )
+               el = getElement(el);
+
+       var src = el.getAttribute( "x-use-popup" );
+       var bNeedMove=true;
+       if(!src&&el.id)
+       {
+               for (var i=0;i<gPopupData.length;i++)
+                       if (gPopupData[i].el==el.id)
+                       {
+                               src=gPopupData[i].popupId;
+                               bNeedMove=false;
+                               break;
+                       }
+       }
+       if(!src)
+               src = el.style.getAttribute( "x-use-popup" );   
+       if (!src)       
+               return 0;
+
+       var name = src;
+       if( src.substr(0,1) == "#" ) 
+               name = src.substr(1, src.length-1);
+       var srcDiv = getElement(name);
+       if( !srcDiv )
+               return 1;
+
+       if (bNeedMove)
+       {
+               var type = el.getAttribute( "x-popup-type" );
+               if (!type)
+                       type = el.style.getAttribute("x-popup-type");
+               if (!type)              
+                       return 1;               
+               var setup = el.getAttribute( "x-tmp-setup" );
+               var newId = name;
+               if( newId.indexOf( "_tmp") <= 0 )
+                       newId += "_tmp";
+
+               if( !setup)
+               {
+                       el.setAttribute( "x-tmp-setup", 1 );
+
+                       if( type == "pulldown"  )
+                       {
+                               var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);
+                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
+                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
+                               
+                               //work around the bug in HH.exe that highlight the phrases when use Search tab
+                               //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime
+                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);
+                               
+                               var strStyle = " style='display:none; position:relative;";
+                               var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";
+
+                               removeThis(srcDiv); // empty the original DIV tag
+                               var elParentPra = kadovFindParentParagraph(el);
+                               if( elParentPra )
+                                       insertAdjacentHTML(elParentPra, "afterEnd", newDiv );
+                       }
+                       else if( type == "expanding"  )
+                       {
+                               var inner = kadovRetrieveTextInner(srcDiv);
+                               if( inner == "" )
+                                       inner = srcDiv.innerHTML;
+                               var strAdjust = kadovAdjustObjectTag(inner,0);
+                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
+                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
+                               var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";
+                               var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";
+                               removeThis(srcDiv); // empty the original DIV tag
+                               insertAdjacentHTML(el, "afterEnd", newSpan );
+                       }
+               }
+       }
+       else
+       {
+               srcDiv.style.display = "none";
+       }
+       return 0;
+}
+
+function getElementsByTag(obj,sTagName)
+{
+       if(obj.getElementsByTagName)
+               return obj.getElementsByTagName(sTagName);
+       else if(obj.all)
+               return obj.all.tags(sTagName);
+       return null;
+}
+
+function getElement(sID)
+{
+       if(document.getElementById)
+               return document.getElementById(sID);
+       else if(document.all)
+               return document.all(sID);
+       return null;
+}
+
+function getParentNode(obj)
+{
+       if(obj.parentNode)
+               return obj.parentNode;
+       else if(obj.parentElement)
+               return obj.parentElement;
+       return null;
+}
+
+function getChildNodes(obj)
+{
+       if(obj.childNodes)
+       {
+               var children = new Array();
+               for (var i = 0; i < obj.childNodes.length; i++)
+               {
+                       if (obj.childNodes[i].nodeType == 1)
+                               children[children.length] = obj.childNodes[i];
+               }
+               return children;
+       }
+       else if(obj.children)
+               return obj.children;
+       return null;    
+}
+
+function removeThis(obj)
+{
+       if(obj.parentNode)
+               obj.parentNode.removeChild(obj);
+       else
+               obj.outerHTML="";
+}
+
+function kadovTextPopup( el )
+{
+       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 )
+               return;
+
+       var bNeedMove=true;
+       
+       if (window.event)
+               window.event.cancelBubble = true;
+
+       if( typeof(el) == "string" )
+               el = getElement(el);
+
+       if (!el||el==window)
+               return;
+       
+       var src = el.getAttribute( "x-use-popup" );
+       if(!src&&el.id)
+       {
+               for (var i=0;i<gPopupData.length;i++)
+                       if (gPopupData[i].el==el.id)
+                       {
+                               src=gPopupData[i].popupId;
+                               bNeedMove=false;
+                               break;
+                       }
+       }
+       if(!src)
+               src = el.style.getAttribute( "x-use-popup" );   
+       if(!src)
+               return;
+               
+       var name = src;
+       if( src.substr(0,1) == "#" ) 
+       if (bNeedMove)
+               name = src.substr(1, src.length-1) + "_tmp";
+       else
+               name = src.substr(1, src.length-1);
+
+       var srcDiv = getElement(name);
+       if( !srcDiv )
+               return;
+
+       if( srcDiv )
+       {
+               if( srcDiv.style.display == "" )
+                       srcDiv.style.display = "none";
+               else
+               {
+                       srcDiv.style.display = "";
+                       if( typeof(srcDiv.bInitialized) == "undefined" )
+                       {
+                               srcDiv.bInitialized = true;
+                               kadovInitEffects(name);
+                               kadovInitEachChild(srcDiv);
+                       }
+               }
+       }
+       if(gbBsIE4)
+               event.returnValue=false;
+       return;
+}
+
+function kadovFindParentParagraph( el )
+{
+       if( typeof(el) == "string" )
+               el = getElement(el);
+       if( (!el) || el.tagName == "BODY" )
+               return null;
+       if( kadovIsParagraph(getParentNode(el)) )
+               return getParentNode(el);
+       else
+               return kadovFindParentParagraph( getParentNode(el) );
+}
+
+//Begin HTML code invoked function
+function kadovRegisterEventHandler( obj, strEvent, strEventHandler )
+{
+       if( !gbBsIE4 )
+               return;
+       CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );
+}
+
+function textPopupData(el, popupId)
+{
+       this.el = el;
+       this.popupId = "#"+popupId;
+}
+
+var gPopupData = new Array();
+
+function kadovTextPopupInit( el, popupId)
+{
+       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3)
+               return;
+               
+       if( typeof(el) == "string" )
+       {
+               if (popupId)
+               {
+                       gPopupData[gPopupData.length]=new textPopupData(el, popupId);
+               }
+               el = getElement(el);
+       }
+               
+       if( el != null )
+       {
+               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(\"" + el.id +"\");" );
+               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(\"" + el.id +"\");" );
+       }
+}
+//End HTML code invoked function
+
+//End to support extended and dropdown text effects.
+
+//Begin to convert iWrite format to RoboEditor Format for DHTML effects
+function kadovInitTriggersInHead( )
+{
+  if( Object.xDelayedInitElements )
+  {
+     var x = Object.xDelayedInitElements;
+     for(i=0; i<x.length; i++)
+       kadovInitTrigger( x[i] );
+  }
+}
+
+//Begin HTML code invoked function
+function kadovFilePopupInit( el )
+{
+       if( typeof(el) == "string" )
+               el = getElement(el);
+
+       if( el != null )
+               CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );
+}
+
+function kadovInitTrigger( element )
+{
+       if( !gbBsIE4 )
+               return;
+       var srcElement = element;
+       if( typeof(srcElement) == "string" )
+       {
+               srcElement = getElement(element,0);
+               if(srcElement == null)
+                       return;
+       }
+       
+       if( !kadovIsParentVisible(srcElement) )
+               return;
+
+       var targets = srcElement.getAttribute( "x-targets" );
+       if (!targets)
+               targets = srcElement.style.getAttribute("x-targets");
+       if (!targets)
+               return; 
+       var arrOneTarget = targets.split( "," );
+       for( var i = 0; i < arrOneTarget.length; i ++ )
+               bsscFXInit( element, arrOneTarget[i], null, null, null, null );
+}
+
+function kadovIsParentVisible( el )
+{
+       if( typeof(el) == "string" )
+               el = getElement(el);
+       if( (!el) || el.tagName == "BODY" )
+               return true;
+       if( el.style.display == 'none' ) //el.visibility == 'hidden' || 
+               return false;
+       else
+               return kadovIsParentVisible( getParentNode(el) );
+}
+
+function kadovInitEffects( element )
+{
+       if( !gbBsIE4 )
+               return;
+       var srcElement = element;
+       if( typeof(srcElement) == "string" )
+       {
+               srcElement = getElement(element,0);
+               if(srcElement == null)
+                       return;
+       }
+       
+       if( !kadovIsParentVisible(srcElement) )
+               return;
+       
+       kadovInitEffect( srcElement, "x-on-hover" );
+       kadovInitEffect( srcElement, "x-on-pageclick" );
+       kadovInitEffect( srcElement, "x-on-pageload" );
+       kadovInitEffect( srcElement, "x-on-trigger-1" );
+       kadovInitEffect( srcElement, "x-on-trigger-2" );
+}
+//End HTML code invoked function
+
+function kadovInitEffect( element, prop )
+{
+       var values = null;
+       if( element.getAttribute( "currentStyle" )  && element.currentStyle.getAttribute)
+               values = element.currentStyle.getAttribute( prop );
+       else  if (element.style.getAttribute)
+               values = element.style.getAttribute( prop );
+       if( !values )
+               return;
+
+       var functions = new Array();
+       var nIdx = 0, nStart = 0;
+       var nNext = values.indexOf( "\)", 0);
+       while( nNext >= 0 && nNext < values.length )
+       {
+               functions[nIdx] = values.substr( nStart, nNext-nStart+1);
+               nStart = nNext + 1;
+               nIdx++;
+               nNext = values.indexOf( "\)", nStart);
+       }
+               
+       for( var i=0; i<functions.length; i++)
+       {
+               var id = element.getAttribute( "id" );
+               var translatedProp = kadovTranslateProp(prop);
+
+               var lp = functions[i].indexOf( "(" );
+               var fnname = functions[i].substring(0, lp);
+               var srcargs = functions[i].substring(lp+1, functions[i].length-1);
+               
+               var nClickTimes = 1;
+               var arrForClickCount = srcargs.split( "," );
+               for( var j = 0; j < arrForClickCount.length; j++ )
+               {// to locate and get the "clicks=99" settings
+                       var nPageClick = arrForClickCount[j].indexOf("clicks");
+                       if( nPageClick >= 0 )
+                       {
+                               nPageClick = arrForClickCount[j].indexOf("=");
+                               if( nPageClick > 0 )
+                               {
+                                       nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;
+                                       break;
+                               }
+                       }
+               }
+               var args = srcargs;
+               if( j < arrForClickCount.length )
+               {// to strip out the "clicks=99" from the arguments string
+                       args = "";
+                       for( var k = 0; k < arrForClickCount.length; k ++ )
+                       {
+                               if( k != j )
+                               {
+                                       args += arrForClickCount[k];
+                                       if( k < arrForClickCount.length - 1 )
+                                               args += ",";
+                               }
+                       }
+               }
+               bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );
+       }
+}
+
+function kadovTranslateProp( prop )
+{
+       switch( prop )
+       {
+       case "x-on-hover" :     return "bsschover";
+       case "x-on-pageclick" : return "bsscpageclick";
+       case "x-on-pageload" :  return "bsscpageload";
+       case "x-on-trigger-1" : return "bssctrigger1";
+       case "x-on-trigger-2" : return "bssctrigger2";
+       }
+       return null;
+}
+//End to convert iWrite format to RoboEditor Format for DHTML effects
+
+//Begin the definition of one entry to DHTML effects
+function bsscFXInit( trigger_ID, target_ID, event_type, 
+       action_type, action_setting, event_addional )
+{
+       if( (!gbBsWindows && !gbBsSunOS  && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID
+               return; // we don't support Navigator yet
+       
+       if( typeof(event_type) == "string" )
+               event_type = event_type.toLowerCase();
+       if( typeof(action_type) == "string" )
+               action_type = action_type.toLowerCase();
+       if( typeof(action_setting) == "string" )
+                action_setting = action_setting.toLowerCase();
+       
+       // to get the target element then add it to the target list
+       var eleTarget = CCSSP.GetObject( target_ID );
+       if( (eleTarget != null) && (event_type != null) && (action_type != null) )
+       {
+               CEngine.AddOneTarget( target_ID, eleTarget );
+               CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);
+       }
+       
+       // to validate the trigger_ID parameter
+       if( typeof(trigger_ID) == "string" && trigger_ID != "" )
+               CEngine.BuildTriggerObject( trigger_ID, target_ID );
+}      
+//End the definition of one entry to DHTML effects
+
+/// Section End  - kadov DHTM (JavaScript 1.2)
+
+/// Section Begin  - CCSSP DHTM (JavaScript 1.2)
+
+//Begin JavaScript libary for cross-platform positioning object.
+function CCSSP(){} // constructor of CCSSP class
+
+CCSSP.GetObject = function( obj )
+{//convert object name string or reference into a valid object reference
+       if( typeof(obj) == "object" )
+               return obj;
+       else if( typeof(obj) == "string" && obj != "")
+       {
+               if( gbBsNS4 )
+                       return eval("document." + obj);
+               else
+                       return eval("document.all(\"" + obj + "\")");
+       }
+       else
+               return null;
+}
+
+CCSSP.MoveObjectTo = function(obj, x, y)
+{//positioning an object at a specific pixel coordinate
+       if( gbBsNS4 )
+               obj.moveTo(x,y);
+       else
+       {
+               obj.style.pixelLeft = x;
+               obj.style.pixelTop = y;
+       }
+}
+
+CCSSP.MoveObjectBy = function(obj, dx, dy)
+{//moveing a object by x and/or y pixel
+       if( gbBsNS4 )
+               obj.moveBy(dx,dy);
+       else
+       {
+               obj.style.pixelLeft += dx;
+               obj.style.pixelTop += dy;
+       }
+}
+
+CCSSP.SetObjectBGColor = function(obj, color)
+{//set the background color of an object
+       if( gbBsNS4 )
+               obj.bgColor = color;
+       else
+               obj.style.backgroundColor = color;
+}
+
+CCSSP.ShowObject = function(obj, bShow)
+{// set the object to be visible or invisible
+       if( gbBsNS4 )
+               obj.visibility = (bShow == true) ? 'show' : 'hide';
+       else
+               obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.
+}
+
+CCSSP.GetObjectLeft = function(obj)
+{// retrieve the x coordinate of a posionable object
+       if( gbBsNS4 )
+               return obj.left;
+       else
+               return obj.style.pixelLeft;
+}
+
+CCSSP.GetObjectTop = function(obj)
+{// retrieve the y coordinate of a posionable object
+       if( gbBsNS4 )
+               return obj.top;
+       else
+               return obj.style.pixelTop;
+}
+
+CCSSP.GetObjectContainLeft = function(obj)
+{// retrieve the x coordinate of a posionable object relative to it's parent element
+       if( gbBsNS4 )
+               return obj.pageX;
+       else
+       {
+               if( obj == document.body )
+                       return obj.clientLeft;
+               else
+                       return obj.offsetLeft;
+       }
+}
+
+CCSSP.GetObjectWindowLeft = function(obj)
+{// retrieve the x coordinate of a posionable object relative to browser window
+       if( gbBsNS4 )
+               return obj.pageX;
+       else
+       {
+               var nOffsetWindowLeft = 0;
+               for(var element = obj; element; element = element.offsetParent)
+                       nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);
+               return nOffsetWindowLeft;
+       }
+}
+
+CCSSP.GetObjectContainTop = function(obj)
+{// retrieve the y coordinate of a posionable object relative to it's parent element
+       if( gbBsNS4 )
+               return obj.pageY;
+       else
+       {
+               if( obj == document.body )
+                       return obj.clientTop;
+               else
+                       return obj.offsetTop;
+       }
+}
+
+CCSSP.GetObjectWindowTop = function(obj)
+{// retrieve the y coordinate of a posionable object relative to browser window
+       if( gbBsNS4 )
+               return obj.pageY;
+       else
+       {
+               var nOffsetWindowTop = 0;
+               for(var element = obj; element; element = element.offsetParent)
+                       nOffsetWindowTop += CCSSP.GetObjectContainTop(element);
+               return nOffsetWindowTop;
+       }
+}
+
+CCSSP.GetObjectHeight = function(obj)
+{// retrieve the height of a posionable object
+       if( gbBsNS4 )
+               return obj.clip.height;
+       else
+               return obj.offsetHeight;
+}
+
+CCSSP.GetObjectWidth = function(obj)
+{// retrieve the width of a posionable object
+       if( gbBsNS4 )
+               return obj.clip.width;
+       else
+               return obj.offsetWidth;
+}
+
+CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )
+{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined
+       if (gbBsNS4 && !gbBsNS6)
+               return ;
+               
+       var oldHandler = "";
+
+       if (gbBsMac &&gbBsIE4&&!gbBsIE5)
+       {
+               if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")
+               { //search for <SCRIPT> tag which define the event handler
+                       for( var i = 0; i < document.scripts.length; i++ ) 
+                       {
+                               var script = document.scripts[i];
+                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
+                               {
+                                       oldHandler = script.innerHTML;
+                                       break;
+                               }
+                       }
+               }
+       }
+       else
+       {
+               var oldInlineHandler = srcObj[rawEventName.toLowerCase()];
+               if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")
+               {
+                       var functionDefinition = oldInlineHandler.toString();
+                       var bodyStart = functionDefinition.indexOf( "{" );
+                       var bodyEnd = functionDefinition.lastIndexOf( "}" );
+                       if( bodyStart > 0 || bodyEnd > bodyStart )
+                               oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );
+               }
+               else if( gbBsIE4 )
+               { //search for <SCRIPT> tag which define the event handler
+                       for( var i = 0; i < document.scripts.length; i++ ) 
+                       {
+                               var script = document.scripts[i];
+                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
+                               {
+                                       oldHandler = script.innerHTML;
+                                       break;
+                               }
+                       }
+               }
+       }
+       if( oldHandler.indexOf(funcHandler) >= 0 )
+               return;// to prevent register the funtion twice.
+
+       if( gbBsNS4 ) // only "onload, onresize, onfocus" apply to window
+       {// other raw events will apply to layer
+               var noOn = rawEventName.substring(2, rawEventName.length);
+               if( typeof(noOn) == "string" && noOn.length > 3 ) {
+                       if (srcObj.captureEvents)
+                               srcObj.captureEvents( Event[noOn.toUpperCase()] );
+               }
+       }
+       
+       var newHandler = oldHandler;
+       if( newHandler.length == 0 )
+               newHandler = funcHandler;
+       else
+               newHandler += "; " + funcHandler;
+       
+       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );
+}
+
+CCSSP.GetWindowHeight = function()
+{// retrieve the height of available content in browser window
+       if( gbBsNS4 )
+               return window.innerHeight;
+       else
+               return document.body.clientHeight;
+}
+
+CCSSP.GetWindowBottom = function()
+{// retrieve the bottom postion of browser window
+       if( gbBsNS4 )
+               return window.outerHeight + window.pageYOffset;
+       else
+               return document.body.clientHeight + document.body.scrollTop;
+}
+
+CCSSP.GetWindowWidth = function()
+{// retrieve the width of available content in browser window
+       if( gbBsNS4 )
+               return window.innerWidth;
+       else
+               return document.body.clientWidth;
+}
+
+CCSSP.GetWindowRight = function()
+{// retrieve the right postion of browser window
+       if( gbBsNS4 )
+               return window.outerWidth + window.pageXOffset;
+       else
+               return document.body.clientWidth + document.body.scrollLeft;
+}
+
+CCSSP.TrimString = function( objString, subtrim )
+{// to trim the "subtrim" in the beginning and ending of a string object
+       if( typeof(subtrim) != "string" || subtrim == null )
+               return objString;
+       var strHead = objString.substring(0, 1);
+       var strRear = objString.substring(objString.length-1, objString.length);
+       if( strHead != subtrim && strRear != subtrim )
+               return objString;
+       
+       var spacePos = objString.indexOf(subtrim);
+       if( spacePos < 0 )
+               return objString;
+       else if( spacePos == objString.length - 1 )
+               return objString.substring(0, spacePos);
+       else
+       {
+               var newString = objString.substring( spacePos + 1, objString.length);
+               return CCSSP.TrimString( newString, subtrim );
+       }
+}
+
+CCSSP.TrimSpace = function( objString )
+{
+       var Trim1 = CCSSP.TrimString( objString, " ");
+       return CCSSP.TrimString( Trim1, "\'");
+}
+
+CCSSP.GetEventElement = function( navEventObject )
+{// to get the element who fired the current event
+       if(gbBsNS4) 
+               if (gbBsNS6)
+                       return null;
+               else
+                        navEventObject.target;
+       else
+               return event.srcElement;
+}
+
+CCSSP.PrepareFilter = function( Obj )
+{//to prepare for making the filter work
+       Obj.style.filter = "";
+       if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )
+               return;
+       Obj.style.height = CCSSP.GetObjectHeight(Obj);
+}
+
+CCSSP.IsDescendant = function( progenitor, progeny )
+{
+       if( typeof(progeny) == "undefined" || progeny == null )
+               return false;
+       else if( progeny == progenitor )
+               return true; 
+       else if( progeny.id == progenitor.id ) 
+               return true; 
+       else if( getParentNode(progeny) == getParentNode(progenitor))
+               return false;
+       else
+               return CCSSP.IsDescendant( progenitor, getParentNode(progeny));
+}
+
+CCSSP.IsTextTag = function( Obj )
+{
+       if( typeof( Obj.tagName ) == "undefined" )
+               return false;
+       return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" || 
+                       Obj.tagName == "FONT" || Obj.tagName == "SPAN" );
+}
+
+//End JavaScript libary for cross-platform positioning object.
+
+/// Section End  - CCSSP DHTM (JavaScript 1.2)
+
+/// Section Begin  - CCSSP DHTM 1 (JavaScript 1.2)
+
+//Begin the definition of class CTrigger
+function CTrigger( TriggerElement )
+{
+       // object : the trigger element. Never be null. 
+       this.eleTrigger = TriggerElement;
+       
+       // number : the click counter number: only 3 values: 0,1,2;
+       this.nCounter = 0; 
+       
+       //object as associative array of string:
+       // the associate target ID strings; one element at least.                       
+       this.objStrTarget = new Object();
+       this.eleTrigger.style.cursor = "hand";
+       if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )
+               this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map
+}
+
+CTrigger.prototype.AddTargetID = function( strTargetID )
+{// add one target ID string to the objStrTarget
+       if( typeof(strTargetID) != "string" )
+               return ;
+       if( typeof(this.objStrTarget[strTargetID]) != "string" )
+               this.objStrTarget[strTargetID] = strTargetID;
+}
+
+CTrigger.prototype.OnTriggerClick = function()
+{// to activate all asociated target
+       var strEventType = ( (this.nCounter++)% 2 == 0 ) ? 
+               "bssctrigger1" : "bssctrigger2";
+               
+       // to enumerate associative target element's ID string
+       for( var strTargetID in this.objStrTarget ) 
+               CEngine.SendEventToOneTarget( strTargetID, strEventType );
+}
+//End the definition of class CTrigger
+
+//Begin the definition of class CTarget
+function CTarget( TargetElement )
+{
+       // object : the target element. Never be null.
+       this.eleTarget = TargetElement;
+       this.objManager = new Object(); // object: the event manager
+} 
+
+CTarget.nPageClickCounter = 0;// static class property.
+
+CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )
+{// return the action agency ( effect )object's refernece 
+       switch( str_action_type )
+       {
+       case "show":return new CAgencyShow( this.eleTarget, true ) ;
+       case "hide":return new CAgencyShow( this.eleTarget, false ) ;
+
+    case "flyin" : 
+       return new CAgencyFly(this.eleTarget, action_setting, true);
+    case "flyout" : 
+       return new CAgencyFly(this.eleTarget, action_setting, false);
+    case "spiralin" : 
+       return new CAgencySpiral(this.eleTarget, action_setting, true);
+    case "spiralout" : 
+       return new CAgencySpiral(this.eleTarget, action_setting, false);
+    case "zoomin" :
+       return new CAgencyZoom(this.eleTarget, action_setting, true);
+    case "zoomout" : 
+       return new CAgencyZoom(this.eleTarget, action_setting, false);
+    case "elastic" : 
+               return new CAgencyElastic(this.eleTarget, action_setting);
+               
+    case "fadein" : 
+       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;
+    case "fadeout" :
+       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;
+    case "rockrollstatic" :
+    case "rockroll" :
+       return (gbBsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;
+    case "glow":
+       return (gbBsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;
+    case "dropshadow":
+       return (gbBsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;
+    case "transition" :
+       return (gbBsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;
+    case "blur" :
+       return (gbBsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;
+
+    case "fliph" : // all these 4 do NOT need any parameters
+    case "flipv" :
+    case "invert":
+    case "gray" :
+       return (gbBsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;
+    
+    case "fontchange": // the effects below change the style on the fly, so won't work in Navigator
+       return (gbBsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;
+    case "boderchange": 
+    case "stylechange":
+       return (gbBsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;
+
+       default: return null;
+       }
+}
+
+CTarget.prototype.SetEventManager = function( 
+       one_event_type,str_action_type,action_setting,event_additional)
+{// to set the event manager with specified action 
+       if( typeof( one_event_type ) != "string" ||     
+               typeof( str_action_type ) != "string"||
+               typeof( action_setting ) != "string" )
+               return false;
+       if( typeof(this.objManager[one_event_type]) == "undefined" )
+       {
+               this.objManager[one_event_type] = new Object();
+               this.objManager[one_event_type].length = 0;
+       }
+       
+       var eventAgency = this.GetAgencyObject(str_action_type,action_setting);
+       if( eventAgency != null )
+       {
+               var ct = this.objManager[one_event_type].length ++;
+               this.objManager[one_event_type][ct] = eventAgency;
+               
+               if( one_event_type == "bsscpageclick" )
+               {// to deal with the "number of pageclick" stuff
+                       if( typeof(event_additional) == "number" )
+                               this.objManager[one_event_type][ct].nPageClick = event_additional;
+                       else // set the default number 
+                               this.objManager[one_event_type][ct].nPageClick = 1;
+                       
+                       if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||
+                           (this.objManager[one_event_type][ct].nPageClick < 
+                                       this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )
+                               this.objManager.nMinPageClickIndex = ct;
+               }
+               
+               //hide the object blindly,SetState function will take care of the final correct state
+               if( ((one_event_type == "bsscpageclick") && 
+                        (this.objManager[one_event_type][ct].nPageClick == 1)) ||
+                       one_event_type == "bsscpageload" ||
+                       one_event_type == "bssctrigger1" )
+                       CCSSP.ShowObject( this.eleTarget, false );
+               
+               if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )
+                       if( typeof( this.strTriggerEvent ) == "undefined" )
+                               this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";
+                       
+               return true;
+       }
+       return false;
+}
+
+CTarget.prototype.OnEvent = function( strBsscEvent )
+{// response to the event ( bssc format )
+       if( typeof(this.objManager[strBsscEvent]) == "object" )
+       { // to get the event agency from the event manager
+               var eventAgency = this.objManager[strBsscEvent];
+               for( var i = 0; i < eventAgency.length; i++ )
+               {
+                       if( strBsscEvent == "bsscpageclick" && 
+                               eventAgency[i].nPageClick != CTarget.nPageClickCounter )
+                                continue;
+                       else if( strBsscEvent == "bsschover" && event.type == "mouseout" )
+                               eventAgency[i].EndEffect();
+                       else // to invoke the unified function in effect object 
+                               eventAgency[i].UpdateEffect(); 
+               }
+       }
+}
+
+CTarget.prototype.SetState = function( strBsscEvent )
+{
+       if( typeof(this.objManager[strBsscEvent]) != "object" )
+               return false;
+
+       // to get the event agency from the event manager
+       var eventAgency = this.objManager[strBsscEvent];
+       
+       if( strBsscEvent == "bsscpageclick" )
+       {// we only set the initial state for the minium number of pageclick 
+               eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();
+               return true;
+       }
+       else
+       {
+               for( var i = 0; i < eventAgency.length; i++ )
+                       eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object       
+               if( i > 0 )
+                       return true;
+               else
+                       return false;
+       }
+}
+//End the definition of class CTarget
+
+//Begin the definition of CEngine class
+function CEngine(){}// all properities are going be "class" properities
+
+// object : as associative array of trigger objects
+CEngine.objTrigger = new Object();
+// object : as associative array of target objects 
+CEngine.objTarget = new Object(); 
+
+// Array : each element is a CAgencyXXX animation object
+CEngine.arrAnimation = new Array();
+CEngine.PerformAnimation = function( nIndex )
+{// animation : update effects function
+       CEngine.arrAnimation[nIndex].UpdateEffect();
+}
+
+CEngine.AddOneTrigger = function(TriggerID,TriggerElement)
+{// add one Trigger object into the trigger array
+       if( typeof(TriggerID) != "string" || TriggerElement == null ||
+           typeof(TriggerElement) != "object" )
+               return;
+       if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )
+               CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);
+}
+       
+CEngine.AddOneTarget = function(TargetID, TargetElement)
+{// add one Target object into the target array
+       if( typeof(TargetID) != "string" || TargetElement == null ||
+               typeof(TargetElement) != "object" )
+               return;
+       if( typeof(CEngine.objTarget[TargetID]) != "object" )
+               CEngine.objTarget[TargetID] = new CTarget( TargetElement );
+}
+
+CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )
+{// to activate one target object
+       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) 
+       {
+               if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )
+               {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle
+                       if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )
+                               strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";
+                       CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;
+               }
+               CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );
+       }
+}
+
+CEngine.SendEventToAllTarget = function( strBsscEvent )
+{ //to activate all target associative to the BSSC event
+       for( var strTargetID in CEngine.objTarget ) //to enumerate all target
+               CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );
+}
+
+CEngine.SetOneTargetInitialState = function( strTargetID )
+{// only invoked after ALL effects for the target have been set
+       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) 
+       {// to get target object
+               var objTarget = CEngine.objTarget[strTargetID];
+               if( objTarget.SetState( "bsscpageload" ) == false )
+               {
+                       objTarget.SetState( "bsscpageclick" );
+                       objTarget.SetState( "bssctrigger1" );
+               }
+       }
+}
+
+CEngine.AdjustPageClickCounter = function()
+{
+       var nAdjustedClickCounter = CTarget.nPageClickCounter;
+       var bAdjusted = false;
+       for( var strTargetID in CEngine.objTarget ) //to enumerate all target
+       {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter
+               var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;
+               if( objEventPageClick != null )
+               {
+                       for( var i = 0; i < objEventPageClick.length; i++ )
+                       {
+                               var nOtherPageClick = objEventPageClick[i].nPageClick;
+                               if( nOtherPageClick == CTarget.nPageClickCounter )
+                                       return;
+                               if( nOtherPageClick > CTarget.nPageClickCounter )
+                               {
+                                       if( !bAdjusted )
+                                       {
+                                               nAdjustedClickCounter = nOtherPageClick;
+                                               bAdjusted = true;
+                                       }
+                                       else if( nOtherPageClick < nAdjustedClickCounter )
+                                               nAdjustedClickCounter = nOtherPageClick;
+                               }
+                       }
+               }
+       }
+       CTarget.nPageClickCounter = nAdjustedClickCounter;
+}
+
+CEngine.OnPageLoad = function()
+{      
+       // first, to set all target's initial state
+       for( var strTargetID in CEngine.objTarget )
+               CEngine.SetOneTargetInitialState( strTargetID );
+       
+       // to invoke all target's onpageload handler
+       CEngine.SendEventToAllTarget( "bsscpageload" );
+}
+
+CEngine.OnPageClick = function()
+{ // to invoke all target's onpageclick handler
+       var src = CCSSP.GetEventElement( arguments[0] );
+       if( src == null )
+               return;
+               
+       var objClickedTrigger = null;
+       for( var strTriggerID in CEngine.objTrigger )
+       { // to detect which trigger is clicked
+               if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )
+               {
+                       objClickedTrigger = CEngine.objTrigger[strTriggerID];
+                       break;
+               }
+       }
+       
+       if( objClickedTrigger != null) // the clicked trigger found
+               objClickedTrigger.OnTriggerClick();
+       else // no trigger is clicked
+       { // to send PageClick event to all target
+               CTarget.nPageClickCounter++;
+               CEngine.AdjustPageClickCounter();
+               CEngine.SendEventToAllTarget( "bsscpageclick" );
+       }
+}      
+
+CEngine.OnMouseOver = function()
+{ // to invoke all target's onpageload handler
+       var src = CCSSP.GetEventElement( arguments[0] );
+       if( src == null )
+               return;
+               
+       var strHoveredTargetID = null;
+       for( var strTargetID in CEngine.objTarget )
+       { // to detect which Target is hovering on
+               if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )
+           {
+                       strHoveredTargetID = strTargetID;
+                       break;
+           }
+       }
+       
+       if( strHoveredTargetID != null ) // the hovered target found
+               CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );
+}
+
+CEngine.BuildTargetObject = function(target_ID,event_type,action_type,
+                       action_setting, event_additional)
+{// to build target object 
+       // to get the target object
+       if( typeof( CEngine.objTarget[target_ID] ) != "object" )
+               return false;// the engine's AddOneTarget function might have failed.
+       var TargetObject = CEngine.objTarget[target_ID];
+       
+       // to prepare the parameters for the event manager
+       var arrEvent = event_type.split("|"); // to split the combined event_type string
+       var arrAction = action_type.split("|");//to split the combined action_type string
+       for( var trim = 0; trim < arrEvent.length; trim++ )
+               arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);
+       
+       for( trim = 0; trim < arrAction.length; trim++ )
+               arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);
+       
+       var arrSetting = new Array(); 
+       if( typeof(action_setting) == "string" )
+               arrSetting = action_setting.split("|");// to split the combined action_setting string
+       // to calibrate the arrays
+       for( var i = arrSetting.length; i < arrAction.length; i++ )
+       {
+               if( typeof(arrSetting[i]) != "string" )
+                        arrSetting[i] = "";
+       }                                
+
+       // to prepare for dealing with the absolute posioning element
+       TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );
+       TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );
+
+       if( arrEvent.length > 1 )
+       {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"
+               if( arrAction.length != 2 )
+                       return false; // if event is combined, there must be 2 actions
+               for( i = 0 ; i < 2; i++ )
+               {
+                       if( TargetObject.SetEventManager(arrEvent[i], arrAction[i], 
+                               arrSetting[i], event_additional) == false )
+                               return false; // the event manager has not been set up
+               }
+       }
+       else // the event_type string is not combined
+       {
+               for( i = 0 ; i < arrAction.length; i++ )
+               {
+                       TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);
+                       // to validate the event manager
+                       if( typeof(TargetObject.objManager[event_type]) != "object" ||
+                                       typeof(TargetObject.objManager[event_type][i]) != "object" )
+                               return false; // the event manager has not been set up
+               }
+       }
+       return true;
+}
+
+CEngine.BuildTriggerObject = function(trigger_ID, target_ID)
+{// to build the trigger object
+       var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string
+       for( var i = 0; i < arrTrigger.length; i ++ )
+       {// to get the trigger element then add it to the trigger list
+               arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );
+               var eleTrigger = CCSSP.GetObject( arrTrigger[i] );
+               if( eleTrigger == null )
+                       continue; // the trigger_ID string in the HTML code maybe wrong
+               CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );
+
+               // to get the target object
+               if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )
+                       continue;// the engine's AddOneTarget function might have failed.
+               CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );
+       }
+}
+//End the definition of CEngine class
+
+/// Section End  - CCSSP DHTM 1 (JavaScript 1.2)
+
+/// Section Begin  - CCSSP DHTM 2 (JavaScript 1.2)
+
+//Begin the definition of CAgencyXXXX classes
+
+//Begin of the CAgencyShow definition
+function CAgencyShow( element, bIsShow )
+{
+       this.ele = element;
+       this.bIsShow = bIsShow;
+}
+
+CAgencyShow.prototype.PrepareEffect = function()
+{
+       CCSSP.ShowObject( this.ele, !this.bIsShow );
+}
+
+CAgencyShow.prototype.UpdateEffect = function()
+{
+       CCSSP.ShowObject( this.ele, this.bIsShow );
+}
+
+CAgencyShow.prototype.EndEffect = function()
+{
+       CCSSP.ShowObject( this.ele, !this.bIsShow );
+}
+// End of the CAgencyShow definition
+
+// Begin of CAgencyFly definition
+function CAgencyFly( element, settings, bIsIn )
+{
+       this.ele = element;
+       this.bIsIn = bIsIn;
+       this.duration = 1000; // default
+       this.direction = "right";
+
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;
+               case "direction" : this.direction = arrOneSet[1]; break;
+               }
+       }
+               
+       if( gbBsIE5 && this.ele.style.position != "absolute" )
+               this.ele.style.position = "relative";
+       this.timer = null;
+       this.aniIndex = CEngine.arrAnimation.length;
+       CEngine.arrAnimation[this.aniIndex] = this;
+}
+
+CAgencyFly.prototype.PrepareEffect = function()
+{
+       CCSSP.ShowObject(this.ele, !this.bIsIn );
+}
+
+CAgencyFly.prototype.UpdateEffect = function()
+{
+       if( this.timer == null )
+               this.ResetParameters();
+
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
+       if( percent >= 1.0 )
+               this.EndEffect();
+       else
+       {
+               var newX = this.startX*(1.0-percent) +  this.finalX*percent;
+               var newY = this.startY*(1.0-percent) +  this.finalY*percent;
+               CCSSP.MoveObjectTo(this.ele, newX, newY);
+               if( this.timer == null )
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
+       }
+}
+
+CAgencyFly.prototype.EndEffect = function()
+{
+       clearInterval( this.timer );
+       this.timer = null;
+
+       if( this.bIsIn ) // FlyIn
+               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
+       else // FlyOut
+               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
+       CCSSP.ShowObject(this.ele, this.bIsIn );
+}
+
+CAgencyFly.prototype.ResetParameters = function()
+{
+       this.PrepareEffect();
+       CCSSP.ShowObject(this.ele, true );
+
+       this.startX = 0;
+       this.startY = 0;
+       this.finalX = 0;
+       this.finalY = 0; 
+       
+       var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;
+       var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;
+       var offsetRight = CCSSP.GetWindowRight();
+       var offsetBottom = CCSSP.GetWindowBottom();
+
+       if( this.bIsIn )
+       { // FlyIn
+               this.finalX = this.ele.ABSX;
+               this.finalY = this.ele.ABSY;
+
+               switch( this.direction )
+               {
+               case "right": this.startX = offsetRight; this.startY = this.finalY; break;
+               case "left": this.startX = -offsetLeft;  this.startY = this.finalY; break;
+               case "down": this.startY = offsetBottom; this.startX = this.finalX; break;
+               case "up":  this.startY = -offsetTop;    this.startX = this.finalX; break;
+               case "downright":
+                       this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
+                       this.startY = this.startX;              break;
+               case "upright":
+                       this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;
+                       this.startY = -this.startX;             break;
+               case "upleft":
+                       this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
+                       this.startY = this.startX;              break;
+               case "downleft":
+                       this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
+                       this.startY = -this.startX;     break;
+               }
+       }
+       else
+       { // FlyOut
+               this.startX = this.ele.ABSX;
+               this.startY = this.ele.ABSY;
+
+               switch( this.direction )
+               {
+               case "right": this.finalX = offsetRight;  this.finalY = this.startY; break;
+               case "left": this.finalX = -offsetLeft;   this.finalY = this.startY;  break;
+               case "down": this.finalY = offsetBottom;  this.finalX = this.startX; break;
+               case "up":  this.finalY = -offsetTop;     this.finalX = this.startX; break;
+               case "downright":
+                       this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
+                       this.finalY = this.finalX;              break;
+               case "upright":
+                       this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;
+                       this.finalY = -this.finalX;             break;
+               case "upleft":
+                       this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
+                       this.finalY = this.finalX;              break;
+               case "downleft":
+                       this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
+                       this.finalY = -this.finalX;     break;
+               }
+       }
+       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
+       this.startTime = (new Date()).getTime();
+}
+// End of the CAgencyFly definition
+
+// Begin of CAgencySpiral
+function CAgencySpiral( element, settings, bIsIn )
+{
+       this.ele = element;
+       this.bIsIn = bIsIn;
+       this.duration = 1000; // default
+
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;
+               }
+       }
+
+       if( gbBsIE5 && this.ele.style.position != "absolute" )
+               this.ele.style.position = "relative";
+       this.timer = null;
+       this.aniIndex = CEngine.arrAnimation.length;
+       CEngine.arrAnimation[this.aniIndex] = this;
+}
+
+CAgencySpiral.prototype.PrepareEffect = function()
+{
+       CCSSP.ShowObject(this.ele, !this.bIsIn );
+}
+
+CAgencySpiral.prototype.UpdateEffect = function()
+{
+       if( this.timer == null )
+               this.ResetParameters();
+
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
+       if( percent >= 1.0 )
+               this.EndEffect();
+       else
+       {
+               var rf = (this.bIsIn)? (1.0 - percent) : percent; 
+               var t = (1.0-rf) * 4.0 * Math.PI
+               var rxP = (this.bIsIn)? this.startX : this.finalX; 
+               var ryP = (this.bIsIn)? this.startY : this.finalY; 
+               var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;
+               var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;
+
+               var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;
+               var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;
+               CCSSP.MoveObjectTo(this.ele, newX, newY);
+               if( this.timer == null )
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
+       }
+}
+
+CAgencySpiral.prototype.EndEffect = function()
+{
+       clearInterval( this.timer );
+       this.timer = null;
+       
+       if( this.bIsIn ) // In
+               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
+       else // Out
+               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
+       CCSSP.ShowObject(this.ele, this.bIsIn );
+}
+
+CAgencySpiral.prototype.ResetParameters = function()
+{
+       this.PrepareEffect();
+       CCSSP.ShowObject(this.ele, true );
+       this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;
+       this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;
+       this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();
+       this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom(); 
+       
+       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
+       this.startTime = (new Date()).getTime();
+}
+// End of CAgencySpiral
+
+// Begin of CAgencyElastic
+function CAgencyElastic( element, settings)
+{
+       this.ele = element;
+       this.duration = 1000; // default
+       this.direction = "right";
+
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;
+               case "direction" : this.direction = arrOneSet[1]; break;
+               }
+       }
+               
+       if( gbBsIE5 && this.ele.style.position != "absolute" )
+               this.ele.style.position = "relative";
+       this.timer = null;
+       this.aniIndex = CEngine.arrAnimation.length;
+       CEngine.arrAnimation[this.aniIndex] = this;
+}
+
+CAgencyElastic.prototype.PrepareEffect = function()
+{
+       CCSSP.ShowObject(this.ele, false );
+}
+
+CAgencyElastic.prototype.UpdateEffect = function()
+{
+       if( this.timer == null )
+               this.ResetParameters();
+
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
+       if( percent >= 1.0 )
+               this.EndEffect();
+       else
+       {
+               var newX = this.startX;
+               var newY = this.startY;
+               var rf = Math.exp(-percent*3);
+               var t = percent * 1.5 * Math.PI
+               var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;
+               switch (this.direction )
+               {
+               case "left":   
+               case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;
+               case "up":         
+               case "down" :  newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;
+               }
+               CCSSP.MoveObjectTo(this.ele, newX, newY);
+               if( this.timer == null )
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
+       }
+}
+
+CAgencyElastic.prototype.EndEffect = function()
+{
+       CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
+       clearInterval( this.timer );
+       this.timer = null;
+}
+
+CAgencyElastic.prototype.ResetParameters = function()
+{
+       CCSSP.ShowObject(this.ele, true );
+       this.startX = this.ele.ABSX;
+       this.finalX = this.ele.ABSX;
+       this.startY = this.ele.ABSY;
+       this.finalY = this.ele.ABSY;
+       
+       switch (this.direction)
+       { 
+       case "left":  this.startX = -this.ele.offsetWidth; break;
+       case "right": this.startX = this.ele.offsetWidth;  break;
+       case "up":    this.startY = -this.ele.offsetHeight;break;
+       case "down":  this.startY = this.ele.offsetHeight; break;
+       }
+       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
+       this.startTime = (new Date()).getTime();
+}
+// End of CAgencyElastic
+
+// Begin of CAgencyZoom
+function CAgencyZoom( element, settings, bIsIn)
+{
+       this.ele = element;
+       this.duration = 1000; // default
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;
+               }
+       }
+
+       this.bIsIn = bIsIn;
+       this.timer = null;
+       this.aniIndex = CEngine.arrAnimation.length;
+       CEngine.arrAnimation[this.aniIndex] = this;
+}
+
+CAgencyZoom.prototype.PrepareEffect = function()
+{
+       CCSSP.ShowObject(this.ele, false);
+}
+
+CAgencyZoom.prototype.UpdateEffect = function()
+{
+       if( this.timer == null )
+               this.ResetParameters();
+
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
+       if( percent >= 1.0 )
+               this.EndEffect();
+       else
+       {
+               var nFactorIn = Math.ceil(50+50*percent);
+               var nFactorOut = Math.ceil(100+200*(1-percent));
+               var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";
+               var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;
+               
+               this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);
+               for(var index = 0; index < this.ele.all.length; index++)
+                       this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);
+                       
+               if( this.timer == null )
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
+       }
+}
+
+CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)
+{
+       if( CCSSP.IsTextTag(child) )
+               child.style.fontSize = FontSize;
+       else
+       {
+               if( typeof(child.orgWidth) == "number" )
+                       child.style.width = Factor * child.orgWidth;
+               if( typeof(child.orgHeight) == "number" )
+                       child.style.height = Factor * child.orgHeight;
+       }
+}
+
+CAgencyZoom.prototype.EndEffect = function()
+{
+       this.EndEffectAllChildren(this.ele);
+       for(var index = 0; index < this.ele.all.length; index++)
+               this.EndEffectAllChildren(this.ele.all[index]);
+       
+       clearInterval( this.timer );
+       this.timer = null;
+}
+
+CAgencyZoom.prototype.EndEffectAllChildren = function( child )
+{      
+       if( CCSSP.IsTextTag(child) )
+               child.style.fontSize = child.orgFontSize;
+       else
+       {
+               if( typeof(child.intactWidth) != "undefined" )
+               {
+                       child.width = child.intactWidth;
+                       child.height = child.intactHeight;
+               }
+               else if( typeof(child.style.intactPixelWidth) != "undefined" )
+               {
+                       child.style.pixelWidth = child.style.intactPixelWidth;
+                       child.style.pixelHeight = child.style.intactPixelHeight;
+               }
+       }
+}
+
+CAgencyZoom.prototype.ResetParameters = function()
+{
+       this.PrepareEffect();
+       this.ResetParametersAllChildren( this.ele );
+       for(var index = 0; index < this.ele.all.length; index++)
+               this.ResetParametersAllChildren(this.ele.all[index]);
+               
+       this.startTime = (new Date()).getTime();
+}
+
+CAgencyZoom.prototype.ResetParametersAllChildren = function( child )
+{
+       CCSSP.ShowObject(child, true );
+       if( (child.tagName == "DIV") && (getParentNode(child).tagName == "TD") )
+               child.width = "100%";// if the div is inside a cell of table, we need the this hack
+       
+       if( CCSSP.IsTextTag(child) )
+               child.orgFontSize = child.style.fontSize;
+       else
+       {
+               if( child.width > "" || child.height > "" )
+               {
+                       child.orgWidth = child.intactWidth = child.width;
+                       child.orgHeight = child.intactHeight = child.height;
+               }
+               else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )
+               {
+                       child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;
+                       child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;
+               }
+       }
+}
+// End of CAgencyZoom
+
+//// the following effects will use IE's exclusive "filter" function ////
+// Begin of CAgencyAlpha definition
+function CAgencyAlpha( element, settings, bIsIn )
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+       this.bIsIn = bIsIn;
+
+       // to set the default value
+       this.startOpacity = (this.bIsIn) ? 0 : 100;
+       this.endOpacity = (this.bIsIn) ? 100 : 0;
+       
+       this.duration = 1000; // default
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "speed" : this.duration = 100000/arrOneSet[1]; break;
+               }
+       }
+       
+       this.timer = null;
+       this.aniIndex = CEngine.arrAnimation.length;
+       CEngine.arrAnimation[this.aniIndex] = this;
+}
+
+CAgencyAlpha.prototype.PrepareEffect = function()
+{// to set the visual filter function
+       // the visual filter ONLY work when set by "Width and Height" or
+       // absolute position for DIV, SPAN and normal tag ( such as p )
+       // but, "absolute" cause the following elements overlap, so:
+       CCSSP.PrepareFilter( this.ele );
+       CCSSP.ShowObject(this.ele, !this.bIsIn );
+}
+
+CAgencyAlpha.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       if( this.timer == null )
+               this.ResetParameters();
+       if( typeof(this.ele.filters.alpha) != "object" )
+       {
+               this.EndEffect();
+               return;
+       }
+
+       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
+       if( percent >= 1.0 )
+               this.EndEffect();
+       else if( typeof(this.ele.filters.alpha) == "object" )
+       {
+               this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;
+               if( this.timer == null )
+                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
+       }
+}
+
+CAgencyAlpha.prototype.EndEffect = function()
+{// to remove the visual filter function
+       clearInterval( this.timer );
+       this.timer = null;
+       this.ele.style.filter = "";
+       CCSSP.ShowObject(this.ele, this.bIsIn );
+}
+
+CAgencyAlpha.prototype.ResetParameters = function()
+{
+       this.PrepareEffect();
+       CCSSP.ShowObject(this.ele, true );
+       this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";
+       this.startTime = (new Date()).getTime();
+}
+// End of the CAgencyAlpha definition
+
+// Begin of CAgencyWave definition
+function CAgencyWave( element, settings )
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+
+       this.duration = 0; // default
+       this.strength = 10;
+       this.freq = 1;
+       this.lightstrength = 1;
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "duration" : this.duration = 100000/arrOneSet[1]; break;
+               case "strength" : this.strength = arrOneSet[1]; break;
+               case "freq" : this.freq = arrOneSet[1]; break;
+               case "lightstrength" : this.lightstrength = arrOneSet[1]; break;
+               }
+       }
+
+       this.timer = null;
+       this.aniIndex = CEngine.arrAnimation.length;
+       CEngine.arrAnimation[this.aniIndex] = this;
+}
+
+CAgencyWave.prototype.PrepareEffect = function()
+{// to set the visual filter function
+       CCSSP.PrepareFilter(this.ele);
+
+       CCSSP.ShowObject(this.ele, true );
+}
+
+CAgencyWave.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       if( this.timer == null )
+               this.ResetParameters();
+       if( typeof(this.ele.filters.wave) != "object" )
+       {
+               this.EndEffect();
+               return;
+       }
+
+       if( this.duration > 0 )
+       {
+               var percent = ((new Date()).getTime() - this.startTime)/this.duration;
+               if( percent >= 1.0 )
+               {
+                       this.EndEffect();
+                       return;
+               }
+       }
+       
+       this.ele.filters.wave.phase += 5;
+       this.ele.filters.wave.phase %= 100;
+       if( this.timer == null )
+               this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );
+}
+
+CAgencyWave.prototype.EndEffect = function()
+{// to remove the visual filter function
+       this.ele.style.filter = "";
+       clearInterval( this.timer );
+       this.timer = null;
+}
+
+CAgencyWave.prototype.ResetParameters = function()
+{
+       this.PrepareEffect();
+       this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" + 
+        this.freq +", lightstrength=" + this.lightstrength +",phase=0);";
+       this.startTime = (new Date()).getTime();
+}
+// End of the CAgencyWave definition
+
+// Begin of CAgencyGlow definition
+function CAgencyGlow( element, settings )
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+
+       // to set the default value
+       this.glowColor = "green";
+       this.glowStrength = "3";
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "color" : this.glowColor = arrOneSet[1]; break;
+               case "strength" : this.glowStrength = arrOneSet[1]; break;
+               }
+       }
+}
+
+CAgencyGlow.prototype.PrepareEffect = function()
+{
+       CCSSP.PrepareFilter(this.ele);
+       CCSSP.ShowObject(this.ele, true );
+       if( this.ele.style.backgroundColor != "" )
+       {//style.backgroundColor somehow stop the visual filter
+               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
+               this.ele.style.backgroundColor = "";
+       }
+}
+
+CAgencyGlow.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       this.PrepareEffect();
+       this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" + 
+               this.glowStrength + ", enabled=true" +")";
+}
+
+CAgencyGlow.prototype.EndEffect = function()
+{// to remove the visual filter function
+       this.ele.style.filter = "";
+       if( typeof(this.ele.intactBackgroundColor) != "undefined" )
+               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
+}
+// End of the CAgencyGlow definition
+
+// Begin of CAgencyDropShadow definition
+function CAgencyDropShadow( element, settings )
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+
+       // to set the default value
+       this.shadowColor = "black"; 
+       this.shadowOffx = "1";
+       this.shadowOffy = "1";
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "color" : this.shadowColor = arrOneSet[1]; break;
+               case "offx" : this.shadowOffx = arrOneSet[1]; break;
+               case "offy" : this.shadowOffy = arrOneSet[1]; break;
+               }
+       }
+}
+
+CAgencyDropShadow.prototype.PrepareEffect = function()
+{
+       CCSSP.PrepareFilter(this.ele);
+       CCSSP.ShowObject(this.ele, true );
+       
+       if( this.ele.style.backgroundColor != "" )
+       {//style.backgroundColor somehow stop the visual filter
+               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
+               this.ele.style.backgroundColor = "";
+       }
+}
+
+CAgencyDropShadow.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       this.PrepareEffect();
+       this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" + 
+               this.shadowOffx + ", offy=" + this.shadowOffy + ")";
+}
+
+CAgencyDropShadow.prototype.EndEffect = function()
+{// to remove the visual filter function
+       this.ele.style.filter = "";
+       if( typeof(this.ele.intactBackgroundColor) != "undefined" )
+               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
+}
+// End of the CAgencyDropShadow definition
+
+// Begin of CAgencyRevealTrans definition
+function CAgencyRevealTrans( element, settings )
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+
+       // to set the default value
+       this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).
+       this.transition = 0;
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "type" : this.transition = arrOneSet[1]; break;
+               case "duration" : this.duration = 100/arrOneSet[1];     break;
+               }
+       }
+}
+
+CAgencyRevealTrans.prototype.PrepareEffect = function()
+{
+       CCSSP.PrepareFilter(this.ele);
+       CCSSP.ShowObject( this.ele, false);
+}
+
+CAgencyRevealTrans.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       if( typeof( this.ele.filters.RevealTrans ) == "object" )
+       {
+               if( this.ele.filters.RevealTrans.status == 2 )
+                       this.ele.filters.RevealTrans.stop();  
+       }
+
+       this.PrepareEffect();
+       
+       this.ele.style.filter = "RevealTrans(duration=" + this.duration + 
+               ", transition=" + this.transition + ")";
+       
+    if( typeof( this.ele.filters.RevealTrans ) == "object" )
+    {
+               this.ele.filters.RevealTrans.apply();
+               CCSSP.ShowObject( this.ele, true);
+               this.ele.filters.RevealTrans.play();  
+       }
+       else
+               CCSSP.ShowObject( this.ele, true);
+}
+
+CAgencyRevealTrans.prototype.EndEffect = function()
+{
+    if( typeof( this.ele.filters.RevealTrans ) == "object" )
+               this.ele.filters.RevealTrans.stop();  
+       this.ele.style.filter = "";
+}
+// End of the CAgencyRevealTrans definition
+
+// Begin of CAgencyBlur definition
+function CAgencyBlur( element, settings )
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+
+       // to set the default value
+       this.strength = "5";
+       this.direction = "90";
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "strength" : this.strength = arrOneSet[1]; break;
+               case "direction" : this.direction = arrOneSet[1]; break;
+               }
+       }
+}
+
+CAgencyBlur.prototype.PrepareEffect = function()
+{
+       CCSSP.PrepareFilter(this.ele);
+       CCSSP.ShowObject(this.ele, true );
+}
+
+CAgencyBlur.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       CCSSP.PrepareFilter(this.ele);
+       this.ele.style.filter = "blur(strength=" + this.strength + 
+               ", direction=" + this.direction + ")";
+}
+
+CAgencyBlur.prototype.EndEffect = function()
+{// to remove the visual filter function
+       this.ele.style.filter = "";
+}
+// End of the CAgencyBlur definition
+
+// Begin of CAgencyChangeFilter definition
+function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,
+{// because of "visual filter" style, this won't work in Navigator
+       this.ele = element;
+
+       // to set the default value
+       this.filterFunction = settings;
+}
+
+CAgencyChangeFilter.prototype.PrepareEffect = function()
+{
+       CCSSP.PrepareFilter(this.ele);
+       CCSSP.ShowObject(this.ele, true );
+}
+
+CAgencyChangeFilter.prototype.UpdateEffect = function()
+{// to set the visual filter function
+       CCSSP.PrepareFilter(this.ele);
+       this.ele.style.filter = this.filterFunction;
+}
+
+CAgencyChangeFilter.prototype.EndEffect = function()
+{// to remove the visual filter function
+       this.ele.style.filter = "";
+}
+// End of the CAgencyChangeFilter definition
+
+// The effects below change the style on the fly, so they won't work in Navigator
+
+// Begin of CAgencyFontChange definition, 
+function CAgencyFontChange( element, settings )
+{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
+       this.ele = element;
+       
+       // to retrieve the original font style
+       this.RetrieveOldFont( this.ele );
+       
+       // to set the default font to change
+       this.newfontFamily = this.ele.oldFontFamily;
+       this.newfColor = this.ele.oldColor;
+       this.newtextDecoration = this.ele.oldTextDecoration;
+       this.newfontWeight = this.ele.oldFontWeight;
+       this.newfontStyle = this.ele.oldFontStyle;
+       this.newfontSize = this.ele.oldFontSize;
+       this.newBackgroundColor = this.ele.oldBackgroundColor;
+       
+       var arrAllSet = settings.split(",");
+       for( var i = 0; i < arrAllSet.length; i ++ )
+       {// to retrieve the setting
+               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
+               var arrOneSet = arrAllSet[i].split("=");
+               for( var j = 0; j < arrOneSet.length; j++ )
+                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
+               switch( arrOneSet[0] )
+               {
+               case "font-family" : this.newfontFamily = arrOneSet[1]; break;
+               case "color" : this.newfColor = arrOneSet[1]; break;
+               case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;
+               case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;
+               case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;
+               case "size" : this.newfontSize = arrOneSet[1]; break;
+               case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;
+               }
+       }
+}
+
+CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)
+{
+       if( typeof(objChild.oldFontFamily) == "undefined" )
+               objChild.oldFontFamily = objChild.style.fontFamily;
+       if( typeof(objChild.oldColor) == "undefined" )
+               objChild.oldColor = objChild.style.color;
+       if( typeof(objChild.oldTextDecoration) == "undefined" )
+               objChild.oldTextDecoration = objChild.style.textDecoration;
+       if( typeof(objChild.oldFontWeight) == "undefined" )
+               objChild.oldFontWeight = objChild.style.fontWeight;
+       if( typeof(objChild.oldFontStyle) == "undefined" )
+               objChild.oldFontStyle = objChild.style.fontStyle;
+       if( typeof(objChild.oldFontSize) == "undefined" )
+               objChild.oldFontSize = objChild.style.fontSize;
+       if( typeof(objChild.oldBackgroundColor) == "undefined" )
+               objChild.oldBackgroundColor = objChild.style.backgroundColor;
+}
+
+CAgencyFontChange.prototype.PrepareEffect = function()
+{
+       // as for expanding text, the child is created after the constructor called
+       for(var index = 0; index < this.ele.all.length; index++)
+               this.RetrieveOldFont(this.ele.all[index]);
+       CCSSP.ShowObject(this.ele, true );
+}
+
+CAgencyFontChange.prototype.UpdateEffect = function()
+{// to change the font
+       this.PrepareEffect();
+       this.UpdateEffectAllChildren( this.ele );
+       for( var index = 0; index < this.ele.all.length; index++)
+               this.UpdateEffectAllChildren(this.ele.all[index]);
+}
+
+CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)
+{
+       objChild.style.fontFamily = this.newfontFamily;
+       objChild.style.color = this.newfColor;
+       objChild.style.textDecoration = this.newtextDecoration;
+       objChild.style.fontWeight = this.newfontWeight;
+       objChild.style.fontStyle = this.newfontStyle;
+       objChild.style.fontSize = this.newfontSize;
+       objChild.style.backgroundColor = this.newBackgroundColor;
+}
+
+CAgencyFontChange.prototype.EndEffect = function()
+{// to reinstate the original font style
+       this.EndEffectAllChildren( this.ele );
+       for( var index = 0; index < this.ele.all.length; index++)
+               this.EndEffectAllChildren(this.ele.all[index]);
+}
+
+CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )
+{
+       if( typeof(objChild.oldFontFamily) != "undefined" )
+               objChild.style.fontFamily = objChild.oldFontFamily;
+       if( typeof(objChild.oldColor) != "undefined" )
+               objChild.style.color = objChild.oldColor;
+       if( typeof(objChild.oldFontWeight) != "undefined" )
+               objChild.style.fontWeight = objChild.oldFontWeight;
+       if( typeof(objChild.oldFontStyle) != "undefined" )
+               objChild.style.fontStyle = objChild.oldFontStyle;
+       if( typeof(objChild.oldFontSize) != "undefined" )
+               objChild.style.fontSize = objChild.oldFontSize;
+       if( typeof(objChild.oldTextDecoration) != "undefined" )
+               objChild.style.textDecoration = objChild.oldTextDecoration;
+       if( typeof(objChild.oldBackgroundColor) != "undefined" )
+               objChild.style.backgroundColor = objChild.oldBackgroundColor;
+}
+// End of the CAgencyFontChange definition
+
+// Begin of the CAgencyChangeStyle definition
+function CAgencyChangeStyle( element, settings )
+{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
+       this.ele = element;
+       
+       // to retrieve the original style
+       this.oldstyle = this.ele.style.cssText;
+       
+       // to set the default style
+       this.newStyle = this.oldstyle;
+       
+       if( typeof(settings) == "string" && settings.length > 1 )
+               this.newStyle = this.oldstyle + " " + settings;
+}
+
+CAgencyChangeStyle.prototype.PrepareEffect = function()
+{
+       CCSSP.ShowObject(this.ele, true );
+}
+
+CAgencyChangeStyle.prototype.UpdateEffect = function()
+{// to change the style
+       this.ele.style.cssText = this.newStyle;
+}
+
+CAgencyChangeStyle.prototype.EndEffect = function()
+{// to reinstate the original style
+       this.ele.style.cssText = this.oldStyle;
+}
+// End of the CAgencyChangeStyle definition
+
+//End the definition of CAgencyXXXX classes
+
+//Begin to collaborate with other event handler settings 
+CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");
+CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");
+CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );
+CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );
+CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");
+//End to collaborate with other event handler settings
+
+/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)
+
 //// Segment End -- (JavaScript 1.2)
\ No newline at end of file
index 26d84d9c85303559f653430adeb476de40f9962d..3245a95a763c75bdd29397972cc9bd67a735ef2c 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Extrusion</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:27px; height:24px; border-style:none; }\r
-img_whs3 { border:none; width:411px; height:309px; float:none; border-style:none; }\r
-ul.whs4 { list-style:disc; }\r
-table.whs5 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs6 { width:50%; }\r
-tr.whs7 { x-cell-content-align:top; }\r
-td.whs8 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs9 { border:none; width:350px; height:201px; border-style:none; }\r
-td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
--->\r
-</style><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\nExtrusion");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Extrusion</h1>\r
-\r
-<p>Extrusion is a type of surface meshing by generation from discretized \r
- lines. It is used to build mesh elements of plus one dimension than the \r
- swept ones. Each swept 1D element produces one or more quadrangles (or \r
- triangles if one node of a rotated element lays on the revolution axis).</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To use extrusion:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item \r
- or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- will appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="pics/extrusionalongaline1.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"> &nbsp;<img src="pics/extrusionalongaline2.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. In this dialog box you should select </p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs1">the type of elements \r
- which will be extruded (1D or 2D),</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the IDs of \r
- the elements which will be extruded by selecting them in the 3D viewer \r
- or select the whole mesh or submesh,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the vector \r
- along which the elements will be extruded,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">number of steps</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
-<col class="whs6">\r
-<col class="whs6">\r
-\r
-<tr valign="top" class="whs7">\r
-<td width="50%" class="whs8">\r
-<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>\r
-<td width="50%" class="whs10">\r
-<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>\r
-</table>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p>&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark9">Extrusion</a> \r
- operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Extrusion</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:27px; height:24px; border-style:none; }
+img_whs3 { border:none; width:411px; height:309px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+table.whs5 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs6 { width:50%; }
+tr.whs7 { x-cell-content-align:top; }
+td.whs8 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs9 { border:none; width:350px; height:201px; border-style:none; }
+td.whs10 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nExtrusion");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Extrusion</h1>
+
+<p>Extrusion is a type of surface meshing by generation from discretized 
+ lines. It is used to build mesh elements of plus one dimension than the 
+ swept ones. Each swept 1D element produces one or more quadrangles (or 
+ triangles if one node of a rotated element lays on the revolution axis).</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To use extrusion:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion </B></span>item 
+ or click <img src="image91.gif" width="27px" height="24px" border="0" class="img_whs2"> button in the toolbar. The following dialog box 
+ will appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="pics/extrusionalongaline1.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"> &nbsp;<img src="pics/extrusionalongaline2.png" x-maintain-ratio="TRUE" width="411px" height="309px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. In this dialog box you should select </p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs1">the type of elements 
+ which will be extruded (1D or 2D),</p></li>
+       
+       <li class=kadov-p><p class="whs1">specify the IDs of 
+ the elements which will be extruded by selecting them in the 3D viewer 
+ or select the whole mesh or submesh,</p></li>
+       
+       <li class=kadov-p><p class="whs1">specify the vector 
+ along which the elements will be extruded,</p></li>
+       
+       <li class=kadov-p><p class="whs1">number of steps</p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
+
+<p class=TODO
+       style="margin-left: 40px;">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">
+<col class="whs6">
+<col class="whs6">
+
+<tr valign="top" class="whs7">
+<td width="50%" class="whs8">
+<p><img src="image77.jpg" width="350px" height="201px" border="0" class="img_whs9"></td>
+<td width="50%" class="whs10">
+<p><img src="image76.jpg" width="350px" height="201px" border="0" class="img_whs9"></td></tr>
+</table>
+
+<p class=TODO>&nbsp;</p>
+
+<p>&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark9">Extrusion</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 1ae2b7b8bd5eb79c2319accfd884e37a23c17ae9..84ecb3ced949cbca70b5afd252b0dedd1ed58552 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Extrusion along a path</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-table.whs1 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs2 { width:50%; }\r
-tr.whs3 { x-cell-content-align:top; }\r
-td.whs4 { 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_whs5 { border:none; width:335px; height:323px; border-style:none; }\r
-td.whs6 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-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
-ul.whs11 { list-style:disc; }\r
-p.whs12 { margin-left:84px; }\r
-img_whs13 { border:none; width:26px; height:25px; border-style:none; }\r
-img_whs14 { border:none; width:29px; height:28px; 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\nExtrusion along a path");\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>Extrusion along a path</h1>\r
-\r
-<p>In principle, Extrusion along a path works in the same way as Extrusion, \r
- the main difference is that we define not a vector, but a path of extrusion \r
- which must be a meshed edge or wire. To get an idea of how this algorithm \r
- works, let's see the left image, where we have a 1D circle edge and &nbsp;a \r
- 2D hexagon to be extruded along this path (in the picture they are angular \r
- because we show the wireframe of the mesh). And now let's see the right \r
- image, showing the result of the operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs1">\r
-<col class="whs2">\r
-<col class="whs2">\r
-\r
-<tr valign="top" class="whs3">\r
-<td width="50%" class="whs4">\r
-<p><img src="image102.gif" width="335px" height="323px" border="0" class="img_whs5"></td>\r
-<td width="50%" class="whs6">\r
-<p><img src="image104.gif" width="350px" height="323px" border="0" class="img_whs7"></td></tr>\r
-</table>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To use Extrusion along a path:</p>\r
-\r
-<p class="whs8">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion along \r
- a path </B></span>item or click <img src="image101.gif" width="27px" height="24px" border="0" class="img_whs9"> button in the toolbar. The \r
- following dialog box will appear:</p>\r
-\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
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8">2. In the dialog box you should &nbsp;</p>\r
-\r
-<ul type="disc" class="whs11">\r
-       \r
-       <li class=kadov-p><p class="whs12">select the type of \r
- elements which will be extruded (1D or 2D),</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs12">specify the IDs of \r
- the elements which will be extruded by selecting them in the 3D viewer \r
- or <span style="font-weight: bold;"><B>Select the whole mesh, submesh or \r
- grou</B></span>p,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs12">specify the path along \r
- which the elements will be extruded, for this you should specify the <span \r
- style="font-weight: bold;"><B>Mesh</B></span>, the <span style="font-weight: bold;"><B>Shape</B></span>, \r
- and the <span style="font-weight: bold;"><B>Start point</B></span> for the extrusion. \r
- </p></li>\r
-</ul>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8">3. There are two optional parameters, which \r
- can be very useful.</p>\r
-\r
-<ul type="disc" class="whs11">\r
-       \r
-       <li class=kadov-p><p class="whs12">If the path of extrusion \r
- is curvilinear, at each iteration the extruded shape is rotated to keep \r
- its initial angularity to the curve. By default, the <span style="font-weight: bold;"><B>Base \r
- point</B></span> around which the shape is rotated is the mass center of the \r
- shape, however, you can specify any point as the <span style="font-weight: bold;"><B>Base \r
- Point</B></span> and the shape will be rotated with respect to this point.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs12">The shape can also \r
- be rotated around the path to get the resulting mesh in a helical fashion. \r
- At the picture above we see both &quot;oblique-angled&quot; and &quot;right-angled&quot; \r
- mesh elements because <span style="font-weight: bold;"><B>Rotation Angles</B></span> \r
- have not been set for all iterations. You set the values of the angles \r
- at the right and add them to the list of angles at the left by pressing \r
- the <img src="image105.gif" width="26px" height="25px" border="0" class="img_whs13"> button and remove the values from the list by pressing \r
- the <img src="image106.gif" width="29px" height="28px" border="0" class="img_whs14"> button. </p></li>\r
-</ul>\r
-\r
-<p class="whs8">4. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p>&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark10">Extrusion \r
- along a Path</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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Extrusion along a path</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+table.whs1 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs2 { width:50%; }
+tr.whs3 { x-cell-content-align:top; }
+td.whs4 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs5 { border:none; width:335px; height:323px; border-style:none; }
+td.whs6 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs7 { border:none; width:350px; height:323px; border-style:none; }
+p.whs8 { margin-left:40px; }
+img_whs9 { border:none; width:27px; height:24px; border-style:none; }
+img_whs10 { border:none; width:434px; height:541px; float:none; border-style:none; }
+ul.whs11 { list-style:disc; }
+p.whs12 { margin-left:84px; }
+img_whs13 { border:none; width:26px; height:25px; border-style:none; }
+img_whs14 { border:none; width:29px; height:28px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nExtrusion along a path");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Extrusion along a path</h1>
+
+<p>In principle, Extrusion along a path works in the same way as Extrusion, 
+ the main difference is that we define not a vector, but a path of extrusion 
+ which must be a meshed edge or wire. To get an idea of how this algorithm 
+ works, let's see the left image, where we have a 1D circle edge and &nbsp;a 
+ 2D hexagon to be extruded along this path (in the picture they are angular 
+ because we show the wireframe of the mesh). And now let's see the right 
+ image, showing the result of the operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs1">
+<col class="whs2">
+<col class="whs2">
+
+<tr valign="top" class="whs3">
+<td width="50%" class="whs4">
+<p><img src="image102.gif" width="335px" height="323px" border="0" class="img_whs5"></td>
+<td width="50%" class="whs6">
+<p><img src="image104.gif" width="350px" height="323px" border="0" class="img_whs7"></td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To use Extrusion along a path:</p>
+
+<p class="whs8">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Extrusion along 
+ a path </B></span>item or click <img src="image101.gif" width="27px" height="24px" border="0" class="img_whs9"> button in the toolbar. The 
+ following dialog box will appear:</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class=TODO
+       style="margin-left: 80px;"><img src="pics/a-extusionalongapath2.png" x-maintain-ratio="TRUE" width="434px" height="541px" border="0" class="img_whs10"></p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8">2. In the dialog box you should &nbsp;</p>
+
+<ul type="disc" class="whs11">
+       
+       <li class=kadov-p><p class="whs12">select the type of 
+ elements which will be extruded (1D or 2D),</p></li>
+       
+       <li class=kadov-p><p class="whs12">specify the IDs of 
+ the elements which will be extruded by selecting them in the 3D viewer 
+ or <span style="font-weight: bold;"><B>Select the whole mesh, submesh or 
+ grou</B></span>p,</p></li>
+       
+       <li class=kadov-p><p class="whs12">specify the path along 
+ which the elements will be extruded, for this you should specify the <span 
+ style="font-weight: bold;"><B>Mesh</B></span>, the <span style="font-weight: bold;"><B>Shape</B></span>, 
+ and the <span style="font-weight: bold;"><B>Start point</B></span> for the extrusion. 
+ </p></li>
+</ul>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8">3. There are two optional parameters, which 
+ can be very useful.</p>
+
+<ul type="disc" class="whs11">
+       
+       <li class=kadov-p><p class="whs12">If the path of extrusion 
+ is curvilinear, at each iteration the extruded shape is rotated to keep 
+ its initial angularity to the curve. By default, the <span style="font-weight: bold;"><B>Base 
+ point</B></span> around which the shape is rotated is the mass center of the 
+ shape, however, you can specify any point as the <span style="font-weight: bold;"><B>Base 
+ Point</B></span> and the shape will be rotated with respect to this point.</p></li>
+       
+       <li class=kadov-p><p class="whs12">The shape can also 
+ be rotated around the path to get the resulting mesh in a helical fashion. 
+ At the picture above we see both &quot;oblique-angled&quot; and &quot;right-angled&quot; 
+ mesh elements because <span style="font-weight: bold;"><B>Rotation Angles</B></span> 
+ have not been set for all iterations. You set the values of the angles 
+ at the right and add them to the list of angles at the left by pressing 
+ the <img src="image105.gif" width="26px" height="25px" border="0" class="img_whs13"> button and remove the values from the list by pressing 
+ the <img src="image106.gif" width="29px" height="28px" border="0" class="img_whs14"> button. </p></li>
+</ul>
+
+<p class="whs8">4. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p>&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of an <a href="modifying_meshes.htm#bookmark10">Extrusion 
+ along a Path</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 1ed1981452bd572bb55caca424a203e3ca7633e5..449308c20582d7ca7ddfc0f80b89d44ee369d321 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>About hypotheses</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-p.whs3 { background-color:Transparent; color:#000000; }\r
-ol.whs4 { list-style:disc; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs3 {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
-     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 page-style="x-size: Letter;"><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nAbout Hypotheses");\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>About hypotheses</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Hypotheses</B></span> represent \r
- boundary conditions which will be taken into account at calculations of \r
- meshes or submeshes basing on geometrical objects. These hypotheses allow \r
- you to manage the level of detail of the resulting meshes or submeshes: \r
- when applying different hypotheses with different parameters you can preset \r
- the quantity of meshing elements which will compose your mesh. So, it \r
- will be possible to generate a rough or a more refined mesh or submesh. \r
- </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>In <span style="font-weight: bold;"><B>MESH </B></span>there are the following \r
- Basic Hypotheses (to introduce them, you operate numerical values):</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-               type=circle\r
-               class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm">1D Hypotheses</a> (for meshing of <span style="font-weight: bold;"><B>edges)</B></span>:</p></li>\r
-       \r
-       <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
-               \r
-               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Average \r
- Length</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
-               \r
-               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-                       class=kadov-p><p class="whs3">Number \r
- of segments</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
-       </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
-</ul>\r
-\r
-<ul type="disc" class="whs2">\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
-       </ul>\r
-</ul>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "\r
-               type=circle\r
-               class=kadov-p><p class="whs3">3D \r
- Hypothesis (for meshing of <span style="font-weight: bold;"><B>volumes)</B></span>: \r
- </p></li>\r
-       \r
-       <ul type="disc" class="whs2">\r
-               \r
-               <li class=kadov-p><p><a href="max._element_volume_hypothsis.htm">Max \r
- Element Volume</a></p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<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
-       \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
-       </ul>\r
-</ol>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The choice of a hypothesis depends on:</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>the geometrical object (shape) which will be meshed</p></li>\r
-       \r
-       <li class=kadov-p><p>the algorithm, which will be selected for meshing \r
- of this geometrical object (shape)</p></li>\r
-</ul>\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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>About hypotheses</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs2 { list-style:disc; }
+p.whs3 { background-color:Transparent; color:#000000; }
+ol.whs4 { list-style:disc; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs3 {background-color:white; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nAbout Hypotheses");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body page-style="x-size: Letter;"><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>About hypotheses</h1>
+
+<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>Hypotheses</B></span> represent 
+ boundary conditions which will be taken into account at calculations of 
+ meshes or submeshes basing on geometrical objects. These hypotheses allow 
+ you to manage the level of detail of the resulting meshes or submeshes: 
+ when applying different hypotheses with different parameters you can preset 
+ the quantity of meshing elements which will compose your mesh. So, it 
+ will be possible to generate a rough or a more refined mesh or submesh. 
+ </p>
+
+<p>&nbsp;</p>
+
+<p>In <span style="font-weight: bold;"><B>MESH </B></span>there are the following 
+ Basic Hypotheses (to introduce them, you operate numerical values):</p>
+
+<ul type="disc" class="whs2">
+       
+       <li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               type=circle
+               class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm">1D Hypotheses</a> (for meshing of <span style="font-weight: bold;"><B>edges)</B></span>:</p></li>
+       
+       <ul type="disc" class="whs2">
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#Average_length">Average Length</a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>
+       </ul>
+       
+       <li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               type=circle
+               class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm">2D Hypotheses</a> (for meshing 
+ of <span style="font-weight: bold;"><B>faces)</B></span>: </p></li>
+</ul>
+
+<ol type="disc" class="whs4">
+       
+       <ul type="disc" class="whs2">
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#max_element_area">Max Element Area</a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#length_from_edges">Length from 
+ Edges</a></p></li>
+               
+               <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+                       class=kadov-p><p class="whs3"><a href="max._element_area_hypothesis.htm#quadrangle preference">Quadrangle 
+ Preference</a></p></li>
+       </ul>
+</ol>
+
+<ul type="disc" class="whs2">
+       
+       <li style="list-style: circle; /*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               type=circle
+               class=kadov-p><p class="whs3">3D 
+ Hypothesis (for meshing of <span style="font-weight: bold;"><B>volumes)</B></span>: 
+ </p></li>
+       
+       <ul type="disc" class="whs2">
+               
+               <li class=kadov-p><p><a href="max._element_volume_hypothsis.htm">Max 
+ Element Volume</a></p></li>
+       </ul>
+</ul>
+
+<p>&nbsp;</p>
+
+<p>There also exist some <a href="non_conform_mesh_allowed_hypothesis.htm">Additional 
+ Hypotheses</a></p>
+
+<ul type="disc" class="whs2">
+       
+       <ul type="disc" class="whs2">
+               
+               <li class=kadov-p><p>Propagation of 1D Hypothesis on opposite edges</p></li>
+               
+               <li class=kadov-p><p>Non conform mesh allowed</p></li>
+               
+               <li class=kadov-p><p>Quadratic mesh</p></li>
+       </ul>
+</ul>
+
+<p>&nbsp;</p>
+
+<p>The choice of a hypothesis depends on:</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p>the geometrical object (shape) which will be meshed</p></li>
+       
+       <li class=kadov-p><p>the algorithm, which will be selected for meshing 
+ of this geometrical object (shape)</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d4ba6d8359a92f16f37708fd1cab60ea0021160f..353b6a7a89fbcc44babb826f3826ac8a286cc6b8 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>About meshes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-p.whs3 { text-indent:8px; }\r
-p.whs4 { text-indent:48px; }\r
-h4.whs5 { text-indent:1px; }\r
-p.whs6 { text-indent:1px; }\r
-img_whs7 { border:none; width:36px; height:38px; float:none; border-style:none; }\r
-p.whs8 { font-weight:bold; text-indent:1px; }\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\nCreating meshes\nAbout meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>About meshes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>MESH</B></span> represents \r
- a discretization of a geometrical CAD model into a set of entities with \r
- a simple topology. In MESH there are two options of creation of meshes, \r
- you can:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>generate meshes on the basis of geometrical shapes \r
- produced in the GEOM module, </p></li>\r
-       \r
-       <li class=kadov-p><p>create your own meshes using the MESH functions \r
- destined for modification of generated meshes. </p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The topology of a mesh is described by the relationships between its \r
- entities including:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Node</B></span> \r
\96 0D element of a mesh presented by a point with coordinates (x, y, z).</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Edge</B></span> \r
\96 1D element of a mesh defined by two nodes.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Face</B></span> \r
\96 2D element of a mesh defined by three or four edges (closed contour).</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Volume</B></span> \r
\96 3D element of a mesh defined by several faces.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs4">These entities are considered as topological \r
- entities and they don't imply any geometric representation. Only <span \r
- style="font-weight: bold;"><B>Nodes</B></span> reference &nbsp;geometric \r
- representations of points with definite coordinates. <span style="text-indent: 8px;">The \r
- node entity will contain &nbsp;additional \r
- information about its position in the space and its relations with the \r
- meshed CAD model. Its position could be described in the following way:</span></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>2D \r
- position</B></span>. It is a free position defined by only two coordinates \r
- x,y.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>3D \r
- position</B></span>. It is a free position defined by three coordinates x,y \r
- and z.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Surface \r
- position</B></span>. It characterizes the position of a node on a geometric \r
- surface and is defined by the u,v position in the parametric space of \r
- the corresponding surface.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Line \r
- position</B></span>. It characterizes the position of a node on a geometric \r
- curve and is defined by the u parameter and the corresponding curve.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Vertex \r
- position</B></span>. It characterizes the position of a node on a geometric \r
- point of the meshed CAD model and is defined by the x,y,z coordinates \r
- of the corresponding vertex.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4 class="whs5">Connections</h4>\r
-\r
-<p class="whs6">Each mesh entity bounds 0 or more mesh entities \r
- of higher dimension. In the same way each mesh entity is bounded by 0 \r
- or more mesh entities of lower dimension:</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs6">A node bounds edges, \r
- faces and volumes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">An edge bounds faces, \r
- and volumes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">A face bounds volumes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">A volume is bounded \r
- by faces, edges and nodes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">A face is bounded by \r
- edges, and nodes</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6">An edge is bounded by \r
- nodes</p></li>\r
-</ul>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">You can notice that there are two types of \r
- connections: <span style="font-weight: bold;"><B>inverse</B></span> and <span \r
- style="font-weight: bold;"><B>direct</B></span> connections.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<h4 class="whs5">Inverse connections</h4>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">This relationship has a particularity that \r
- the order of bounded entities has not a direct meaning. Also the number \r
- of bounded entities is not fixed.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../pics/exemple.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> The edges surrounding a node. \r
- The 3rd edge has no more sense that the 5th one.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs8">Direct connections</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">This relationship has a particularity that \r
- the order of bounding entities is meaningful. The number of bounding entities \r
- is fixed and depends on the type of the entity (hexahedron, tetrahedron,\85).</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6"><img src="../pics/exemple.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> An edge is composed of two \r
- nodes. A face is composed of 3 or 4 edges depending if we are dealing \r
- with triangles or quadrangles.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">The connections are not only restricted to \r
- entities of one dimension higher or lower. For example some algorithms \r
- may be interested to retrieve all the faces surrounding a node.</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>About meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs2 { list-style:disc; }
+p.whs3 { text-indent:8px; }
+p.whs4 { text-indent:48px; }
+h4.whs5 { text-indent:1px; }
+p.whs6 { text-indent:1px; }
+img_whs7 { border:none; width:36px; height:38px; float:none; border-style:none; }
+p.whs8 { font-weight:bold; text-indent:1px; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nAbout meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>About meshes</h1>
+
+<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>MESH</B></span> represents 
+ a discretization of a geometrical CAD model into a set of entities with 
+ a simple topology. In MESH there are two options of creation of meshes, 
+ you can:</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p>generate meshes on the basis of geometrical shapes 
+ produced in the GEOM module, </p></li>
+       
+       <li class=kadov-p><p>create your own meshes using the MESH functions 
+ destined for modification of generated meshes. </p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p>The topology of a mesh is described by the relationships between its 
+ entities including:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Node</B></span> 
\96 0D element of a mesh presented by a point with coordinates (x, y, z).</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Edge</B></span> 
\96 1D element of a mesh defined by two nodes.</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Face</B></span> 
\96 2D element of a mesh defined by three or four edges (closed contour).</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Volume</B></span> 
\96 3D element of a mesh defined by several faces.</p></li>
+</ul>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs4">These entities are considered as topological 
+ entities and they don't imply any geometric representation. Only <span 
+ style="font-weight: bold;"><B>Nodes</B></span> reference &nbsp;geometric 
+ representations of points with definite coordinates. <span style="text-indent: 8px;">The 
+ node entity will contain &nbsp;additional 
+ information about its position in the space and its relations with the 
+ meshed CAD model. Its position could be described in the following way:</span></p>
+
+<p class="whs4">&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>2D 
+ position</B></span>. It is a free position defined by only two coordinates 
+ x,y.</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>3D 
+ position</B></span>. It is a free position defined by three coordinates x,y 
+ and z.</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Surface 
+ position</B></span>. It characterizes the position of a node on a geometric 
+ surface and is defined by the u,v position in the parametric space of 
+ the corresponding surface.</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Line 
+ position</B></span>. It characterizes the position of a node on a geometric 
+ curve and is defined by the u parameter and the corresponding curve.</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Vertex 
+ position</B></span>. It characterizes the position of a node on a geometric 
+ point of the meshed CAD model and is defined by the x,y,z coordinates 
+ of the corresponding vertex.</p></li>
+</ul>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4 class="whs5">Connections</h4>
+
+<p class="whs6">Each mesh entity bounds 0 or more mesh entities 
+ of higher dimension. In the same way each mesh entity is bounded by 0 
+ or more mesh entities of lower dimension:</p>
+
+<p class="whs6">&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs6">A node bounds edges, 
+ faces and volumes</p></li>
+       
+       <li class=kadov-p><p class="whs6">An edge bounds faces, 
+ and volumes</p></li>
+       
+       <li class=kadov-p><p class="whs6">A face bounds volumes</p></li>
+       
+       <li class=kadov-p><p class="whs6">A volume is bounded 
+ by faces, edges and nodes</p></li>
+       
+       <li class=kadov-p><p class="whs6">A face is bounded by 
+ edges, and nodes</p></li>
+       
+       <li class=kadov-p><p class="whs6">An edge is bounded by 
+ nodes</p></li>
+</ul>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">You can notice that there are two types of 
+ connections: <span style="font-weight: bold;"><B>inverse</B></span> and <span 
+ style="font-weight: bold;"><B>direct</B></span> connections.</p>
+
+<p class="whs6">&nbsp;</p>
+
+<h4 class="whs5">Inverse connections</h4>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">This relationship has a particularity that 
+ the order of bounded entities has not a direct meaning. Also the number 
+ of bounded entities is not fixed.</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6"><img src="../pics/exemple.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> The edges surrounding a node. 
+ The 3rd edge has no more sense that the 5th one.</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs8">Direct connections</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">This relationship has a particularity that 
+ the order of bounding entities is meaningful. The number of bounding entities 
+ is fixed and depends on the type of the entity (hexahedron, tetrahedron,\85).</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6"><img src="../pics/exemple.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> An edge is composed of two 
+ nodes. A face is composed of 3 or 4 edges depending if we are dealing 
+ with triangles or quadrangles.</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">The connections are not only restricted to 
+ entities of one dimension higher or lower. For example some algorithms 
+ may be interested to retrieve all the faces surrounding a node.</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index ecc8de1c22ad9e67598a87ce94fad44535bfc702..acfdedf3db107366ee5a03453b3a4d9950de1ab7 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>About meshing algorithms</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-ul.whs3 { list-style:circle; }\r
-table.whs4 { x-cell-content-align:top; width:45.771%; border-spacing:0px; }\r
-col.whs5 { width:42.826%; }\r
-col.whs6 { width:57.174%; }\r
-tr.whs7 { x-cell-content-align:top; }\r
-td.whs8 { width:42.826%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-p.whs9 { margin-right:2px; }\r
-img_whs10 { border:none; width:170px; height:170px; border-style:none; }\r
-td.whs11 { width:57.174%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-p.whs12 { margin-right:240px; }\r
-img_whs13 { border:none; width:182px; height:177px; border-style:none; }\r
-table.whs14 { x-cell-content-align:top; width:30.595%; border-spacing:0px; }\r
-col.whs15 { width:50.334%; }\r
-col.whs16 { width:49.666%; }\r
-td.whs17 { width:50.334%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs18 { border:none; width:119px; height:299px; border-style:none; }\r
-td.whs19 { width:49.666%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs20 { border:none; width:127px; height:298px; border-style:none; }\r
-p.whs21 { margin-left:40px; }\r
-p.whs22 { 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.whs22 {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\nCreating meshes\nDefining meshing algorithms");\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>Defining meshing algorithms</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The MESH module contains a set of meshing algorithms, \r
- which are used for meshing entities (1D, 2D, 3D) composing geometrical \r
- objects. They are as follows:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For meshing of 1D entities (<span style="font-weight: bold;"><B>edges</B></span>):</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="disc" class="whs2">\r
-               \r
-               <li style="list-style: circle;"\r
-                       type=circle\r
-                       class=kadov-p><p>Wire Discretization meshing algorithm</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For meshing of 2D entities (<span style="font-weight: bold;"><B>faces</B></span>):</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Triangle meshing algorithm - Faces are split \r
- into triangular elements.</p></li>\r
-               \r
-               <li class=kadov-p><p>Quadrangle meshing algorithm - Faces are split \r
- into quadrangular elements.</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="45.771%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs6">\r
-\r
-<tr valign="top" class="whs7">\r
-<td width="42.826%" class="whs8">\r
-<p class="whs9"><img src="../image123.gif" width="170px" height="170px" border="0" class="img_whs10"></td>\r
-<td width="57.174%" class="whs11">\r
-<p class="whs12"><img src="../image124.gif" width="182px" height="177px" border="0" class="img_whs13"></td></tr>\r
-</table>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>For meshing of 3D entities (<span style="font-weight: bold;"><B>volume \r
- objects</B></span>):</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Hexahedron meshing algorithm - Volumes are \r
- split into hexahedral (cubic) elements. </p></li>\r
-               \r
-               <li class=kadov-p><p>Tetrahedron (Netgen) meshing algorithm - Volumes \r
- are split into tetrahedral (pyramidal) elements. </p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="30.595%" class="whs14">\r
-<col class="whs15">\r
-<col class="whs16">\r
-\r
-<tr valign="top" class="whs7">\r
-<td width="50.334%" class="whs17">\r
-<p><img src="../image125.gif" width="119px" height="299px" border="0" class="img_whs18"> </td>\r
-<td width="49.666%" class="whs19">\r
-<p><img src="../image126.gif" width="127px" height="298px" border="0" class="img_whs20"></td></tr>\r
-</table>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h4>To apply a meshing algorithm:</h4>\r
-\r
-<p class="whs21">Select this algorithm in the <span style="font-weight: bold;"><B><a href="constructing_meshes.htm">Create Mesh</a> </B></span>dialog box.</p>\r
-\r
-<p class="whs21">&nbsp;</p>\r
-\r
-<p class="whs22"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark8">Define \r
- Meshing Algorithm</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>About meshing algorithms</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs2 { list-style:disc; }
+ul.whs3 { list-style:circle; }
+table.whs4 { x-cell-content-align:top; width:45.771%; border-spacing:0px; }
+col.whs5 { width:42.826%; }
+col.whs6 { width:57.174%; }
+tr.whs7 { x-cell-content-align:top; }
+td.whs8 { width:42.826%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+p.whs9 { margin-right:2px; }
+img_whs10 { border:none; width:170px; height:170px; border-style:none; }
+td.whs11 { width:57.174%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+p.whs12 { margin-right:240px; }
+img_whs13 { border:none; width:182px; height:177px; border-style:none; }
+table.whs14 { x-cell-content-align:top; width:30.595%; border-spacing:0px; }
+col.whs15 { width:50.334%; }
+col.whs16 { width:49.666%; }
+td.whs17 { width:50.334%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs18 { border:none; width:119px; height:299px; border-style:none; }
+td.whs19 { width:49.666%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs20 { border:none; width:127px; height:298px; border-style:none; }
+p.whs21 { margin-left:40px; }
+p.whs22 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs22 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nDefining meshing algorithms");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Defining meshing algorithms</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The MESH module contains a set of meshing algorithms, 
+ which are used for meshing entities (1D, 2D, 3D) composing geometrical 
+ objects. They are as follows:</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p>For meshing of 1D entities (<span style="font-weight: bold;"><B>edges</B></span>):</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <ul type="disc" class="whs2">
+               
+               <li style="list-style: circle;"
+                       type=circle
+                       class=kadov-p><p>Wire Discretization meshing algorithm</p></li>
+       </ul>
+</ul>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p>For meshing of 2D entities (<span style="font-weight: bold;"><B>faces</B></span>):</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <ul type="circle" class="whs3">
+               
+               <li class=kadov-p><p>Triangle meshing algorithm - Faces are split 
+ into triangular elements.</p></li>
+               
+               <li class=kadov-p><p>Quadrangle meshing algorithm - Faces are split 
+ into quadrangular elements.</p></li>
+       </ul>
+</ul>
+
+<p>&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="45.771%" class="whs4">
+<col class="whs5">
+<col class="whs6">
+
+<tr valign="top" class="whs7">
+<td width="42.826%" class="whs8">
+<p class="whs9"><img src="../image123.gif" width="170px" height="170px" border="0" class="img_whs10"></td>
+<td width="57.174%" class="whs11">
+<p class="whs12"><img src="../image124.gif" width="182px" height="177px" border="0" class="img_whs13"></td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p>For meshing of 3D entities (<span style="font-weight: bold;"><B>volume 
+ objects</B></span>):</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <ul type="circle" class="whs3">
+               
+               <li class=kadov-p><p>Hexahedron meshing algorithm - Volumes are 
+ split into hexahedral (cubic) elements. </p></li>
+               
+               <li class=kadov-p><p>Tetrahedron (Netgen) meshing algorithm - Volumes 
+ are split into tetrahedral (pyramidal) elements. </p></li>
+       </ul>
+</ul>
+
+<p>&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="30.595%" class="whs14">
+<col class="whs15">
+<col class="whs16">
+
+<tr valign="top" class="whs7">
+<td width="50.334%" class="whs17">
+<p><img src="../image125.gif" width="119px" height="299px" border="0" class="img_whs18"> </td>
+<td width="49.666%" class="whs19">
+<p><img src="../image126.gif" width="127px" height="298px" border="0" class="img_whs20"></td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<h4>To apply a meshing algorithm:</h4>
+
+<p class="whs21">Select this algorithm in the <span style="font-weight: bold;"><B><a href="constructing_meshes.htm">Create Mesh</a> </B></span>dialog box.</p>
+
+<p class="whs21">&nbsp;</p>
+
+<p class="whs22"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark8">Define 
+ Meshing Algorithm</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index f52da280fc12234ba8a374f27d77331e6d2406dc..e8bd41667772e3ddc0ae6f15ec1afb01e7cb52a2 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>About quality controls</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { text-align:justify; }\r
-img_whs2 { border:none; float:none; width:30px; height:30px; border-style:none; }\r
-ul.whs3 { list-style:disc; }\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\nQuality controls\nAbout quality controls");\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>About quality controls</h1>\r
-\r
-<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Mesh \r
- quality control</B></span> in MESH is destined for visual control of the generated \r
- mesh.</p>\r
-\r
-<p class="whs1">Application of a definite quality control \r
- consists of usage of the corresponding algorithm, which calculates a value \r
- of a definite geometric characteristic (Area, Length of edges, etc) for \r
- all meshing elements, composing your mesh. Then all meshing elements are \r
- colored according the calculated values. The reference between the coloring \r
- of the meshing elements and these calculated values is shown with the \r
- help of a scalar bar, which is displayed near the presentation of your \r
- mesh. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">There are 1D, 2D and 3D quality controls. \r
- </p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">1D mesh quality controls:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="../free_borders.htm">Free \r
- borders</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="../borders_at_multi-connection.htm">Borders \r
- at multi-connection</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="../length.htm">Length</a></p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2D mesh quality controls:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="../free_edges.htm">Free \r
- edges</a></p></li>\r
-</ul>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="length_of_edges.htm">Length \r
- 2D</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="../borders_at_multiconnection_2d.htm">Borders \r
- at multi-connection 2D</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="area_of_elements.htm">Area</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="taper.htm">Taper</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="aspect_ratio.htm">Aspect \r
- ratio</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="minimum_angle.htm">Minimum \r
- angle</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="warp.htm">Warping</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="skew.htm">Skew</a></p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3D mesh quality controls:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><a href="../aspect_ratio_3d.htm">Aspect \r
- ratio 3D</a></p></li>\r
-</ul>\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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>About quality controls</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { text-align:justify; }
+img_whs2 { border:none; float:none; width:30px; height:30px; border-style:none; }
+ul.whs3 { list-style:disc; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nAbout quality controls");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>About quality controls</h1>
+
+<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Mesh 
+ quality control</B></span> in MESH is destined for visual control of the generated 
+ mesh.</p>
+
+<p class="whs1">Application of a definite quality control 
+ consists of usage of the corresponding algorithm, which calculates a value 
+ of a definite geometric characteristic (Area, Length of edges, etc) for 
+ all meshing elements, composing your mesh. Then all meshing elements are 
+ colored according the calculated values. The reference between the coloring 
+ of the meshing elements and these calculated values is shown with the 
+ help of a scalar bar, which is displayed near the presentation of your 
+ mesh. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">There are 1D, 2D and 3D quality controls. 
+ </p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">1D mesh quality controls:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p class="whs1"><a href="../free_borders.htm">Free 
+ borders</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="../borders_at_multi-connection.htm">Borders 
+ at multi-connection</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="../length.htm">Length</a></p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2D mesh quality controls:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p class="whs1"><a href="../free_edges.htm">Free 
+ edges</a></p></li>
+</ul>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p class="whs1"><a href="length_of_edges.htm">Length 
+ 2D</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="../borders_at_multiconnection_2d.htm">Borders 
+ at multi-connection 2D</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="area_of_elements.htm">Area</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="taper.htm">Taper</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="aspect_ratio.htm">Aspect 
+ ratio</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="minimum_angle.htm">Minimum 
+ angle</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="warp.htm">Warping</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="skew.htm">Skew</a></p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3D mesh quality controls:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p class="whs1"><a href="../aspect_ratio_3d.htm">Aspect 
+ ratio 3D</a></p></li>
+       
+       <li class=kadov-p><p class="whs1"><a href="../volume.htm">Volume</a></p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 420454e40f6fd445974500294212d87664d71c1a..014d6120dd63f2915f443bb40b693a37d88c65a4 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Adding 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-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_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_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_whs9 { border:none; width:332px; height:257px; float:none; border-style:none; }\r
-img_whs10 { border:none; width:275px; height:254px; float: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_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
--->\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 nodes and elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</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
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs1">\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="#Adding_nodes">Nodes</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="#Adding_edges">Edges</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="#Adding_triangles">Triangles</a></p></li>\r
-       \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_tetrahedrons">Tetrahedrons</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="#Adding_hexahedrons">Hexahedrons</a></p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To add a node or an element to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item, \r
- the following associated submenu will appear:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image73.gif" width="157px" height="132px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">From this submenu select the type of element \r
- which you would like to add to your mesh. </p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> sample TUI Scripts of &nbsp;<a href="../modifying_meshes.htm#bookmark">Adding \r
- Nodes and Elements</a><a href="../modifying_meshes.htm#bookmark8"> </a>operations. \r
- &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\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
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box set coordinates for your \r
- node in the <span style="font-weight: bold;"><B>Coordinates </B></span>set of \r
- fields and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your node will be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4><a name=Adding_edges>Adding edges</a></h4>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../pics/addedge.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs7"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_edge.png" x-maintain-ratio="TRUE" width="260px" height="255px" border="0" class="img_whs8"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your edge by selecting them in the 3D viewer with pressed Shift \r
- button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your edge will be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4><a name=Adding_triangles>Adding triangles</a></h4>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../pics/addtriangle.png" x-maintain-ratio="TRUE" width="332px" height="257px" border="0" class="img_whs9"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_triangle.png" x-maintain-ratio="TRUE" width="275px" height="254px" border="0" class="img_whs10"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your triangle by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your triangle will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4><a name=Adding_quadrangles>Adding quadrangles</a></h4>\r
-\r
-<h4 class="whs11"><img src="../pics/addquadrangle.png" x-maintain-ratio="TRUE" width="332px" height="257px" border="0" class="img_whs9"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_quadrangle.png" x-maintain-ratio="TRUE" width="280px" height="258px" border="0" class="img_whs12"></h4>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your quadrangle by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your quadrangle will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4><a name=Adding_quadrangles1>Adding polygons </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
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your polygon by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. </p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4><a name=Adding_tetrahedrons>Adding tetrahedrons</a></h4>\r
-\r
-<p class="whs3"><img src="../pics/addtetrahedron.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your tetrahedron by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your tetrahedron will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image70.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
-\r
-<h4><a name=Adding_hexahedrons>Adding hexahedrons</a></h4>\r
-\r
-<p class="whs3"><img src="../pics/addhexahedron.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">In this dialog box specify the nodes which \r
- will form your hexahedron by selecting them in the 3D viewer with pressed \r
- Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or \r
- <span style="font-weight: bold;"><B>OK </B></span>button. Your hexahedron will \r
- be created:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image71.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h4><a name=Adding_hexahedrons1>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
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">There are two different ways to add polyhedral \r
- volumes. </p>\r
-\r
-<p class="whs3">If you select <span style="font-weight: bold;"><B>Node</B></span> \r
- as <span style="font-weight: bold;"><B>Elements Type</B></span> you will specify \r
- the nodes which will form the faces of your polyhedron by selecting the \r
- nodes in the 3D viewer with pressed Shift button and clicking the <span \r
- style="font-weight: bold;"><B>Add</B></span> button to add the face in the list \r
- of Faces by Nodes, which will form your polyhedron. Note, that it could \r
- be very useful to toggle Polyhedron Preview checkbox to see the results \r
- of your selection. </p>\r
-\r
-<p class="whs3">The second way is somewhat simpler, however, \r
- there are cases when it does not provide you with the necessary level \r
- of precision. If you select <span style="font-weight: bold;"><B>Face</B></span> \r
- as <span style="font-weight: bold;"><B>Elements Type</B></span>, you will be \r
- able to select the faces &nbsp;which \r
- will form your polyhedron in the 3D viewer with pressed Shift button. \r
- If you've managed to </p>\r
-\r
-<p class="whs3">obtain the necessary result, click the <span \r
- style="font-weight: bold;"><B>Apply </B></span>or <span style="font-weight: bold;"><B>OK \r
- </B></span><span style="margin-left: 40px;">button. Your hexahedron will be \r
- created.</span></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Adding nodes and elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+ul.whs1 { list-style:disc; }
+p.whs2 { font-weight:bold; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:155px; height:189px; border-style:none; }
+img_whs5 { border:none; width:332px; height:222px; float:none; border-style:none; }
+img_whs6 { border:none; width:257px; height:247px; float:none; border-style:none; }
+img_whs7 { border:none; width:332px; height:231px; float:none; border-style:none; }
+img_whs8 { border:none; width:260px; height:255px; float:none; border-style:none; }
+img_whs9 { border:none; width:332px; height:257px; float:none; border-style:none; }
+img_whs10 { border:none; width:275px; height:254px; float:none; border-style:none; }
+h4.whs11 { margin-left:40px; }
+img_whs12 { border:none; float:none; width:280px; height:258px; border-style:none; }
+img_whs13 { border:none; width:251px; height:258px; float:none; border-style:none; }
+img_whs14 { border:none; width:350px; height:184px; border-style:none; }
+img_whs15 { border:none; width:332px; height:430px; float:none; border-style:none; }
+img_whs16 { border:none; width:369px; height:360px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nAdding nodes and elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Adding nodes and elements</h1>
+
+<p>In MESH you can add to your mesh different elements such as:</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs1">
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_nodes">Nodes</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_edges">Edges</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_triangles">Triangles</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_quadrangles">Quadrangles</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_polygons">Polygons</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_tetrahedrons">Tetrahedrons</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_hexahedrons">Hexahedrons</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="#Adding_polyhedrons">Polyhedrons</a></p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To add a node or an element to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs3">1. Select your mesh in the Object Browser 
+ or in the 3D viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Add </B></span>item, 
+ the following associated submenu will appear:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../image146.gif" width="155px" height="189px" border="0" class="img_whs4"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">From this submenu select the type of element 
+ which you would like to add to your mesh. </p>
+
+<p class="whs3">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> sample TUI Scripts of &nbsp;<a href="../modifying_meshes.htm#bookmark">Adding 
+ Nodes and Elements</a><a href="../modifying_meshes.htm#bookmark8"> </a>operations. 
+ &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h4><a name=Adding_nodes>Adding nodes</a></h4>
+
+<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>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">&nbsp;<img src="../pics/add_node.png" x-maintain-ratio="TRUE" width="257px" height="247px" border="0" class="img_whs6"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box set coordinates for your 
+ node in the <span style="font-weight: bold;"><B>Coordinates </B></span>set of 
+ fields and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your node will be created:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4><a name=Adding_edges>Adding edges</a></h4>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="../pics/addedge.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs7"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_edge.png" x-maintain-ratio="TRUE" width="260px" height="255px" border="0" class="img_whs8"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box specify the nodes which 
+ will form your edge by selecting them in the 3D viewer with pressed Shift 
+ button and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your edge will be created:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4><a name=Adding_triangles>Adding triangles</a></h4>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../pics/addtriangle.png" x-maintain-ratio="TRUE" width="332px" height="257px" border="0" class="img_whs9"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_triangle.png" x-maintain-ratio="TRUE" width="275px" height="254px" border="0" class="img_whs10"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box specify the nodes which 
+ will form your triangle by selecting them in the 3D viewer with pressed 
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your triangle will 
+ be created:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4><a name=Adding_quadrangles>Adding quadrangles</a></h4>
+
+<h4 class="whs11"><img src="../pics/addquadrangle.png" x-maintain-ratio="TRUE" width="332px" height="257px" border="0" class="img_whs9"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/add_quadrangle.png" x-maintain-ratio="TRUE" width="280px" height="258px" border="0" class="img_whs12"></h4>
+
+<p class="whs3">In this dialog box specify the nodes which 
+ will form your quadrangle by selecting them in the 3D viewer with pressed 
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your quadrangle will 
+ be created:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4><a name=Adding_polygons>Adding polygons</a><a name=Adding_quadrangles1> 
+ </a></h4>
+
+<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>
+
+<p class="whs3">In this dialog box specify the nodes which 
+ will form your polygon by selecting them in the 3D viewer with pressed 
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. </p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4><a name=Adding_tetrahedrons>Adding tetrahedrons</a></h4>
+
+<p class="whs3"><img src="../pics/addtetrahedron.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs7"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box specify the nodes which 
+ will form your tetrahedron by selecting them in the 3D viewer with pressed 
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your tetrahedron will 
+ be created:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../image70.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>
+
+<h4><a name=Adding_hexahedrons>Adding hexahedrons</a></h4>
+
+<p class="whs3"><img src="../pics/addhexahedron.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs7"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box specify the nodes which 
+ will form your hexahedron by selecting them in the 3D viewer with pressed 
+ Shift button and click the <span style="font-weight: bold;"><B>Apply </B></span>or 
+ <span style="font-weight: bold;"><B>OK </B></span>button. Your hexahedron will 
+ be created:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../image71.jpg" width="350px" height="184px" border="0" class="img_whs14"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<h4><a name=Adding_polyhedrons>Adding polyhedrons</a></h4>
+
+<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>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">There are two different ways to add polyhedral 
+ volumes. </p>
+
+<p class="whs3">If you select <span style="font-weight: bold;"><B>Node</B></span> 
+ as <span style="font-weight: bold;"><B>Elements Type</B></span> you will specify 
+ the nodes which will form the faces of your polyhedron by selecting the 
+ nodes in the 3D viewer with pressed Shift button and clicking the <span 
+ style="font-weight: bold;"><B>Add</B></span> button to add the face in the list 
+ of Faces by Nodes, which will form your polyhedron. Note, that it could 
+ be very useful to toggle Polyhedron Preview checkbox to see the results 
+ of your selection. </p>
+
+<p class="whs3">The second way is somewhat simpler, however, 
+ there are cases when it does not provide you with the necessary level 
+ of precision. If you select <span style="font-weight: bold;"><B>Face</B></span> 
+ as <span style="font-weight: bold;"><B>Elements Type</B></span>, you will be 
+ able to select the faces &nbsp;which 
+ will form your polyhedron in the 3D viewer with pressed Shift button. 
+ If you've managed to </p>
+
+<p class="whs3">obtain the necessary result, click the <span 
+ style="font-weight: bold;"><B>Apply </B></span>or <span style="font-weight: bold;"><B>OK 
+ </B></span><span style="margin-left: 40px;">button. Your hexahedron will be 
+ created.</span></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d92aa5ef322019902a3ad5632a81d0f454dab9ee..5947a248c97c23df08c971558af0a1091fcbe3fd 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Area of 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:22px; height:23px; border-style:none; }\r
-img_whs4 { border:none; width:451px; height:308px; border-style:none; }\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.whs5 {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\nArea");\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>Area</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>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
- with 3 and 4 nodes (triangles and quadrangles). &nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Area quality control to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Area </B></span>or click <img src="../image35.gif" width="22px" height="23px" border="0" class="img_whs3"> button. Your mesh will be displayed \r
- in the viewer with its elements colored according to the applied mesh \r
- quality control criterion:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image5.jpg" width="451px" height="308px" border="0" class="img_whs4"></p>\r
-\r
-<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
- quality control</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Area of elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:22px; height:23px; border-style:none; }
+img_whs4 { border:none; width:451px; height:308px; border-style:none; }
+p.whs5 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs5 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nArea");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Area</h1>
+
+<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 
+ control is based on the algorithm of area calculation of &nbsp;meshing 
+ elements. It can be applied to meshes consisting of 2D meshing elements 
+ with 3 and 4 nodes (triangles and quadrangles). &nbsp;&nbsp;&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To apply the Area quality control to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Display your mesh in the viewer.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Area </B></span>or click <img src="../image35.gif" width="22px" height="23px" border="0" class="img_whs3"> button. Your mesh will be displayed 
+ in the viewer with its elements colored according to the applied mesh 
+ quality control criterion:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../image5.jpg" width="451px" height="308px" border="0" class="img_whs4"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of an <a href="../quality_controls.htm#bookmark6">Area 
+ quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index ead4f03b7c2ee062a089a1d72e04f24762628b21..e6cac0059dbc5f23f15052f63eea32fa45a33163 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Arithmetic 1D</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nCreating meshes\nDefining hypotheses\n1D Meshing Hypotheses");\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>1D Meshing Hypotheses</h1>\r
-\r
-<h3>Arithmetic 1D hypothesis</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
- progression (Lk = Lk-1 + d) beginning from a given starting length and \r
- up to a given end length.</p>\r
-\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
-\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="../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
-\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
- It uses only one parameter: the value of deflection. &nbsp;</p>\r
-\r
-<p>A geometrical edge is divided into equal segments. The maximum distance \r
- between a point on the edge within a segment and the line connecting the \r
- ends of the segment should not exceed the specified value of deflection \r
- . Then mesh nodes are constructed at end segment locations and 1D mesh \r
- elements are constructed on segments.</p>\r
-\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
-\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="../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
-\r
-<h3>Average Length hypothesis</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
- of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> \r
- of segments, which will split these edges. The points on the edges generated \r
- by these segments will represent nodes of your mesh. Later these nodes \r
- will be used for meshing of the faces abutting to these edges.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><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
-\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="../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
-\r
-<h3>Number of segments hypothesis </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
- Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>number</B></span> \r
- of segments, which will split these edges. In other words your edges will \r
- be split into a definite number of segments with approximately the same \r
- length. The points on the edges generated by these segments will represent \r
- nodes of your mesh. Later these nodes will be used for meshing of the \r
- faces abutting to these edges.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3">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
-\r
-<p class="whs3"><span style="font-weight: bold;"><B>Equidistant \r
- Distribution</B></span> - all segments will have the same length</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
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs6">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
-\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
-\r
-<p class="whs6">&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
-\r
-<p class="whs6">&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
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">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
-\r
-<h3><img src="../pics/a-nbsegments4.png" x-maintain-ratio="TRUE" width="333px" height="285px" border="0" class="img_whs14"></h3>\r
-\r
-<p class="whs3"><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
-\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
- the last segments have a specified length. The length of each but the \r
- first segment differs from length of the previous one by a constant factor. \r
- Then mesh nodes are constructed at segment ends location and 1D mesh elements \r
- are constructed on them.</p>\r
-\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
-\r
-<p class="whs3">&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="../defining_hypotheses_tui.htm#bookmark3">Defining \r
- Start and End Length &nbsp;hypothesis</a> \r
- operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Arithmetic 1D</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+ul.whs1 { list-style:disc; }
+p.whs2 { background-color:Transparent; color:#000000; font-weight:bold; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:332px; height:238px; float:none; border-style:none; }
+img_whs5 { border:none; width:309px; height:316px; float:none; border-style:none; }
+p.whs6 { margin-left:0px; }
+img_whs7 { border:none; width:332px; height:212px; float:none; border-style:none; }
+img_whs8 { border:none; width:267px; height:339px; float:none; border-style:none; }
+p.whs9 { font-weight:bold; }
+img_whs10 { border:none; width:367px; height:224px; border-style:none; float:right; }
+img_whs11 { border:none; width:252px; height:243px; float:none; border-style:none; }
+p.whs12 { font-weight:bold; margin-left:40px; }
+img_whs13 { border:none; width:431px; height:233px; border-style:none; float:right; }
+img_whs14 { border:none; width:395px; height:387px; float:none; border-style:none; }
+img_whs15 { border:none; width:332px; height:264px; float:none; border-style:none; }
+img_whs16 { border:none; width:368px; height:760px; float:none; border-style:none; }
+h3.whs17 { margin-left:40px; }
+img_whs18 { border:none; width:365px; height:605px; float:none; border-style:none; }
+img_whs19 { border:none; width:287px; height:305px; float:none; border-style:none; }
+img_whs20 { border:none; width:205px; height:175px; float:none; border-style:none; }
+img_whs21 { border:none; width:195px; height:192px; border-style:none; }
+img_whs22 { border:none; width:206px; height:195px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs2 {background-color:white; }";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\n1D Meshing Hypotheses");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>1D Meshing Hypotheses</h1>
+
+<ul type="disc" class="whs1">
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#arithmetic_1D"><span 
+ style="font-weight: bold;"><B>Arithmetic 1D</B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#Average_length"><span 
+ style="font-weight: bold;"><B>Average Length</B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#deflection_1D"><span 
+ style="font-weight: bold;"><B>Deflection 1D </B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#Number_of_elements"><span 
+ style="font-weight: bold;"><B>Number of segments</B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#start_and_end_length"><span 
+ style="font-weight: bold;"><B>Start and end length</B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="arithmetic_1d.htm#automatic_length"><span 
+ style="font-weight: bold;"><B>Automatic Length</B></span></a></p></li>
+</ul>
+
+<h3><a name=arithmetic_1D>Arithmetic 1D hypothesis</a></h3>
+
+<p><span style="font-weight: bold;"><B>Arithmetic 1D</B></span> hypothesis allows 
+ to split edges into segments with a length that changes in arithmetic 
+ progression (Lk = Lk-1 + d) beginning from a given starting length and 
+ up to a given end length.</p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p>&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark">Defining 
+ Arithmetic 1D hypothesis</a> operation. &nbsp;</p>
+
+<h3><a name=deflection_1D>Deflection 1D hypothesis</a></h3>
+
+<p><span style="font-weight: bold;"><B>Deflection ID </B></span>hypothesis can 
+ be applied for meshing curvilinear edges composing your geometrical object. 
+ It uses only one parameter: the value of deflection. &nbsp;</p>
+
+<p>A geometrical edge is divided into equal segments. The maximum distance 
+ between a point on the edge within a segment and the line connecting the 
+ ends of the segment should not exceed the specified value of deflection 
+ . Then mesh nodes are constructed at end segment locations and 1D mesh 
+ elements are constructed on segments.</p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p>&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark9">Defining 
+ Deflection 1D hypothesis</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs9"><img src="../image41.gif" x-maintain-ratio="TRUE" width="367px" height="224px" align="right" border="0" class="img_whs10"></p>
+
+<h3><a name=Average_length>Average Length hypothesis</a></h3>
+
+<p><span style="font-weight: bold;"><B>Average Length </B></span>hypothesis can 
+ be applied for meshing of edges composing your geometrical object. Definition 
+ of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> 
+ of segments, which will split these edges. The points on the edges generated 
+ by these segments will represent nodes of your mesh. Later these nodes 
+ will be used for meshing of the faces abutting to these edges.</p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p>&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark3">Defining 
+ Average Length hypothesis</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs12"><img src="../image46.gif" x-maintain-ratio="TRUE" width="431px" height="233px" align="right" border="0" class="img_whs13"></p>
+
+<h3><a name=Number_of_elements>Number of segments hypothesis</a> </h3>
+
+<p><span style="font-weight: bold;"><B>Number of segments </B></span>hypothesis 
+ can be applied for meshing of edges composing your geometrical object. 
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>number</B></span> 
+ of segments, which will split these edges. In other words your edges will 
+ be split into a definite number of segments with approximately the same 
+ length. The points on the edges generated by these segments will represent 
+ nodes of your mesh. Later these nodes will be used for meshing of the 
+ faces abutting to these edges.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs6">You can set the type of distribution for this 
+ hypothesis in the <span style="font-weight: bold;"><B>Hypothesis Construction</B></span> 
+ dialog bog : </p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>Equidistant 
+ Distribution</B></span> - all segments will have the same length, you define 
+ only the <span style="font-weight: bold;"><B>Number of Segments</B></span>.</p>
+
+<p class="whs6">&nbsp;</p>
+
+<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>
+
+<p>&nbsp;</p>
+
+<p class="whs9">Scale Distribution - <span style="font-weight: normal;">each 
+ next segment differs from the previous according to the formula:</span> 
+ A<span style="vertical-align: Sub;">i+1</span> = A<span style="vertical-align: Sub;">i 
+ </span>* k, <span style="font-weight: normal;">where</span> k <span style="font-weight: normal;">is 
+ a</span> Scale Factor. </p>
+
+<p class="whs12"><img src="../pics/a-nbsegments2.png" x-maintain-ratio="TRUE" width="332px" height="264px" border="0" class="img_whs15">\</p>
+
+<p class="whs9">&nbsp;</p>
+
+<p class="whs9">Distribution with Table Density - <span style="font-weight: normal;">you 
+ input a number of pairs</span> t - F(t),<span style="font-weight: normal;"> 
+ where </span>t<span style="font-weight: normal;"> ranges from 0 to 1,</span> 
+ &nbsp;<span style="font-weight: normal;">and 
+ the module computes the formula, which will rule the change of length 
+ of segments and shows the curve in the plot. You can select the </span>Conversion 
+ mode<span style="font-weight: normal;"> from </span>Exponent<span style="font-weight: normal;"> 
+ and </span>Cut negative<span style="font-weight: normal;">. </span></p>
+
+<p class="whs9">&nbsp;</p>
+
+<p class="whs12"><img src="../pics/distributionwithtabledensity.png" x-maintain-ratio="TRUE" width="368px" height="760px" border="0" class="img_whs16"></p>
+
+<p class="whs9">&nbsp;</p>
+
+<p class="whs9">Distribution with Analytic Density - <span 
+ style="font-weight: normal;">you input the formula, which will rule the 
+ change of length of segments and the module shows the curve in the plot.</span></p>
+
+<h3 class="whs17"><img src="../pics/distributionwithanalyticdensity.png" x-maintain-ratio="TRUE" width="365px" height="605px" border="0" class="img_whs18"></h3>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark9">Defining 
+ Number of Segments hypothesis</a> operation. &nbsp;</p>
+
+<h3>&nbsp;</h3>
+
+<h3><a name=start_and_end_length>Start and End Length hypothesis.</a></h3>
+
+<p><span style="font-weight: bold;"><B>Start and End Length</B></span> hypothesis 
+ allows to divide a geometrical edge into segments so that the first and 
+ the last segments have a specified length. The length of each but the 
+ first segment differs from length of the previous one by a constant factor. 
+ Then mesh nodes are constructed at segment ends location and 1D mesh elements 
+ are constructed on them.</p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark3">Defining 
+ Start and End Length &nbsp;hypothesis</a> 
+ operation. &nbsp;</p>
+
+<p class="whs6">&nbsp;</p>
+
+<h3><a name=automatic_length>Automatic Length</a></h3>
+
+<p>This hypothesis is automatically applied when you select <span style="font-weight: bold;"><B>Assign 
+ a set of hypotheses</B></span> option in Create Mesh menu. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="../pics/automaticlength.png" x-maintain-ratio="TRUE" width="205px" height="175px" border="0" class="img_whs20"> </p>
+
+<p>&nbsp;</p>
+
+<p>The dialog box prompts you to define the quality of the future mesh 
+ by only one parameter, which is <span style="font-weight: bold;"><B>Fineness</B></span>, 
+ ranging from 0 (coarse mesh, low number of elements) to 1 (extremely fine 
+ mesh, great number of elements). Compare one and the same object (sphere) 
+ meshed with minimum and maximum value of this parameter. </p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 37b4dea756e3098d5d6c32b535a694b64087a376..d10a24b0103837d76dbd2f100b7266fa87bcc1cb 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Aspect Ratio</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nAspect ratio");\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>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
-\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
-\r
-<p><img src="../image21.gif" width="158px" height="110px" border="0" class="img_whs3"></p>\r
-\r
-<p><img src="../image23.gif" width="120px" height="48px" border="0" class="img_whs4"></p>\r
-\r
-<p>where :</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="../image27.gif" width="234px" height="96px" border="0" class="img_whs5"></p>\r
-\r
-<p>&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
-\r
-<p><img src="../image138.gif" width="566px" border="0" class="img_whs6"></p>\r
-\r
-</ul>\r
-\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
-\r
-<p class="whs7">&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
- 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
-\r
-<p class="whs7"><img src="../image94.jpg" width="439px" height="313px" border="0" class="img_whs9"></p>\r
-\r
-<p class="whs7">&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#bookmark8">Aspect \r
- Ratio quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Aspect Ratio</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:120px; height:56px; border-style:none; }
+ul.whs4 { list-style:disc; }
+img_whs5 { border:none; width:158px; height:110px; float:none; border-style:none; }
+img_whs6 { border:none; width:120px; height:48px; float:none; border-style:none; }
+img_whs7 { border:none; width:234px; height:96px; float:none; border-style:none; }
+p.whs8 { margin-left:0px; }
+p.whs9 { margin-left:36px; }
+img_whs10 { border:none; width:622px; height:412px; float:none; border-style:none; }
+p.whs11 { margin-left:80px; }
+img_whs12 { border:none; width:25px; height:24px; border-style:none; }
+img_whs13 { border:none; width:439px; height:313px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs8 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nAspect ratio");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Aspect Ratio</h1>
+
+<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> 
+ quality criterion for mesh elements reveals the degree of conformity of 
+ a mesh element to the regular element of its type (with all edges having 
+ the same length). &nbsp;The 
+ criterion can be defined as </p>
+
+<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> 
+ is the considered element of the mesh, <span style="font-weight: bold; font-style: italic;"><I><B>h</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>max</B></I></span> is the diameter of the element 
+ &#1050; (i.e. the length of the longest edge), <span style="font-weight: bold; font-style: italic;"><I><B>&#1088;</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>&#1082;</B></I></span> is the radius of the sphere 
+ inscribed in the element K, and <span style="font-weight: bold; font-style: italic;"><I><B>a</B></I></span> 
+ is a normalisation value chosen so that <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>K</B></I></span> = 1 when &#1050; is an equilateral 
+ simplex. </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p>The value of <span style="font-weight: bold; font-style: italic;"><I><B>Q</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>K</B></I></span> varies between 1 and +oo and the 
+ closer it is to 1, the better the element &#1050; is. </p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p>The <span style="font-weight: bold;"><B>Aspect Ratio</B></span> 
+ of a <span style="font-weight: bold;"><B>triangle</B></span> 2D element consisting 
+ of 3 nodes is calculated by the formula:</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="../pics/image21.gif" x-maintain-ratio="TRUE" width="158px" height="110px" border="0" class="img_whs5"></p>
+
+<p class="whs2"><img src="../pics/image23.gif" x-maintain-ratio="TRUE" width="120px" height="48px" border="0" class="img_whs6"> ,</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">where <span style="font-weight: bold; font-style: italic;"><I><B>&#1088;</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>&#1082;</B></I></span> is the half perimeter of the 
+ element K and <span style="font-weight: bold; font-style: italic;"><I><B>S</B></I></span><span 
+ style="vertical-align: Sub;
+               font-weight: bold;
+               font-style: italic;"><I><B>K</B></I></span> is its surface.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/image27.gif" x-maintain-ratio="TRUE" width="234px" height="96px" border="0" class="img_whs7"></p>
+
+<p class="whs8">&nbsp;</p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs8">The <span style="font-weight: bold;"><B>Aspect 
+ Ratio</B></span> of a <span style="font-weight: bold;"><B>quadrangle</B></span> 2D 
+ element consisting of 4 nodes is the worst (i.e. the greatest) value from 
+ all triangles which can be built taking three nodes of the quadrangle. 
+ There are four triangles to consider: </p></li>
+</ul>
+
+<p class="whs9"><img src="../pics/image138.gif" x-maintain-ratio="TRUE" width="622px" height="412px" border="0" class="img_whs10"></p>
+
+<p class="whs9">Note, that the Aspect Ratio criterion is 
+ applicable to 2D mesh elements only. For 3D elements we use the <a href="../aspect_ratio_3d.htm">Aspect 
+ Ratio 3D</a> criterion. &nbsp;&nbsp;</p>
+
+<p class="whs11">&nbsp;</p>
+
+<p class=TODO>To apply the Aspect Ratio quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Display your mesh in the viewer.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs12"> button in the toolbar. 
+ Your mesh will be displayed in the viewer with its elements colored according 
+ to the applied mesh quality control criterion:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../image94.jpg" width="439px" height="313px" border="0" class="img_whs13"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs8"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of an <a href="../quality_controls.htm#bookmark8">Aspect 
+ Ratio quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index fa7317e1dcceb0ded8a451b793d5a10afddd65e9..c282fe13b4481aa844fdce81a0eefada35d72ff2 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Changing orientation of 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:21px; height:21px; border-style:none; }\r
-img_whs3 { border:none; width:306px; height:425px; border-style:none; float:none; }\r
-ul.whs4 { list-style:disc; }\r
-p.whs5 { margin-left:40px; font-weight:normal; }\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\nChanging orientation of 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>Changing orientation of elements</h1>\r
-\r
-<p>Orientation of an element is changed by reverting the order of nodes \r
- of the selected elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To change orientation of elements:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Orientation </B></span>item \r
- or click <img src="../image79.gif" width="21px" height="21px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/orientaation1.png" x-maintain-ratio="TRUE" width="306px" height="425px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>The main list </B></span><span>shall contain the \r
- elements which will be reoriented.</span> You can click on an element \r
- in the 3D viewer and it will be highlighted. After that click the <span \r
- style="font-weight: bold;"><B>Add </B></span>button and the ID of this element \r
- will be added to the list. To remove a selected element or elements from \r
- the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. \r
- The <span style="font-weight: bold;"><B>Sort </B></span>button allows to sort \r
- the list of elements IDs. The <span style="font-weight: bold;"><B>Set filter \r
- </B></span>button allows to apply a definite filter to selection of elements \r
- of your group.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows \r
- to modify the orientation of all elements of the currently displayed mesh \r
- or submesh.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs5"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose elements will be automatically \r
- added to the list.</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Changing orientation of elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:21px; height:21px; border-style:none; }
+img_whs3 { border:none; width:306px; height:425px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+p.whs5 { margin-left:40px; font-weight:normal; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nChanging orientation of elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Changing orientation of elements</h1>
+
+<p>Orientation of an element is changed by reverting the order of nodes 
+ of the selected elements.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To change orientation of elements:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs1">1. Display a mesh or a submesh in the 3D 
+ viewer.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. In the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Orientation </B></span>item 
+ or click <img src="../image79.gif" width="21px" height="21px" border="0" class="img_whs2"> button in the toolbar. The following dialog box 
+ will appear:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/orientaation1.png" x-maintain-ratio="TRUE" width="306px" height="425px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs5"><span 
+ style="font-weight: bold;"><B>The main list </B></span><span>shall contain the 
+ elements which will be reoriented.</span> You can click on an element 
+ in the 3D viewer and it will be highlighted. After that click the <span 
+ style="font-weight: bold;"><B>Add </B></span>button and the ID of this element 
+ will be added to the list. To remove a selected element or elements from 
+ the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. 
+ The <span style="font-weight: bold;"><B>Sort </B></span>button allows to sort 
+ the list of elements IDs. The <span style="font-weight: bold;"><B>Set filter 
+ </B></span>button allows to apply a definite filter to selection of elements 
+ of your group.</p></li>
+       
+       <li class=kadov-p><p class="whs5"><span 
+ style="font-weight: bold;"><B>Apply to all </B></span><span>radio button allows 
+ to modify the orientation of all elements of the currently displayed mesh 
+ or submesh.</span></p></li>
+       
+       <li class=kadov-p><p class="whs5"><span 
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to 
+ choose a submesh or an existing group whose elements will be automatically 
+ added to the list.</p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm 
+ the operation.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark12">Change 
+ Orientation</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index db59e9e80dcb675c3ad2b386490e0c0f0c8d4d8a..0b8e2f5e69305c58da196e730f08da8093cbd610 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Constructing groups of specific 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
--->\r
-</style><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\nGrouping elements\nConstructing groups of specific elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Constructing groups of specific elements</h1>\r
-\r
-<p>In MESH you can easily construct groups of specific elements (nodes, \r
- edges, faces or volumes) which will be taken from a definite submesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To construct a group of specific elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">Right-click on a submesh in the Object Browser \r
- and choose the <span style="font-weight: bold;"><B>Construct Group </B></span>item \r
- or select your submesh in the Object Browser and in the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Construct Group \r
- </B></span>item. MESH will construct several groups consisting of elements \r
- of the definite type: nodes, edges, faces or volumes.</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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Constructing groups of specific elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nGrouping elements\nConstructing groups of specific elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Constructing groups of specific elements</h1>
+
+<p>In MESH you can easily construct groups of specific elements (nodes, 
+ edges, faces or volumes) which will be taken from a definite submesh.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To construct a group of specific elements:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">Right-click on a submesh in the Object Browser 
+ and choose the <span style="font-weight: bold;"><B>Construct Group </B></span>item 
+ or select your submesh in the Object Browser and in the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Construct Group 
+ </B></span>item. MESH will construct several groups consisting of elements 
+ of the definite type: nodes, edges, faces or volumes.</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 481c03285c3460f036d27bd0c75587517981148b..1098a35d5ed3efc17f1934fb7cdf423945be7cab 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Constructing meshes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:0px; }\r
-ul.whs2 { list-style:disc; }\r
-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_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
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\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\nCreating meshes\nConstructing meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Constructing meshes</h1>\r
-\r
-<p class="whs1">Construction of a mesh consists of:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs1">Selecting a geometrical \r
- object for meshing</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Applying <a href="about_meshing_algorithms.htm">meshing \r
- algorithms</a> and <a href="about_hypotheses.htm">hypotheses</a> which \r
- will be used at computation of this mesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To construct a mesh:</p>\r
-\r
-<p class="whs3">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select<span style="font-weight: bold;"><B> Create Mesh </B></span>or \r
- click <img src="../image32.gif" width="22px" height="24px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
- appear:</p>\r
-\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
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs3">2. For example, you need to mesh a 3d object. \r
- </p>\r
-\r
-<p class="whs3">First, type the name for your mesh in the \r
- &quot;Name&quot; box, by default, it is &quot;Mesh_1&quot;. Then select \r
- the object you wish to mesh in the Object Browser <img src="../image119.gif" width="173px" height="88px" border="0" class="img_whs7">and click \r
- the <img src="../image120.gif" width="34px" height="29px" border="0" class="img_whs8"> &quot;Add&quot; button. </p>\r
-\r
-<p class="whs3">Now you can define 1d Algorithm and 1d Hypotheses, \r
- which will be applied to the edges of your object. (Note that any object \r
- has edges, even if their existence is not apparent, for example, a sphere \r
- has 4 edges). Click the &nbsp;<img src="../image121.gif" width="29px" height="28px" border="0" class="img_whs9"> button to add a hypothesis. Click the <img src="../image122.gif" width="30px" height="29px" border="0" class="img_whs10"> button \r
- to define values for the current hypothesis. The use of additional hypotheses \r
- is optional (i.e. you may leave &quot;None&quot; in this box). &nbsp;&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">Proceed in the same way with 2d and 3d Algorithms \r
- and Hypotheses, note that the choice of hypotheses depends on the algorithm. \r
- There must be one Algorithm and one or several Hypotheses for each dimension \r
- of your object, otherwise you will not get any mesh at all. Of course, \r
- if you wish to mesh a face, which is a 2d object, you don't need to define \r
- 3d Algorithm and Hypotheses. </p>\r
-\r
-<p class="whs3">In the <span style="font-weight: bold;"><B>Object \r
- Browser</B></span> the structure of the new mesh will be displayed as follows:</p>\r
-\r
-<p class="whs3"><img src="../image88.jpg" width="232px" height="142px" align="right" border="0" class="img_whs11">It contains:</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3">a reference to the \r
- geometrical object on the basis of which the mesh has been constructed;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- hypotheses </B></span>folder containing the references to the hypotheses applied \r
- to the construction of the mesh;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- algorithms </B></span>folder containing the references to the algorithms applied \r
- to the construction of the mesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">There is an alternative way to create a mesh \r
- on an object simply by clicking <span style="font-weight: bold;"><B>Assign \r
- a set of hypotheses </B></span>button and selecting between Automatic Tetrahedralization \r
- or Hexahedralization. &nbsp;The \r
- program will automatically generate a 3D mesh with the most appropriate \r
- settings. In the same way you can apply this functionality for meshing \r
- 2D objects, in which case 3D algorithms are not applied. </p>\r
-\r
-<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
-\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
-\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
- section.</p>\r
-\r
-<p class="whs3">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Constructing meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:0px; }
+ul.whs2 { list-style:disc; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:22px; height:24px; border-style:none; }
+p.whs5 { margin-left:80px; }
+img_whs6 { border:none; border-style:none; width:355px; height:296px; float:none; }
+img_whs7 { border:none; width:173px; height:88px; border-style:none; }
+img_whs8 { border:none; width:34px; height:29px; border-style:none; }
+img_whs9 { border:none; width:29px; height:28px; border-style:none; }
+img_whs10 { border:none; width:30px; height:29px; border-style:none; }
+img_whs11 { border:none; width:232px; height:142px; border-style:none; float:right; }
+img_whs12 { border:none; width:25px; height:24px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nConstructing meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Constructing meshes</h1>
+
+<p class="whs1">Construction of a mesh consists of:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs1">Selecting a geometrical 
+ object for meshing</p></li>
+       
+       <li class=kadov-p><p class="whs1">Applying <a href="about_meshing_algorithms.htm">meshing 
+ algorithms</a> and <a href="about_hypotheses.htm">hypotheses</a> which 
+ will be used at computation of this mesh.</p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class=TODO>To construct a mesh:</p>
+
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>menu select<span style="font-weight: bold;"><B> Create Mesh </B></span>or 
+ click <img src="../image32.gif" width="22px" height="24px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will 
+ appear:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5"><img src="../pics/createmesh-inv.png" x-maintain-ratio="TRUE" width="355px" height="296px" border="0" class="img_whs6"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs3">2. For example, you need to mesh a 3d object. 
+ </p>
+
+<p class="whs3">First, type the name for your mesh in the 
+ &quot;Name&quot; box, by default, it is &quot;Mesh_1&quot;. Then select 
+ the object you wish to mesh in the Object Browser <img src="../image119.gif" width="173px" height="88px" border="0" class="img_whs7">and click 
+ the <img src="../image120.gif" width="34px" height="29px" border="0" class="img_whs8"> &quot;Add&quot; button. </p>
+
+<p class="whs3">Now you can define 1d Algorithm and 1d Hypotheses, 
+ which will be applied to the edges of your object. (Note that any object 
+ has edges, even if their existence is not apparent, for example, a sphere 
+ has 4 edges). Click the &nbsp;<img src="../image121.gif" width="29px" height="28px" border="0" class="img_whs9"> button to add a hypothesis. Click the <img src="../image122.gif" width="30px" height="29px" border="0" class="img_whs10"> button 
+ to define values for the current hypothesis. The use of additional hypotheses 
+ is optional (i.e. you may leave &quot;None&quot; in this box). &nbsp;&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">Proceed in the same way with 2d and 3d Algorithms 
+ and Hypotheses, note that the choice of hypotheses depends on the algorithm. 
+ There must be one Algorithm and one or several Hypotheses for each dimension 
+ of your object, otherwise you will not get any mesh at all. Of course, 
+ if you wish to mesh a face, which is a 2d object, you don't need to define 
+ 3d Algorithm and Hypotheses. </p>
+
+<p class="whs3">In the <span style="font-weight: bold;"><B>Object 
+ Browser</B></span> the structure of the new mesh will be displayed as follows:</p>
+
+<p class="whs3"><img src="../image88.jpg" width="232px" height="142px" align="right" border="0" class="img_whs11">It contains:</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs3">a reference to the 
+ geometrical object on the basis of which the mesh has been constructed;</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied 
+ hypotheses </B></span>folder containing the references to the hypotheses applied 
+ to the construction of the mesh;</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied 
+ algorithms </B></span>folder containing the references to the algorithms applied 
+ to the construction of the mesh.</p></li>
+</ul>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">There is an alternative way to create a mesh 
+ on an object simply by clicking <span style="font-weight: bold;"><B>Assign 
+ a set of hypotheses </B></span>button and selecting between Automatic Tetrahedralization 
+ or Hexahedralization. &nbsp;The 
+ program will automatically generate a 3D mesh with the most appropriate 
+ settings. In the same way you can apply this functionality for meshing 
+ 2D objects, in which case 3D algorithms are not applied. </p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">3. Now, when everything is ready, select 
+ your mesh in the <span style="font-weight: bold;"><B>Object Browser</B></span>. 
+ &nbsp;From the 
+ <span style="font-weight: bold;"><B>Mesh </B></span>menu select<span style="font-weight: bold;"><B> 
+ Compute </B></span>or click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs12"> button of the toolbar. </p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">Consider trying a sample script for construction 
+ of a mesh from our <a href="../constructing_meshes.htm">TUI Scripts</a> 
+ section.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index e09d47b8057662e8326d8df854967ec2891a0424..9e0adf4081b1bfc938ca78add7d2fce15b8ebed0 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Constructing submeshes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:0px; }\r
-ul.whs2 { list-style:disc; }\r
-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
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\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\nCreating meshes\nConstructing submeshes");\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>Constructing submeshes</h1>\r
-\r
-<p class="whs1">Construction of a submesh consists of:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs1">Selecting a mesh which \r
- will encapsulate your submesh</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Selecting a geometrical \r
- object for meshing</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">Applying one or several \r
- previously <a href="about_hypotheses.htm">hypotheses</a> and <a href="about_meshing_algorithms.htm">meshing \r
- algorithms</a> which will be used at computation of this submesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To construct a submesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs3">From the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select<span style="font-weight: bold;"><B> Local Hyp. </B></span>or \r
- click <img src="../image33.gif" width="27px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
- appear:</p>\r
-\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
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs3">In the Object Browser the structure of the \r
- new submesh will be displayed as follows:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image10.jpg" width="224px" height="212px" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">It contains:</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3">a reference to the \r
- geometrical object on the basis of which the submesh has been constructed;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- hypotheses </B></span>folder containing the references to the hypotheses applied \r
- to the construction of the submesh;</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied \r
- algorithms </B></span>folder containing the references to the algorithms applied \r
- to the construction of the submesh.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../constructing_meshes.htm#bookmark1">Construct \r
- Submesh</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Constructing submeshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:0px; }
+ul.whs2 { list-style:disc; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:27px; height:25px; border-style:none; }
+p.whs5 { margin-left:80px; }
+img_whs6 { border:none; border-style:none; width:355px; height:326px; float:none; }
+p.whs7 { margin-left:38px; }
+img_whs8 { border:none; width:224px; height:212px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nConstructing submeshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Constructing submeshes</h1>
+
+<p class="whs1">Construction of a submesh consists of:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs1">Selecting a mesh which 
+ will encapsulate your submesh</p></li>
+       
+       <li class=kadov-p><p class="whs1">Selecting a geometrical 
+ object for meshing</p></li>
+       
+       <li class=kadov-p><p class="whs1">Applying one or several 
+ previously <a href="about_hypotheses.htm">hypotheses</a> and <a href="about_meshing_algorithms.htm">meshing 
+ algorithms</a> which will be used at computation of this submesh.</p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class=TODO>To construct a submesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs3">From the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>menu select<span style="font-weight: bold;"><B> Local Hyp. </B></span>or 
+ click <img src="../image33.gif" width="27px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will 
+ appear:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5"><img src="../pics/createmesh-inv2.png" x-maintain-ratio="TRUE" width="355px" height="326px" border="0" class="img_whs6"></p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">It allows to define the <span style="font-weight: bold;"><B>Name</B></span>, 
+ the parent <span style="font-weight: bold;"><B>Mesh</B></span> and the <span 
+ style="font-weight: bold;"><B>Geometry</B></span> (e.g. a face if the parent 
+ mesh has been built on box) of the submesh. You can define algorithms 
+ and hypotheses in the same way as in <a href="constructing_meshes.htm">Create 
+ mesh</a> menu. &nbsp;</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs3">In the Object Browser the structure of the 
+ new submesh will be displayed as follows:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../image10.jpg" width="224px" height="212px" border="0" class="img_whs8"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">It contains:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs3">a reference to the 
+ geometrical object on the basis of which the submesh has been constructed;</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied 
+ hypotheses </B></span>folder containing the references to the hypotheses applied 
+ to the construction of the submesh;</p></li>
+       
+       <li class=kadov-p><p class="whs3"><span style="font-weight: bold;"><B>Applied 
+ algorithms </B></span>folder containing the references to the algorithms applied 
+ to the construction of the submesh.</p></li>
+</ul>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../constructing_meshes.htm#bookmark1">Construct 
+ Submesh</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 1a41ccd0bca8540ddfba6d537fb3a6fd0d604682..1200e5969c7c3538131389e05c3cf2bea801e174 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Creating groups</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { font-weight:bold; }\r
-img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs3 { margin-left:40px; font-weight:normal; }\r
-ul.whs4 { list-style:disc; }\r
-p.whs5 { font-weight:bold; margin-left:40px; }\r
-p.whs6 { margin-left:40px; font-weight:bold; }\r
-p.whs7 { margin-left:40px; }\r
-p.whs8 { margin-left:36px; }\r
-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
-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
-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
--->\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.whs16 {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\nGrouping elements\nCreating groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Creating groups</h1>\r
-\r
-<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> &nbsp;&nbsp;<span \r
- style="font-weight: normal;">In MESH you \r
- can create groups of elements of different types. To create a group of \r
- elements</span><span style="font-weight: normal; margin-left: 40px;"> \r
- in the </span><span style="margin-left: 40px;">Mesh</span><span style="font-weight: normal; margin-left: 40px;"> \r
- menu select </span><span style="margin-left: 40px;">Create Group</span><span \r
- style="font-weight: normal; margin-left: 40px;">.</span><span style="margin-left: 40px;"> \r
- </span></p>\r
-\r
-<p class="whs3">To create any group \r
- you should define the following: &nbsp;&nbsp;</p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs5">Mesh: \r
- <span style="font-weight: normal;">the name of the mesh whose elements \r
- will form your group. You can select your mesh in the Objet Browser or \r
- in the 3D viewer.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span \r
- style="font-weight: bold;"><B>Elements</B></span> <span style="font-weight: bold;"><B>Type</B></span> \r
- set of radio buttons allows to select the type of elements which will \r
- form your group:</p></li>\r
-       \r
-       <ul type="disc" class="whs4">\r
-               \r
-               <li class=kadov-p><p class="whs6">Nodes</p></li>\r
-               \r
-               <li class=kadov-p><p class="whs6">Edges \r
- </p></li>\r
-               \r
-               <li class=kadov-p><p class="whs6">Faces</p></li>\r
-               \r
-               <li class=kadov-p><p class="whs6">Volumes</p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p class="whs3"><span \r
- style="font-weight: bold;"><B>Name </B></span>field allows to enter the name \r
- of your new group.</p></li>\r
-</ul>\r
-\r
-<p class="whs3">SALOME Platform distinguishes \r
- between the two Group types: <span style="font-weight: bold;"><B>Standalone \r
- Group</B></span> and <span style="font-weight: bold;"><B>Group on Geometry</B></span>. \r
- &nbsp;</p>\r
-\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
- Group</B></span> consists of mesh elements, which you can define in two possible \r
- ways.</p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs8">Choosing them manually \r
- with the mouse in the 3D Viewer. You can click on an element in the 3D \r
- viewer 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 element will be added to the list. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs7">Applying Filters. The \r
- <span style="font-weight: bold;"><B>Set filter </B></span>button allows to apply \r
- a definite filter to selection of the elements of your group. See more \r
- about filters on the <a href="../selection_filter_library.htm">Selection \r
- filter library</a> page. &nbsp;&nbsp;</p></li>\r
-</ul>\r
-\r
-<p class="whs7">To remove a selected element or elements \r
- from the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. \r
- The <span style="font-weight: bold;"><B>Sort List </B></span>button allows to \r
- sort the list of IDs of mesh elements. </p>\r
-\r
-<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
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs9">\r
-<col class="whs10">\r
-<col class="whs11">\r
-\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
-<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
-<p class="whs16">&nbsp;</p>\r
-<p class="whs16">&nbsp;</p>\r
-<p class="whs16">&nbsp;</p>\r
-<p class="whs16">&nbsp;</p>\r
-<p class="whs16">In this picture the brown cells belong to \r
- a group defined manually.</p>\r
-<p class="whs16">&nbsp;</p>\r
-<p class="whs16">&nbsp;<img src="../image131.gif" width="149px" height="158px" border="0" class="img_whs18"> In this picture the brown cells belong to the group defined \r
- by the criterion <br>\r
-Taper &gt; 0. </p>\r
-<p class="whs16">&nbsp;</p>\r
-<p class="whs16">&nbsp;</td></tr>\r
-</table>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;&nbsp;&nbsp;See \r
- Also a sample TUI Script of a <a href="../grouping_elements.htm#bookmark">Create \r
- a Standalone Group</a> operation. &nbsp;</p>\r
-\r
-<h3>Group on Geometry </h3>\r
-\r
-<p class="whs3">To create a group on \r
- geometry check <span style="font-weight: bold;"><B>Group on geometry</B></span> \r
- in the <span style="font-weight: bold;"><B>Group type</B></span> field. <span \r
- style="font-weight: bold;"><B>Group on geometry </B></span>contains the elements \r
- 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
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs9">\r
-<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
- are selected in green. </td></tr>\r
-</table>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs6">&nbsp;&nbsp;&nbsp;See \r
- Also a sample TUI Script of a <a href="../grouping_elements.htm#bookmark5">Create \r
- a Group on Geometry</a><a href="../grouping_elements.htm#bookmark"> </a>operation. \r
- &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs16">&nbsp;</p>\r
-\r
-<p class="whs25">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Creating groups</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { font-weight:bold; }
+img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs3 { margin-left:40px; font-weight:normal; }
+ul.whs4 { list-style:disc; }
+p.whs5 { font-weight:bold; margin-left:40px; }
+p.whs6 { margin-left:40px; font-weight:bold; }
+p.whs7 { margin-left:40px; }
+p.whs8 { margin-left:36px; }
+table.whs9 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs10 { width:33.382%; }
+col.whs11 { width:66.618%; }
+tr.whs12 { x-cell-content-align:top; height:587px; }
+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; }
+img_whs14 { border:none; width:312px; height:621px; float:none; border-style:none; }
+td.whs15 { width:66.618%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
+p.whs16 { margin-left:0px; }
+img_whs17 { border:none; width:145px; height:150px; border-style:none; float:left; }
+img_whs18 { border:none; width:149px; height:158px; border-style:none; }
+col.whs19 { width:33.48%; }
+col.whs20 { width:66.52%; }
+tr.whs21 { x-cell-content-align:top; }
+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; }
+img_whs23 { border:none; width:312px; height:312px; float:none; border-style:none; }
+td.whs24 { width:66.52%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs25 { border:none; width:135px; height:150px; border-style:none; }
+p.whs26 { margin-left:80px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs16 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nGrouping elements\nCreating groups");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Creating groups</h1>
+
+<p class="whs1"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> &nbsp;&nbsp;<span 
+ style="font-weight: normal;">In MESH you 
+ can create groups of elements of different types. To create a group of 
+ elements</span><span style="font-weight: normal; margin-left: 40px;"> 
+ in the </span><span style="margin-left: 40px;">Mesh</span><span style="font-weight: normal; margin-left: 40px;"> 
+ menu select </span><span style="margin-left: 40px;">Create Group</span><span 
+ style="font-weight: normal; margin-left: 40px;">.</span><span style="margin-left: 40px;"> 
+ </span></p>
+
+<p class="whs3">To create any group 
+ you should define the following: &nbsp;&nbsp;</p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs5">Mesh: 
+ <span style="font-weight: normal;">the name of the mesh whose elements 
+ will form your group. You can select your mesh in the Objet Browser or 
+ in the 3D viewer.</span></p></li>
+       
+       <li class=kadov-p><p class="whs3"><span 
+ style="font-weight: bold;"><B>Elements</B></span> <span style="font-weight: bold;"><B>Type</B></span> 
+ set of radio buttons allows to select the type of elements which will 
+ form your group:</p></li>
+       
+       <ul type="disc" class="whs4">
+               
+               <li class=kadov-p><p class="whs6">Nodes</p></li>
+               
+               <li class=kadov-p><p class="whs6">Edges 
+ </p></li>
+               
+               <li class=kadov-p><p class="whs6">Faces</p></li>
+               
+               <li class=kadov-p><p class="whs6">Volumes</p></li>
+       </ul>
+       
+       <li class=kadov-p><p class="whs3"><span 
+ style="font-weight: bold;"><B>Name </B></span>field allows to enter the name 
+ of your new group.</p></li>
+</ul>
+
+<p class="whs3">SALOME Platform distinguishes 
+ between the two Group types: <span style="font-weight: bold;"><B>Standalone 
+ Group</B></span> and <span style="font-weight: bold;"><B>Group on Geometry</B></span>. 
+ &nbsp;</p>
+
+<h3>Standalone Group </h3>
+
+<p class="whs7"><span style="font-weight: bold;"><B>Standalone 
+ Group</B></span> consists of mesh elements, which you can define in two possible 
+ ways.</p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs8">Choosing them manually 
+ with the mouse in the 3D Viewer. You can click on an element in the 3D 
+ viewer and it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add 
+ </B></span>button and the ID of this element will be added to the list. </p></li>
+       
+       <li class=kadov-p><p class="whs7">Applying Filters. The 
+ <span style="font-weight: bold;"><B>Set filter </B></span>button allows to apply 
+ a definite filter to selection of the elements of your group. See more 
+ about filters on the <a href="../selection_filter_library.htm">Selection 
+ filter library</a> page. &nbsp;&nbsp;</p></li>
+</ul>
+
+<p class="whs7">To remove a selected element or elements 
+ from the list click the <span style="font-weight: bold;"><B>Remove </B></span>button. 
+ The <span style="font-weight: bold;"><B>Sort List </B></span>button allows to 
+ sort the list of IDs of mesh elements. </p>
+
+<p class="whs7"><span style="font-weight: bold;"><B>Select from 
+ </B></span>set of fields allows to choose a submesh or an existing group whose 
+ elements of the previously defined type will be added to the list of elements 
+ which will form your group. </p>
+
+<p class="whs7"><span style="font-weight: bold;"><B>Color Number</B></span> 
+ (integer only, ranging from 0 to 9999) - allows to assign to the group 
+ a certain index, for example, defining boundary conditions. This feature 
+ introduces a useful element of preprocessing in Mesh module. Note that 
+ <span style="font-weight: bold;"><B>Color number</B></span> attribute has nothing 
+ to do with the colors used for the display of the elements of the group.</p>
+
+<p class="whs7">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs9">
+<col class="whs10">
+<col class="whs11">
+
+<tr valign="top" class="whs12">
+<td width="33.382%" class="whs13">
+<p class="whs1"><img src="../pics/creategroup.png" x-maintain-ratio="TRUE" width="312px" height="621px" border="0" class="img_whs14"></td>
+<td width="66.618%" class="whs15">
+<p class="whs16"><img src="../image130.gif" width="145px" height="150px" align="left" border="0" class="img_whs17"> &nbsp;&nbsp;</p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">In this picture the brown cells belong to 
+ a group defined manually.</p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">&nbsp;<img src="../image131.gif" width="149px" height="158px" border="0" class="img_whs18"> In this picture the brown cells belong to the group defined 
+ by the criterion <br>
+Taper &gt; 0. </p>
+<p class="whs16">&nbsp;</p>
+<p class="whs16">&nbsp;</td></tr>
+</table>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs5">&nbsp;&nbsp;&nbsp;See 
+ Also a sample TUI Script of a <a href="../grouping_elements.htm#bookmark">Create 
+ a Standalone Group</a> operation. &nbsp;</p>
+
+<h3>Group on Geometry </h3>
+
+<p class="whs3">To create a group on 
+ geometry check <span style="font-weight: bold;"><B>Group on geometry</B></span> 
+ in the <span style="font-weight: bold;"><B>Group type</B></span> field. <span 
+ style="font-weight: bold;"><B>Group on geometry </B></span>contains the elements 
+ of a certain type belonging to the selected<span style="font-weight: bold;"> 
+ <B></B></span>geometrical object. To define a group select in the Objet Browser 
+ or in the 3D viewer a geometrical object from which the elements will 
+ be taken. After confirmation of the operation a new group of mesh elements 
+ will be created.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs9">
+<col class="whs19">
+<col class="whs20">
+
+<tr valign="top" class="whs21">
+<td width="33.48%" class="whs22">
+<p><img src="../pics/a-creategroup.png" x-maintain-ratio="TRUE" width="312px" height="312px" border="0" class="img_whs23"></td>
+<td width="66.52%" class="whs24">
+<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 
+ are selected in green. </td></tr>
+</table>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs6">&nbsp;&nbsp;&nbsp;See 
+ Also a sample TUI Script of a <a href="../grouping_elements.htm#bookmark5">Create 
+ a Group on Geometry</a><a href="../grouping_elements.htm#bookmark"> </a>operation. 
+ &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs16">&nbsp;</p>
+
+<p class="whs26">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d9b1e31e676afa65dbf71b24c0486c28544479e8..3ffa9a6ae275be29d19c6c34471252524b2fe881 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Cutting quadrangles</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:25px; height:22px; border-style:none; }\r
-img_whs4 { border:none; width:306px; height:525px; float:none; border-style:none; }\r
-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
--->\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 +="</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\nModifying meshes\nCutting quadrangles");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Cutting quadrangles</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This operation allows to cut one or several quadrangle \r
- elements by addition of a supplementary edge which will connect two opposite \r
- corners. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To cut quadrangles:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Cutting of quadrangles \r
- </B></span>item or click <img src="../image82.gif" width="25px" height="22px" border="0" class="img_whs3"> button in the toolbar. The following \r
- dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/a-cuttingofquadrangles.png" x-maintain-ratio="TRUE" width="306px" height="525px" border="0" class="img_whs4"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>The main list </B></span>shall contain the quadrangles \r
- which will be cutted. You can click on an quadrangle in the 3D viewer \r
- and it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
- </B></span>button and the ID of this quadrangle will be added to the list. \r
- To remove a selected element or elements from the list click the <span \r
- style="font-weight: bold;"><B>Remove </B></span>button. The <span style="font-weight: bold;"><B>Sort \r
- </B></span>button allows to sort the list of IDs. The <span style="font-weight: bold;"><B>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
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to \r
- modify the orientation of all quadrangles of the currently displayed mesh \r
- or submesh.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Use diagonal 2-4 </B></span>radio button allows \r
- to specify the opposite corners which will be connected by the cutting \r
- edge.</p></li>\r
-       \r
-       <li class=kadov-p><p class="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
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose quadrangle elements will be \r
- automatically added to the list.</p></li>\r
-</ul>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p class="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
-\r
-<tr valign="top" class="whs10">\r
-<td width="50%" class="whs11">\r
-<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs12"></td>\r
-<td width="50%" class="whs13">\r
-<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs12"></td></tr>\r
-</table>\r
-\r
-<p class="whs14">&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
- Quadrangles</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Cutting quadrangles</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:25px; height:22px; border-style:none; }
+img_whs4 { border:none; width:306px; height:525px; float:none; border-style:none; }
+ul.whs5 { list-style:disc; }
+p.whs6 { margin-left:40px; font-weight:normal; }
+p.whs7 { margin-left:40px; font-weight:bold; }
+p.whs8 { font-weight:bold; margin-left:0px; }
+p.whs9 { margin-left:0px; }
+table.whs10 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs11 { width:50%; }
+tr.whs12 { x-cell-content-align:top; }
+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; }
+img_whs14 { border:none; width:353px; height:300px; border-style:none; }
+td.whs15 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs8 {margin-left:1pt; }";
+  strNSS += "p.whs9 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nCutting quadrangles");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Cutting quadrangles</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This operation allows to cut one or several quadrangle 
+ elements by addition of a supplementary edge which will connect two opposite 
+ corners. </p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To cut quadrangles:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">1. Display a mesh or a submesh in the 3D 
+ viewer.</p>
+
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Cutting of quadrangles 
+ </B></span>item or click <img src="../image82.gif" width="25px" height="22px" border="0" class="img_whs3"> button in the toolbar. The following 
+ dialog box will appear:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="../pics/a-cuttingofquadrangles.png" x-maintain-ratio="TRUE" width="306px" height="525px" border="0" class="img_whs4"></p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs5">
+       
+       <li class=kadov-p><p class="whs6">The 
+ main list<span style="font-weight: bold;"> <B></B></span>contains the list of 
+ quadrangles. You can click on an quadrangle in the 3D viewer and it will 
+ be highlighted (lock Shift keyboard button to select several quadrangles). 
+ <span style="margin-left: 0px; font-weight: bold;"><B>Click Add </B></span><span 
+ style="margin-left: 0px;">button and the ID of this quadrangle will be 
+ added to the list. To remove a selected element or elements from the list 
+ click </span><span style="margin-left: 0px; font-weight: bold;"><B>Remove 
+ </B></span><span style="margin-left: 0px;">button. </span><span style="margin-left: 0px; font-weight: bold;"><B>Sort 
+ list </B></span><span style="margin-left: 0px;">button allows to sort the 
+ list of IDs. </span><span style="margin-left: 0px; font-weight: bold;"><B>Filter 
+ </B></span><span style="margin-left: 0px;">button allows to apply a definite 
+ filter to the selection of quadrangles.</span></p></li>
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to 
+ modify the orientation of all quadrangles of the currently displayed mesh 
+ or submesh.</p></li>
+       
+       <li class=kadov-p><p class="whs7">Preview 
+ - <span style="font-weight: normal;">provides a preview of cutting in 
+ the viewer.</span> </p></li>
+       
+       <li class=kadov-p><p class="whs8">Criterion</p></li>
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Use diagonal 1-3 </B></span>and<span style="font-weight: bold;"><B> 
+ Use diagonal 2-4 </B></span>&nbsp;allows 
+ to specify the opposite corners which will be connected by the cutting 
+ edge.</p></li>
+       
+       <li class=kadov-p><p class="whs7">Use 
+ numeric factor - <span style="margin-left: 40px; font-weight: normal;">&nbsp;allows 
+ to apply the operation only to those objects which meet the chosen criterion 
+ (from the list of Quality Controls, i.e. Skew, Warping, Minimum Angle, 
+ etc.)</span></p></li>
+       
+       <li class=kadov-p><p class="whs9"><span style="font-weight: bold;"><B>Select 
+ from -</B></span> allows to choose a submesh or an existing group whose quadrangle 
+ elements will be automatically added to the list.</p></li>
+</ul>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm 
+ the operation.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs10">
+<col class="whs11">
+<col class="whs11">
+
+<tr valign="top" class="whs12">
+<td width="50%" class="whs13">
+<p><img src="../image52.jpg" width="353px" height="300px" border="0" class="img_whs14"></td>
+<td width="50%" class="whs15">
+<p><img src="../image51.jpg" width="353px" height="300px" border="0" class="img_whs14"></td></tr>
+</table>
+
+<p class="whs9">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark7">Cutting 
+ Quadrangles</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 871430041bfdfb4a9a66baa67a23fb74777885fe..3976832f62fb58481275cfb6dd6a181c55f1490e 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Diagonal iversion of 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:24px; height:22px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:306px; height:163px; float:none; }\r
-table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs5 { width:50%; }\r
-tr.whs6 { x-cell-content-align:top; }\r
-td.whs7 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs8 { border:none; width:300px; height:224px; border-style:none; }\r
-td.whs9 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
--->\r
-</style><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\nDiagonal inversion of 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>Diagonal inversion of elements</h1>\r
-\r
-<p>&nbsp;In MESH \r
- you can inverse the diagonal (edge) of a pseudo-quadrangle formed by two \r
- neighboring triangles with one common edge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To inverse the diagonal:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Diagonal inversion \r
- </B></span>item or click <img src="../image70.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/diagonalinversion.png" x-maintain-ratio="TRUE" width="306px" height="163px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Enter the ID of the required edge in the \r
- <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field \r
- or select this edge in the 3D viewer. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs5">\r
-\r
-<tr valign="top" class="whs6">\r
-<td width="50%" class="whs7">\r
-<p><img src="../image38.jpg" width="300px" height="224px" border="0" class="img_whs8"></td>\r
-<td width="50%" class="whs9">\r
-<p><img src="../image36.jpg" width="300px" height="224px" border="0" class="img_whs8"></td></tr>\r
-</table>\r
-\r
-<p>&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#bookmark4">Diagonal \r
- Inversion of Elements</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Diagonal iversion of elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:24px; height:22px; border-style:none; }
+img_whs3 { border:none; border-style:none; width:306px; height:163px; float:none; }
+table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs5 { width:50%; }
+tr.whs6 { x-cell-content-align:top; }
+td.whs7 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs8 { border:none; width:300px; height:224px; border-style:none; }
+td.whs9 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nDiagonal inversion of elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Diagonal inversion of elements</h1>
+
+<p>&nbsp;In MESH 
+ you can inverse the diagonal (edge) of a pseudo-quadrangle formed by two 
+ neighboring triangles with one common edge.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To inverse the diagonal:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Diagonal inversion 
+ </B></span>item or click <img src="../image70.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following 
+ dialog box shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/diagonalinversion.png" x-maintain-ratio="TRUE" width="306px" height="163px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. Enter the ID of the required edge in the 
+ <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field 
+ or select this edge in the 3D viewer. </p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
+
+<p class=TODO
+       style="margin-left: 40px;">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
+<col class="whs5">
+<col class="whs5">
+
+<tr valign="top" class="whs6">
+<td width="50%" class="whs7">
+<p><img src="../image38.jpg" width="300px" height="224px" border="0" class="img_whs8"></td>
+<td width="50%" class="whs9">
+<p><img src="../image36.jpg" width="300px" height="224px" border="0" class="img_whs8"></td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark4">Diagonal 
+ Inversion of Elements</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index f90a4085c2a9e9f9195cf760dd220e63a6c7d2f5..14898fac25aa4c55cbe8ff7a960dec160863ffb8 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Displacing nodes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:24px; height:22px; border-style:none; }\r
-img_whs3 { border:none; width:306px; height:269px; float:none; border-style:none; }\r
-table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs5 { width:39.706%; }\r
-col.whs6 { width:60.294%; }\r
-tr.whs7 { x-cell-content-align:top; }\r
-td.whs8 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-p.whs9 { margin-right:116px; }\r
-img_whs10 { border:none; border-style:none; float:none; width:266px; height:249px; }\r
-td.whs11 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs12 { border:none; border-style:none; width:324px; height:250px; float:none; }\r
-p.whs13 { 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.whs13 {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\nModifying meshes\nMoving nodes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Moving nodes</h1>\r
-\r
-<p>In MESH you can change the location of any node of your mesh. In this \r
- case all adjacent elements (edges) will be also transformed right after \r
- the displaced node.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To displace a node:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Move node </B></span>item \r
- or click <img src="../image67.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/movenodes.png" x-maintain-ratio="TRUE" width="306px" height="269px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Enter the ID of the required node in the \r
- <span style="font-weight: bold;"><B>Node ID </B></span>&nbsp;field \r
- or select this node in the 3D viewer. The coordinates of your node will \r
- be automatically displayed in the <span style="font-weight: bold;"><B>Coordinates \r
- </B></span>set of fields.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Set new coordinates for your node in the \r
- <span style="font-weight: bold;"><B>Coordinates </B></span>set of fields.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">4. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs6">\r
-\r
-<tr valign="top" class="whs7">\r
-<td width="39.706%" class="whs8">\r
-<p class="whs9"><img src="../pics/moving_nodes1.png" x-maintain-ratio="TRUE" width="266px" height="249px" border="0" class="img_whs10"></td>\r
-<td width="60.294%" class="whs11">\r
-<p><img src="../pics/moving_nodes2.png" x-maintain-ratio="TRUE" width="324px" height="250px" border="0" class="img_whs12"></td></tr>\r
-</table>\r
-\r
-<p class="whs13">&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#bookmark3">Moving \r
- Nodes</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs13">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Displacing nodes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:24px; height:22px; border-style:none; }
+img_whs3 { border:none; width:306px; height:269px; float:none; border-style:none; }
+table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs5 { width:39.706%; }
+col.whs6 { width:60.294%; }
+tr.whs7 { x-cell-content-align:top; }
+td.whs8 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+p.whs9 { margin-right:116px; }
+img_whs10 { border:none; border-style:none; float:none; width:266px; height:249px; }
+td.whs11 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs12 { border:none; border-style:none; width:324px; height:250px; float:none; }
+p.whs13 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs13 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nMoving nodes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Moving nodes</h1>
+
+<p>In MESH you can change the location of any node of your mesh. In this 
+ case all adjacent elements (edges) will be also transformed right after 
+ the displaced node.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To displace a node:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Move node </B></span>item 
+ or click <img src="../image67.gif" width="24px" height="22px" border="0" class="img_whs2"> button in the toolbar. The following dialog box 
+ shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/movenodes.png" x-maintain-ratio="TRUE" width="306px" height="269px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. Enter the ID of the required node in the 
+ <span style="font-weight: bold;"><B>Node ID </B></span>&nbsp;field 
+ or select this node in the 3D viewer. The coordinates of your node will 
+ be automatically displayed in the <span style="font-weight: bold;"><B>Coordinates 
+ </B></span>set of fields.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3. Set new coordinates for your node in the 
+ <span style="font-weight: bold;"><B>Coordinates </B></span>set of fields.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">4. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
+<col class="whs5">
+<col class="whs6">
+
+<tr valign="top" class="whs7">
+<td width="39.706%" class="whs8">
+<p class="whs9"><img src="../pics/moving_nodes1.png" x-maintain-ratio="TRUE" width="266px" height="249px" border="0" class="img_whs10"></td>
+<td width="60.294%" class="whs11">
+<p><img src="../pics/moving_nodes2.png" x-maintain-ratio="TRUE" width="324px" height="250px" border="0" class="img_whs12"></td></tr>
+</table>
+
+<p class="whs13">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark3">Moving 
+ Nodes</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs13">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 4f450b7dd922e67c9805d79fc152b9de61cc3382..94a2d5425e7b90fe206c610fff821f1bcd87ac74 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Displaying nodes numbers</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-p.whs2 { margin-left:0px; }\r
-img_whs3 { border:none; width:429px; height:189px; }\r
-img_whs4 { border:none; width:324px; height:278px; }\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 +="</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\nNumbering");\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>Displaying nodes numbers</h1>\r
-\r
-<p>In MESH you can display the ID numbers of all nodes of your mesh in \r
- the viewer.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To display ID numbers of nodes:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Display your mesh in the viewer</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
- and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
- &gt; Display Nodes #</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2">It will look like as follows:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image96.jpg" width="429px" height="189px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h1>Displaying elements numbers</h1>\r
-\r
-<p>In MESH you can display the ID numbers of all meshing elements composing \r
- your mesh in the viewer.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To display ID numbers of elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Display your mesh in the viewer</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Right-click on the mesh in the 3D viewer \r
- and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering \r
- &gt; Display Elements #</B></span>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2">It will look like as follows:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../image95.jpg" width="324px" height="278px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Displaying nodes numbers</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+p.whs2 { margin-left:0px; }
+img_whs3 { border:none; width:429px; height:189px; }
+img_whs4 { border:none; width:324px; height:278px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs2 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nNumbering");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Displaying nodes numbers</h1>
+
+<p>In MESH you can display the ID numbers of all nodes of your mesh in 
+ the viewer.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To display ID numbers of nodes:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. Display your mesh in the viewer</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. Right-click on the mesh in the 3D viewer 
+ and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering 
+ &gt; Display Nodes #</B></span>.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2">It will look like as follows:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1"><img src="../image96.jpg" width="429px" height="189px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<h1>Displaying elements numbers</h1>
+
+<p>In MESH you can display the ID numbers of all meshing elements composing 
+ your mesh in the viewer.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To display ID numbers of elements:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. Display your mesh in the viewer</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. Right-click on the mesh in the 3D viewer 
+ and from the associated pop-up menu choose <span style="font-weight: bold;"><B>Numbering 
+ &gt; Display Elements #</B></span>.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2">It will look like as follows:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1"><img src="../image95.jpg" width="324px" height="278px" border="0" class="img_whs4"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 505cdd9b52cce88d13200c208672e36ce39c83d7..adf5054d3b8153bbebaa6ca29e2572af88d89b6e 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Editing groups</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:21px; height:22px; border-style:none; }\r
-img_whs3 { border:none; border-style:none; width:312px; height:565px; float:none; }\r
-p.whs4 { font-weight:normal; }\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.whs5 {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\nGrouping elements\nEditing groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Editing groups</h1>\r
-\r
-<p class=TODO\r
-       style="margin-left: 0px;">To edit an existing group of elements:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your group in the Object Browser \r
- and in the <span style="font-weight: bold;"><B>Mesh </B></span>menu click the \r
- <span style="font-weight: bold;"><B>Edit Group </B></span>item or <img src="../image74.gif" width="21px" height="22px" border="0" class="img_whs2"> icon in the toolbar. The following dialog box will appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/editgroup.png" x-maintain-ratio="TRUE" width="312px" height="565px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can modify the name<span \r
- style="font-weight: bold;"> <B></B></span>of your group and add or remove the \r
- elements forming it. For more information <a href="creating_groups.htm">see \r
- here</a>.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm modification of the group.</p>\r
-\r
-<p class="whs1">&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="../grouping_elements.htm#bookmark1">Edit \r
- Group</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Editing groups</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:21px; height:22px; border-style:none; }
+img_whs3 { border:none; width:400px; height:622px; float:none; }
+p.whs4 { font-weight:normal; }
+p.whs5 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs5 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nGrouping elements\nEditing groups");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Editing groups</h1>
+
+<p class=TODO
+       style="margin-left: 0px;">To edit an existing group of elements:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. Select your group in the Object Browser 
+ and in the <span style="font-weight: bold;"><B>Mesh </B></span>menu click the 
+ <span style="font-weight: bold;"><B>Edit Group </B></span>item or <img src="../image74.gif" width="21px" height="22px" border="0" class="img_whs2"> icon in the toolbar. The following dialog box will appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/editgroup.png" x-maintain-ratio="TRUE" width="400px" height="622px" border="0" class="img_whs3"></p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs1">In this dialog box you can modify the name<span 
+ style="font-weight: bold;"> <B></B></span>of your group and add or remove the 
+ elements forming it. For more information <a href="creating_groups.htm">see 
+ Creating Groups </a><span style="margin-left: 40px;">page.</span></p>
+
+<p class="whs1">2. Click the <span style="font-weight: bold;"><B>OK 
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply 
+ </B></span>button to confirm modification of the group.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of an <a href="../grouping_elements.htm#bookmark1">Edit 
+ Group</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 6b3ecf015646a13b767ebc4b9b9c2870beaa8e54..5d83de11eed26e3a1c6ec127c9a18c77ab9bfe53 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Importing and exporting meshes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
-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.whs5 {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\nCreating meshes\nImporting and exporting meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Importing and exporting meshes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In MESH there is a functionality allowing importation/exportation \r
- of meshes from <span style="font-weight: bold;"><B>MED</B></span>, <span style="font-weight: bold;"><B>UNV</B></span> \r
- format files. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To import a mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>File</B></span> \r
- menu choose the <span style="font-weight: bold;"><B>Import</B></span> item, from \r
- its sub-menu select the corresponding format (MED, &nbsp;UNV) \r
- of the file containing your mesh.</p>\r
-\r
-<p class="whs2">2. In the standard <span style="font-weight: bold;"><B>Search \r
- File </B></span>dialog box find the file for importation. </p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>button.</p>\r
-\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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class=TODO>To export a mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Select the object you wish to export.</p>\r
-\r
-<p class="whs2">2. From the <span style="font-weight: bold;"><B>File</B></span> \r
- menu choose the <span style="font-weight: bold;"><B>Export</B></span> item, from \r
- its sub-menu select the format (MED, UNV) of the file which will contain \r
- your exported mesh..</p>\r
-\r
-<p class="whs2">3. In the standard <span style="font-weight: bold;"><B>Search \r
- File </B></span><span>select a location for the exported file and enter its \r
- name.</span> </p>\r
-\r
-<p class="whs2">4. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span>button. </p>\r
-\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
-\r
-<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 an <a href="../constructing_meshes.htm#bookmark3">Export \r
- Mesh</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Importing and exporting meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; border-style:none; width:437px; height:283px; float:none; }
+img_whs4 { border:none; border-style:none; width:436px; height:307px; float:none; }
+p.whs5 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs5 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nImporting and exporting meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Importing and exporting meshes</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In MESH there is a functionality allowing importation/exportation 
+ of meshes from <span style="font-weight: bold;"><B>MED</B></span>, <span style="font-weight: bold;"><B>UNV</B></span> 
+ format files. </p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To import a mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. From the <span style="font-weight: bold;"><B>File</B></span> 
+ menu choose the <span style="font-weight: bold;"><B>Import</B></span> item, from 
+ its sub-menu select the corresponding format (MED, &nbsp;UNV) 
+ of the file containing your mesh.</p>
+
+<p class="whs2">2. In the standard <span style="font-weight: bold;"><B>Search 
+ File </B></span>dialog box find the file for importation. </p>
+
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>OK 
+ </B></span>button.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/meshimportmesh.png" x-maintain-ratio="TRUE" width="437px" height="283px" border="0" class="img_whs3"> </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class=TODO>To export a mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Select the object you wish to export.</p>
+
+<p class="whs2">2. From the <span style="font-weight: bold;"><B>File</B></span> 
+ menu choose the <span style="font-weight: bold;"><B>Export</B></span> item, from 
+ its sub-menu select the format (MED, UNV) of the file which will contain 
+ your exported mesh..</p>
+
+<p class="whs2">3. In the standard <span style="font-weight: bold;"><B>Search 
+ File </B></span><span>select a location for the exported file and enter its 
+ name.</span> </p>
+
+<p class="whs2">4. Click the <span style="font-weight: bold;"><B>OK 
+ </B></span>button. </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/meshexportmesh.png" x-maintain-ratio="TRUE" width="436px" height="307px" border="0" class="img_whs4"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of an <a href="../constructing_meshes.htm#bookmark3">Export 
+ Mesh</a> operation. &nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/files/introduction_to_smesh.htm b/doc/salome/gui/SMESH/files/introduction_to_smesh.htm
deleted file mode 100755 (executable)
index 4bdc325..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Introduction to SMESH</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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\nIntroduction to MESH");\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>Introduction to MESH</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"><span style="font-weight: bold;"><B>MESH</B></span> module of \r
- SALOME is destined for: </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>import and export of meshes in MED format,</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
-       \r
-       <ul type="circle" class="whs3">\r
-               \r
-               <li class=kadov-p><p>Local length</p></li>\r
-               \r
-               <li class=kadov-p><p>Number of segments</p></li>\r
-               \r
-               <li class=kadov-p><p>Max Element Area</p></li>\r
-               \r
-               <li class=kadov-p><p>Max Element Volume</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
-               \r
-               <li class=kadov-p><p>Moving 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
-       \r
-       <li class=kadov-p><p>quality control of meshes basing on a set of definite \r
- 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
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">for edges:</p>\r
-\r
-<p class="whs4">&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
-               \r
-               <li class=kadov-p><p>Borders at multi-connections</p></li>\r
-               \r
-               <li class=kadov-p><p>Free borders</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs6">for faces:</p>\r
-\r
-<p class="whs4">&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
-               \r
-               <li class=kadov-p><p>Free edges</p></li>\r
-               \r
-               <li class=kadov-p><p>Borders at multi-connection 2D</p></li>\r
-               \r
-               <li class=kadov-p><p>Length 2D</p></li>\r
-               \r
-               <li class=kadov-p><p>Minimum angle</p></li>\r
-               \r
-               <li class=kadov-p><p>Taper</p></li>\r
-               \r
-               <li class=kadov-p><p>Aspect Ratio</p></li>\r
-               \r
-               <li class=kadov-p><p>Warping </p></li>\r
-               \r
-               <li class=kadov-p><p>Skew</p></li>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs6">for solids:</p>\r
-\r
-<p class="whs6">&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
-       </ul>\r
-</ul>\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 4238a5cf4cf97608fab60667bdd0cd20d5335a5c..54cf225538764126837963e54a8a479648f88813 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Length of edges</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:27px; height:24px; border-style:none; }\r
-img_whs4 { border:none; border-style:none; width:450px; height:381px; float:none; }\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.whs5 {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\nLength 2D");\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>Length 2D</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This quality control criterion consists of calculation \r
- of length of the edges combining the meshing elements (triangles and quadrangles) \r
- of your mesh. </p>\r
-\r
-<p>&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Length 2D quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Length 2D </B></span>or click <img src="../image34.gif" width="27px" height="24px" border="0" class="img_whs3"> 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/length2d.png" x-maintain-ratio="TRUE" width="450px" height="381px" border="0" class="img_whs4"></p>\r
-\r
-<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
- 2D quality control</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Length of edges</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:27px; height:24px; border-style:none; }
+img_whs4 { border:none; border-style:none; width:450px; height:381px; float:none; }
+p.whs5 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs5 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nLength 2D");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Length 2D</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This quality control criterion consists of calculation 
+ of length of the edges combining the meshing elements (triangles and quadrangles) 
+ of your mesh. </p>
+
+<p>&nbsp;&nbsp;&nbsp;</p>
+
+<p class=TODO>To apply the Length 2D quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Display your mesh in the viewer.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Length 2D </B></span>or click <img src="../image34.gif" width="27px" height="24px" border="0" class="img_whs3"> button in the toolbar. Your 
+ mesh will be displayed in the viewer with its elements colored according 
+ to the applied mesh quality control criterion:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/length2d.png" x-maintain-ratio="TRUE" width="450px" height="381px" border="0" class="img_whs4"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark4">&nbsp;Length 
+ 2D quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index e329aab17afb057a4044f15a4d3677863b3c8b41..213603d7b466bc15fbe378b091002d18651fe7d1 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Length from edges</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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
-<!--\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\nCreating meshes\nDefining hypotheses\nMax Element Area hypothesis");\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>Max Element Area hypothesis</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"></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
-\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
-\r
-<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="../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
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Length from edges</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+ul.whs1 { list-style:disc; }
+p.whs2 { background-color:Transparent; color:#000000; font-weight:bold; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:332px; height:212px; float:none; border-style:none; }
+p.whs5 { margin-left:80px; }
+p.whs6 { margin-left:0px; }
+img_whs7 { border:none; width:455px; height:385px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs2 {background-color:white; }";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\n2D Meshing Hypotheses");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>2D Meshing Hypotheses</h1>
+
+<ul type="disc" class="whs1">
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#max_element_area"><span 
+ style="font-weight: bold;"><B>Max Element Area</B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#length_from_edges"><span 
+ style="font-weight: bold;"><B>Length from Edges</B></span></a></p></li>
+       
+       <li style="/*begin!kadov{{*/ color: #000000; /*}}end!kadov*/ "
+               class=kadov-p><p class="whs2"><a href="max._element_area_hypothesis.htm#quadrangle preference" style="font-weight: bold;">Quadrangle 
+ Preference</a></p></li>
+</ul>
+
+<h3><a name=max_element_area>Max Element Area </a></h3>
+
+<p><span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis 
+ is applied for meshing of 2D faces composing your geometrical object. 
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum 
+ area </B></span>of meshing elements (depending on the chosen meshing algorithm 
+ it can be <span style="font-weight: bold;"><B>triangles</B></span> or <span style="font-weight: bold;"><B>quadrangles</B></span>), 
+ which will compose the mesh of these 2D faces. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="../pics/a-maxelarea.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs4"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark4">Maximum 
+ Element Area hypothesis</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="../pics/max_el_area.png" x-maintain-ratio="TRUE" width="455px" height="385px" border="0" class="img_whs7"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h3><a name=length_from_edges>Length from Edges</a></h3>
+
+<p><span style="font-weight: bold;"><B>Length from edges</B></span> hypothesis 
+ builds 2D mesh segments having a length calculated as an average edge 
+ length for a given wire. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark6">Length 
+ from Edges hypothesis</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h3><a name="quadrangle preference">Quadrangle Preference</a></h3>
+
+<p>This algorithm can be used only together with Quadrangle (Mapping) algorithm. 
+ It allows to build quadrangular meshes even if the number of nodes at 
+ the opposite edges of a meshed face is not equal, otherwise this mesh 
+ will contain some triangular elements.</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 08e40aa0ab41581172d9dc462317ad35575121cc..b9be270306c5be9e872fc1631ac4090cf50d2fb2 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Non conform mesh allowed hypothesis</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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
-<!--\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\nCreating meshes\nDefining hypotheses\nMax Element Volume hypothesis");\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>Max Element Volume hypothesis</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"></B></span> <span style="font-weight: bold;"><B>Max \r
- Element Area </B></span>hypothesis is applied for meshing of 3D objects composing \r
- your geometrical object. Definition of this hypothesis consists of setting \r
- the <span style="font-weight: bold;"><B>maximum volume </B></span>of 3D meshing \r
- elements (depending on the chosen meshing algorithm it can be <span style="font-weight: bold;"><B>hexahedrons \r
- </B></span>or <span style="font-weight: bold;"><B>tetrahedrons</B></span>), which \r
- will compose the mesh of these 3D objects. </p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\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
-\r
-<p class="whs4"><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
-<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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Non conform mesh allowed hypothesis</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:48px; }
+img_whs3 { border:none; width:332px; height:212px; float:none; border-style:none; }
+p.whs4 { margin-left:80px; }
+p.whs5 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs5 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nMax Element Volume hypothesis");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Max Element Volume hypothesis</h1>
+
+<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 
+ Element Area </B></span>hypothesis is applied for meshing of 3D objects composing 
+ your geometrical object. Definition of this hypothesis consists of setting 
+ the <span style="font-weight: bold;"><B>maximum volume </B></span>of 3D meshing 
+ elements (depending on the chosen meshing algorithm it can be <span style="font-weight: bold;"><B>hexahedrons 
+ </B></span>or <span style="font-weight: bold;"><B>tetrahedrons</B></span>), which 
+ will compose the mesh of these 3D objects. </p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2"><img src="../pics/a-maxelvolume.png" x-maintain-ratio="TRUE" width="332px" height="212px" border="0" class="img_whs3"></p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark5">Maximum 
+ Element Volume hypothesis</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index fd010796ec18e85f647b4450cf9eeefefff03beb..b762170ce22b5f122fa2e56b98e24cf323bdef46 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Merging nodes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 nodes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Merging nodes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows user to detect groups of coincident \r
- nodes with desirable tolerance, edit these groups and merge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To merge nodes of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Merge nodes </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/mergenodes.png" x-maintain-ratio="TRUE" width="312px" height="488px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">This dialog box allows to create groups of \r
- coincident nodes and to merge them. </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/merging_nodes1.png" x-maintain-ratio="TRUE" width="341px" height="375px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/merging_nodes2.png" x-maintain-ratio="TRUE" width="347px" height="376px" border="0" class="img_whs5"></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;&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
- Nodes</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Merging nodes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:312px; height:488px; float:none; border-style:none; }
+img_whs4 { border:none; width:341px; height:375px; float:none; border-style:none; }
+img_whs5 { border:none; float:none; width:347px; height:376px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging nodes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Merging nodes</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows user to detect groups of coincident 
+ nodes with desirable tolerance, edit these groups and merge.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To merge nodes of your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and 
+ &nbsp;from its 
+ sub-menu select the <span style="font-weight: bold;"><B>Merge nodes </B></span>item. 
+ The following dialog box shall appear:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="../pics/mergenodes.png" x-maintain-ratio="TRUE" width="312px" height="488px" border="0" class="img_whs3"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">This dialog box allows to create groups of 
+ coincident nodes and to merge them. </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/merging_nodes1.png" x-maintain-ratio="TRUE" width="341px" height="375px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/merging_nodes2.png" x-maintain-ratio="TRUE" width="347px" height="376px" border="0" class="img_whs5"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark3">Merge 
+ Nodes</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index b63188d796bb497355cec4d911df096c04457999..edf891759e7441ae34d20a23adda065d6a8f8f8d 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Minimum angle</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:24px; height:24px; border-style:none; }\r
-img_whs4 { border:none; width:443px; height:254px; border-style:none; }\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.whs5 {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\nMinimum angle");\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>Minimum angle</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Minimum angle</B></span> \r
- mesh quality criterion consists of calculation of the minimum value of \r
- angle between two adjacent sides of a 2D meshing element (triangle or \r
- quadrangle). </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Minimum angle quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Minimum angle </B></span>or click <img src="../image38.gif" width="24px" height="24px" border="0" class="img_whs3"> button. Your mesh will \r
- be displayed in the viewer with its elements colored according to the \r
- applied mesh quality control criterion:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image92.jpg" width="443px" height="254px" border="0" class="img_whs4"></p>\r
-\r
-<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#bookmark9">Minimum \r
- Angle quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Minimum angle</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:24px; height:24px; border-style:none; }
+img_whs4 { border:none; width:443px; height:254px; border-style:none; }
+p.whs5 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs5 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nMinimum angle");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Minimum angle</h1>
+
+<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>Minimum angle</B></span> 
+ mesh quality criterion consists of calculation of the minimum value of 
+ angle between two adjacent sides of a 2D meshing element (triangle or 
+ quadrangle). </p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To apply the Minimum angle quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Display your mesh in the viewer.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Minimum angle </B></span>or click <img src="../image38.gif" width="24px" height="24px" border="0" class="img_whs3"> button. Your mesh will 
+ be displayed in the viewer with its elements colored according to the 
+ applied mesh quality control criterion:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../image92.jpg" width="443px" height="254px" border="0" class="img_whs4"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs5"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark9">Minimum 
+ Angle quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 4704610d00e7e107215374231bd8cacc1a56027c..f79a74bc2c0e904cf64b39b59565ea4d9c8cc544 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Non conform mesh allowed hypothesis</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:0px; }\r
-p.whs2 { margin-left:40px; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\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\nCreating meshes\nDefining hypotheses\nAdditional Hypotheses");\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>Additional Hypotheses</h1>\r
-\r
-<p><span style="font-weight: bold;"><B>Additional Hypotheses</B></span> can be \r
- applied as a supplement to the main hypotheses, introducing additional \r
- concepts to mesh creation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>To define an <span style="font-weight: bold;"><B>Additional Hypothesis</B></span> \r
- simply select it in <span style="font-weight: bold;"><B>Create Mesh</B></span> \r
- 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
-\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
-\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
- 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
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Non conform mesh allowed hypothesis</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:0px; }
+p.whs2 { margin-left:40px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nDefining hypotheses\nAdditional Hypotheses");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Additional Hypotheses</h1>
+
+<p><span style="font-weight: bold;"><B>Additional Hypotheses</B></span> can be 
+ applied as a supplement to the main hypotheses, introducing additional 
+ concepts to mesh creation.</p>
+
+<p>&nbsp;</p>
+
+<p>To define an <span style="font-weight: bold;"><B>Additional Hypothesis</B></span> 
+ simply select it in <span style="font-weight: bold;"><B>Create Mesh</B></span> 
+ menu. These hypotheses are actually changes in the rules of mesh creation 
+ and as such don't possess adjustable values. </p>
+
+<h3>Non Conform mesh allowed hypothesis</h3>
+
+<p><span style="font-weight: bold;"><B>Non Conform mesh allowed</B></span> hypothesis 
+ allows to generate non-conform meshes (that is, meshes having some edges 
+ ending on an edge or face of adjacent elements). </p>
+
+<h3>Quadratic Mesh</h3>
+
+<p>Quadratic Mesh hypothesis allows to build a quadratic mesh (whose edges 
+ are not straight but broken lines and can be defined by three points: 
+ first, middle and last) instead of an ordinary one. &nbsp;</p>
+
+<h3>Propagation of 1D Hypothesis on opposite edges</h3>
+
+<p><span style="font-weight: bold;"><B>Propagation of 1D Hypothesis on opposite 
+ edges </B></span>allows to propagate a hypothesis onto an opposite edge. If 
+ a local hypothesis and propagation are defined on an edge of a quadrangular 
+ face, the opposite edge will have the same hypothesis, unless another 
+ hypothesis has been locally defined on the opposite edge.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../defining_hypotheses_tui.htm#bookmark7">Propagation 
+ hypothesis</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 0de684dc999bdddc03c46e36518c5b74e6efde62..c0b0d06bcd7add9c257ad0c648b76210790b2d22 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Reassigning hypotheses and algorithms</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; border-style:none; width:309px; 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
--->\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
-}\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\nCreating meshes\nEditing Meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Editing Meshes</h1>\r
-\r
-<p>After you have created a mesh or submesh with definite applied hypotheses \r
- and algorithms you can edit your mesh by <span style="font-weight: bold;"><B>assigning</B></span> \r
- new hypotheses and algorithms or <span style="font-weight: bold;"><B>unassigning \r
- </B></span>the applied hypotheses and algorithms. The editing proceeds in \r
- the same way as <span style="font-weight: bold;"><B>Mesh Creation</B></span>. \r
- </p>\r
-\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
-\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
-\r
-<p>&nbsp;</p>\r
-\r
-<p>See how a mesh constructed on one and the same geometrical object changes \r
- if we apply different algorithms to it. </p>\r
-\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
-\r
-<p class="whs5">&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
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<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="../constructing_meshes.htm#bookmark2">Edit \r
- Mesh</a> operation. &nbsp;</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Reassigning hypotheses and algorithms</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; border-style:none; width:355px; height:296px; float:none; }
+img_whs2 { border:none; width:30px; height:29px; border-style:none; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; float:none; width:386px; height:336px; border-style:none; }
+img_whs5 { border:none; float:none; width:386px; height:338px; border-style:none; }
+p.whs6 { margin-left:0px; }
+p.whs7 { font-weight:bold; margin-left:40px; }
+img_whs8 { border:none; width:388px; height:341px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nCreating meshes\nEditing Meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Editing Meshes</h1>
+
+<p>After you have created a mesh or submesh with definite applied hypotheses 
+ and algorithms you can edit your mesh by <span style="font-weight: bold;"><B>assigning</B></span> 
+ new hypotheses and algorithms or <span style="font-weight: bold;"><B>unassigning 
+ </B></span>the applied hypotheses and algorithms. The editing proceeds in 
+ the same way as <span style="font-weight: bold;"><B>Mesh Creation</B></span>. 
+ </p>
+
+<p>&nbsp;</p>
+
+<p class=TODO
+       style="margin-left: 40px;"><img src="../pics/createmesh-inv3.png" x-maintain-ratio="TRUE" width="355px" height="296px" border="0" class="img_whs1"></p>
+
+<p>You can also change values for the current hypothesis by clicking the 
+ <img src="../image122.gif" width="30px" height="29px" border="0" class="img_whs2"> button. </p>
+
+<p>&nbsp;</p>
+
+<p>See how a mesh constructed on one and the same geometrical object changes 
+ if we apply different algorithms to it. </p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p class="whs6">&nbsp;</p>
+
+<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>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of an <a href="../constructing_meshes.htm#bookmark2">Edit 
+ Mesh</a> operation. &nbsp;</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p class="whs6">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 2a5b82210c9adaddd06390ed1fd0c0bbddbd70e1..9b720e9675a35f9f196a9046fef8c7378285e717 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Removing 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border: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
--->\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
-<!--\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\nRemoving nodes and elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</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
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To remove a node:</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
- from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
- nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
- following dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/removenodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can specify one or \r
- several nodes (with pressed Shift button) by choosing them in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to \r
- confirm deletion of the specified nodes.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs5">Be careful while removing \r
- nodes because if you remove a definite node of your mesh all adjacent \r
- elements will be also deleted.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs6">\r
-<col class="whs7">\r
-<col class="whs8">\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
-</table>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To remove an element:</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p class="whs1">1. Select your mesh in the Object Browser \r
- or in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and \r
- from the associated submenu select the <span style="font-weight: bold;"><B>Remove \r
- elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs2"> icon in the toolbar. The \r
- following dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/removeelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can specify one or \r
- several elements of your mesh (with pressed Shift button) by choosing \r
- them in the 3D viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click <span style="font-weight: bold;"><B>OK \r
- </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to \r
- confirm deletion of the specified elements.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<table x-use-null-cells width="55.882%" cellspacing="0" class="whs14">\r
-<col class="whs15">\r
-<col class="whs16">\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
-</table>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p>&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#bookmark1">Removing \r
- Nodes and Elements</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Removing nodes and elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+ul.whs1 { list-style:disc; }
+p.whs2 { margin-left:40px; font-weight:bold; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:27px; height:25px; border-style:none; }
+img_whs5 { border:none; width:332px; height:231px; float:none; border-style:none; }
+p.whs6 { margin-left:0px; }
+img_whs7 { border:none; width:36px; height:38px; float:none; border-style:none; }
+table.whs8 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs9 { width:31.569%; }
+col.whs10 { width:68.431%; }
+tr.whs11 { x-cell-content-align:top; }
+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; }
+img_whs13 { border:none; width:245px; height:289px; float:none; border-style:none; }
+td.whs14 { width:68.431%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs15 { border:none; width:252px; height:288px; float:none; border-style:none; }
+table.whs16 { x-cell-content-align:top; width:55.882%; border-spacing:0px; }
+col.whs17 { width:47.72%; }
+col.whs18 { width:52.28%; }
+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; }
+img_whs20 { border:none; width:219px; height:210px; float:none; border-style:none; }
+td.whs21 { width:52.28%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs22 { border:none; float:none; width:240px; height:209px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nRemoving nodes and elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Removing nodes and elements</h1>
+
+<p>In MESH you can remove nodes and all types of cells of your mesh. </p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs1">
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#remove_a_node"
+       style="font-weight: bold;"><span style="font-weight: bold;"><B>Nodes</a> 
+ </B></span></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#remove_an_element"
+       style="font-weight: bold;">Elements</a></p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p class=TODO><a name=remove_a_node>To remove a node:</a></p>
+
+<p class=TODO
+       style="margin-left: 40px;">&nbsp;</p>
+
+<p class="whs3">1. Select your mesh in the Object Browser 
+ or in the 3D viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and 
+ from the associated submenu select the <span style="font-weight: bold;"><B>Remove 
+ nodes</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs4"> icon in the toolbar. The 
+ following dialog box will appear:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="../pics/removenodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box you can specify one or 
+ several nodes (with pressed Shift button) by choosing them in the 3D viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">3. Click <span style="font-weight: bold;"><B>OK 
+ </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to 
+ confirm deletion of the specified nodes.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs6"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7">Be careful while removing 
+ nodes because if you remove a definite node of your mesh all adjacent 
+ elements will be also deleted.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs8">
+<col class="whs9">
+<col class="whs10">
+
+<tr valign="top" class="whs11">
+<td width="31.569%" class="whs12">
+<p><img src="../pics/remove_nodes1.png" x-maintain-ratio="TRUE" width="245px" height="289px" border="0" class="img_whs13"></td>
+<td width="68.431%" class="whs14">
+<p><img src="../pics/remove_nodes2.png" x-maintain-ratio="TRUE" width="252px" height="288px" border="0" class="img_whs15"></td></tr>
+</table>
+
+<p class="whs6">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO><a name=remove_an_element>To remove an element:</a></p>
+
+<p class=TODO
+       style="margin-left: 40px;">&nbsp;</p>
+
+<p class="whs3">1. Select your mesh in the Object Browser 
+ or in the 3D viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">2. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose <span style="font-weight: bold;"><B>Remove </B></span>and 
+ from the associated submenu select the <span style="font-weight: bold;"><B>Remove 
+ elements</B></span>, or just click <img src="../image88.gif" width="27px" height="25px" border="0" class="img_whs4"> icon in the toolbar. The 
+ following dialog box will appear:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs3"><img src="../pics/removeelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">In this dialog box you can specify one or 
+ several elements of your mesh (with pressed Shift button) by choosing 
+ them in the 3D viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">3. Click <span style="font-weight: bold;"><B>OK 
+ </B></span>or <span style="font-weight: bold;"><B>Apply </B></span>&nbsp;to 
+ confirm deletion of the specified elements.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="55.882%" class="whs16">
+<col class="whs17">
+<col class="whs18">
+
+<tr valign="top" class="whs11">
+<td width="47.72%" class="whs19">
+<p><img src="../pics/remove_elements1.png" x-maintain-ratio="TRUE" width="219px" height="210px" border="0" class="img_whs20"></td>
+<td width="52.28%" class="whs21">
+<p><img src="../pics/remove_elements2.png" x-maintain-ratio="TRUE" width="240px" height="209px" border="0" class="img_whs22"></td></tr>
+</table>
+
+<p class="whs6">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark1">Removing 
+ Nodes and Elements</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 49b0b03399994002a4d6e8ab8acf3be69e6e3f57..577cd3356d297b66c3a310f0089b7e17f8a537d6 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Renumbering 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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border: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
--->\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\nRenumbering nodes and elements");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Renumbering nodes and elements</h1>\r
-\r
-<p>In SMESH you can renumber the nodes and elements of your mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To renumber the nodes of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
- and choose the <span style="font-weight: bold;"><B>Nodes </B></span>item or click \r
- <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following dialog box will \r
- appear: </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/renumbernodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
- to perform the operation.</span></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO>To renumber the elements of your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu \r
- and choose the <span style="font-weight: bold;"><B>Elements </B></span>item or \r
- click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will \r
- appear: </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/renumberelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Fill the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>field by selecting your mesh in the Object Browser or in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button \r
- to perform the operation.</span></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p>&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
- Nodes and Elements</a><a href="../modifying_meshes.htm#bookmark8"> </a>operation. \r
- &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Renumbering nodes and elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+ul.whs1 { list-style:disc; }
+p.whs2 { margin-left:40px; font-weight:bold; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:29px; height:23px; border-style:none; }
+img_whs5 { border:none; width:332px; height:231px; float:none; border-style:none; }
+img_whs6 { border:none; width:26px; height:25px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nRenumbering nodes and elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Renumbering nodes and elements</h1>
+
+<p>In MESH you can renumber the nodes and elements of your mesh.</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs1">
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#renumber_nodes">Nodes</a> </p></li>
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#renumber_elements"
+       style="font-weight: bold;">Elements</a></p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p class=TODO><a name=renumber_nodes>To renumber the nodes of your mesh:</a></p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu 
+ and choose the <span style="font-weight: bold;"><B>Nodes </B></span>item or click 
+ <img src="../image63.gif" width="29px" height="23px" border="0" class="img_whs4"> button in the toolbar. The following dialog box will 
+ appear: </p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../pics/renumbernodes.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">2. Fill the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>field by selecting your mesh in the Object Browser or in the 3D 
+ viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button 
+ to perform the operation.</span></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class=TODO><a name=renumber_elements>To renumber the elements of your 
+ mesh:</a></p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs3">1. In the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu select <span style="font-weight: bold;"><B>Renumbering </B></span>submenu 
+ and choose the <span style="font-weight: bold;"><B>Elements </B></span>item or 
+ click <img src="../image64.gif" width="26px" height="25px" border="0" class="img_whs6"> button in the toolbar. The following dialog box will 
+ appear: </p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../pics/renumberelements.png" x-maintain-ratio="TRUE" width="332px" height="231px" border="0" class="img_whs5"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">2. Fill the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>field by selecting your mesh in the Object Browser or in the 3D 
+ viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span><span>or </span><span style="font-weight: bold;"><B>OK </B></span><span>button 
+ to perform the operation.</span></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark2">Renumbering 
+ Nodes and Elements</a><a href="../modifying_meshes.htm#bookmark8"> </a>operation. 
+ &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index ea4fcd6f82f5b7dc45feb118d683d4ec76bc18b8..2e825820b160e4664b64a0bf70d8bec6f587d75f 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Rotation</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:390px; height:411px; float:none; border-style:none; }\r
-ul.whs3 { list-style:disc; }\r
-img_whs4 { border:none; float:none; width:418px; height:332px; }\r
-img_whs5 { border:none; width:443px; height:331px; float: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\nRotation");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Rotation</h1>\r
-\r
-<p>This geometrical operation allows to rotate in space your mesh or some \r
- of its elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;To \r
- rotate your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Rotation </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/rotation.png" x-maintain-ratio="TRUE" width="390px" height="411px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">In this dialog box you can specify the elements \r
- which should be rotated and the rotation parameters:</p>\r
-\r
-<ul type="disc" class="whs3">\r
-       \r
-       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Axis:</B></span> \r
- point and vector</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Angle \r
- </B></span>of rotation </p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
- copy </B></span>radio button allows to copy the rotated object.</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="../transforming_meshes.htm#bookmark1">Rotation</a> \r
- operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="../pics/rotation1.png" x-maintain-ratio="TRUE" width="418px" height="332px" border="0" class="img_whs4"> &nbsp;&nbsp;<img src="../pics/rotation2.png" x-maintain-ratio="TRUE" width="443px" height="331px" border="0" class="img_whs5"></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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Rotation</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:390px; height:411px; float:none; border-style:none; }
+ul.whs3 { list-style:disc; }
+img_whs4 { border:none; float:none; width:418px; height:332px; }
+img_whs5 { border:none; width:443px; height:331px; float:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nRotation");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Rotation</h1>
+
+<p>This geometrical operation allows to rotate in space your mesh or some 
+ of its elements.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>&nbsp;To 
+ rotate your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and 
+ &nbsp;from its 
+ sub-menu select the <span style="font-weight: bold;"><B>Rotation </B></span>item. 
+ The following dialog box shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/rotation.png" x-maintain-ratio="TRUE" width="390px" height="411px" border="0" class="img_whs2"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">In this dialog box you can specify the elements 
+ which should be rotated and the rotation parameters:</p>
+
+<ul type="disc" class="whs3">
+       
+       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Axis:</B></span> 
+ point and vector</p></li>
+       
+       <li class=kadov-p><p class="whs1"><span style="font-weight: bold;"><B>Angle 
+ </B></span>of rotation </p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>Create a 
+ copy </B></span>radio button allows to copy the rotated object.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark1">Rotation</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p><img src="../pics/rotation1.png" x-maintain-ratio="TRUE" width="418px" height="332px" border="0" class="img_whs4"> &nbsp;&nbsp;<img src="../pics/rotation2.png" x-maintain-ratio="TRUE" width="443px" height="331px" border="0" class="img_whs5"></p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 735b385ffa19595f2dcf5c4c713f7fe0d6da3850..a00aac9467acde62abde003f280813f29e742db7 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Running SMESH module</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:29px; height:28px; border-style:none; }\r
-p.whs2 { font-family:'Times New Roman' , serif; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; border-style:none; width:685px; height:398px; float: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\nRunning MESH module");\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>Running MESH module</h1>\r
-\r
-<p class=TODO\r
-       style="font-style: normal;\r
-                       font-weight: normal;\r
-                       font-family: 'Times New Roman', serif;">To start MESH <span \r
- class=glossterm>module</span> in SALOME click <img src="../image25.jpg" width="29px" height="28px" border="0" class="img_whs1"> icon in the \r
- bottom toolbar or select <span style="font-weight: bold;"><B>MESH</B></span> \r
- &nbsp;from the \r
- Choose box:<span style="margin-left: 40px;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">The desktop of the SALOME \r
- platform will be updated with additional toolbars and menus related to \r
- the <span style="font-weight: bold;"><B>MESH</B></span> component . </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../pics/a-viewgeneral.png" x-maintain-ratio="TRUE" width="685px" height="398px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Running SMESH module</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:29px; height:28px; border-style:none; }
+p.whs2 { font-family:'Times New Roman' , serif; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; border-style:none; width:685px; height:398px; float:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nRunning MESH module");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Running MESH module</h1>
+
+<p class=TODO
+       style="font-style: normal;
+                       font-weight: normal;
+                       font-family: 'Times New Roman', serif;">To start MESH <span 
+ class=glossterm>module</span> in SALOME click <img src="../image25.jpg" width="29px" height="28px" border="0" class="img_whs1"> icon in the 
+ bottom toolbar or select <span style="font-weight: bold;"><B>MESH</B></span> 
+ &nbsp;from the 
+ Choose box:<span style="margin-left: 40px;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">The desktop of the SALOME 
+ platform will be updated with additional toolbars and menus related to 
+ the <span style="font-weight: bold;"><B>MESH</B></span> component . </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"><img src="../pics/a-viewgeneral.png" x-maintain-ratio="TRUE" width="685px" height="398px" border="0" class="img_whs4"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index c281f9e76d10eb388a01d892f5de1487f6660f2d..3a461cf2539ff840e058216627b654ed7277f10c 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Sewing meshes</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-p.whs3 { font-weight:bold; }\r
-p.whs4 { margin-left:40px; }\r
-img_whs5 { border:none; width:332px; height:548px; border-style:none; float:right; }\r
-img_whs6 { border:none; width:612px; height:225px; border-style:none; }\r
-img_whs7 { border:none; width:581px; height:218px; border-style:none; float:left; }\r
-img_whs8 { border:none; width:600px; height:227px; border-style:none; }\r
-p.whs9 { margin-left:0px; }\r
-img_whs10 { border:none; width:620px; height:228px; border-style:none; }\r
-img_whs11 { border:none; width:304px; height:222px; 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.whs9 {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\nModifying meshes\nTransforming meshes\nSewing meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Sewing meshes</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH you can sew elements of &nbsp;different \r
- meshes. The current functionality allows you to sew:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#free bord">Free \r
- borders </a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#conform">Conform \r
- free borders</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#border to side">Border \r
- to side</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#side elements">Side \r
- elements</a></p></li>\r
-</ul>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class=TODO>To sew elements of different meshes:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Transformation \r
- </B></span>item and &nbsp;from \r
- its sub-menu select the <span style="font-weight: bold;"><B>Sewing </B></span>item. \r
- </p>\r
-\r
-<p class="whs4">2. Check in the dialog box one of the radio \r
- buttons corresponding to the type of sewing operation you would like to \r
- perform. </p>\r
-\r
-<p class="whs4">3. Fill the other fields available in the \r
- dialog box</p>\r
-\r
-<p class="whs4">4. Click the <span style="font-weight: bold;"><B>OK \r
- </B></span><span>or </span><span style="font-weight: bold;"><B>Apply </B></span>button \r
- to perform the operation of sewing. </p>\r
-\r
-<h3><a name="free bord"></a>Sew free borders<img src="../pics/sewing1.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>\r
-\r
-<p>This functionality allows you to unite two free borders of a 2D mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>For sewing free borders you should define three points on each border: \r
- first, second and the last node: </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p>&nbsp;the \r
- first node specifies beginning of the border ;</p></li>\r
-       \r
-       <li class=kadov-p><p>&nbsp;the \r
- second node specifies the part of the border which should be considered \r
- (as far as the free border usually forms a closed contour);</p></li>\r
-       \r
-       <li class=kadov-p><p>&nbsp;the \r
- last node specifies the end of the border.</p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>You can select these nodes in the 3D viewer or define by its id.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The first and the second nodes should belong to the same link of a face. \r
- The second and the last nodes of a border can be the same. The first and \r
- the last nodes of two borders can be the same. The corresponding end nodes \r
- of two borders will be merged. Intermediate nodes of two borders will \r
- be either merged or inserted into faces of the opposite border.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The sewing algorithm is as follows:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">1. The parameter (U) of each node within \r
- a border is computed. So that the first node has U=0.0, the last node \r
- has U=1.0, for the rest nodes 0.0 &lt; U &lt; 1.0;</p>\r
-\r
-<p class="whs4">2. Compare node parameters of the two borders. \r
- If two nodes of the opposite borders have close parameters, they are merged, \r
- i.e. a node of the first border is replaced in all elements by a node \r
- of the second border. If a node has no node with a close parameter in \r
- the opposite border, it is inserted into an edge of element of the opposite \r
- border, an element is split. Two nodes are considered close enough to \r
- merge, if difference of their parameters is less than one fifth of minimum \r
- length of adjacent face edges on the borders.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4"><img src="../image22.jpg" width="612px" height="225px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs4">&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#bookmark4">Sew \r
- Free Borders</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h3><a name=conform></a>Sew conform free borders<img src="../pics/sewing2.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>\r
-\r
-<p>This functionality can be used to unite two free borders of a 2D mesh. \r
- </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The borders of meshes for sewing are defined as for &quot;Sew free borders&quot; \r
- except that the second free border is not limited and can be defined by \r
- the first and the second nodes only. The first nodes of two borders can \r
- be the same.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The algorithm is following: counting nodes starting at the first ones, \r
- the n-th node of the first border is merged with the n-th node of the \r
- other border, until the end of either of borders. Nodes of the first border \r
- are replaced in all elements with corresponding nodes of the second border.</p>\r
-\r
-<p>For sewing conform free borders you should define three points on the \r
- first border and two points on the second one. User can select these nodes \r
- in 3D viewer or define node by its id.<img src="../image23.jpg" width="581px" height="218px" align="left" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3>&nbsp;</h3>\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#bookmark5">Sew \r
- Conform Free Borders</a> operation. &nbsp;</p>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3><a name="border to side"></a>Sew border to side<img src="../pics/sewing3.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>\r
-\r
-<p>&quot;Sew border to side&quot; is intended to sew a free border to a \r
- mesh surface.</p>\r
-\r
-<p>The free border is defined as for &quot;Sewing of free borders&quot;. \r
- The place where to sew the border is defined by two nodes, between which \r
- the border faces are placed, so that the first border node is merged with \r
- the first node on the side and the last node of the border is merged with \r
- the second specified node on the side.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p>The algorithm is following.</p>\r
-\r
-<p>1. Find a sequence of linked nodes on the side such that the found links \r
- to be most co-directed with the links of the free border.</p>\r
-\r
-<p>2. Sew two sequences of nodes using algorithm of &quot;Sewing of free \r
- berders&quot;.</p>\r
-\r
-<p>For sewing border to side you should define three points on the border \r
- and two points on the side. User can select these nodes in 3D viewer or \r
- define node by its id.</p>\r
-\r
-<p><img src="../image30.jpg" width="600px" height="227px" border="0" class="img_whs8"></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#bookmark6">Sew \r
- Border to Side</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3>&nbsp;</h3>\r
-\r
-<h3><a name="side elements"></a>Sew side elements<img src="../pics/sewing4.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>\r
-\r
-<p class="whs9">This operation is intended to unite two mesh \r
- surfaces.</p>\r
-\r
-<p class="whs9">&nbsp;</p>\r
-\r
-<p>Surfaces may be defined by either 2d or 3d elements. The number of given \r
- elements of the sides must be the same. The sets of given elements must \r
- be topologically equal, i.e. each node of one element set must have a \r
- corresponding node in the other element set and corresponding nodes must \r
- be equally linked. If there are 3d elements in a set, only their free \r
- faces must obey to that rule.</p>\r
-\r
-<p>Two corresponding nodes on each side must be specified. They must belong \r
- to one element and must be located on an element set boundary.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Sewing algorithm finds and merges the corresponding nodes starting from \r
- the specified ones.</p>\r
-\r
-<p><img src="../image31.jpg" width="620px" height="228px" border="0" class="img_whs10"></p>\r
-\r
-<p class="whs4"><img src="../image32.jpg" width="304px" height="222px" border="0" class="img_whs11"></p>\r
-\r
-<p>For sewing side elements you should define elements for sewing and two \r
- nodes for merging on the each side. User can select these elements and \r
- nodes in 3D viewer or define them by its id.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><span style="font-weight: bold;"><B>See Also</B></span> a sample TUI Script \r
- of a <a href="../transforming_meshes.htm#bookmark7">Sew Side Elements</a> \r
- 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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Sewing meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs2 { list-style:disc; }
+p.whs3 { font-weight:bold; }
+p.whs4 { margin-left:40px; }
+img_whs5 { border:none; width:332px; height:548px; border-style:none; float:right; }
+img_whs6 { border:none; width:612px; height:225px; border-style:none; }
+img_whs7 { border:none; width:581px; height:218px; border-style:none; float:left; }
+img_whs8 { border:none; width:600px; height:227px; border-style:none; }
+p.whs9 { margin-left:0px; }
+img_whs10 { border:none; width:620px; height:228px; border-style:none; }
+img_whs11 { border:none; width:304px; height:222px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs9 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nSewing meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Sewing meshes</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In SMESH you can sew elements of &nbsp;different 
+ meshes. The current functionality allows you to sew:</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs3"><a href="#free bord">Free 
+ borders </a></p></li>
+       
+       <li class=kadov-p><p class="whs3"><a href="#conform">Conform 
+ free borders</a></p></li>
+       
+       <li class=kadov-p><p class="whs3"><a href="#border to side">Border 
+ to side</a></p></li>
+       
+       <li class=kadov-p><p class="whs3"><a href="#side elements">Side 
+ elements</a></p></li>
+</ul>
+
+<p class="whs3">&nbsp;</p>
+
+<p class=TODO>To sew elements of different meshes:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs4">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Transformation 
+ </B></span>item and &nbsp;from 
+ its sub-menu select the <span style="font-weight: bold;"><B>Sewing </B></span>item. 
+ </p>
+
+<p class="whs4">2. Check in the dialog box one of the radio 
+ buttons corresponding to the type of sewing operation you would like to 
+ perform. </p>
+
+<p class="whs4">3. Fill the other fields available in the 
+ dialog box</p>
+
+<p class="whs4">4. Click the <span style="font-weight: bold;"><B>OK 
+ </B></span><span>or </span><span style="font-weight: bold;"><B>Apply </B></span>button 
+ to perform the operation of sewing. </p>
+
+<h3><a name="free bord"></a>Sew free borders<img src="../pics/sewing1.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>
+
+<p>This functionality allows you to unite two free borders of a 2D mesh.</p>
+
+<p>&nbsp;</p>
+
+<p>For sewing free borders you should define three points on each border: 
+ first, second and the last node: </p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p>&nbsp;the 
+ first node specifies beginning of the border ;</p></li>
+       
+       <li class=kadov-p><p>&nbsp;the 
+ second node specifies the part of the border which should be considered 
+ (as far as the free border usually forms a closed contour);</p></li>
+       
+       <li class=kadov-p><p>&nbsp;the 
+ last node specifies the end of the border.</p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<p>You can select these nodes in the 3D viewer or define by its id.</p>
+
+<p>&nbsp;</p>
+
+<p>The first and the second nodes should belong to the same link of a face. 
+ The second and the last nodes of a border can be the same. The first and 
+ the last nodes of two borders can be the same. The corresponding end nodes 
+ of two borders will be merged. Intermediate nodes of two borders will 
+ be either merged or inserted into faces of the opposite border.</p>
+
+<p>&nbsp;</p>
+
+<p>The sewing algorithm is as follows:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs4">1. The parameter (U) of each node within 
+ a border is computed. So that the first node has U=0.0, the last node 
+ has U=1.0, for the rest nodes 0.0 &lt; U &lt; 1.0;</p>
+
+<p class="whs4">2. Compare node parameters of the two borders. 
+ If two nodes of the opposite borders have close parameters, they are merged, 
+ i.e. a node of the first border is replaced in all elements by a node 
+ of the second border. If a node has no node with a close parameter in 
+ the opposite border, it is inserted into an edge of element of the opposite 
+ border, an element is split. Two nodes are considered close enough to 
+ merge, if difference of their parameters is less than one fifth of minimum 
+ length of adjacent face edges on the borders.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs4"><img src="../image22.jpg" width="612px" height="225px" border="0" class="img_whs6"></p>
+
+<p class="whs4">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark4">Sew 
+ Free Borders</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<h3><a name=conform></a>Sew conform free borders<img src="../pics/sewing2.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>
+
+<p>This functionality can be used to unite two free borders of a 2D mesh. 
+ </p>
+
+<p>&nbsp;</p>
+
+<p>The borders of meshes for sewing are defined as for &quot;Sew free borders&quot; 
+ except that the second free border is not limited and can be defined by 
+ the first and the second nodes only. The first nodes of two borders can 
+ be the same.</p>
+
+<p>&nbsp;</p>
+
+<p>The algorithm is following: counting nodes starting at the first ones, 
+ the n-th node of the first border is merged with the n-th node of the 
+ other border, until the end of either of borders. Nodes of the first border 
+ are replaced in all elements with corresponding nodes of the second border.</p>
+
+<p>For sewing conform free borders you should define three points on the 
+ first border and two points on the second one. User can select these nodes 
+ in 3D viewer or define node by its id.<img src="../image23.jpg" width="581px" height="218px" align="left" border="0" class="img_whs7"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<h3>&nbsp;</h3>
+
+<h3>&nbsp;</h3>
+
+<h3>&nbsp;</h3>
+
+<h3>&nbsp;</h3>
+
+<h3>&nbsp;</h3>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark5">Sew 
+ Conform Free Borders</a> operation. &nbsp;</p>
+
+<h3>&nbsp;</h3>
+
+<h3>&nbsp;</h3>
+
+<h3><a name="border to side"></a>Sew border to side<img src="../pics/sewing3.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>
+
+<p>&quot;Sew border to side&quot; is intended to sew a free border to a 
+ mesh surface.</p>
+
+<p>The free border is defined as for &quot;Sewing of free borders&quot;. 
+ The place where to sew the border is defined by two nodes, between which 
+ the border faces are placed, so that the first border node is merged with 
+ the first node on the side and the last node of the border is merged with 
+ the second specified node on the side.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p>The algorithm is following.</p>
+
+<p>1. Find a sequence of linked nodes on the side such that the found links 
+ to be most co-directed with the links of the free border.</p>
+
+<p>2. Sew two sequences of nodes using algorithm of &quot;Sewing of free 
+ berders&quot;.</p>
+
+<p>For sewing border to side you should define three points on the border 
+ and two points on the side. User can select these nodes in 3D viewer or 
+ define node by its id.</p>
+
+<p><img src="../image30.jpg" width="600px" height="227px" border="0" class="img_whs8"></p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark6">Sew 
+ Border to Side</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h3>&nbsp;</h3>
+
+<h3><a name="side elements"></a>Sew side elements<img src="../pics/sewing4.png" x-maintain-ratio="TRUE" width="332px" height="548px" align="right" border="0" class="img_whs5"></h3>
+
+<p class="whs9">This operation is intended to unite two mesh 
+ surfaces.</p>
+
+<p class="whs9">&nbsp;</p>
+
+<p>Surfaces may be defined by either 2d or 3d elements. The number of given 
+ elements of the sides must be the same. The sets of given elements must 
+ be topologically equal, i.e. each node of one element set must have a 
+ corresponding node in the other element set and corresponding nodes must 
+ be equally linked. If there are 3d elements in a set, only their free 
+ faces must obey to that rule.</p>
+
+<p>Two corresponding nodes on each side must be specified. They must belong 
+ to one element and must be located on an element set boundary.</p>
+
+<p>&nbsp;</p>
+
+<p>Sewing algorithm finds and merges the corresponding nodes starting from 
+ the specified ones.</p>
+
+<p><img src="../image31.jpg" width="620px" height="228px" border="0" class="img_whs10"></p>
+
+<p class="whs4"><img src="../image32.jpg" width="304px" height="222px" border="0" class="img_whs11"></p>
+
+<p>For sewing side elements you should define elements for sewing and two 
+ nodes for merging on the each side. User can select these elements and 
+ nodes in 3D viewer or define them by its id.</p>
+
+<p>&nbsp;</p>
+
+<p><span style="font-weight: bold;"><B>See Also</B></span> a sample TUI Script 
+ of a <a href="../transforming_meshes.htm#bookmark7">Sew Side Elements</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index f6280e38ad043fb29199abf44d832b60cc15754f..cfeac0793b263708f019ef23feaa0423395ca58e 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Skew</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nSkew");\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>Skew</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>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
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs3">&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
-\r
-<p class="whs3">&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
- 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
-\r
-<p class="whs3"><img src="../image93.jpg" width="448px" height="323px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs7"><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
-<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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Skew</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:453px; height:411px; border-style:none; }
+img_whs4 { border:none; width:24px; height:23px; border-style:none; }
+img_whs5 { border:none; width:448px; height:323px; border-style:none; }
+p.whs6 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nSkew");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Skew</h1>
+
+<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 
+ criterion reflects the angle between the lines that join opposite sides 
+ of the element. SKEW &nbsp;is 
+ a maximum value of all skew angles. <span style="margin-left: 0px; text-indent: 48px;">This 
+ mesh quality criterion can be applied to elements composed of 4 and 3 
+ nodes (quadrangles and triangles)</span></p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="../image27.jpg" width="453px" height="411px" border="0" class="img_whs3"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class=TODO>To apply the Skew quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Display your mesh in the viewer.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &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 
+ will be displayed in the viewer with its elements colored according to 
+ the applied mesh quality control criterion:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../image93.jpg" width="448px" height="323px" border="0" class="img_whs5"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark12">Skew 
+ quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 6cab53dbdcb3f953fef184325f0271141478c2bf..5b34249e014096907de5c94a166cfbfc416989e6 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Smoothing</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; width:24px; height:25px; border-style:none; }\r
-img_whs4 { border:none; width:332px; height:396px; float:none; border-style:none; }\r
-ul.whs5 { list-style:disc; }\r
-p.whs6 { margin-left:40px; font-weight:normal; }\r
-p.whs7 { font-weight:bold; }\r
-p.whs8 { margin-left:80px; }\r
-img_whs9 { border: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
--->\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\nSmoothing");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Smoothing</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Smoothing is used to adjust the locations of element \r
- corners (nodes) to reduce distortions in these elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply smoothing to the elements of your mesh:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Smoothing </B></span>item \r
- or click <img src="../image84.gif" width="24px" height="25px" border="0" class="img_whs3"> button in the toolbar. The <span style="margin-left: 40px;">dialog \r
- box contains the following fields which should be specified:</span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/smoothing.png" x-maintain-ratio="TRUE" width="332px" height="396px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Id Elements </B></span><span>field allows to specify \r
- the elements which should be smoothed by selecting them in the 3D viewer. \r
- Note: to select several elements press </span><span style="font-weight: bold;"><B>Shift \r
- </B></span><span>button.</span></p></li>\r
-       \r
-       <ul type="disc" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs7">Smoothing is applied \r
- to the whole mesh or its part</p></li>\r
-               \r
-               <li class=kadov-p><p><span style="font-weight: bold;"><B>Fixed nodes \r
- ids</B></span>: some nodes keep their location during smoothing. If a mesh \r
- is built on a geometry shape, the nodes built on geometrical edges are \r
- always fixed. If smoothing is applied to a part of a mesh then the boundary \r
- nodes of an elements set are also fixed. Any other nodes may be additionally \r
- fixed.</p></li>\r
-               \r
-               <li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing \r
- method</B></span>:</p></li>\r
-               \r
-               <ul type="disc" class="whs5">\r
-                       \r
-                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Laplacian</B></span> \r
- smoothing pulls a node toward the center of surrounding nodes directly \r
- connected to that node along an element edge. Centroidal smoothing pulls \r
- a node toward the element-area-weighted centroid of the surrounding elements. \r
- Typically, the Laplacian method will produce the mesh with the least element \r
- distortion. It is also the faster method. </p></li>\r
-                       \r
-                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Centroidal</B></span> \r
- smoothing usually produces a mesh that has more uniform element sizes. \r
- Both methods produce good results with &quot;free&quot; meshes.</p></li>\r
-               </ul>\r
-       </ul>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs8"><img src="../image83.gif" width="527px" height="281px" border="0" class="img_whs9"></p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Iteration limit: </B></span>both of the smoothing \r
- methods use an iterative procedure to converge toward a smoothed mesh. \r
- All nodes are smoothed according to one of the techniques shown above. \r
- Then the smoothing is reevaluated with the updated nodal locations. This \r
- process continues until the maximum number of iterations has been exceeded, \r
- or all elements has aspect ratio less or equal than the specified one.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Max. aspect ratio</B></span>.</p></li>\r
-</ul>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/smoothing1.png" x-maintain-ratio="TRUE" width="353px" height="235px" border="0" class="img_whs10"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/smoothing2.png" x-maintain-ratio="TRUE" width="351px" height="235px" border="0" class="img_whs11"></p>\r
-\r
-<p>&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#bookmark8">Smoothing</a> \r
- 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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Smoothing</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:24px; height:25px; border-style:none; }
+img_whs4 { border:none; width:332px; height:396px; float:none; border-style:none; }
+ul.whs5 { list-style:disc; }
+p.whs6 { margin-left:40px; font-weight:normal; }
+p.whs7 { font-weight:bold; }
+p.whs8 { margin-left:80px; }
+img_whs9 { border:none; width:527px; height:281px; border-style:none; }
+img_whs10 { border:none; float:none; width:353px; height:235px; border-style:none; }
+img_whs11 { border:none; width:351px; height:235px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nSmoothing");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Smoothing</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> Smoothing is used to adjust the locations of element 
+ corners (nodes) to reduce distortions in these elements.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To apply smoothing to the elements of your mesh:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">1. Display a mesh or a submesh in the 3D 
+ viewer.</p>
+
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Smoothing </B></span>item 
+ or click <img src="../image84.gif" width="24px" height="25px" border="0" class="img_whs3"> button in the toolbar. The <span style="margin-left: 40px;">dialog 
+ box contains the following fields which should be specified:</span></p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="../pics/smoothing.png" x-maintain-ratio="TRUE" width="332px" height="396px" border="0" class="img_whs4"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<ul type="disc" class="whs5">
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Id Elements </B></span>field allows to specify 
+ the elements which should be smoothed by selecting them in the 3D viewer 
+ (lock <span style="font-weight: bold;"><B>Shift </B></span>button to select several 
+ elements).</p></li>
+       
+       <ul type="disc" class="whs5">
+               
+               <li class=kadov-p><p class="whs7">Select whole mesh, 
+ submesh or group - <span style="font-weight: normal;">smoothing is applied 
+ to the whole mesh or its part.</span></p></li>
+               
+               <li class=kadov-p><p><span style="font-weight: bold;"><B>Fixed nodes 
+ ids</B></span>: some nodes keep their location during smoothing. If a mesh 
+ is built on a geometry shape, the nodes built on geometrical edges are 
+ always fixed. If smoothing is applied to a part of a mesh then the boundary 
+ nodes of an elements set are also fixed. Any other nodes may be additionally 
+ fixed.</p></li>
+               
+               <li class=kadov-p><p><span style="font-weight: bold;"><B>Smoothing 
+ Method</B></span>:</p></li>
+               
+               <ul type="disc" class="whs5">
+                       
+                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Laplacian</B></span> 
+ smoothing pulls a node toward the center of surrounding nodes directly 
+ connected to that node along an element edge. Centroidal smoothing pulls 
+ a node toward the element-area-weighted centroid of the surrounding elements. 
+ Typically, the Laplacian method will produce the mesh with the least element 
+ distortion. It is also the faster method. </p></li>
+                       
+                       <li class=kadov-p><p><span style="font-weight: bold;"><B>Centroidal</B></span> 
+ smoothing usually produces a mesh that has more uniform element sizes. 
+ Both methods produce good results with &quot;free&quot; meshes.</p></li>
+               </ul>
+       </ul>
+</ul>
+
+<p>&nbsp;</p>
+
+<p class="whs8"><img src="../image83.gif" width="527px" height="281px" border="0" class="img_whs9"></p>
+
+<ul type="disc" class="whs5">
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Iteration limit: </B></span>both of the smoothing 
+ methods use an iterative procedure to converge toward a smoothed mesh. 
+ All nodes are smoothed according to one of the techniques shown above. 
+ Then the smoothing is reevaluated with the updated nodal locations. This 
+ process continues until the maximum number of iterations has been exceeded, 
+ or all elements has aspect ratio less or equal than the specified one.</p></li>
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Max. aspect ratio</B></span>.</p></li>
+</ul>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm 
+ the operation.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/smoothing1.png" x-maintain-ratio="TRUE" width="353px" height="235px" border="0" class="img_whs10"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../pics/smoothing2.png" x-maintain-ratio="TRUE" width="351px" height="235px" border="0" class="img_whs11"></p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark8">Smoothing</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d8f8a43d581f0248703e9f035ba1dbd8dcdb5313..b8e622996d901bbfe8199cccce371e7c712091c4 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Symmetry</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:384px; height:375px; float:none; border-style:none; }\r
-img_whs3 { border:none; width:384px; height:385px; float:none; border-style:none; }\r
-ul.whs4 { list-style:disc; }\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\nSymmetry");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Symmetry</h1>\r
-\r
-<p>This geometrical operation allows to perform a symmetrical copy of your \r
- mesh or some of its elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;To \r
- apply symmetry to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Symmetry </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/symmetry1.png" x-maintain-ratio="TRUE" width="384px" height="375px" border="0" class="img_whs2"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/symmetry2.png" x-maintain-ratio="TRUE" width="384px" height="385px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/symmetry3.png" x-maintain-ratio="TRUE" width="384px" height="385px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">This operation has three options, you can \r
- symmetrically copy your mesh or some of its elements specifying: </p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs1">one point</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">one axis (point and \r
- vector)</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">one plane (point and \r
- normal)</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
- copy </B></span>radio button allows to keep the initial elements or mesh.</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="../transforming_meshes.htm#bookmark2">Symmetry</a> \r
- operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Symmetry</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:384px; height:375px; float:none; border-style:none; }
+img_whs3 { border:none; width:384px; height:385px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nSymmetry");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Symmetry</h1>
+
+<p>This geometrical operation allows to perform a symmetrical copy of your 
+ mesh or some of its elements.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>&nbsp;To 
+ apply symmetry to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and 
+ &nbsp;from its 
+ sub-menu select the <span style="font-weight: bold;"><B>Symmetry </B></span>item. 
+ The following dialog box shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/symmetry1.png" x-maintain-ratio="TRUE" width="384px" height="375px" border="0" class="img_whs2"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/symmetry2.png" x-maintain-ratio="TRUE" width="384px" height="385px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/symmetry3.png" x-maintain-ratio="TRUE" width="384px" height="385px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">This operation has three options, you can 
+ symmetrically copy your mesh or some of its elements specifying: </p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs1">one point</p></li>
+       
+       <li class=kadov-p><p class="whs1">one axis (point and 
+ vector)</p></li>
+       
+       <li class=kadov-p><p class="whs1">one plane (point and 
+ normal)</p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>Create a 
+ copy </B></span>radio button allows to keep the initial elements or mesh.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark2">Symmetry</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 9b296b2e8f0e439efd97eb9e96cf02feab7cbe62..9ea8a26a700a7f83fbd015888695b0b722f426a7 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Taper</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }\r
-img_whs2 { border:none; width:791px; height:170px; border-style:none; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:24px; height:23px; border-style:none; }\r
-img_whs5 { border:none; width:416px; height:316px; 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\nTaper");\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>Taper</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"><span style="font-weight: bold;"><B>Taper</B></span> mesh quality \r
- criterion represents the ratio of the areas of two triangles separated \r
- by a diagonal. So it can be calculated only for elements consisting of \r
- 4 nodes.</p>\r
-\r
-<p><img src="../image25.gif" width="791px" height="170px" border="0" class="img_whs2"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Taper 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
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Taper </B></span>or click <img src="../image36.gif" width="24px" height="23px" border="0" class="img_whs4"> button in 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
-\r
-<p class="whs3"><img src="../image90.jpg" width="416px" height="316px" border="0" class="img_whs5"></p>\r
-\r
-<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
- quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Taper</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }
+img_whs2 { border:none; width:791px; height:170px; border-style:none; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:24px; height:23px; border-style:none; }
+img_whs5 { border:none; width:416px; height:316px; border-style:none; }
+p.whs6 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nTaper");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Taper</h1>
+
+<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>Taper</B></span> mesh quality 
+ criterion represents the ratio of the areas of two triangles separated 
+ by a diagonal. So it can be calculated only for elements consisting of 
+ 4 nodes.</p>
+
+<p>&nbsp;</p>
+
+<p><img src="../image25.gif" width="791px" height="170px" border="0" class="img_whs2"></p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class=TODO>To apply the Taper quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs3">1. Display your mesh in the viewer.</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Taper </B></span>or click <img src="../image36.gif" width="24px" height="23px" border="0" class="img_whs4"> button in the toolbar. Your mesh 
+ will be displayed in the viewer with its elements colored according to 
+ the applied mesh quality control criterion:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"><img src="../image90.jpg" width="416px" height="316px" border="0" class="img_whs5"></p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark7">Taper 
+ quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index a07237880bf411d6012707a09bd63d5079eb7cb2..82be5851da2f24cd681512c4d2a03888d7224601 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Translation</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; border-style:none; width:393px; height:353px; float:none; }\r
-img_whs3 { border:none; width:393px; height:353px; float:none; border-style:none; }\r
-ul.whs4 { list-style:disc; }\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\nTranslation");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Translation</h1>\r
-\r
-<p>This geometrical operation allows to translate in space your mesh or \r
- some of its elements.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;To \r
- translate your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and \r
- &nbsp;from its \r
- sub-menu select the <span style="font-weight: bold;"><B>Translation </B></span>item. \r
- The following dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/translation1.png" x-maintain-ratio="TRUE" width="393px" height="353px" border="0" class="img_whs2"> &nbsp;&nbsp;<img src="../pics/translation2.png" x-maintain-ratio="TRUE" width="393px" height="353px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">This operation has two options, you can translate \r
- in space your mesh or some of its elements specifying: </p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs1">two points (starting \r
- and ending)</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">one vector</p></li>\r
-</ul>\r
-\r
-<p class="whs1">Toggle the corresponding checkbox to <span \r
- style="font-weight: bold;"><B>Select whole mesh, submesh or group.</B></span></p>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>Create a \r
- copy </B></span>button allows to copy the translated object.</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="../transforming_meshes.htm#bookmark">Translation</a> \r
- operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Translation</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; border-style:none; width:393px; height:353px; float:none; }
+img_whs3 { border:none; width:393px; height:353px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nTranslation");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Translation</h1>
+
+<p>This geometrical operation allows to translate in space your mesh or 
+ some of its elements.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>&nbsp;To 
+ translate your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>choose <span style="font-weight: bold;"><B>Transformation </B></span>and 
+ &nbsp;from its 
+ sub-menu select the <span style="font-weight: bold;"><B>Translation </B></span>item. 
+ The following dialog box shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/translation1.png" x-maintain-ratio="TRUE" width="393px" height="353px" border="0" class="img_whs2"> &nbsp;&nbsp;<img src="../pics/translation2.png" x-maintain-ratio="TRUE" width="393px" height="353px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">This operation has two options, you can translate 
+ in space your mesh or some of its elements specifying: </p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs1">two points (starting 
+ and ending)</p></li>
+       
+       <li class=kadov-p><p class="whs1">one vector</p></li>
+</ul>
+
+<p class="whs1">Toggle the corresponding checkbox to <span 
+ style="font-weight: bold;"><B>Select whole mesh, submesh or group.</B></span></p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>Create a 
+ copy </B></span>button allows to copy the translated object.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../transforming_meshes.htm#bookmark">Translation</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d625b7eccbb4d1866c18e91838004e7f38a99ca3..69e6ea13b0c13c1ecca6caa11aee4852209c88db 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Uniting a set of triangles</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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_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
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs7 {margin-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\nModifying meshes\nUniting a set of triangles");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Uniting a set of triangles</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In contrast to <a href="uniting_two_triangles.htm">the \r
- previous operation</a> this one allows to unite at once many triangles \r
- if they have adjacent edges. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To union several triangles:</p>\r
-\r
-<p class=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
-\r
-<p class="whs2">1. Display a mesh or a submesh in the 3D \r
- viewer.</p>\r
-\r
-<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Union of triangles \r
- </B></span>item or click <img src="../image80.gif" width="23px" height="24px" border="0" class="img_whs4"> button in the toolbar. The following \r
- dialog box will appear:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs5">\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>The main list </B></span>shall contain the triangles \r
- which will be united. You can click on an triangle in the 3D viewer and \r
- it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add \r
- </B></span>button and the ID of this triangle will be added to the list. To \r
- remove a selected element or elements from the list click the <span style="font-weight: bold;"><B>Remove \r
- </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button \r
- allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set \r
- filter </B></span>button allows to apply a definite filter to selection of \r
- triangles.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to \r
- modify the orientation of all triangles of the currently displayed mesh \r
- or submesh.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>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
-       \r
-       <li class=kadov-p><p class="whs6"><span \r
- style="font-weight: bold;"><B>Select from </B></span>set of fields allows to \r
- choose a submesh or an existing group whose triangle elements will be \r
- automatically added to the list.</p></li>\r
-</ul>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm \r
- the operation.</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> If some selected triangle \r
- elements have no adjacent edges with one of the others, the operation \r
- on these elements shall take no effect.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<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
-\r
-<p>&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#bookmark5">Uniting \r
- a Set of Triangles</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Uniting a set of triangles</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:306px; height:450px; border-style:none; float:none; }
+img_whs4 { border:none; width:23px; height:24px; border-style:none; }
+ul.whs5 { list-style:disc; }
+p.whs6 { margin-left:40px; font-weight:normal; }
+p.whs7 { margin-left:0px; }
+img_whs8 { border:none; width:286px; height:242px; float:none; border-style:none; }
+img_whs9 { border:none; float:none; width:286px; height:242px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs7 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nUniting a set of triangles");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Uniting a set of triangles</h1>
+
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> In contrast to <a href="uniting_two_triangles.htm">the 
+ previous operation</a> this one allows to unite at once many triangles 
+ if they have adjacent edges. </p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To union several triangles:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2"><img src="../pics/a-unionoftriangles.png" x-maintain-ratio="TRUE" width="306px" height="450px" border="0" class="img_whs3"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">1. Display a mesh or a submesh in the 3D 
+ viewer.</p>
+
+<p class="whs2">2. In the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Union of triangles 
+ </B></span>item or click <img src="../image80.gif" width="23px" height="24px" border="0" class="img_whs4"> button in the toolbar. The following 
+ dialog box will appear:</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs5">
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>The main list </B></span>shall contain the triangles 
+ which will be united. You can click on an triangle in the 3D viewer and 
+ it will be highlighted. After that click the <span style="font-weight: bold;"><B>Add 
+ </B></span>button and the ID of this triangle will be added to the list. To 
+ remove a selected element or elements from the list click the <span style="font-weight: bold;"><B>Remove 
+ </B></span>button. The <span style="font-weight: bold;"><B>Sort </B></span>button 
+ allows to sort the list of IDs. The <span style="font-weight: bold;"><B>Set 
+ filter </B></span>button allows to apply a definite filter to selection of 
+ triangles.</p></li>
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Apply to all </B></span>radio button allows to 
+ modify the orientation of all triangles of the currently displayed mesh 
+ or submesh.</p></li>
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Criterion</B></span> menu allows to apply the operation 
+ only to those object which meet the chosen criterion (from the list of 
+ Quality Controls, i.e. Skew, Warping, Minimum Angle, etc.)</p></li>
+       
+       <li class=kadov-p><p class="whs6"><span 
+ style="font-weight: bold;"><B>Select from </B></span>set of fields allows to 
+ choose a submesh or an existing group whose triangle elements will be 
+ automatically added to the list.</p></li>
+</ul>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button to confirm 
+ the operation.</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7"><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> If some selected triangle 
+ elements have no adjacent edges with one of the others, the operation 
+ on these elements shall take no effect.</p>
+
+<p>&nbsp;</p>
+
+<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>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark5">Uniting 
+ a Set of Triangles</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 98ad79f5b48a05f8b35ff4afb6dcf5a991dff83e..738ef90f0251122cde5a8dd3e61d785be66bdcd8 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Uniting two triangles</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border:none; width:23px; height:23px; border-style:none; }\r
-img_whs3 { border:none; width:306px; height:163px; float:none; border-style:none; }\r
-table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs5 { width:37.647%; }\r
-col.whs6 { width:62.353%; }\r
-tr.whs7 { x-cell-content-align:top; }\r
-td.whs8 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs9 { border:none; border-style:none; float:none; width:297px; height:204px; }\r
-td.whs10 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs11 { border:none; border-style:none; width:318px; height:206px; float: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\nUniting two triangles");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Uniting two triangles</h1>\r
-\r
-<p>&nbsp;In MESH \r
- you can union two neighboring triangles (cells) by deletion of the common \r
- edge.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To unite two triangles:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Union of two triangles \r
- </B></span>item or click <img src="../image71.gif" width="23px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="../pics/unionoftwotriangles.png" x-maintain-ratio="TRUE" width="306px" height="163px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">2. Enter the ID of the required edge in the \r
- <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field \r
- or select this edge in the 3D viewer. </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs4">\r
-<col class="whs5">\r
-<col class="whs6">\r
-\r
-<tr valign="top" class="whs7">\r
-<td width="37.647%" class="whs8">\r
-<p><img src="../pics/uniting_two_triangles1.png" x-maintain-ratio="TRUE" width="297px" height="204px" border="0" class="img_whs9"></td>\r
-<td width="62.353%" class="whs10">\r
-<p><img src="../pics/uniting_two_triangles2.png" x-maintain-ratio="TRUE" width="318px" height="206px" border="0" class="img_whs11"></td></tr>\r
-</table>\r
-\r
-<p>&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#bookmark5">Uniting \r
- Two Triangles</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Uniting two triangles</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:23px; height:23px; border-style:none; }
+img_whs3 { border:none; width:306px; height:163px; float:none; border-style:none; }
+table.whs4 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs5 { width:37.647%; }
+col.whs6 { width:62.353%; }
+tr.whs7 { x-cell-content-align:top; }
+td.whs8 { padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs9 { border:none; border-style:none; float:none; width:297px; height:204px; }
+td.whs10 { padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs11 { border:none; border-style:none; width:318px; height:206px; float:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nUniting two triangles");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Uniting two triangles</h1>
+
+<p>&nbsp;In MESH 
+ you can union two neighboring triangles (cells) by deletion of the common 
+ edge.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To unite two triangles:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Union of two triangles 
+ </B></span>item or click <img src="../image71.gif" width="23px" height="23px" border="0" class="img_whs2"> button in the toolbar. The following 
+ dialog box shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="../pics/unionoftwotriangles.png" x-maintain-ratio="TRUE" width="306px" height="163px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. Enter the ID of the required edge in the 
+ <span style="font-weight: bold;"><B>Edge </B></span>&nbsp;field 
+ or select this edge in the 3D viewer. </p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
+
+<p class=TODO
+       style="margin-left: 40px;">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs4">
+<col class="whs5">
+<col class="whs6">
+
+<tr valign="top" class="whs7">
+<td width="37.647%" class="whs8">
+<p><img src="../pics/uniting_two_triangles1.png" x-maintain-ratio="TRUE" width="297px" height="204px" border="0" class="img_whs9"></td>
+<td width="62.353%" class="whs10">
+<p><img src="../pics/uniting_two_triangles2.png" x-maintain-ratio="TRUE" width="318px" height="206px" border="0" class="img_whs11"></td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../modifying_meshes.htm#bookmark5">Uniting 
+ Two Triangles</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 622120a2209b96a6a75d4501c573d364afaec8ed..4cd9fa069d1cc4ae854ea1114dcfd2e3f5b36e76 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Using operations on groups</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs2 { list-style:disc; }\r
-p.whs3 { font-weight:bold; }\r
-p.whs4 { margin-left:40px; }\r
-table.whs5 { x-cell-content-align:top; width:100%; border-spacing:0px; }\r
-col.whs6 { width:32.6%; }\r
-col.whs7 { width:67.4%; }\r
-tr.whs8 { x-cell-content-align:top; }\r
-td.whs9 { width:32.6%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-img_whs10 { border:none; width:306px; height:253px; float:none; border-style:none; }\r
-td.whs11 { width:67.4%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs12 { border:none; width:134px; height:151px; border-style:none; }\r
-img_whs13 { border:none; width:136px; height:151px; border-style:none; }\r
-img_whs14 { border:none; width:133px; height:159px; border-style:none; }\r
-p.whs15 { margin-left:0px; }\r
-col.whs16 { width:32.796%; }\r
-col.whs17 { width:67.204%; }\r
-td.whs18 { width:32.796%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-td.whs19 { width:67.204%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs20 { border:none; width:141px; height:157px; border-style:none; }\r
-col.whs21 { width:33.089%; }\r
-col.whs22 { width:66.911%; }\r
-td.whs23 { width:33.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }\r
-td.whs24 { width:66.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }\r
-img_whs25 { border:none; width:140px; height:146px; 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.whs15 {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\nGrouping elements\nUsing operations on groups");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Using operations on groups</h1>\r
-\r
-<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> </B></span>In MESH you can \r
- perform some Boolean operations on groups, which belong to one and the \r
- same mesh.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<ul type="disc" class="whs2">\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#Union">Union</a> \r
- </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#Intersection">Intersection</a></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs3"><a href="#Cut">Cut</a></p></li>\r
-</ul>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=Union></a>Union of two groups</h3>\r
-\r
-<p>This operation allows to create a new group in such a way that all mesh \r
- elements that are present in the initial groups will be added to the new \r
- one.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To union two groups:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Union Groups </B></span>item. \r
- The following dialog box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
-<col class="whs6">\r
-<col class="whs7">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="32.6%" class="whs9">\r
-<p><img src="../pics/uniongroups.png" x-maintain-ratio="TRUE" width="306px" height="253px" border="0" class="img_whs10"></td>\r
-<td width="67.4%" class="whs11">\r
-<p><img src="../image133.gif" width="134px" height="151px" border="0" class="img_whs12"> &nbsp;&nbsp;<img src="../image134.gif" width="136px" height="151px" border="0" class="img_whs13"> &nbsp;&nbsp;&nbsp;&nbsp;<img src="../image135.gif" width="133px" height="159px" border="0" class="img_whs14"></p>\r
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group1 \r
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group2 \r
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group12</p>\r
-<p>&nbsp;</p>\r
-<p>For example, we have two groups Group1 and Group2. </p>\r
-<p>The result of their <span style="font-weight: bold;"><B>Union</B></span> will \r
- be Group12 &nbsp;&nbsp;</td></tr>\r
-</table>\r
-\r
-<p class="whs4">&nbsp;&nbsp;</p>\r
-\r
-<p>&nbsp;<span style="margin-left: 40px;">In \r
- this dialog box you should specify the name</span><span style="margin-left: 40px; font-weight: bold;"> \r
- <B></B></span><span style="margin-left: 40px;">of the resulting group and two \r
- groups which will be united.</span></p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Click the <span style="font-weight: bold;"><B>Ok \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm creation of the group. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs15"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="../grouping_elements.htm#bookmark2">Union \r
- of two Groups</a> operation. &nbsp;</p>\r
-\r
-<p class="whs15">&nbsp;</p>\r
-\r
-<p class="whs15">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=Intersection></a>Intersection of two groups</h3>\r
-\r
-<p>This operation allows to create a new group in such a way that all mesh \r
- elements that are present in both initial groups are added to the new \r
- one.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To intersect two groups:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Intersect Groups \r
- </B></span>item. The following dialog box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
-<col class="whs16">\r
-<col class="whs17">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="32.796%" class="whs18">\r
-<p><img src="../pics/intersectgroups.png" x-maintain-ratio="TRUE" width="306px" height="253px" border="0" class="img_whs10"></td>\r
-<td width="67.204%" class="whs19">\r
-<p><img src="../image133.gif" width="134px" height="151px" border="0" class="img_whs12"> &nbsp;<img src="../image134.gif" width="136px" height="151px" border="0" class="img_whs13"><img src="../image136.gif" width="141px" height="157px" border="0" class="img_whs20"></p>\r
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group1 \r
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group2 \r
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group12a</p>\r
-<p>&nbsp;</p>\r
-<p>For example, we have two groups Group1 and Group2. </p>\r
-<p>The result of their <span style="font-weight: bold;"><B>Intersection</B></span> \r
- will be Group12a &nbsp;&nbsp;</td></tr>\r
-</table>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs15">In this dialog box you should specify the \r
- name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
- two groups which will be intersected.</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Click the <span style="font-weight: bold;"><B>Ok \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm creation of the group. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of an <a href="../grouping_elements.htm#bookmark3">&nbsp;Intersection \r
- of two Groups</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=Cut></a>Cut of two groups</h3>\r
-\r
-<p>This operation allows to create a new group in such a way that all mesh \r
- elements that are present in the main group but are absent in the tool \r
- group are added to the new one.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To cut two groups:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh \r
- </B></span>menu select the <span style="font-weight: bold;"><B>Cut Groups </B></span>item. \r
- The following dialog box will appear:</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="100%" class="whs5">\r
-<col class="whs21">\r
-<col class="whs22">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="33.089%" class="whs23">\r
-<p><img src="../pics/cutgroups.png" x-maintain-ratio="TRUE" width="306px" height="253px" border="0" class="img_whs10"></td>\r
-<td width="66.911%" class="whs24">\r
-<p><img src="../image133.gif" width="134px" height="151px" border="0" class="img_whs12"> &nbsp;&nbsp;<img src="../image134.gif" width="136px" height="151px" border="0" class="img_whs13"> &nbsp;<img src="../image137.gif" width="140px" height="146px" border="0" class="img_whs25"></p>\r
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group1 \r
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group2 \r
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group12b</p>\r
-<p>&nbsp;</p>\r
-<p>For example, we have two groups Group1 and Group2. </p>\r
-<p>The result of their <span style="font-weight: bold;"><B>Cut</B></span> will \r
- be Group12b &nbsp;&nbsp;</td></tr>\r
-</table>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs4">In this dialog box you should specify the \r
- name<span style="font-weight: bold;"> <B></B></span>of the resulting group and \r
- two groups which will be cut.</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">2. Click the <span style="font-weight: bold;"><B>Ok \r
- </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply \r
- </B></span>button to confirm creation of the group. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of a <a href="../grouping_elements.htm#bookmark3">&nbsp;Cut \r
- of two Groups</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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Using operations on groups</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs2 { list-style:disc; }
+p.whs3 { font-weight:bold; }
+p.whs4 { margin-left:40px; }
+table.whs5 { x-cell-content-align:top; width:100%; border-spacing:0px; }
+col.whs6 { width:32.6%; }
+col.whs7 { width:67.4%; }
+tr.whs8 { x-cell-content-align:top; }
+td.whs9 { width:32.6%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs10 { border:none; width:306px; height:253px; float:none; border-style:none; }
+td.whs11 { width:67.4%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs12 { border:none; width:134px; height:151px; border-style:none; }
+img_whs13 { border:none; width:136px; height:151px; border-style:none; }
+img_whs14 { border:none; width:133px; height:159px; border-style:none; }
+p.whs15 { margin-left:0px; }
+col.whs16 { width:32.796%; }
+col.whs17 { width:67.204%; }
+td.whs18 { width:32.796%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+td.whs19 { width:67.204%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs20 { border:none; width:141px; height:157px; border-style:none; }
+col.whs21 { width:33.089%; }
+col.whs22 { width:66.911%; }
+td.whs23 { width:33.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+td.whs24 { width:66.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs25 { border:none; width:140px; height:146px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs15 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nGrouping elements\nUsing operations on groups");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Using operations on groups</h1>
+
+<p><span style="font-weight: bold;"><B><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> </B></span>In MESH you can 
+ perform some Boolean operations on groups, which belong to one and the 
+ same mesh.</p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs2">
+       
+       <li class=kadov-p><p class="whs3"><a href="#Union">Union</a> 
+ </p></li>
+       
+       <li class=kadov-p><p class="whs3"><a href="#Intersection">Intersection</a></p></li>
+       
+       <li class=kadov-p><p class="whs3"><a href="#Cut">Cut</a></p></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<h3><a name=Union></a>Union of two groups</h3>
+
+<p>This operation allows to create a new group in such a way that all mesh 
+ elements that are present in the initial groups will be added to the new 
+ one.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To union two groups:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Union Groups </B></span>item. 
+ The following dialog box will appear:</p>
+
+<p class="whs4">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">
+<col class="whs6">
+<col class="whs7">
+
+<tr valign="top" class="whs8">
+<td width="32.6%" class="whs9">
+<p><img src="../pics/uniongroups.png" x-maintain-ratio="TRUE" width="306px" height="253px" border="0" class="img_whs10"></td>
+<td width="67.4%" class="whs11">
+<p><img src="../image133.gif" width="134px" height="151px" border="0" class="img_whs12"> &nbsp;&nbsp;<img src="../image134.gif" width="136px" height="151px" border="0" class="img_whs13"> &nbsp;&nbsp;&nbsp;&nbsp;<img src="../image135.gif" width="133px" height="159px" border="0" class="img_whs14"></p>
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group1 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group2 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group12</p>
+<p>&nbsp;</p>
+<p>For example, we have two groups Group1 and Group2. </p>
+<p>The result of their <span style="font-weight: bold;"><B>Union</B></span> will 
+ be Group12 &nbsp;&nbsp;</td></tr>
+</table>
+
+<p class="whs4">&nbsp;&nbsp;</p>
+
+<p>&nbsp;<span style="margin-left: 40px;">In 
+ this dialog box you should specify the name</span><span style="margin-left: 40px; font-weight: bold;"> 
+ <B></B></span><span style="margin-left: 40px;">of the resulting group and two 
+ groups which will be united.</span></p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>Ok 
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply 
+ </B></span>button to confirm creation of the group. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs15"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../grouping_elements.htm#bookmark2">Union 
+ of two Groups</a> operation. &nbsp;</p>
+
+<p class="whs15">&nbsp;</p>
+
+<p class="whs15">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h3><a name=Intersection></a>Intersection of two groups</h3>
+
+<p>This operation allows to create a new group in such a way that all mesh 
+ elements that are present in both initial groups are added to the new 
+ one.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To intersect two groups:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Intersect Groups 
+ </B></span>item. The following dialog box will appear:</p>
+
+<p class="whs4">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">
+<col class="whs16">
+<col class="whs17">
+
+<tr valign="top" class="whs8">
+<td width="32.796%" class="whs18">
+<p><img src="../pics/intersectgroups.png" x-maintain-ratio="TRUE" width="306px" height="253px" border="0" class="img_whs10"></td>
+<td width="67.204%" class="whs19">
+<p><img src="../image133.gif" width="134px" height="151px" border="0" class="img_whs12"> &nbsp;<img src="../image134.gif" width="136px" height="151px" border="0" class="img_whs13"><img src="../image136.gif" width="141px" height="157px" border="0" class="img_whs20"></p>
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group1 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group2 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group12a</p>
+<p>&nbsp;</p>
+<p>For example, we have two groups Group1 and Group2. </p>
+<p>The result of their <span style="font-weight: bold;"><B>Intersection</B></span> 
+ will be Group12a &nbsp;&nbsp;</td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<p class="whs15">In this dialog box you should specify the 
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and 
+ two groups which will be intersected.</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>Ok 
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply 
+ </B></span>button to confirm creation of the group. </p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of an <a href="../grouping_elements.htm#bookmark3">&nbsp;Intersection 
+ of two Groups</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h3><a name=Cut></a>Cut of two groups</h3>
+
+<p>This operation allows to create a new group in such a way that all mesh 
+ elements that are present in the main group but are absent in the tool 
+ group are added to the new one.</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To cut two groups:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs4">1. In the <span style="font-weight: bold;"><B>Mesh 
+ </B></span>menu select the <span style="font-weight: bold;"><B>Cut Groups </B></span>item. 
+ The following dialog box will appear:</p>
+
+<p class="whs4">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="100%" class="whs5">
+<col class="whs21">
+<col class="whs22">
+
+<tr valign="top" class="whs8">
+<td width="33.089%" class="whs23">
+<p><img src="../pics/cutgroups.png" x-maintain-ratio="TRUE" width="306px" height="253px" border="0" class="img_whs10"></td>
+<td width="66.911%" class="whs24">
+<p><img src="../image133.gif" width="134px" height="151px" border="0" class="img_whs12"> &nbsp;&nbsp;<img src="../image134.gif" width="136px" height="151px" border="0" class="img_whs13"> &nbsp;<img src="../image137.gif" width="140px" height="146px" border="0" class="img_whs25"></p>
+<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group1 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group2 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group12b</p>
+<p>&nbsp;</p>
+<p>For example, we have two groups Group1 and Group2. </p>
+<p>The result of their <span style="font-weight: bold;"><B>Cut</B></span> will 
+ be Group12b &nbsp;&nbsp;</td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<p class="whs4">In this dialog box you should specify the 
+ name<span style="font-weight: bold;"> <B></B></span>of the resulting group and 
+ two groups which will be cut.</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">2. Click the <span style="font-weight: bold;"><B>Ok 
+ </B></span>or <span style="font-weight: bold;"><B>&nbsp;Apply 
+ </B></span>button to confirm creation of the group. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="../grouping_elements.htm#bookmark3">&nbsp;Cut 
+ of two Groups</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index a2beb2ab51181d0dfe72e9ec7460a6ecd95c747e..e6a9ffb214c172ebb2b3eac42febd593d3a86100 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Viewing mesh info</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { font-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
--->\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 +="</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\nMesh infos");\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>Mesh infos</h1>\r
-\r
-<p>There are two types of information boxes: <span style="font-weight: bold;"><B>Standard \r
- Mesh Infos</B></span> and <span style="font-weight: bold;"><B>Advanced</B></span> \r
- <span style="font-weight: bold;"><B>Mesh Infos.</B></span></p>\r
-\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
-\r
-<p class="whs1">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
- be displayed:</p>\r
-\r
-<p class="whs1">&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
-\r
-<p>&nbsp;</p>\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
-\r
-<p>To view the <span style="font-weight: bold;"><B>Advanced Mesh Infos, </B></span>select \r
- 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
- 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
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">&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
-\r
-<p class="whs3">&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
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs8">&nbsp;</p>\r
-\r
-<p class="whs9">&nbsp;</p>\r
-\r
-<p class="whs9">&nbsp;</p>\r
-\r
-<p class="whs9">&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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Viewing mesh info</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+ul.whs1 { list-style:disc; }
+p.whs2 { font-weight:bold; margin-left:40px; }
+p.whs3 { font-style:normal; font-weight:normal; }
+img_whs4 { border:none; width:20px; height:26px; border-style:none; }
+p.whs5 { margin-left:40px; }
+img_whs6 { border:none; width:271px; height:269px; float:none; border-style:none; }
+img_whs7 { border:none; width:22px; height:27px; border-style:none; }
+img_whs8 { border:none; border-style:none; width:451px; height:506px; float:none; }
+img_whs9 { border:none; width:866px; height:287px; float:none; border-style:none; }
+p.whs10 { margin-left:0px; }
+p.whs11 { margin-left:80px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs10 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nMesh infos");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Mesh infos</h1>
+
+<p>There are two types of information boxes: <span style="font-weight: bold;"><B>Standard 
+ Mesh Infos</B></span> and <span style="font-weight: bold;"><B>Advanced</B></span> 
+ <span style="font-weight: bold;"><B>Mesh Infos.</B></span></p>
+
+<p>&nbsp;</p>
+
+<ul type="disc" class="whs1">
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#standard_infos">Standard</a></p></li>
+       
+       <li class=kadov-p><p class="whs2"><a 
+ href="#advanced_infos">Advanced</a></p></li>
+</ul>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=standard_infos>Standard Mesh Infos</a></h3>
+
+<p class="whs3">The <span style="font-weight: bold;"><B>Standard 
+ Mesh Infos</B></span> box gives only the information on the number of elements 
+ of maximum dimension and the number of nodes in the mesh. However, from 
+ this Info you can learn about groups selected on this mesh. </p>
+
+<p class="whs3">To view the <span style="font-weight: bold;"><B>Standard 
+ Mesh Infos, </B></span>select your mesh or submesh in the <span style="font-weight: bold;"><B>Object 
+ Browser</B></span> and<span style="font-weight: bold;"> <B></B></span>select <span 
+ style="font-weight: bold;"><B>Standard Mesh Infos </B></span>from<span style="font-weight: bold;"> 
+ <B></B></span>the <span style="font-weight: bold;"><B>Mesh </B></span>menu or click 
+ <img src="../image49.gif" width="20px" height="26px" border="0" class="img_whs4"> button in the toolbar. The following information will 
+ be displayed:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5"><img src="../pics/a-standmeshinfo.png" x-maintain-ratio="TRUE" width="271px" height="269px" border="0" class="img_whs6"></p>
+
+<p>&nbsp;</p>
+
+<h3><a name="advanced infos">Advanced Mesh Infos</a></h3>
+
+<p>The<span style="font-weight: bold;"><B> Advanced</B></span> <span style="font-weight: bold;"><B>Mesh 
+ Infos </B></span>gives more information about the mesh, including the total 
+ number of faces and volumes and their geometrical types.</p>
+
+<p>To view the <span style="font-weight: bold;"><B>Advanced Mesh Infos, </B></span>select 
+ your mesh or submesh in the <span style="font-weight: bold;"><B>Object Browser</B></span> 
+ and<span style="font-weight: bold;"> <B></B></span>select <span style="font-weight: bold;"><B>Advanced 
+ Mesh Infos </B></span>from<span style="font-weight: bold;"> <B></B></span>the <span 
+ 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 
+ in the toolbar. The following information will be displayed:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs5"><img src="../pics/advanced_mesh_infos.png" x-maintain-ratio="TRUE" width="451px" height="506px" border="0" class="img_whs8"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">In case you get Mesh Infos via a <a href="../viewing_meshes.htm">TUI 
+ script</a>, the information is displayed in Python Console.</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5"><img src="../pics/b-mesh_infos.png" x-maintain-ratio="TRUE" width="866px" height="287px" border="0" class="img_whs9"></p>
+
+<p class="whs10">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs11">&nbsp;</p>
+
+<p class="whs11">&nbsp;</p>
+
+<p class="whs11">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index e8ce5413c75196d9ba6c76452cf1a01b244fe640..ffb8f9a184f7a2c036012d6ccd979e3a20f87609 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>VTK 3D Viewer</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-p.whs1 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs2 { margin-top:0pt; margin-bottom:0pt; margin-left:48px; }\r
-img_whs3 { border:none; width:249px; height:29px; float:none; border-style:none; }\r
-ul.whs4 { list-style:disc; }\r
-img_whs5 { border:none; width:26px; height:25px; float:none; border-style:none; }\r
-img_whs6 { border:none; width:27px; height:25px; float:none; border-style:none; }\r
-img_whs7 { border:none; width:24px; height:23px; float:none; border-style:none; }\r
-img_whs8 { border:none; width:24px; height:24px; float:none; border-style:none; }\r
-img_whs9 { border:none; width:25px; height:24px; float:none; border-style:none; }\r
-img_whs10 { border:none; width:23px; height:23px; float:none; border-style:none; }\r
-img_whs11 { border:none; width:26px; height:26px; float:none; border-style:none; }\r
-img_whs12 { border:none; width:78px; height:147px; float:none; border-style:none; }\r
-img_whs13 { border:none; width:28px; height:25px; float:none; border-style:none; }\r
-img_whs14 { border:none; width:27px; height:27px; float:none; border-style:none; }\r
-p.whs15 { font-weight:bold; margin-left:80px; margin-top:0pt; margin-bottom:0pt; }\r
-img_whs16 { border:none; width:350px; height:453px; float:none; border-style:none; }\r
-p.whs17 { font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs18 { font-weight:bold; margin-left:36px; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs19 { font-weight:bold; margin-left:0px; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs20 { margin-left:0px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs15 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs17 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs18 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs19 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs20 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
-p.WebHelpNavBar { text-align:right; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       addTocInfo("MESH module\nViewing meshes\nVTK 3D Viewer");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");\r
-\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("../index.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>VTK 3D Viewer</h1>\r
-\r
-<p class="whs1"><span style="font-weight: bold;"><B>VTK \r
- 3D viewer</B></span> is the default viewer for Mesh Module, allowing to visualize \r
- meshes. It is also used in Post-Pro module for all 3D presentations except \r
- for Gauss Points.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">The functionalities of \r
- VTK viewer are available via its Viewer Toolbar. Buttons marked with small \r
- downward triangles have extended functionality which can be accessed by \r
- locking on them with left mouse button. &nbsp;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../pics/image107.gif" x-maintain-ratio="TRUE" width="249px" height="29px" border="0" class="img_whs3"></p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image77.gif" x-maintain-ratio="TRUE" width="26px" height="25px" border="0" class="img_whs5"> <span style="font-weight: bold;"><B>Dump View</B></span> - exports \r
- an object from the viewer in bmp, png, jpg or jpeg image format. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image78.gif" x-maintain-ratio="TRUE" width="27px" height="25px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Show/Hide Trihedron</B></span> \r
- - shows or hides coordinate axes. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image96.gif" x-maintain-ratio="TRUE" width="24px" height="23px" border="0" class="img_whs7"> &nbsp;<span style="font-weight: bold;"><B>Fit \r
- all - </B></span>allows to select a point to be the center of a scene representing \r
- all displayed objects in the visible area.<span style="font-weight: bold;"> \r
- <B></B></span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">&nbsp;<img src="../pics/image97.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Fit area</B></span> - resizes \r
- the view to place in the visible area only the contents of a frame drawn \r
- with pressed left mouse button.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image98.gif" x-maintain-ratio="TRUE" width="25px" height="24px" border="0" class="img_whs9"> <span style="font-weight: bold;"><B>Zoom</B></span> - &nbsp;allows \r
- to zoom in and out. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image99.gif" x-maintain-ratio="TRUE" width="23px" height="23px" border="0" class="img_whs10"> <span style="font-weight: bold;"><B>Panning</B></span> - if the \r
- represented objects are greater that the visible area and you don't wish \r
- to use <span style="font-weight: bold;"><B>Fit all</B></span> functionality, \r
- click on this button and you'll be able to drag the scene to see its remote \r
- parts. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image100.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Global panning</B></span> - \r
- represents all displayed objects in the visible area. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image89.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Rotation</B></span> - allows \r
- to rotate the selected object using the mouse. </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image102.gif" x-maintain-ratio="TRUE" width="78px" height="147px" border="0" class="img_whs12"> These buttons orientate the scene strictly about coordinate \r
- axes.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image91.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs11"> <span style="font-weight: bold;"><B>Reset</B></span> - restores \r
- the default position (isometric) of objects in the scene.</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1"><img src="../pics/image108.gif" x-maintain-ratio="TRUE" width="28px" height="25px" border="0" class="img_whs13"> <span style="font-weight: bold;"><B>Scaling</B></span> - represents \r
- objects deformed (stretched or stuffed) along the axes of coordinates</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">&nbsp;<span \r
- style="font-weight: bold;\r
-               margin-top: 0pt;\r
-               margin-bottom: 0pt;"><B><img src="../pics/image109.gif" x-maintain-ratio="TRUE" width="27px" height="27px" border="0" class="img_whs14">Graduated axes - </B></span><span style="margin-top: 0pt;\r
-                                                                                                       margin-bottom: 0pt;\r
-                                                                                                       font-weight: normal;">allows \r
- to define parameters of axes and graduate them.</span></p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs15"><img src="../pics/graduatedaxes1.png" x-maintain-ratio="TRUE" width="350px" height="453px" border="0" class="img_whs16"></p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs17">Axis name </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Is visible - <span \r
- style="font-weight: normal;">if checked the axis name is displayed in \r
- the viewer.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Name<span style="font-weight: normal;"> \r
- - allows to redefine the name of the axis.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
- - allows to define color and properties of the font of axis name. </span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs19">Labels<span style="font-weight: normal;"> \r
- </span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Is visible - <span \r
- style="font-weight: normal;">if checked the labels are displayed in the \r
- viewer.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Number<span style="font-weight: normal;"> \r
- - allows to define the number of labels.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Offset<span style="font-weight: normal;"> \r
- - allows to define the distance between labels.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> \r
- - allows to define color and properties of the font of labels names.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs20">Tick marks </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Is visible - <span \r
- style="font-weight: normal;">if checked the tick marks are displayed in \r
- the viewer.</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs18">Length<span style="font-weight: normal;"> \r
- - allows to define the length of tick marks</span></p></li>\r
-       \r
-       <li class=kadov-p><p class="whs20">Is visible <span style="font-weight: normal;">if \r
- checked the axis is displayed in the viewer.</span></p></li>\r
-</ul>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>VTK 3D Viewer</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { margin-top:0pt; margin-bottom:0pt; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; margin-left:48px; }
+img_whs3 { border:none; width:249px; height:29px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+img_whs5 { border:none; width:26px; height:25px; float:none; border-style:none; }
+img_whs6 { border:none; width:27px; height:25px; float:none; border-style:none; }
+img_whs7 { border:none; width:24px; height:23px; float:none; border-style:none; }
+img_whs8 { border:none; width:24px; height:24px; float:none; border-style:none; }
+img_whs9 { border:none; width:25px; height:24px; float:none; border-style:none; }
+img_whs10 { border:none; width:23px; height:23px; float:none; border-style:none; }
+img_whs11 { border:none; width:26px; height:26px; float:none; border-style:none; }
+img_whs12 { border:none; width:78px; height:147px; float:none; border-style:none; }
+img_whs13 { border:none; width:28px; height:25px; float:none; border-style:none; }
+img_whs14 { border:none; width:27px; height:27px; float:none; border-style:none; }
+p.whs15 { font-weight:bold; margin-left:80px; margin-top:0pt; margin-bottom:0pt; }
+img_whs16 { border:none; width:350px; height:453px; float:none; border-style:none; }
+p.whs17 { font-weight:bold; margin-top:0pt; margin-bottom:0pt; }
+p.whs18 { font-weight:bold; margin-left:36px; margin-top:0pt; margin-bottom:0pt; }
+p.whs19 { font-weight:bold; margin-left:0px; margin-top:0pt; margin-bottom:0pt; }
+p.whs20 { margin-left:0px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs15 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs17 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs18 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs19 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs20 {margin-left:1pt;margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nVTK 3D Viewer");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>VTK 3D Viewer</h1>
+
+<p class="whs1"><span style="font-weight: bold;"><B>VTK 
+ 3D viewer</B></span> is the default viewer for Mesh Module, allowing to visualize 
+ meshes. It is also used in Post-Pro module for all 3D presentations except 
+ for Gauss Points.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">The functionalities of 
+ VTK viewer are available via its Viewer Toolbar. Buttons marked with small 
+ downward triangles have extended functionality which can be accessed by 
+ locking on them with left mouse button. &nbsp;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><img src="../pics/image107.gif" x-maintain-ratio="TRUE" width="249px" height="29px" border="0" class="img_whs3"></p>
+
+<ul type="disc" class="whs4">
+       
+       <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 
+ an object from the viewer in bmp, png, jpg or jpeg image format. </p></li>
+       
+       <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> 
+ - shows or hides coordinate axes. </p></li>
+       
+       <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 
+ all - </B></span>allows to select a point to be the center of a scene representing 
+ all displayed objects in the visible area.<span style="font-weight: bold;"> 
+ <B></B></span></p></li>
+       
+       <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 
+ the view to place in the visible area only the contents of a frame drawn 
+ with pressed left mouse button.</p></li>
+       
+       <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 
+ to zoom in and out. </p></li>
+       
+       <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 
+ represented objects are greater that the visible area and you don't wish 
+ to use <span style="font-weight: bold;"><B>Fit all</B></span> functionality, 
+ click on this button and you'll be able to drag the scene to see its remote 
+ parts. </p></li>
+       
+       <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> - 
+ represents all displayed objects in the visible area. </p></li>
+       
+       <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 
+ to rotate the selected object using the mouse. </p></li>
+       
+       <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 
+ axes.</p></li>
+       
+       <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 
+ the default position (isometric) of objects in the scene.</p></li>
+       
+       <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 
+ objects deformed (stretched or stuffed) along the axes of coordinates</p></li>
+       
+       <li class=kadov-p><p class="whs1">&nbsp;<span 
+ style="font-weight: bold;
+               margin-top: 0pt;
+               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;
+                                                                                                       margin-bottom: 0pt;
+                                                                                                       font-weight: normal;">allows 
+ to define parameters of axes and graduate them.</span></p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs15"><img src="../pics/graduatedaxes1.png" x-maintain-ratio="TRUE" width="350px" height="453px" border="0" class="img_whs16"></p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs17">Axis name </p></li>
+       
+       <li class=kadov-p><p class="whs18">Is visible - <span 
+ style="font-weight: normal;">if checked the axis name is displayed in 
+ the viewer.</span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Name<span style="font-weight: normal;"> 
+ - allows to redefine the name of the axis.</span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> 
+ - allows to define color and properties of the font of axis name. </span></p></li>
+       
+       <li class=kadov-p><p class="whs19">Labels<span style="font-weight: normal;"> 
+ </span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Is visible - <span 
+ style="font-weight: normal;">if checked the labels are displayed in the 
+ viewer.</span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Number<span style="font-weight: normal;"> 
+ - allows to define the number of labels.</span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Offset<span style="font-weight: normal;"> 
+ - allows to define the distance between labels.</span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Font<span style="font-weight: normal;"> 
+ - allows to define color and properties of the font of labels names.</span></p></li>
+       
+       <li class=kadov-p><p class="whs20">Tick marks </p></li>
+       
+       <li class=kadov-p><p class="whs18">Is visible - <span 
+ style="font-weight: normal;">if checked the tick marks are displayed in 
+ the viewer.</span></p></li>
+       
+       <li class=kadov-p><p class="whs18">Length<span style="font-weight: normal;"> 
+ - allows to define the length of tick marks</span></p></li>
+       
+       <li class=kadov-p><p class="whs20">Is visible <span style="font-weight: normal;">if 
+ checked the axis is displayed in the viewer.</span></p></li>
+</ul>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index acc2afc6f1f93d79275a1127cb9b702beab278d9..a67d0e2f37201ef0e22a9322c75aa23cc7056b70 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Warp</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">\r
-<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-p.whs3 { margin-left:0px; }\r
-img_whs4 { border:none; width:496px; height:336px; border-style:none; }\r
-img_whs5 { border:none; width:23px; height:23px; border-style:none; }\r
-img_whs6 { border:none; width:405px; height:308px; 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 +="</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\nWarping");\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>Warping</h1>\r
-\r
-<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Warping</B></span> indicates \r
- that a face is not planar and is applied only to 2D elements with 4 nodes. \r
- This quality control criterion is based on a projection plane created \r
- by:</p>\r
-\r
-<p class="whs2">1. bisecting the four element edges, </p>\r
-\r
-<p class="whs2">2. creating a point on the plane at the vector \r
- average of the corners, where the x-axis extends from the point to the \r
- bisector on edge 2. </p>\r
-\r
-<p class="whs3">The plane normal is in the direction of the \r
- cross product of the x-axis and the vector from the origin to the bisector \r
- of edge 3. Every corner of the quad will then be a distance \93h\94 from the \r
- plane. The length of each half edge is measured and the shortest length \r
- is assigned \93l\94. The warp angle is the arcsine of the ratio of the projection \r
- height \93h\94 to the half edge length \93l\94. </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image24.gif" width="496px" height="336px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class=TODO>To apply the Warping quality criterion to your mesh:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Warp </B></span>or click <img src="../image39.gif" width="23px" height="23px" border="0" class="img_whs5"> 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="../image97.jpg" width="405px" height="308px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs2">&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#bookmark10">Warping \r
- quality control</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Warp</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='../default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }
+p.whs2 { margin-left:40px; }
+p.whs3 { margin-left:0px; }
+img_whs4 { border:none; width:496px; height:336px; border-style:none; }
+img_whs5 { border:none; width:23px; height:23px; border-style:none; }
+img_whs6 { border:none; width:405px; height:308px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs3 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="../whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nWarping");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("../index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Warping</h1>
+
+<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>Warping</B></span> indicates 
+ that a face is not planar and is applied only to 2D elements with 4 nodes. 
+ This quality control criterion is based on a projection plane created 
+ by:</p>
+
+<p class="whs2">1. bisecting the four element edges, </p>
+
+<p class="whs2">2. creating a point on the plane at the vector 
+ average of the corners, where the x-axis extends from the point to the 
+ bisector on edge 2. </p>
+
+<p class="whs3">The plane normal is in the direction of the 
+ cross product of the x-axis and the vector from the origin to the bisector 
+ of edge 3. Every corner of the quad will then be a distance \93h\94 from the 
+ plane. The length of each half edge is measured and the shortest length 
+ is assigned \93l\94. The warp angle is the arcsine of the ratio of the projection 
+ height \93h\94 to the half edge length \93l\94. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="../image24.gif" width="496px" height="336px" border="0" class="img_whs4"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class=TODO>To apply the Warping quality criterion to your mesh:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. Display your mesh in the viewer.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Warp </B></span>or click <img src="../image39.gif" width="23px" height="23px" border="0" class="img_whs5"> button of the toolbar. Your mesh 
+ will be displayed in the viewer with its elements colored according to 
+ the applied mesh quality control criterion:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="../image97.jpg" width="405px" height="308px" border="0" class="img_whs6"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs3"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="../quality_controls.htm#bookmark10">Warping 
+ quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index ebfcb53d438f039befa52c98fdc60a100772e25b..b262c9cd32ab9cc993d9ab88fa0d9aaa5c733854 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Free borders</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nFree borders");\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>Free borders</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces \r
- consisting of edges belonging to one face only.</p>\r
-\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
-\r
-<p>&nbsp;</p>\r
-\r
-<p>In this picture the free borders are displayed in white. </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#bookmark1">Free \r
- Borders quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Free borders</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:278px; height:231px; float:none; border-style:none; }
+p.whs4 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs4 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nFree borders");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Free borders</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">This mesh quality control highlights borders of faces 
+ consisting of edges belonging to one face only.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="pics/free_borders1.png" x-maintain-ratio="TRUE" width="278px" height="231px" border="0" class="img_whs3"> &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>In this picture the free borders are displayed in white. </p>
+
+<p>&nbsp;</p>
+
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark">Free 
+ Borders quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index fa4374670d312d81590fd0be9b32956651f4a2cc..fe7146d129abf64c28f850d6126d229c2ebc9998 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Free_edges</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs2 { margin-left:40px; }\r
-img_whs3 { border:none; border-style:none; width:395px; height:445px; float: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.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
-<!--\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\nFree edges");\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>Free edges</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> &nbsp;&nbsp;This \r
- mesh quality control highlights borders of &nbsp;elements \r
- of mesh consisting of edges belonging to one element of mesh only.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2"><img src="pics/free_edges.png" x-maintain-ratio="TRUE" width="395px" height="445px" border="0" class="img_whs3"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">In this picture some elements of mesh have \r
- been deleted and the &quot;holes&quot; are outlined in red. </p>\r
-\r
-<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
- Edges quality control</a> operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Free_edges</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; border-style:none; width:395px; height:445px; float:none; }
+p.whs4 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs4 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nFree edges");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Free edges</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> &nbsp;&nbsp;This 
+ mesh quality control highlights borders of &nbsp;elements 
+ of mesh consisting of edges belonging to one element of mesh only.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="pics/free_edges.png" x-maintain-ratio="TRUE" width="395px" height="445px" border="0" class="img_whs3"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">In this picture some elements of mesh have 
+ been deleted and the &quot;holes&quot; are outlined in red. </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark3">Free 
+ Edges quality control</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index b3f7985c80bc50d92f8c6f9ef5040c6725490fae..143be3035a367a8b543acf89de89ec1439cf8e97 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Grouping 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-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-img_whs3 { border:none; width:430px; height:391px; float:none; border-style:none; }\r
-img_whs4 { border:none; float:none; width:463px; height:417px; border-style:none; }\r
-img_whs5 { border:none; width:541px; height:417px; float:none; border-style:none; }\r
-img_whs6 { border:none; width:394px; height:425px; float:none; border-style:none; }\r
-img_whs7 { border:none; float:none; width:368px; height:379px; border-style:none; }\r
-img_whs8 { border:none; float:none; width:344px; height:381px; border-style:none; }\r
-img_whs9 { border:none; width:314px; height:351px; float:none; border-style:none; }\r
-img_whs10 { border:none; float:none; width:319px; height:351px; border-style:none; }\r
-img_whs11 { border:none; float:none; width:304px; height:352px; border-style:none; }\r
-img_whs12 { border:none; width:318px; height:355px; float:none; border-style:none; }\r
-img_whs13 { border:none; float:none; width:318px; height:355px; border-style:none; }\r
-img_whs14 { border:none; float:none; width:320px; height:354px; border-style:none; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\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\nTUI Scripts\nGrouping 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>Grouping Elements</h1>\r
-\r
-<h3><a name=bookmark>Create a Standalone Group</a></h3>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : AREA &gt; \r
- 100</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 100 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt; 100 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 consisting \r
- of faces with area &gt; 100</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &gt; 100&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
-<p class="whs2">&nbsp;</p>\r
-\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
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 100., 100., 100.)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add the box to the study</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy(box, \r
- &quot;box&quot;)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add the first face of \r
- the box to the study</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs1">face = subShapeList[0]</p>\r
-\r
-<p class="whs1">name = geompy.SubShapeName(face, \r
- box)</p>\r
-\r
-<p class="whs1">idface = geompy.addToStudyInFather(box, \r
- face, name)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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
- the box</p>\r
-\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
-\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
-\r
-<p class="whs2">&nbsp;</p>\r
-\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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create geometry groups \r
- on the plane:</p>\r
-\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
-\r
-<p class="whs1">geompy.AddObject(aGeomGroup2, \r
- 3)</p>\r
-\r
-<p class="whs1">geompy.AddObject(aGeomGroup2, \r
- 6)</p>\r
-\r
-<p class="whs1">geompy.AddObject(aGeomGroup2, \r
- 8)</p>\r
-\r
-<p class="whs1">geompy.AddObject(aGeomGroup2, \r
- 10)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">geompy.addToStudy(aGeomGroup1, \r
- &quot;Group on Faces&quot;)</p>\r
-\r
-<p class="whs1">geompy.addToStudy(aGeomGroup2, \r
- &quot;Group on Edges&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE, \r
- &quot;SMESHGroup1&quot;, aGeomGroup1)</p>\r
-\r
-<p class="whs1">aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE, \r
- &quot;SMESHGroup2&quot;, aGeomGroup2)</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
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark1>Edit a Group</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : AREA &gt; \r
- 20</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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 30 )</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"># create a group by adding \r
- elements with area &gt; 20</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &gt; 20&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt; 20 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"># Criterion : AREA &gt; \r
- 60</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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 60 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group of elements \r
- with area [20; 60] by removing elements with area &gt; 60 from &nbsp;group \r
- aGroup </p>\r
-\r
-<p class="whs1">aGroup.Remove(anIds)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">aGroupElemIDs = \r
- aGroup.GetListOfID()</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- 20 &lt; Area &lt; 60 = &quot;, len( aGroupElemIDs )</p>\r
-\r
-<p class="whs1">for i in range( \r
- len( aGroupElemIDs ) ):</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;print \r
- aGroupElemIDs[ i ]</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
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="pics/editing_groups1.png" x-maintain-ratio="TRUE" width="463px" height="417px" border="0" class="img_whs4"> &nbsp;<img src="pics/editing_groups2.png" x-maintain-ratio="TRUE" width="541px" height="417px" border="0" class="img_whs5"></p>\r
-\r
-<h3><a name=bookmark2>Union of two groups</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : AREA &gt; \r
- 20</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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 20 )</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"># create a group by adding \r
- elements with area &gt; 20</p>\r
-\r
-<p class="whs1">aGroup1 = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &gt; 20&quot; )</p>\r
-\r
-<p class="whs1">aGroup1.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt; 20 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"># Criterion : AREA = 20</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 20 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group by adding \r
- elements with area &gt; 20</p>\r
-\r
-<p class="whs1">aGroup2 = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area = 20&quot; )</p>\r
-\r
-<p class="whs1">aGroup2.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area = 20 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create union group : \r
- area &gt;= 20</p>\r
-\r
-<p class="whs1">aGroup3 = mesh.UnionGroups(aGroup1, \r
- aGroup2, &quot;Area &gt;= 20&quot;)</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt;= 20 Nb = &quot;, len( aGroup3.GetListOfID() )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : AREA &lt; \r
- 20</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateArea()</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
- 20 )</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"># create a group by adding \r
- elements with area &lt; 20</p>\r
-\r
-<p class="whs1">aGroup4 = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &lt; 20&quot; )</p>\r
-\r
-<p class="whs1">aGroup4.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &lt; 20 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="whs2">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs2"># create union group : \r
- area &gt;= 20 and area &lt; 20</p>\r
-\r
-<p class="whs1">aGroup5 = mesh.UnionGroups(aGroup3, \r
- aGroup4, &quot;Any Area&quot;)</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Any Area Nb = &quot;, len( aGroup5.GetListOfID() )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="pics/union_groups1.png" x-maintain-ratio="TRUE" width="394px" height="425px" border="0" class="img_whs6"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="pics/union_groups2.png" x-maintain-ratio="TRUE" width="368px" height="379px" border="0" class="img_whs7"> <img src="pics/union_groups3.png" x-maintain-ratio="TRUE" width="344px" height="381px" border="0" class="img_whs8"></p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h3><a name=bookmark3>Intersection of two groups</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : AREA &gt; \r
- 20</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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 20 )</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"># create a group by adding \r
- elements with area &gt; 20</p>\r
-\r
-<p class="whs1">aGroup1 = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &gt; 20&quot; )</p>\r
-\r
-<p class="whs1">aGroup1.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt; 20 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"># Criterion : AREA &lt; \r
- 60</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateArea()</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
- 60 )</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"># create a group by adding \r
- elements with area &lt; 60</p>\r
-\r
-<p class="whs1">aGroup2 = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &lt; 60&quot; )</p>\r
-\r
-<p class="whs1">aGroup2.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &lt; 60 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="whs2">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs2"># create an intersection \r
- of groups : 20 &lt; area &lt; 60</p>\r
-\r
-<p class="whs1">aGroup3 = mesh.IntersectGroups(aGroup1, \r
- aGroup2, &quot;20 &lt; Area &lt; 60&quot;)</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- 20 &lt; Area &lt; 60 Nb = &quot;, len( aGroup3.GetListOfID() )</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
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="pics/intersect_groups1.png" x-maintain-ratio="TRUE" width="314px" height="351px" border="0" class="img_whs9"> &nbsp;<img src="pics/intersect_groups2.png" x-maintain-ratio="TRUE" width="319px" height="351px" border="0" class="img_whs10"> &nbsp;<img src="pics/intersect_groups3.png" x-maintain-ratio="TRUE" width="304px" height="352px" border="0" class="img_whs11"></p>\r
-\r
-<h3><a name=bookmark4>Cut of two groups</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : AREA &gt; \r
- 20</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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 20 )</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"># create a group by adding \r
- elements with area &gt; 20</p>\r
-\r
-<p class="whs1">aGroupMain = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &gt; 20&quot; )</p>\r
-\r
-<p class="whs1">aGroupMain.Add( \r
- anIds )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt; 20 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"># Criterion : AREA &lt; \r
- 60</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateArea()</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
- 60 )</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"># create a group by adding \r
- elements with area &lt; 60</p>\r
-\r
-<p class="whs1">aGroupTool = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &lt; 60&quot; )</p>\r
-\r
-<p class="whs1">aGroupTool.Add( \r
- anIds )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &lt; 60 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="whs2">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs2"># create an intersection \r
- of groups : area &gt;= 60</p>\r
-\r
-<p class="whs1">aGroupRes = mesh.CutGroups(aGroupMain, \r
- aGroupTool, &quot;Area &gt;= 60&quot;)</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Area &gt;= 60 Nb = &quot;, len( aGroupRes.GetListOfID() )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="pics/cut_groups1.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs12"> &nbsp;<img src="pics/cut_groups2.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs13"> &nbsp;<img src="pics/cut_groups3.png" x-maintain-ratio="TRUE" width="320px" height="354px" border="0" class="img_whs14"></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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Grouping Elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }
+img_whs3 { border:none; width:430px; height:391px; float:none; border-style:none; }
+img_whs4 { border:none; float:none; width:463px; height:417px; border-style:none; }
+img_whs5 { border:none; width:541px; height:417px; float:none; border-style:none; }
+img_whs6 { border:none; width:394px; height:425px; float:none; border-style:none; }
+img_whs7 { border:none; float:none; width:368px; height:379px; border-style:none; }
+img_whs8 { border:none; float:none; width:344px; height:381px; border-style:none; }
+img_whs9 { border:none; width:314px; height:351px; float:none; border-style:none; }
+img_whs10 { border:none; float:none; width:319px; height:351px; border-style:none; }
+img_whs11 { border:none; float:none; width:304px; height:352px; border-style:none; }
+img_whs12 { border:none; width:318px; height:355px; float:none; border-style:none; }
+img_whs13 { border:none; float:none; width:318px; height:355px; border-style:none; }
+img_whs14 { border:none; float:none; width:320px; height:354px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nGrouping Elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Grouping Elements</h1>
+
+<h3><a name=bookmark>Create a Standalone Group</a></h3>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 100</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 100 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt; 100 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group consisting 
+ of faces with area &gt; 100</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &gt; 100&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="pics/create_group.png" x-maintain-ratio="TRUE" width="430px" height="391px" border="0" class="img_whs3"></p>
+
+<h3><a name=bookmark5>Create a Group on Geometry</a></h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a box</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 100., 100., 100.)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add the box to the study</p>
+
+<p class="whs1">idbox = geompy.addToStudy(box, 
+ &quot;box&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add the first face of 
+ the box to the study</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">face = subShapeList[0]</p>
+
+<p class="whs1">name = geompy.SubShapeName(face, 
+ box)</p>
+
+<p class="whs1">idface = geompy.addToStudyInFather(box, 
+ face, name)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a hypothesis</p>
+
+<p class="whs1">numberOfSegments 
+ = 7</p>
+
+<p class="whs1">hypNbSeg = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hypNbSeg.SetNumberOfSegments(numberOfSegments)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create algorithms</p>
+
+<p class="whs1">regular1D = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">quad2D = smesh.CreateHypothesis(&quot;Quadrangle_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># initialize a mesh with 
+ the box</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(box)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add hypotheses and algorithms 
+ to the box</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hypNbSeg)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,regular1D)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,quad2D)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># compute the mesh</p>
+
+<p class="whs1">ret = smesh.Compute(mesh,box)</p>
+
+<p class="whs1">if ret == 0:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;probleme when computing the mesh&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Computation succeded&quot;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create geometry groups 
+ on the face</p>
+
+<p class="whs1">aGeomGroup1 = geompy.CreateGroup(face, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">geompy.AddObject(aGeomGroup1, 
+ 1)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aGeomGroup2 = geompy.CreateGroup(face, 
+ geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs1">geompy.AddObject(aGeomGroup2, 
+ 3)</p>
+
+<p class="whs1">geompy.AddObject(aGeomGroup2, 
+ 6)</p>
+
+<p class="whs1">geompy.AddObject(aGeomGroup2, 
+ 8)</p>
+
+<p class="whs1">geompy.AddObject(aGeomGroup2, 
+ 10)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">geompy.addToStudy(aGeomGroup1, 
+ &quot;Group on Faces&quot;)</p>
+
+<p class="whs1">geompy.addToStudy(aGeomGroup2, 
+ &quot;Group on Edges&quot;)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create SMESH groups</p>
+
+<p class="whs1">aSmeshGroup1 = mesh.CreateGroupFromGEOM(SMESH.FACE, 
+ &quot;SMESHGroup1&quot;,</p>
+
+<p class="whs1">aGeomGroup1)</p>
+
+<p class="whs1">aSmeshGroup2 = mesh.CreateGroupFromGEOM(SMESH.EDGE, 
+ &quot;SMESHGroup2&quot;, aGeomGroup2)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ &nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark1>Edit a Group</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 30 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &gt; 20</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &gt; 20&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt; 20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 60</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 60 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group of elements 
+ with area [20; 60] by removing elements with area &gt; 60 from &nbsp;group 
+ aGroup </p>
+
+<p class="whs1">aGroup.Remove(anIds)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">aGroupElemIDs = 
+ aGroup.GetListOfID()</p>
+
+<p class="whs1">print &quot;Criterion: 
+ 20 &lt; Area &lt; 60 = &quot;, len( aGroupElemIDs )</p>
+
+<p class="whs1">for i in range( 
+ len( aGroupElemIDs ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ aGroupElemIDs[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="pics/editing_groups1.png" x-maintain-ratio="TRUE" width="463px" height="417px" border="0" class="img_whs4"> &nbsp;<img src="pics/editing_groups2.png" x-maintain-ratio="TRUE" width="541px" height="417px" border="0" class="img_whs5"></p>
+
+<h3><a name=bookmark2>Union of two groups</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 20 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &gt; 20</p>
+
+<p class="whs1">aGroup1 = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &gt; 20&quot; )</p>
+
+<p class="whs1">aGroup1.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt; 20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA = 20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 20 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &gt; 20</p>
+
+<p class="whs1">aGroup2 = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area = 20&quot; )</p>
+
+<p class="whs1">aGroup2.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area = 20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create union group : 
+ area &gt;= 20</p>
+
+<p class="whs1">aGroup3 = mesh.UnionGroups(aGroup1, 
+ aGroup2, &quot;Area &gt;= 20&quot;)</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt;= 20 Nb = &quot;, len( aGroup3.GetListOfID() )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &lt; 
+ 20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 20 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &lt; 20</p>
+
+<p class="whs1">aGroup4 = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &lt; 20&quot; )</p>
+
+<p class="whs1">aGroup4.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &lt; 20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;&nbsp;</p>
+
+<p class="whs2"># create union group : 
+ area &gt;= 20 and area &lt; 20</p>
+
+<p class="whs1">aGroup5 = mesh.UnionGroups(aGroup3, 
+ aGroup4, &quot;Any Area&quot;)</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Any Area Nb = &quot;, len( aGroup5.GetListOfID() )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="pics/union_groups1.png" x-maintain-ratio="TRUE" width="394px" height="425px" border="0" class="img_whs6"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="pics/union_groups2.png" x-maintain-ratio="TRUE" width="368px" height="379px" border="0" class="img_whs7"> <img src="pics/union_groups3.png" x-maintain-ratio="TRUE" width="344px" height="381px" border="0" class="img_whs8"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<h3><a name=bookmark3>Intersection of two groups</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 20 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &gt; 20</p>
+
+<p class="whs1">aGroup1 = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &gt; 20&quot; )</p>
+
+<p class="whs1">aGroup1.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt; 20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &lt; 
+ 60</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 60 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &lt; 60</p>
+
+<p class="whs1">aGroup2 = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &lt; 60&quot; )</p>
+
+<p class="whs1">aGroup2.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &lt; 60 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;&nbsp;</p>
+
+<p class="whs2"># create an intersection 
+ of groups : 20 &lt; area &lt; 60</p>
+
+<p class="whs1">aGroup3 = mesh.IntersectGroups(aGroup1, 
+ aGroup2, &quot;20 &lt; Area &lt; 60&quot;)</p>
+
+<p class="whs1">print &quot;Criterion: 
+ 20 &lt; Area &lt; 60 Nb = &quot;, len( aGroup3.GetListOfID() )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="pics/intersect_groups1.png" x-maintain-ratio="TRUE" width="314px" height="351px" border="0" class="img_whs9"> &nbsp;<img src="pics/intersect_groups2.png" x-maintain-ratio="TRUE" width="319px" height="351px" border="0" class="img_whs10"> &nbsp;<img src="pics/intersect_groups3.png" x-maintain-ratio="TRUE" width="304px" height="352px" border="0" class="img_whs11"></p>
+
+<h3><a name=bookmark4>Cut of two groups</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 20 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &gt; 20</p>
+
+<p class="whs1">aGroupMain = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &gt; 20&quot; )</p>
+
+<p class="whs1">aGroupMain.Add( 
+ anIds )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt; 20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &lt; 
+ 60</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 60 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group by adding 
+ elements with area &lt; 60</p>
+
+<p class="whs1">aGroupTool = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &lt; 60&quot; )</p>
+
+<p class="whs1">aGroupTool.Add( 
+ anIds )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &lt; 60 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;&nbsp;</p>
+
+<p class="whs2"># create an intersection 
+ of groups : area &gt;= 60</p>
+
+<p class="whs1">aGroupRes = mesh.CutGroups(aGroupMain, 
+ aGroupTool, &quot;Area &gt;= 60&quot;)</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt;= 60 Nb = &quot;, len( aGroupRes.GetListOfID() )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><img src="pics/cut_groups1.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs12"> &nbsp;<img src="pics/cut_groups2.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs13"> &nbsp;<img src="pics/cut_groups3.png" x-maintain-ratio="TRUE" width="320px" height="354px" border="0" class="img_whs14"></p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 5a15643bb019c662e2a22ef3c50db01b49ec66cb..14cea86187fe4e395d55cc30cf1ddb90bdd5b932 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image10.jpg and b/doc/salome/gui/SMESH/image10.jpg differ
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
index 8ca3453fdac083655fb3c9950eee1cad985b5c0d..dc6433146575445d3777b8a69c1077d533ed35b4 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image131.gif and b/doc/salome/gui/SMESH/image131.gif 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/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
index 3d8032bf057f2edd8812eb21cd20a75bab20767e..c678a613212dc150b7ac178b0b2e803658db259e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image24.gif and b/doc/salome/gui/SMESH/image24.gif 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
index edd5263d85a207447082330eed7c63e2e33d233d..43592da643f1dcc10d026e35f1bdf971eec1f97c 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image37.gif and b/doc/salome/gui/SMESH/image37.gif differ
index cbd6170ee9f9fdd1078ce15363a6eee1ed9dc86d..ded3ae99a35200597497fb8f0a1ad3803ce276c0 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image7.jpg and b/doc/salome/gui/SMESH/image7.jpg differ
index cb1223d3895bfeb700592dfd27b64d20f6ef772b..bdb07ea6bab04466f5aa3a92191cff1485b68014 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image71.jpg and b/doc/salome/gui/SMESH/image71.jpg 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 c66029e7484cd22dcbdfddd29e9592812a56b299..db8a4c8cd10fe3f3e33103f3bddfb74954d58a32 100755 (executable)
Binary files a/doc/salome/gui/SMESH/image74.gif and b/doc/salome/gui/SMESH/image74.gif differ
index 767e2b76603b15f474450307885db3890a5b070c..3163eee1bf114ea08f2cfd912baabafb8030c04e 100755 (executable)
-<html>\r
-<head>\r
-<title>Mesh Module Reference Manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var strDefaultTopic = "about:blank";\r
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset\r
-var bNoApplet  = false;\r
-var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
-var strPaneApplet = "whd_nvp20.htm";\r
-var strPaneList   = "whgdata/whnvp30.htm";\r
-\r
-var strHTML = "";\r
-var strPane = "";\r
-var nViewFrameType = -1;\r
-\r
-function CMRServer()\r
-{\r
-  this.m_cAgents = new Array;\r
-}\r
-var cMRServer = new CMRServer;\r
-\r
-//figure out which mode is the best\r
-if (!window.gAgent)\r
-{\r
-       // low end browser, we don't even try to determine it.\r
-       document.location = "whnjs.htm";\r
-}\r
-else\r
-{\r
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)\r
-               document.location = "whnjs.htm";\r
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
-               document.location = "whnjs.htm";\r
-       else if (gbMac && gbIE4 && !gbIE5)\r
-               document.location = "whnjs.htm";\r
-       //figure out which mode is the best\r
-       else \r
-       {\r
-               nViewFrameType=nWebhelpNavPaneMode;\r
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)\r
-               {\r
-                       var gbDHTML=(nWebhelpNavPaneMode==1);\r
-                       if (gbNav4)                                                                             nViewFrameType = 2;\r
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;\r
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;\r
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;\r
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;\r
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;\r
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;\r
-                       if (gbMac)                                                                                      nViewFrameType = 3;\r
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;\r
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;\r
-               }\r
-       }\r
-}\r
-\r
-if (nViewFrameType!=-1)\r
-{\r
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-       //The colordepth of the 16 color on Windows is 1. \r
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
-       {\r
-          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
-          nViewFrameType = 3;\r
-       }\r
-\r
-       //figure out which one is navpane\r
-       if (nViewFrameType == 1)\r
-               strPane = strPaneDHTML;\r
-       else if (nViewFrameType == 2)\r
-               strPane = strPaneApplet;\r
-       else \r
-               strPane = strPaneList;\r
-\r
-       var oParam = new Object();\r
-       oParam.sTopic = "";\r
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);\r
-       if (SendMessage(oMsg) && oParam.sTopic != "")\r
-               strDefaultTopic =  oParam.sTopic;\r
-\r
-\r
-       if (nViewFrameType == 1)\r
-       {\r
-               //DHTML (iframe or xml based)\r
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";\r
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";\r
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";\r
-       }\r
-       else if (nViewFrameType == 2)\r
-       {\r
-               //applet (xml based)\r
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";\r
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";\r
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";\r
-       }\r
-       else if (nViewFrameType == 3)\r
-       {\r
-               //generic html (pure html based)\r
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";\r
-               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";\r
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";\r
-               strHTML += "</frameset>";\r
-       } \r
-       else if (nViewFrameType == 4)\r
-       {\r
-               //no navipane at all\r
-               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";\r
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";\r
-               strHTML += "</frameset>";\r
-       }\r
-\r
-       document.write(strHTML);\r
-\r
-       RegisterListener2(window, WH_MSG_SHOWPANE);\r
-       RegisterListener2(window, WH_MSG_HIDEPANE);\r
-       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);\r
-       window.onunload = window_unload;\r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(window, WH_MSG_SHOWPANE);\r
-       UnRegisterListener2(window, WH_MSG_HIDEPANE);\r
-       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);\r
-}\r
-\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId = oMsg.nMessageId;\r
-       if (nMsgId == WH_MSG_SHOWPANE)\r
-       {\r
-               getElement("whPfset").cols = "260,*";\r
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
-               SendMessage(onMsg);\r
-               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");\r
-               if (SendMessage(onMsg))\r
-               {\r
-                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);\r
-                       SendMessage(onMsg);\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_HIDEPANE)\r
-       {\r
-               getElement("whPfset").cols = "0,*";\r
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");\r
-               SendMessage(onMsg);\r
-               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");\r
-               SendMessage(onMsg);\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)\r
-       {\r
-               var n = parseInt(getElement("whPfset").cols);\r
-               if (n > 0)\r
-               {\r
-                       oMsg.oParam.bVisible = true;\r
-               }\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-//-->\r
-</script>\r
-<body>\r
-<noscript>\r
-       <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>\r
-</noscript>\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
+<script language="javascript">
+<!--
+var strDefaultTopic = "about:blank";
+var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
+var bNoApplet  = false;
+var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.
+var strPaneApplet = "whd_nvp20.htm";
+var strPaneList   = "whgdata/whnvp30.htm";
+
+var strHTML = "";
+var strPane = "";
+var nViewFrameType = -1;
+
+function CMRServer()
+{
+  this.m_cAgents = new Array;
+}
+var cMRServer = new CMRServer;
+
+//figure out which mode is the best
+if (!window.gAgent)
+{
+       // low end browser, we don't even try to determine it.
+       document.location = "whnjs.htm";
+}
+else
+{
+       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
+               document.location = "whnjs.htm";
+       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
+               document.location = "whnjs.htm";
+       else if (gbMac && gbIE4 && !gbIE5)
+               document.location = "whnjs.htm";
+       //figure out which mode is the best
+       else 
+       {
+               nViewFrameType=nWebhelpNavPaneMode;
+               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
+               {
+                       var gbDHTML=(nWebhelpNavPaneMode==1);
+                       if (gbNav4)                                                                             nViewFrameType = 2;
+                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;
+                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;
+                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;
+                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;
+                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;
+                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;
+                       if (gbMac)                                                                                      nViewFrameType = 3;
+                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;
+                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;
+               }
+       }
+}
+
+if (nViewFrameType!=-1)
+{
+       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
+       //The colordepth of the 16 color on Windows is 1. 
+       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
+       {
+          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");
+          nViewFrameType = 3;
+       }
+
+       //figure out which one is navpane
+       if (nViewFrameType == 1)
+               strPane = strPaneDHTML;
+       else if (nViewFrameType == 2)
+               strPane = strPaneApplet;
+       else 
+               strPane = strPaneList;
+
+       var oParam = new Object();
+       oParam.sTopic = "";
+       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
+       if (SendMessage(oMsg) && oParam.sTopic != "")
+               strDefaultTopic =  oParam.sTopic;
+
+
+       if (nViewFrameType == 1)
+       {
+               //DHTML (iframe or xml based)
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
+               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
+               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
+       }
+       else if (nViewFrameType == 2)
+       {
+               //applet (xml based)
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
+               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
+               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
+       }
+       else if (nViewFrameType == 3)
+       {
+               //generic html (pure html based)
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";
+               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";
+               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
+               strHTML += "</frameset>";
+       } 
+       else if (nViewFrameType == 4)
+       {
+               //no navipane at all
+               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
+               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
+               strHTML += "</frameset>";
+       }
+
+       document.write(strHTML);
+
+       RegisterListener2(window, WH_MSG_SHOWPANE);
+       RegisterListener2(window, WH_MSG_HIDEPANE);
+       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
+       window.onunload = window_unload;
+}
+
+function window_unload()
+{
+       UnRegisterListener2(window, WH_MSG_SHOWPANE);
+       UnRegisterListener2(window, WH_MSG_HIDEPANE);
+       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
+}
+
+
+function onSendMessage(oMsg)
+{
+       var nMsgId = oMsg.nMessageId;
+       if (nMsgId == WH_MSG_SHOWPANE)
+       {
+               getElement("whPfset").cols = "260,*";
+               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
+               SendMessage(onMsg);
+               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
+               if (SendMessage(onMsg))
+               {
+                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
+                       SendMessage(onMsg);
+               }
+               return false;
+       }
+       else if (nMsgId == WH_MSG_HIDEPANE)
+       {
+               getElement("whPfset").cols = "0,*";
+               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
+               SendMessage(onMsg);
+               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
+               SendMessage(onMsg);
+               return false;
+       }
+       else if (nMsgId == WH_MSG_ISPANEVISIBLE)
+       {
+               var n = parseInt(getElement("whPfset").cols);
+               if (n > 0)
+               {
+                       oMsg.oParam.bVisible = true;
+               }
+               return false;
+       }
+       return true;
+}
+//-->
+</script>
+<body>
+<noscript>
+       <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>
+</noscript>
+</body>
+</html>
index 2bd1f63873cbe478f4efe7e5f44b207c754106e8..867d877c9d78dc2e3789baac48bef64f6d489373 100755 (executable)
-<html>\r
-<head>\r
-<title>Mesh Module Reference Manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_csh.html";\r
-var gCSHSuffixName2 = "_csh.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_webhelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       if (strProj)\r
-       {\r
-               strProj = _replaceSlash(strProj);\r
-               if (strProj.lastIndexOf("/") != strProj.length - 1)\r
-                       strProj += "/";\r
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-               var bFound = false;\r
-               for (var i = 0; i < len; i ++)\r
-               {\r
-                       if (isSamePath(gasProj[i], strPPath))\r
-                       {\r
-                               bFound = true;\r
-                               break;\r
-                       }\r
-               }\r
-               if (!bFound)\r
-                       gasProj[len] = strPPath;\r
-       }\r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_webhelp.htm"></frame>            \r
-</frameset>\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript" src="whutils.js"></script>
+<script language="javascript">
+<!--
+var gCSHFileName   = "whc_data.htm";
+var gCSHSuffixName1 = "_csh.html";
+var gCSHSuffixName2 = "_csh.htm";
+//-->
+</script>
+<script language="javascript">
+<!--
+gCSHFileName="cshdat_webhelp.htm";
+//-->
+</script>
+<script language="javascript">
+<!--
+var gasProj = new Array();
+gasProj[0] = _getPath(document.location.href);
+var gCurrent = 0;
+
+function addProject(strProj)
+{
+       var len  = gasProj.length;
+       if (strProj)
+       {
+               strProj = _replaceSlash(strProj);
+               if (strProj.lastIndexOf("/") != strProj.length - 1)
+                       strProj += "/";
+               var strPPath = _getFullPath(_getPath(document.location.href), strProj);
+               var bFound = false;
+               for (var i = 0; i < len; i ++)
+               {
+                       if (isSamePath(gasProj[i], strPPath))
+                       {
+                               bFound = true;
+                               break;
+                       }
+               }
+               if (!bFound)
+                       gasProj[len] = strPPath;
+       }
+}
+
+function isSamePath(strPath1, strPath2)
+{
+       return strPath1.toLowerCase() == strPath2.toLowerCase();
+}
+
+function goNext()
+{
+       gCurrent ++;
+       var len = gasProj.length;
+       if (gCurrent >= len)
+               return getHomePage()
+       else
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
+       return "";
+}
+
+function getRelHomePage(strLocation)
+{
+       var strCurPPath = _getPath(strLocation);
+       var strOriPPath = _getPath(getHomePage());
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
+       var strURL = getHomePage() + "#" + strRelPath;
+       return strURL;
+}
+
+function getHomePage()
+{
+       var strHomePage;
+       var strTmp = location.toString();
+       var nPos = strTmp.indexOf("#");
+       if (nPos != -1)
+       {
+          strHomePage = strTmp.substring(0, nPos);
+       }
+       else
+       {
+          strHomePage = strTmp;
+       }
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);
+       if (nPos != -1)
+       {
+          strHomePage = strHomePage.substring(0,nPos);
+          if (nPos1 != -1)
+            strHomePage += ".html";
+          else
+            strHomePage += ".htm";
+       }
+       return strHomePage;
+}
+//-->
+</script>
+</head>
+<frameset rows="1,*">
+<frame name="dumb" src="about:blank"></frame>
+<frame name="csh" src="cshdat_webhelp.htm"></frame>            
+</frameset>
 </html>
\ No newline at end of file
index 4e87239075c443db35f8612a1e34f451adabaa68..b751bd4c832b0f8dfc471286556f2115bb8ff670 100755 (executable)
-<html>\r
-<head>\r
-<title>Mesh Module Reference Manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_rhc.html";\r
-var gCSHSuffixName2 = "_rhc.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_robohelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       if (strProj)\r
-       {\r
-               strProj = _replaceSlash(strProj);\r
-               if (strProj.lastIndexOf("/") != strProj.length - 1)\r
-                       strProj += "/";\r
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-               var bFound = false;\r
-               for (var i = 0; i < len; i ++)\r
-               {\r
-                       if (isSamePath(gasProj[i], strPPath))\r
-                       {\r
-                               bFound = true;\r
-                               break;\r
-                       }\r
-               }\r
-               if (!bFound)\r
-                       gasProj[len] = strPPath;\r
-       }\r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
-</frameset>\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript" src="whutils.js"></script>
+<script language="javascript">
+<!--
+var gCSHFileName   = "whc_data.htm";
+var gCSHSuffixName1 = "_rhc.html";
+var gCSHSuffixName2 = "_rhc.htm";
+//-->
+</script>
+<script language="javascript">
+<!--
+gCSHFileName="cshdat_robohelp.htm";
+//-->
+</script>
+<script language="javascript">
+<!--
+var gasProj = new Array();
+gasProj[0] = _getPath(document.location.href);
+var gCurrent = 0;
+
+function addProject(strProj)
+{
+       var len  = gasProj.length;
+       if (strProj)
+       {
+               strProj = _replaceSlash(strProj);
+               if (strProj.lastIndexOf("/") != strProj.length - 1)
+                       strProj += "/";
+               var strPPath = _getFullPath(_getPath(document.location.href), strProj);
+               var bFound = false;
+               for (var i = 0; i < len; i ++)
+               {
+                       if (isSamePath(gasProj[i], strPPath))
+                       {
+                               bFound = true;
+                               break;
+                       }
+               }
+               if (!bFound)
+                       gasProj[len] = strPPath;
+       }
+}
+
+function isSamePath(strPath1, strPath2)
+{
+       return strPath1.toLowerCase() == strPath2.toLowerCase();
+}
+
+function goNext()
+{
+       gCurrent ++;
+       var len = gasProj.length;
+       if (gCurrent >= len)
+               return getHomePage()
+       else
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
+       return "";
+}
+
+function getRelHomePage(strLocation)
+{
+       var strCurPPath = _getPath(strLocation);
+       var strOriPPath = _getPath(getHomePage());
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
+       var strURL = getHomePage() + "#" + strRelPath;
+       return strURL;
+}
+
+function getHomePage()
+{
+       var strHomePage;
+       var strTmp = location.toString();
+       var nPos = strTmp.indexOf("#");
+       if (nPos != -1)
+       {
+          strHomePage = strTmp.substring(0, nPos);
+       }
+       else
+       {
+          strHomePage = strTmp;
+       }
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);
+       if (nPos != -1)
+       {
+          strHomePage = strHomePage.substring(0,nPos);
+          if (nPos1 != -1)
+            strHomePage += ".html";
+          else
+            strHomePage += ".htm";
+       }
+       return strHomePage;
+}
+//-->
+</script>
+</head>
+<frameset rows="1,*">
+<frame name="dumb" src="about:blank"></frame>
+<frame name="csh" src="cshdat_robohelp.htm"></frame>           
+</frameset>
 </html>
\ No newline at end of file
index ea7c013107798bc9a80e35a8db6da9a36fc5d58e..db7b0ae0f5e310425ea51940a75b813632550394 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Length</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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 +="</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\nLength");\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>Length</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The Length quality control criterion returns a value \r
- of length of edge.</p>\r
-\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
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs3">&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
- quality control</a> operation. &nbsp;</p>\r
-\r
-<p>.</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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Length</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:165px; height:239px; float:none; border-style:none; }
+p.whs4 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs4 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nLength");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Length</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The Length quality control criterion returns a value 
+ of length of edge.</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2"><img src="pics/length-crit.png" x-maintain-ratio="TRUE" width="165px" height="239px" border="0" class="img_whs3"></p>
+
+<p>&nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark2">&nbsp;Length 
+ quality control</a> operation. &nbsp;</p>
+
+<p>.</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 32b5ebfb8a8cf87bc86a3ef37531edd482243ab8..f210b6af87547d32271a48a4b9ee7bee34306f17 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Merge Elements</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }\r
-img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
-p.WebHelpNavBar { text-align:right; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging Elements");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("index.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1>Merging Elements</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows to merge coincident elements \r
- of a mesh selectable in the dialog box. </p>\r
-\r
-<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>\r
-\r
-<p>In this picture you see a triangle which coincides with one of the elements \r
- of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span> \r
- functionality, the triangle will be completely merged with the mesh. </p>\r
-\r
-<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>\r
-\r
-<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See \r
- Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge \r
- Elements</a> operation. &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Merge Elements</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+img_whs2 { border:none; width:313px; height:221px; float:none; border-style:none; }
+img_whs3 { border:none; width:235px; height:150px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nTransforming meshes\nMerging Elements");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Merging Elements</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This functionality allows to merge coincident elements 
+ of a mesh selectable in the dialog box. </p>
+
+<p><img src="pics/mergeelems.png" x-maintain-ratio="TRUE" width="313px" height="221px" border="0" class="img_whs2"></p>
+
+<p>In this picture you see a triangle which coincides with one of the elements 
+ of the mesh. After we apply <span style="font-weight: bold;"><B>Merge Elements</B></span> 
+ functionality, the triangle will be completely merged with the mesh. </p>
+
+<p><img src="pics/meshtrianglemergeelem1.png" x-maintain-ratio="TRUE" width="235px" height="150px" border="0" class="img_whs3"></p>
+
+<p>&nbsp;&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="transforming_meshes.htm#bookmark8">Merge 
+ Elements</a> operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index be7069d510c1e1dd93f192dc6183ecf6473e95ce..f849df81a47d7dc643643e97a5e9222e41c23daf 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>mesh</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-h1.whs1 { margin-top:0pt; margin-bottom:0pt; font-size:24pt; }\r
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-ul.whs4 { list-style:disc; }\r
-ul.whs5 { list-style:circle; }\r
-p.whs6 { margin-left:40px; margin-top:0pt; margin-bottom:0pt; }\r
-img_whs7 { border:none; width:472px; height:355px; border-style:none; float:right; }\r
-p.whs8 { margin-left:40px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }\r
-ol.whs9 { list-style:disc; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "h1.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
-p.WebHelpNavBar { text-align:right; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       addTocInfo("MESH module\nIntroduction to Mesh");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("index.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1 class="whs1">Introduction to MESH</h1>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>MESH</B></span> \r
- module of SALOME is destined for: </p>\r
-\r
-<ul type="disc" class="whs4">\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="files/importing_and_exporting_meshes.htm">import and export of meshes \r
- in MED format</a>,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="files/constructing_meshes.htm">meshing geometrical models</a> previously \r
- created or imported by the GEOM component. MESH module allows to apply \r
- 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>\r
-       \r
-       <ul type="circle" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Average_length">Average Length</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#max_element_area">Max Element \r
- Area</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#length_from_edges">Length \r
- from Edges</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#quadrangle preference">Quadrangle \r
- Preference</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/max._element_volume_hypothsis.htm">Max Element Volume</a></p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p class="whs2">modification \r
- of locally generated meshes by</p></li>\r
-       \r
-       <ul type="circle" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/adding_nodes_and_elements.htm">Addition</a> of nodes and elements</p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/removing_nodes_and_elements.htm">Removal</a> of nodes and \r
- elements</p></li>\r
-       </ul>\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="files/creating_groups.htm">grouping mesh elements</a> and <a href="files/using_operations_on_groups.htm">performing \r
- operations on these groups</a> </p></li>\r
-       \r
-       <li class=kadov-p><p class="whs2"><a href="files/about_quality_controls.htm">quality control</a> of meshes \r
- basing on a set of definite criteria -</p></li>\r
-</ul>\r
-\r
-<p class="whs6"><img src="image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs7"></p>\r
-\r
-<p class="whs8">for edges:</p>\r
-\r
-<ol type="disc" class="whs9">\r
-       \r
-       <ul type="circle" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="length.htm">Length of edges</a> </p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="borders_at_multi-connection.htm">Borders at multi-connection</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="free_borders.htm">Free borders</a></p></li>\r
-       </ul>\r
-</ol>\r
-\r
-<p class="whs8">for faces:</p>\r
-\r
-<ol type="disc" class="whs9">\r
-       \r
-       <ul type="circle" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/area_of_elements.htm">Area</a> </p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="free_edges.htm">Free edges</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="borders_at_multiconnection_2d.htm">Borders at multi-connection 2D</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/length_of_edges.htm">Length 2D</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/minimum_angle.htm">Minimum angle</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/taper.htm">Taper</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/aspect_ratio.htm">Aspect Ratio</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/warp.htm">Warping</a> </p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="files/skew.htm">Skew</a></p></li>\r
-       </ul>\r
-</ol>\r
-\r
-<p class="whs8">for solids:</p>\r
-\r
-<ol type="disc" class="whs9">\r
-       \r
-       <ul type="circle" class="whs5">\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="aspect_ratio_3d.htm">Aspect ratio 3D</a></p></li>\r
-               \r
-               <li class=kadov-p><p class="whs2"><a href="volume.htm">Volume</a></p></li>\r
-       </ul>\r
-</ol>\r
-\r
-<p class="whs2">.</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>mesh</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+h1.whs1 { margin-top:0pt; margin-bottom:0pt; font-size:24pt; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }
+img_whs3 { border:none; width:30px; height:30px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+ul.whs5 { list-style:circle; }
+p.whs6 { margin-left:40px; margin-top:0pt; margin-bottom:0pt; }
+img_whs7 { border:none; width:472px; height:355px; border-style:none; float:right; }
+p.whs8 { margin-left:40px; font-weight:bold; margin-top:0pt; margin-bottom:0pt; }
+ol.whs9 { list-style:disc; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "h1.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nIntroduction to Mesh");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1 class="whs1">Introduction to MESH</h1>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs3"><span style="font-weight: bold;"><B>MESH</B></span> 
+ module of SALOME is destined for: </p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs2"><a href="files/importing_and_exporting_meshes.htm">import and export of meshes 
+ in MED format</a>,</p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="files/constructing_meshes.htm">meshing geometrical models</a> previously 
+ created or imported by the GEOM component. MESH module allows to apply 
+ 1D, 2D, 3D meshing algorithms and a set of hypotheses:</p></li>
+       
+       <ul type="circle" class="whs5">
+               
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#arithmetic_1D">Arithmetic 1D</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Average_length">Average Length</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#deflection_1D">Deflection 1D </a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#Number_of_elements">Number of segments</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#start_and_end_length">Start and end length</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/arithmetic_1d.htm#automatic_length">Automatic Length</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#max_element_area">Max Element 
+ Area</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#length_from_edges">Length 
+ from Edges</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_area_hypothesis.htm#quadrangle preference">Quadrangle 
+ Preference</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/max._element_volume_hypothsis.htm">Max Element Volume</a></p></li>
+       </ul>
+       
+       <li class=kadov-p><p class="whs2">modification 
+ of locally generated meshes by</p></li>
+       
+       <ul type="circle" class="whs5">
+               
+               <li class=kadov-p><p class="whs2"><a href="files/adding_nodes_and_elements.htm">Addition</a> of nodes and elements</p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/removing_nodes_and_elements.htm">Removal</a> of nodes and 
+ elements</p></li>
+       </ul>
+       
+       <li class=kadov-p><p class="whs2"><a href="files/creating_groups.htm">grouping mesh elements</a> and <a href="files/using_operations_on_groups.htm">performing 
+ operations on these groups</a> </p></li>
+       
+       <li class=kadov-p><p class="whs2"><a href="files/about_quality_controls.htm">quality control</a> of meshes 
+ basing on a set of definite criteria -</p></li>
+</ul>
+
+<p class="whs6"><img src="image7.jpg" x-maintain-ratio="TRUE" width="472px" height="355px" align="right" border="0" class="img_whs7"></p>
+
+<p class="whs8">for edges:</p>
+
+<ol type="disc" class="whs9">
+       
+       <ul type="circle" class="whs5">
+               
+               <li class=kadov-p><p class="whs2"><a href="length.htm">Length of edges</a> </p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="borders_at_multi-connection.htm">Borders at multi-connection</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="free_borders.htm">Free borders</a></p></li>
+       </ul>
+</ol>
+
+<p class="whs8">for faces:</p>
+
+<ol type="disc" class="whs9">
+       
+       <ul type="circle" class="whs5">
+               
+               <li class=kadov-p><p class="whs2"><a href="files/area_of_elements.htm">Area</a> </p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="free_edges.htm">Free edges</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="borders_at_multiconnection_2d.htm">Borders at multi-connection 2D</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/length_of_edges.htm">Length 2D</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/minimum_angle.htm">Minimum angle</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/taper.htm">Taper</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/aspect_ratio.htm">Aspect Ratio</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/warp.htm">Warping</a> </p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="files/skew.htm">Skew</a></p></li>
+       </ul>
+</ol>
+
+<p class="whs8">for solids:</p>
+
+<ol type="disc" class="whs9">
+       
+       <ul type="circle" class="whs5">
+               
+               <li class=kadov-p><p class="whs2"><a href="aspect_ratio_3d.htm">Aspect ratio 3D</a></p></li>
+               
+               <li class=kadov-p><p class="whs2"><a href="volume.htm">Volume</a></p></li>
+       </ul>
+</ol>
+
+<p class="whs2">.</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 8ba2b742c99f79460c5c5bda9c56738cd83ba7c3..4e44b555e4994113d5d05f1bdc916434d03d0bfb 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Modifying Meshes</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>\r
-<!--\r
-P { margin-top:0pt; margin-bottom:0pt; }\r
-LI.kadov-P {  }\r
--->\r
-</style><style type="text/css">\r
-<!--\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
--->\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 += "h4.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs5 {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\nTUI Scripts\nModifying Meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Modifying Meshes</h1>\r
-\r
-<h3><a name=bookmark>Adding Nodes and Elements</a></h3>\r
-\r
-<h4>Add Node</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h4>Add Edge</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add edge</p>\r
-\r
-<p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddEdge([LastNodeId, \r
- 38]) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Edge addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO edge addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h4>Add Triangle</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add triangle</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddFace([LastNodeId, \r
- 38, 39]) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Triangle addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO triangle addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h4>Add Quadrangle</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add quadrangle</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(40, \r
- 20, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(), \r
- LastNodeId, 38, 39]) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Quadrangle addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO quadrangle addition.&quot;</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
-<p class="whs2">&nbsp;</p>\r
-\r
-<h4>Add Tetrahedron</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add tetrahedron</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddVolume([LastNodeId, \r
- 38, 39, 246]) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Tetrahedron addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO tetrahedron addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&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
-<h4>Add Hexahedron</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add nodes</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">aNodeId1 = mesh.NbNodes()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(47, \r
- 12, 0) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">aNodeId2 = mesh.NbNodes()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(50, \r
- 10, 10) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">aNodeId3 = mesh.NbNodes()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddNode(47, \r
- 12, 10) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node addition.&quot;</p>\r
-\r
-<p class="whs1">aNodeId4 = mesh.NbNodes()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># add hexahedron</p>\r
-\r
-<p class="whs1">if aMeshEditor.AddVolume([aNodeId2, \r
- aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Hexahedron addition is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO Hexahedron addition.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&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=bookmark1>Removing Nodes and Elements</a></h3>\r
-\r
-<h4 class="whs3">Removing Nodes</h4>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># add node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">if aMeshEditor.RemoveNodes([246, \r
- 255]) == 1:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;Node removing is OK!&quot;</p>\r
-\r
-<p class="whs1">else:</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
- &quot;KO node removing.&quot;</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&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
-<h4>Removing Elements</h4>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">anEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">anEditor.RemoveElements([850, \r
- 859, 814])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>\r
-\r
-<p class="whs4">import SMESH</p>\r
-\r
-<p class="whs4">import SMESH_mechanic</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs4">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">anEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs4">anEditor.RenumberNodes()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=bookmark3>Moving Nodes</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># move node</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">aMeshEditor.MoveNode(38, \r
- 20, 10, 0)</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&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=bookmark4>Diagonal Inversion</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># inverse diagonal</p>\r
-\r
-<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">aMeshEditor.InverseDiag(700, \r
- 642)</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;&nbsp;&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=bookmark5>Uniting two Triangles</a></h3>\r
-\r
-<p class="whs6">import SMESH</p>\r
-\r
-<p class="whs6">import SMESH_mechanic</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p># delete diagonal</p>\r
-\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs6">aMeshEditor.DeleteDiag(700, \r
- 642)</p>\r
-\r
-<p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>\r
-\r
-<p class="whs6">import SMESH</p>\r
-\r
-<p class="whs6">import SMESH_mechanic</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p># unite a set of triangles</p>\r
-\r
-<p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs6">aMeshEditor.TriToQuad([1145, \r
- 1147, 1159, 1135], aFunctor, 60)</p>\r
-\r
-<p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<h3><a name=bookmark7>Cutting Quadrangles</a></h3>\r
-\r
-<p class="whs6">import SMESH</p>\r
-\r
-<p class="whs6">import SMESH_mechanic</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs7"># unite a set of triangles</p>\r
-\r
-<p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs6">aMeshEditor.QuadToTri([405, \r
- 406], aFunctor)</p>\r
-\r
-<p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<h3><a name=bookmark8>Smoothing</a></h3>\r
-\r
-<p class="whs6">import SMESH</p>\r
-\r
-<p class="whs6">import SMESH_mechanic</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs7"># smooth</p>\r
-\r
-<p class="whs6">FacesSmooth = [911, \r
- 931, 950, 864, 932]</p>\r
-\r
-<p class="whs6">GroupSmooth = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
- of faces (smooth)&quot;)</p>\r
-\r
-<p class="whs6">GroupSmooth.Add(FacesSmooth)</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs6">aMeshEditor.SmoothObject(GroupSmooth, \r
- [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<h3><a name=bookmark9>Extrusion</a></h3>\r
-\r
-<p class="whs7">import SMESH</p>\r
-\r
-<p class="whs7">import SMESH_mechanic</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\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">&nbsp;</p>\r
-\r
-<p class="whs7"># extrusion of the group</p>\r
-\r
-<p class="whs7">point = SMESH.PointStruct(0, \r
- 0, 5)</p>\r
-\r
-<p class="whs7">vector = SMESH.DirStruct(point)</p>\r
-\r
-<p class="whs7">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
-\r
-<p class="whs7">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
- of faces (quad)&quot;)</p>\r
-\r
-<p class="whs7">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs7">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
- vector, 5)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<h3><a name=bookmark10>Extrusion along a Path</a></h3>\r
-\r
-<p class="whs6">import geompy</p>\r
-\r
-<p class="whs6">import smesh</p>\r
-\r
-<p class="whs6">import salome</p>\r
-\r
-<p class="whs6">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
-\r
-<p class="whs7"># create vertices</p>\r
-\r
-<p class="whs6">px &nbsp;&nbsp;= \r
- geompy.MakeVertex(100., 0. &nbsp;, \r
- 0. &nbsp;)</p>\r
-\r
-<p class="whs6">py &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 100., 0. &nbsp;)</p>\r
-\r
-<p class="whs6">pz &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 0. &nbsp;, 100.)</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs7"># create a vector from \r
- two points</p>\r
-\r
-<p class="whs6">vxy = geompy.MakeVector(px, \r
- py)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create an arc from \r
- three points</p>\r
-\r
-<p class="whs6">arc = geompy.MakeArc(py, \r
- pz, px)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create a wire</p>\r
-\r
-<p class="whs6">wire = geompy.MakeWire([vxy, \r
- arc])</p>\r
-\r
-<p class="whs6">isPlanarFace = 1</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create a face from \r
- the wire</p>\r
-\r
-<p class="whs6">face1 = geompy.MakeFace(wire, \r
- isPlanarFace)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># add objects in the \r
- study</p>\r
-\r
-<p class="whs6">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create hexahedrical \r
- mesh</p>\r
-\r
-<p class="whs6">hexa = smesh.Mesh(face1, \r
- &quot;Face compound : hexahedrical mesh&quot;)</p>\r
-\r
-<p class="whs6">algo = hexa.Triangle()</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
-\r
-<p class="whs6">algo.MaxElementArea(30)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create a quadrangle \r
- 2D algorithm for faces</p>\r
-\r
-<p class="whs6">hexa.Quadrangle()</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create a local hypothesis</p>\r
-\r
-<p class="whs6">algo = hexa.Segment(wire)</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
-\r
-<p class="whs6">algo.NumberOfSegments(6)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># compute the mesh</p>\r
-\r
-<p class="whs6">hexa.Compute()</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create path mesh and \r
- path shape</p>\r
-\r
-<p class="whs7"># create a circle from \r
- three points</p>\r
-\r
-<p class="whs6">px1 &nbsp;&nbsp;= \r
- geompy.MakeVertex(100., 100. &nbsp;, \r
- 0. &nbsp;)</p>\r
-\r
-<p class="whs6">py1 &nbsp;&nbsp;= \r
- geompy.MakeVertex(-100. &nbsp;, \r
- -100., 0. &nbsp;)</p>\r
-\r
-<p class="whs6">pz1 &nbsp;&nbsp;= \r
- geompy.MakeVertex(0. &nbsp;, \r
- 0. &nbsp;, 50.)</p>\r
-\r
-<p class="whs6">circle = geompy.MakeCircleThreePnt(py1, \r
- pz1, px1)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># add objects in the \r
- study</p>\r
-\r
-<p class="whs6">id_circle = geompy.addToStudy(circle,&quot;Path&quot;)</p>\r
-\r
-<p class="whs6">circlemesh = smesh.Mesh(circle, \r
- &quot;Path mesh&quot;)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># create a local hypothesis</p>\r
-\r
-<p class="whs6">algo = circlemesh.Segment()</p>\r
-\r
-<p class="whs7"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs6">algo.NumberOfSegments(10)</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># compute the mesh</p>\r
-\r
-<p class="whs6">circlemesh.Compute()</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># extrusion of the mesh</p>\r
-\r
-<p class="whs6">aMeshEditor = hexa.GetMesh().GetMeshEditor()</p>\r
-\r
-<p class="whs6">aMeshEditor.ExtrusionAlongPathObject(hexa.GetMesh(), \r
- circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<h3><a name=bookmark11>Revolution</a></h3>\r
-\r
-<p class="whs6">import SMESH</p>\r
-\r
-<p class="whs6">import SMESH_mechanic</p>\r
-\r
-<p class="whs6">import math</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs6">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs6">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs7">&nbsp;</p>\r
-\r
-<p class="whs7"># rotate a sweep object</p>\r
-\r
-<p class="whs6">FacesRotate = [492, \r
- 493, 502, 503]</p>\r
-\r
-<p class="whs6">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
- of faces (rotate)&quot;)</p>\r
-\r
-<p class="whs6">GroupRotate.Add(FacesRotate)</p>\r
-\r
-<p class="whs6">angle45 = &nbsp;45*math.pi/180</p>\r
-\r
-<p class="whs6">axisXYZ = SMESH.AxisStruct(-38.3128, \r
- -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs6">aMeshEditor.RotationSweepObject(GroupRotate, \r
- axisXYZ, angle45, 4, 1e-5)</p>\r
-\r
-<p class="whs6">&nbsp;</p>\r
-\r
-<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Modifying Meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
+<!--
+P { margin-top:0pt; margin-bottom:0pt; }
+LI.kadov-P {  }
+-->
+</style><style type="text/css">
+<!--
+p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }
+p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
+h4.whs4 { margin-top:0pt; margin-bottom:0pt; }
+p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }
+p.whs7 { font-family:'Lucida Console' , monospace; }
+p.whs8 { font-family:'Times New Roman' , serif; }
+p.whs9 { margin-left:40px; font-family:'Lucida Console' , monospace; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Modifying Meshes</h1>
+
+<h3><a name=bookmark>Adding Nodes and Elements</a></h3>
+
+<h4>Add Node</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<h4>Add Edge</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add edge</p>
+
+<p class="whs1">LastNodeId = mesh.NbNodes()</p>
+
+<p class="whs1">if aMeshEditor.AddEdge([LastNodeId, 
+ 38]) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Edge addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO edge addition.&quot;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<h4>Add Triangle</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">LastNodeId = mesh.NbNodes()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add triangle</p>
+
+<p class="whs1">if aMeshEditor.AddFace([LastNodeId, 
+ 38, 39]) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Triangle addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO triangle addition.&quot;</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<h4>Add Quadrangle</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">LastNodeId = mesh.NbNodes()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add quadrangle</p>
+
+<p class="whs1">if aMeshEditor.AddNode(40, 
+ 20, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(), 
+ LastNodeId, 38, 39]) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Quadrangle addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO quadrangle addition.&quot;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h4>Add Tetrahedron</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">LastNodeId = mesh.NbNodes()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add tetrahedron</p>
+
+<p class="whs1">if aMeshEditor.AddVolume([LastNodeId, 
+ 38, 39, 246]) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Tetrahedron addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO tetrahedron addition.&quot;</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h4>Add Hexahedron</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add nodes</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">aNodeId1 = mesh.NbNodes()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">if aMeshEditor.AddNode(47, 
+ 12, 0) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">aNodeId2 = mesh.NbNodes()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">if aMeshEditor.AddNode(50, 
+ 10, 10) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">aNodeId3 = mesh.NbNodes()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">if aMeshEditor.AddNode(47, 
+ 12, 10) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node addition.&quot;</p>
+
+<p class="whs1">aNodeId4 = mesh.NbNodes()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># add hexahedron</p>
+
+<p class="whs1">if aMeshEditor.AddVolume([aNodeId2, 
+ aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Hexahedron addition is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO Hexahedron addition.&quot;</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h4>Add Polygon</h4>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import math</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># GEOM module </p>
+
+<p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, 
+ 77)</p>
+
+<p class="whs1">geompy.addToStudy(shape_mesh, 
+ &quot;cylinder&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># SMESH module</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>
+
+<p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># a method to build a polygonal 
+ mesh element with nb_vert angles:</p>
+
+<p class="whs1">def MakePolygon 
+ (a_mesh, x0, y0, z0, radius, nb_vert):</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_start_id 
+ = a_mesh.NbNodes() + 1</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;al 
+ = 2.0 * math.pi / nb_vert</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_ids 
+ = []</p>
+
+<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"># Create nodes for a polyhedron</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;for 
+ ii in range(nb_vert):</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(x0 
+ + radius * math.cos(ii*al),</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0 
+ + radius * math.sin(ii*al),</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z0)</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node_ids.append(node_start_id 
+ + ii)</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
+
+<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"># Create a polygon</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddPolygonalFace(node_ids)</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;return 
+ 0</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Create three polygons</p>
+
+<p class="whs1">MakePolygon(mesh, 
+ 0, 0, &nbsp;0, 
+ 30, 13)</p>
+
+<p class="whs1">MakePolygon(mesh, 
+ 0, 0, 10, 21, &nbsp;9)</p>
+
+<p class="whs1">MakePolygon(mesh, 
+ 0, 0, 20, 13, &nbsp;6)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ &nbsp;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<h4>Add polyhedron</h4>
+
+<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import math</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">#import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># GEOM</p>
+
+<p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, 
+ 77)</p>
+
+<p class="whs1">geompy.addToStudy(shape_mesh, 
+ &quot;cylinder&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># SMESH</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>
+
+<p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># Now we are going 
+ to create a 12-hedron:</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># Create nodes for 
+ polyhedron</p>
+
+<p class="whs1">al = 2 * math.pi 
+ / 5.0</p>
+
+<p class="whs1">cosal = math.cos(al)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aa = 13</p>
+
+<p class="whs1">rr = aa / (2.0 * 
+ math.sin(al/2.0))</p>
+
+<p class="whs1">dr = 2.0 * rr * 
+ cosal</p>
+
+<p class="whs1">r1 = rr + dr</p>
+
+<p class="whs1">dh = rr * math.sqrt(2.0 
+ * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>
+
+<p class="whs1">hh = 2.0 * dh - 
+ dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">for i in range(5):</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(rr*math.cos(i*al), 
+ rr*math.sin(i*al), &nbsp;0) 
+ <span style="font-family: 'Times New Roman', serif;"># 1,3,5,7, 9 # bottom</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(r1*math.cos(i*al), 
+ r1*math.sin(i*al), dh) <span style="font-family: 'Times New Roman', serif;"># 
+ 2,4,6,8,10 # above bottom</span></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">for i in range(5):</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(rr*math.cos(i*al 
+ + al/2.0),</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr*math.sin(i*al 
+ + al/2.0), hh) # 11,13,15,17,19 <span style="font-family: 'Times New Roman', serif;"># 
+ top</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(r1*math.cos(i*al 
+ + al/2.0),</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r1*math.sin(i*al 
+ + al/2.0), hh - dh) # 12,14,16,18,20 <span style="font-family: 'Times New Roman', serif;"># 
+ below top</span></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># Create a polyhedral 
+ volume</p>
+
+<p class="whs1">MeshEditor.AddPolyhedralVolume([ 
+ 1, &nbsp;3, &nbsp;5, 
+ &nbsp;7, &nbsp;9, 
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ bottom</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
+ &nbsp;2, 12, 
+ &nbsp;4, &nbsp;3, 
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ .</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3, 
+ &nbsp;4, 14, 
+ &nbsp;6, &nbsp;5, 
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ .</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5, 
+ &nbsp;6, 16, 
+ &nbsp;8, &nbsp;7, 
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ . above bottom</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7, 
+ &nbsp;8, 18, 
+ 10, &nbsp;9, 
+ &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ .</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9, 
+ 10, 20, &nbsp;2, 
+ &nbsp;1, &nbsp;<span 
+ style="font-family: 'Times New Roman', serif;"># 
+ .</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11, 
+ 12, &nbsp;4, 
+ 14, 13, &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ -</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13, 
+ 14, &nbsp;6, 
+ 16, 15, &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ -</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15, 
+ 16, &nbsp;8, 
+ 18, 17, &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ - below top</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17, 
+ 18, 10, 20, 19, &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ -</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;19, 
+ 20, &nbsp;2, 
+ 12, 11, &nbsp;<span style="font-family: 'Times New Roman', serif;"># 
+ -</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11, 
+ 13, 15, 17, 19], <span style="font-family: 'Times New Roman', serif;"># 
+ top</span></p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5,5,5,5,5,5,5,5,5,5,5,5])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ &nbsp;</p>
+
+<p class="whs1">&nbsp;</p>
+
+<h3><a name=bookmark1>Removing Nodes and Elements</a></h3>
+
+<h4 class="whs4">Removing Nodes</h4>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># add node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">if aMeshEditor.RemoveNodes([246, 
+ 255]) == 1:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;Node removing is OK!&quot;</p>
+
+<p class="whs1">else:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
+ &quot;KO node removing.&quot;</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h4>Removing Elements</h4>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">anEditor.RemoveElements([850, 
+ 859, 814])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>
+
+<p class="whs5">import SMESH</p>
+
+<p class="whs5">import SMESH_mechanic</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs5">salome = SMESH_mechanic.salome</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">anEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs5">anEditor.RenumberNodes()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs6">&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h3><a name=bookmark3>Moving Nodes</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># move node</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">aMeshEditor.MoveNode(38, 
+ 20, 10, 0)</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark4>Diagonal Inversion</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># inverse diagonal</p>
+
+<p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">aMeshEditor.InverseDiag(700, 
+ 642)</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark5>Uniting two Triangles</a></h3>
+
+<p class="whs7">import SMESH</p>
+
+<p class="whs7">import SMESH_mechanic</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs7">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs7">salome = SMESH_mechanic.salome</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p># delete diagonal</p>
+
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs7">aMeshEditor.DeleteDiag(700, 
+ 642)</p>
+
+<p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p>&nbsp;</p>
+
+<h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
+
+<p class="whs7">import SMESH</p>
+
+<p class="whs7">import SMESH_mechanic</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs7">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs7">salome = SMESH_mechanic.salome</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p># unite a set of triangles</p>
+
+<p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs7">aMeshEditor.TriToQuad([1145, 
+ 1147, 1159, 1135], aFunctor, 60)</p>
+
+<p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs7">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs7">&nbsp;</p>
+
+<h3><a name=bookmark12>Orientation</a></h3>
+
+<p class="whs7"><span style="font-family: 'Lucida Console', monospace;">import 
+ salome</span></p>
+
+<p class="whs7">import geompy</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">import StdMeshers</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># GEOM module</p>
+
+<p class="whs7">shape_mesh = geompy.MakeCylinderRH(13, 
+ 77)</p>
+
+<p class="whs7">geompy.addToStudy(shape_mesh, 
+ &quot;cylinder&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># SMESH module</p>
+
+<p class="whs7">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs7">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs7">mesh = smesh.CreateMesh(shape_mesh)</p>
+
+<p class="whs7">MeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># build five quadrangles:</p>
+
+<p class="whs7">node_start_id = mesh.NbNodes() 
+ + 1</p>
+
+<p class="whs7">dx = 10</p>
+
+<p class="whs7">dy = 20</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">MeshEditor.AddNode(0.0 
+ * dx, 0, 0) # 1</p>
+
+<p class="whs7">MeshEditor.AddNode(1.0 
+ * dx, 0, 0) # 2</p>
+
+<p class="whs7">MeshEditor.AddNode(2.0 
+ * dx, 0, 0) # 3</p>
+
+<p class="whs7">MeshEditor.AddNode(3.0 
+ * dx, 0, 0) # 4</p>
+
+<p class="whs7">MeshEditor.AddNode(4.0 
+ * dx, 0, 0) # 5</p>
+
+<p class="whs7">MeshEditor.AddNode(5.0 
+ * dx, 0, 0) # 6</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">MeshEditor.AddNode(0.0 
+ * dx, dy, 0) # 7</p>
+
+<p class="whs7">MeshEditor.AddNode(1.0 
+ * dx, dy, 0) # 8</p>
+
+<p class="whs7">MeshEditor.AddNode(2.0 
+ * dx, dy, 0) # 9</p>
+
+<p class="whs7">MeshEditor.AddNode(3.0 
+ * dx, dy, 0) # 10</p>
+
+<p class="whs7">MeshEditor.AddNode(4.0 
+ * dx, dy, 0) # 11</p>
+
+<p class="whs7">MeshEditor.AddNode(5.0 
+ * dx, dy, 0) # 12</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">MeshEditor.AddFace([1, 
+ 2, &nbsp;8, &nbsp;7])</p>
+
+<p class="whs7">MeshEditor.AddFace([2, 
+ 3, &nbsp;9, &nbsp;8])</p>
+
+<p class="whs7">MeshEditor.AddFace([3, 
+ 4, 10, &nbsp;9])</p>
+
+<p class="whs7">MeshEditor.AddFace([4, 
+ 5, 11, 10])</p>
+
+<p class="whs7">MeshEditor.AddFace([5, 
+ 6, 12, 11])</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># Change orientation 
+ of the second and the fourth faces.</p>
+
+<p class="whs7">MeshEditor.Reorient([2, 
+ 4])</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">salome.sg.updateObjBrowser(1) 
+ &nbsp;</p>
+
+<p class="whs7">&nbsp;</p>
+
+<h3><a name=bookmark7>Cutting Quadrangles</a></h3>
+
+<p class="whs7">import SMESH</p>
+
+<p class="whs7">import SMESH_mechanic</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs7">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs7">salome = SMESH_mechanic.salome</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># unite a set of triangles</p>
+
+<p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs7">aMeshEditor.QuadToTri([405, 
+ 406], aFunctor)</p>
+
+<p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs7">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs8">&nbsp;</p>
+
+<h3><a name=bookmark8>Smoothing</a></h3>
+
+<p class="whs7">import SMESH</p>
+
+<p class="whs7">import SMESH_mechanic</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs7">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs7">salome = SMESH_mechanic.salome</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># smooth</p>
+
+<p class="whs7">FacesSmooth = [911, 
+ 931, 950, 864, 932]</p>
+
+<p class="whs7">GroupSmooth = mesh.CreateGroup(SMESH.FACE,&quot;Group 
+ of faces (smooth)&quot;)</p>
+
+<p class="whs7">GroupSmooth.Add(FacesSmooth)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs7">aMeshEditor.SmoothObject(GroupSmooth, 
+ [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">&nbsp;</p>
+
+<h3><a name=bookmark9>Extrusion</a></h3>
+
+<p class="whs8">import SMESH</p>
+
+<p class="whs8">import SMESH_mechanic</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs8">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs8">salome = SMESH_mechanic.salome</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># extrusion of the group</p>
+
+<p class="whs8">point = SMESH.PointStruct(0, 
+ 0, 5)</p>
+
+<p class="whs8">vector = SMESH.DirStruct(point)</p>
+
+<p class="whs8">FacesTriToQuad = [2381, 
+ 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 
+ 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 
+ 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 
+ 2418, 2419, 2420, 2421, 2422]</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,&quot;Group 
+ of faces (quad)&quot;)</p>
+
+<p class="whs8">GroupTriToQuad.Add(FacesTriToQuad)</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs8">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, 
+ vector, 5)</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs8">&nbsp;</p>
+
+<h3><a name=bookmark10>Extrusion along a Path</a></h3>
+
+<p class="whs7">import geompy</p>
+
+<p class="whs7">import smesh</p>
+
+<p class="whs7">import salome</p>
+
+<p class="whs7">import SMESH</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># create a face to be 
+ meshed</p>
+
+<p class="whs7">px = geompy.MakeVertex(100., 
+ 0. &nbsp;, 0. 
+ &nbsp;)</p>
+
+<p class="whs7">py = geompy.MakeVertex(0. 
+ &nbsp;, 100., 
+ 0. &nbsp;)</p>
+
+<p class="whs7">pz = geompy.MakeVertex(0. 
+ &nbsp;, 0. &nbsp;, 
+ 100.)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">vxy = geompy.MakeVector(px, 
+ py)</p>
+
+<p class="whs7">arc = geompy.MakeArc(py, 
+ pz, px)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">wire = geompy.MakeWire([vxy, 
+ arc])</p>
+
+<p class="whs7">isPlanarFace = 1</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">face1 = geompy.MakeFace(wire, 
+ isPlanarFace)</p>
+
+<p class="whs7">id_face1 = geompy.addToStudy(face1, 
+ &quot;Face1&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># create a 2D mesh on 
+ the face</p>
+
+<p class="whs7">trias = smesh.Mesh(face1, 
+ &quot;Face : 2D mesh&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">algo = trias.Segment()</p>
+
+<p class="whs7">algo.NumberOfSegments(6)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">algo = trias.Triangle()</p>
+
+<p class="whs7">algo.LengthFromEdges()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">trias.Compute()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># create a path mesh</p>
+
+<p class="whs7">px1 = geompy.MakeVertex(100., 
+ 100. &nbsp;, 
+ 0. &nbsp;)</p>
+
+<p class="whs7">py1 = geompy.MakeVertex(-100. 
+ &nbsp;, -100., 
+ 0. &nbsp;)</p>
+
+<p class="whs7">pz1 = geompy.MakeVertex(0. 
+ &nbsp;, 0. &nbsp;, 
+ 50.)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">circle = geompy.MakeCircleThreePnt(py1, 
+ pz1, px1)</p>
+
+<p class="whs7">id_circle = geompy.addToStudy(circle, 
+ &quot;Path&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">circlemesh = smesh.Mesh(circle, 
+ &quot;Path mesh&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">algo = circlemesh.Segment()</p>
+
+<p class="whs7">algo.NumberOfSegments(10)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">circlemesh.Compute()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># extrusion of the mesh</p>
+
+<p class="whs8"># The mesh &quot;trias&quot; 
+ will be extruded along another mesh, which is a sub-mesh of &quot;circlemesh&quot;,</p>
+
+<p class="whs8"><span style="font-family: 'Times New Roman', serif;"># 
+ corresponding to geometry &quot;circle&quot;. In this particular case 
+ the path mesh will be the whole &quot;circlemesh&quot;</span></p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs7">aMeshEditor = trias.GetMesh().GetMeshEditor()</p>
+
+<p class="whs7">aMeshEditor.ExtrusionAlongPathObject(trias.GetMesh(), 
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<h3><a name=bookmark11>Revolution</a></h3>
+
+<p class="whs7">import SMESH</p>
+
+<p class="whs7">import SMESH_mechanic</p>
+
+<p class="whs7">import math</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs7">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs7">salome = SMESH_mechanic.salome</p>
+
+<p class="whs8">&nbsp;</p>
+
+<p class="whs8"># rotate a sweep object</p>
+
+<p class="whs7">FacesRotate = [492, 
+ 493, 502, 503]</p>
+
+<p class="whs7">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group 
+ of faces (rotate)&quot;)</p>
+
+<p class="whs7">GroupRotate.Add(FacesRotate)</p>
+
+<p class="whs7">angle45 = &nbsp;45*math.pi/180</p>
+
+<p class="whs7">axisXYZ = SMESH.AxisStruct(-38.3128, 
+ -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs7">aMeshEditor.RotationSweepObject(GroupRotate, 
+ axisXYZ, angle45, 4, 1e-5)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs8">&nbsp;</p>
+
+<h3><a name=bookmark13>Pattern Mapping</a></h3>
+
+<p class="whs7">import salome</p>
+
+<p class="whs7">import geompy</p>
+
+<p class="whs7">import SMESH, smesh</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">geompy.init_geom(salome.myStudy)</p>
+
+<p class="whs7">smesh.smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># define geometry</p>
+
+<p class="whs7">Box_1 = geompy.MakeBoxDXDYDZ(200, 
+ 200, 200)</p>
+
+<p class="whs7">geompy.addToStudy(Box_1, 
+ &quot;Box_1&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">faces = geompy.SubShapeAll(Box_1, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs7">Face_1 = faces[0]</p>
+
+<p class="whs7">Face_2 = faces[1]</p>
+
+<p class="whs7">geompy.addToStudyInFather(Box_1, 
+ Face_1, &quot;Face_1&quot;)</p>
+
+<p class="whs7">geompy.addToStudyInFather(Box_1, 
+ Face_2, &quot;Face_2&quot;)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># build quadrangle mesh 
+ 3x3 on Face_1</p>
+
+<p class="whs7">Mesh_1 = smesh.Mesh(Face_1)</p>
+
+<p class="whs7">Wire_discretisation 
+ = Mesh_1.Segment()</p>
+
+<p class="whs7">Wire_discretisation.NumberOfSegments(3)</p>
+
+<p class="whs7">Mesh_1.Quadrangle()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">isDone = Mesh_1.Compute()</p>
+
+<p class="whs7">if not isDone: print 
+ 'Mesh Mesh_1 : computation failed'</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># pattern the mesh</p>
+
+<p class="whs7">Mesh_2 = smesh.Mesh(Face_2)</p>
+
+<p class="whs7">Nb_Segments_1 = smesh.smesh.CreateHypothesis('NumberOfSegments', 
+ 'libStdMeshersEngine.so')</p>
+
+<p class="whs7">Nb_Segments_1.SetNumberOfSegments(1)</p>
+
+<p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, 
+ Nb_Segments_1)</p>
+
+<p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, 
+ Wire_discretisation.GetAlgorithm())</p>
+
+<p class="whs7">Triangle_Mefisto = 
+ Mesh_2.Triangle()</p>
+
+<p class="whs7">Max_Element_Area = 
+ Triangle_Mefisto.MaxElementArea(240)</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs7">isDone = Mesh_2.Compute()</p>
+
+<p class="whs7">if not isDone: print 
+ 'Mesh Mesh_2 : computation failed'</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># create a pattern</p>
+
+<p class="whs7">pattern = smesh.smesh.GetPattern()</p>
+
+<p class="whs7">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), 
+ Face_2, 0)</p>
+
+<p class="whs7">if (isDone != 1):</p>
+
+<p class="whs9">print 
+ 'LoadFromFace :', pattern.GetErrorCode()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"># apply the pattern to 
+ a face of the first mesh</p>
+
+<p class="whs7">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), 
+ [17], 0, 0)</p>
+
+<p class="whs7">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 
+ 0, 0)</p>
+
+<p class="whs7">if (isDone != 1):</p>
+
+<p class="whs9">print 
+ 'MakeMesh :', pattern.GetErrorCode()</p>
+
+<p class="whs7">&nbsp;</p>
+
+<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index bc8b8a03b6ad511361bcaabf383c80316a975d8e..87685f026f3d9a1c4621567c3ed7882d6449beaa 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Pattern mapping</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-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
-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
-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_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
-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
-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
-img_whs25 { border:none; width:606px; height:249px; 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.whs10 {margin-right:1pt; }";\r
-  strNSS += "p.whs22 {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\nModifying meshes\nPattern mapping");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Pattern mapping</h1>\r
-\r
-<h3>About patterns</h3>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The pattern describes a mesh to generate: positions of \r
- nodes within a geometrical domain and nodal connectivity of elements. \r
- As well, a pattern specifies the so-called key-points, i.e. nodes that \r
- will be located at geometrical vertices. Pattern description is stored \r
- in &lt;pattern_name&gt;.smp file.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>The smp file contains 4 sections:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs2">1. The first line holds the number of nodes \r
- (N).</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">2. The next N lines describe nodes coordinates. \r
- Each line holds 2 coordinates of a node.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. A key-points line: indices of nodes to \r
- be mapped on geometrical vertices. An index n refers to a node described \r
- on an n-th line of section 2. The first node index is zero.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">4. The rest lines describe nodal connectivity \r
- of elements, one line for an element. A line holds indices of nodes forming \r
- an element. An index n refers to a node described on an n-th line of the \r
- section 2. The first node index is zero. There must be 3 or 4 indices \r
- on a line: only 2d elements are allowed.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p>The 2D pattern must contain at least one element and at least one key-point. \r
- All key-points must lay on boundaries.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>An example of a simple smp file and a preview of a pattern described \r
- in this file:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3>Application of pattern mapping</h3>\r
-\r
-<p class=TODO>To apply pattern mapping to a geometrical object:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Pattern Mapping \r
- </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following \r
- dialog box shall appear:</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="64.066%" class="whs5">\r
-<col class="whs6">\r
-<col class="whs7">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="56.089%" class="whs9">\r
-<p class="whs10"><img src="pics/patternmapping1.png" x-maintain-ratio="TRUE" width="306px" height="632px" border="0" class="img_whs11"></td>\r
-<td width="43.911%" class="whs12">\r
-<p><img src="pics/patternmapping2.png" x-maintain-ratio="TRUE" width="306px" height="670px" border="0" class="img_whs13"></td></tr>\r
-</table>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p>To apply a pattern to a geometrical object, you should specify:</p>\r
-\r
-<p class="whs2">- a face having the number of vertices equal \r
- to the number of key-points in the pattern; the number of key-points on \r
- internal boundaries of a pattern must also be equal to the number of vertices \r
- on internal boundaries of a face;</p>\r
-\r
-<p class="whs2">- a vertex to which the first key-point should \r
- be mapped,</p>\r
-\r
-<p class="whs2">- reverse or not the order of key-points. \r
- (The order of vertices of a face is counterclockwise looking from outside).</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Then you either load a .smp pattern file previously created manually \r
- by clicking on the <img src="image108.gif" width="34px" height="34px" border="0" class="img_whs14"> button, or click on the <span style="font-weight: bold;"><B>New</B></span> \r
- button for automatic generation.</p>\r
-\r
-<p>For an automatic generation you just specify a geometrical face having \r
- a mesh built on it. Mesh nodes lying on face vertices become key-points. \r
- Additionally, you may choose the way of getting nodes coordinates by <span \r
- style="font-weight: bold;"><B>projecting nodes on the face</B></span> instead \r
- of using &quot;positions on face&quot; generated by mesher (if there is \r
- any). Faces having a seam edge can\92t be used for automatic pattern creation.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>When creating a pattern from an existing mesh, there are two possible \r
- cases:</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>1. A sub-mesh on face is selected. A pattern is created from the 2d \r
- elements bound to a face by mesher. Node coordinates are either &quot;positions \r
- on face&quot; computed by mesher, or coordinates got by node projection \r
- on a geometrical surface, according to your choice.</p>\r
-\r
-<p>2. A mesh where the main shape is a face, is selected. A pattern is \r
- created from all the 2d elements in a mesh. If all mesh elements are build \r
- by mesher, the user can select the way of getting nodes coordinates, else \r
- all nodes are projected on a face surface.</p>\r
-\r
-<table x-use-null-cells width="68.686%" cellspacing="0" class="whs15">\r
-<col class="whs16">\r
-<col class="whs17">\r
-\r
-<tr valign="top" class="whs8">\r
-<td width="50.224%" class="whs18">\r
-<p><img src="pics/a-patterntype.png" x-maintain-ratio="TRUE" width="306px" height="428px" border="0" class="img_whs19"></td>\r
-<td width="49.776%" class="whs20">\r
-<p><img src="pics/a-patterntype1.png" x-maintain-ratio="TRUE" width="306px" height="248px" border="0" class="img_whs21"></td></tr>\r
-</table>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<h3>Mapping algorithm:</h3>\r
-\r
-<p class="whs22">The mapping algorithm is as follows:</p>\r
-\r
-<p class="whs22">&nbsp;</p>\r
-\r
-<p class="whs2">1. Key-points are set in the order that they \r
- are encountered when walking along a pattern boundary so that elements \r
- are on the left. The first key-point is preserved.</p>\r
-\r
-<p class="whs2">2. Find geometrical vertices corresponding \r
- to key-points by vertices order in a face boundary; here, &quot;Reverse \r
- order of key-points&quot; flag is taken into account.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs23"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">3. Boundary nodes of a pattern are mapped \r
- onto edges of a face: a node located between certain key-points on a pattern \r
- boundary is mapped on a geometrical edge limited by corresponding geometrical \r
- vertices. Node position on an edge reflects its distance from two key-points.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs24"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">4. Coordinates of a non-boundary node in \r
- a parametric space of a face are defined as following. In a parametric \r
- space of a pattern, a node lays at the intersection of two iso-lines, \r
- each of which intersects a pattern boundary at least at two points. Knowing \r
- mapped positions of boundary nodes, we find where isoline-boundary intersection \r
- points are mapped to, and hence we can find mapped isolines direction \r
- and then, two node positions on two mapped isolines. The eventual mapped \r
- position of a node is found as an average of positions on mapped isolines.</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Pattern mapping</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs2 { margin-left:40px; }
+img_whs3 { border:none; width:626px; height:471px; border-style:none; }
+img_whs4 { border:none; width:22px; height:28px; border-style:none; }
+table.whs5 { x-cell-content-align:top; width:64.066%; border-spacing:0px; }
+col.whs6 { width:56.089%; }
+col.whs7 { width:43.911%; }
+tr.whs8 { x-cell-content-align:top; }
+td.whs9 { width:56.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+p.whs10 { margin-right:0px; }
+img_whs11 { border:none; width:306px; height:632px; float:none; border-style:none; }
+td.whs12 { width:43.911%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs13 { border:none; width:306px; height:670px; float:none; border-style:none; }
+img_whs14 { border:none; width:34px; height:34px; border-style:none; }
+table.whs15 { x-cell-content-align:top; width:68.686%; border-spacing:0px; }
+col.whs16 { width:50.224%; }
+col.whs17 { width:49.776%; }
+td.whs18 { width:50.224%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
+img_whs19 { border:none; width:306px; height:428px; float:none; border-style:none; }
+td.whs20 { width:49.776%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
+img_whs21 { border:none; width:306px; height:248px; float:none; border-style:none; }
+p.whs22 { margin-left:0px; }
+img_whs23 { border:none; width:554px; height:279px; border-style:none; }
+img_whs24 { border:none; width:572px; height:233px; border-style:none; }
+img_whs25 { border:none; width:606px; height:249px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs10 {margin-right:1pt; }";
+  strNSS += "p.whs22 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nPattern mapping");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Pattern mapping</h1>
+
+<h3>About patterns</h3>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> The pattern describes a mesh to generate: positions of 
+ nodes within a geometrical domain and nodal connectivity of elements. 
+ As well, a pattern specifies the so-called key-points, i.e. nodes that 
+ will be located at geometrical vertices. Pattern description is stored 
+ in &lt;pattern_name&gt;.smp file.</p>
+
+<p>&nbsp;</p>
+
+<p>The smp file contains 4 sections:</p>
+
+<p>&nbsp;</p>
+
+<p class="whs2">1. The first line holds the number of nodes 
+ (N).</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">2. The next N lines describe nodes coordinates. 
+ Each line holds 2 coordinates of a node.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">3. A key-points line: indices of nodes to 
+ be mapped on geometrical vertices. An index n refers to a node described 
+ on an n-th line of section 2. The first node index is zero.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">4. The rest lines describe nodal connectivity 
+ of elements, one line for an element. A line holds indices of nodes forming 
+ an element. An index n refers to a node described on an n-th line of the 
+ section 2. The first node index is zero. There must be 3 or 4 indices 
+ on a line: only 2d elements are allowed.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p>The 2D pattern must contain at least one element and at least one key-point. 
+ All key-points must lay on boundaries.</p>
+
+<p>&nbsp;</p>
+
+<p>An example of a simple smp file and a preview of a pattern described 
+ in this file:</p>
+
+<p>&nbsp;</p>
+
+<p><img src="image94.gif" width="626px" height="471px" border="0" class="img_whs3"></p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<h3>Application of pattern mapping</h3>
+
+<p class=TODO>To apply pattern mapping to a geometrical object:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs2">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Pattern Mapping 
+ </B></span>item or click <img src="image98.gif" width="22px" height="28px" border="0" class="img_whs4"> button in the toolbar. The following 
+ dialog box shall appear:</p>
+
+<p class="whs2">&nbsp;</p>
+
+<table x-use-null-cells cellspacing="0" width="64.066%" class="whs5">
+<col class="whs6">
+<col class="whs7">
+
+<tr valign="top" class="whs8">
+<td width="56.089%" class="whs9">
+<p class="whs10"><img src="pics/patternmapping1.png" x-maintain-ratio="TRUE" width="306px" height="632px" border="0" class="img_whs11"></td>
+<td width="43.911%" class="whs12">
+<p><img src="pics/patternmapping2.png" x-maintain-ratio="TRUE" width="306px" height="670px" border="0" class="img_whs13"></td></tr>
+</table>
+
+<p class="whs2">&nbsp;</p>
+
+<p>To apply a pattern to a geometrical object, you should specify:</p>
+
+<p class="whs2">- a face having the number of vertices equal 
+ to the number of key-points in the pattern; the number of key-points on 
+ internal boundaries of a pattern must also be equal to the number of vertices 
+ on internal boundaries of a face;</p>
+
+<p class="whs2">- a vertex to which the first key-point should 
+ be mapped,</p>
+
+<p class="whs2">- reverse or not the order of key-points. 
+ (The order of vertices of a face is counterclockwise looking from outside).</p>
+
+<p>&nbsp;</p>
+
+<p>Then you either load a .smp pattern file previously created manually 
+ by clicking on the <img src="image108.gif" width="34px" height="34px" border="0" class="img_whs14"> button, or click on the <span style="font-weight: bold;"><B>New</B></span> 
+ button for automatic generation.</p>
+
+<p>For an automatic generation you just specify a geometrical face having 
+ a mesh built on it. Mesh nodes lying on face vertices become key-points. 
+ Additionally, you may choose the way of getting nodes coordinates by <span 
+ style="font-weight: bold;"><B>projecting nodes on the face</B></span> instead 
+ of using &quot;positions on face&quot; generated by mesher (if there is 
+ any). Faces having a seam edge can\92t be used for automatic pattern creation.</p>
+
+<p>&nbsp;</p>
+
+<p>When creating a pattern from an existing mesh, there are two possible 
+ cases:</p>
+
+<p>&nbsp;</p>
+
+<p>1. A sub-mesh on face is selected. A pattern is created from the 2d 
+ elements bound to a face by mesher. Node coordinates are either &quot;positions 
+ on face&quot; computed by mesher, or coordinates got by node projection 
+ on a geometrical surface, according to your choice.</p>
+
+<p>2. A mesh where the main shape is a face, is selected. A pattern is 
+ created from all the 2d elements in a mesh. If all mesh elements are build 
+ by mesher, the user can select the way of getting nodes coordinates, else 
+ all nodes are projected on a face surface.</p>
+
+<table x-use-null-cells cellspacing="0" width="68.686%" class="whs15">
+<col class="whs16">
+<col class="whs17">
+
+<tr valign="top" class="whs8">
+<td width="50.224%" class="whs18">
+<p><img src="pics/a-patterntype.png" x-maintain-ratio="TRUE" width="306px" height="428px" border="0" class="img_whs19"></td>
+<td width="49.776%" class="whs20">
+<p><img src="pics/a-patterntype1.png" x-maintain-ratio="TRUE" width="306px" height="248px" border="0" class="img_whs21"></td></tr>
+</table>
+
+<p>&nbsp;</p>
+
+<h3>Mapping algorithm:</h3>
+
+<p class="whs22">The mapping algorithm is as follows:</p>
+
+<p class="whs22">&nbsp;</p>
+
+<p class="whs2">1. Key-points are set in the order that they 
+ are encountered when walking along a pattern boundary so that elements 
+ are on the left. The first key-point is preserved.</p>
+
+<p class="whs2">2. Find geometrical vertices corresponding 
+ to key-points by vertices order in a face boundary; here, &quot;Reverse 
+ order of key-points&quot; flag is taken into account.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="image95.gif" width="554px" height="279px" border="0" class="img_whs23"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">3. Boundary nodes of a pattern are mapped 
+ onto edges of a face: a node located between certain key-points on a pattern 
+ boundary is mapped on a geometrical edge limited by corresponding geometrical 
+ vertices. Node position on an edge reflects its distance from two key-points.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="image96.gif" width="572px" height="233px" border="0" class="img_whs24"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2">4. Coordinates of a non-boundary node in 
+ a parametric space of a face are defined as following. In a parametric 
+ space of a pattern, a node lays at the intersection of two iso-lines, 
+ each of which intersects a pattern boundary at least at two points. Knowing 
+ mapped positions of boundary nodes, we find where isoline-boundary intersection 
+ points are mapped to, and hence we can find mapped isolines direction 
+ and then, two node positions on two mapped isolines. The eventual mapped 
+ position of a node is found as an average of positions on mapped isolines.</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"><img src="image97.gif" width="606px" height="249px" border="0" class="img_whs25"></p>
+
+<p class="whs2">&nbsp;</p>
+
+<p>&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="modifying_meshes.htm#bookmark13">Pattern 
+ Mapping</a><a href="modifying_meshes.htm#bookmark11"> </a>operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/pics/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
index d34a5e24cf55507697450e297255e8c99a9c6698..552a9df3a595495bb90b4126934c0ca09fb84c52 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-arithmetic1d.png and b/doc/salome/gui/SMESH/pics/a-arithmetic1d.png differ
index dc007eb575faa7564fa27da30eba60d5de4c1242..d1a0e1e52f03f3a80d97d20f7c5773d0674987de 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-averagelength.png and b/doc/salome/gui/SMESH/pics/a-averagelength.png differ
index 639792ca39564e2644b2b805ba38e305e1b1aa41..4bd1c94263ca5dfd775677e5a4db567fcda7f309 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-clipping2.png and b/doc/salome/gui/SMESH/pics/a-clipping2.png differ
index 38ef5a856a6006850c5ad755c783cfb1bc6a351e..46462cfa62977fc52b1d0c11c03d5aa7f1f8f5f6 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-creategroup.png and b/doc/salome/gui/SMESH/pics/a-creategroup.png 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
index 532eac08f0457d91a8200875acabb6dba41f8083..b44885ba5eaa3f5e729a07347de1f3f25cb9caa2 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-createpolyhedralvolume.png and b/doc/salome/gui/SMESH/pics/a-createpolyhedralvolume.png differ
index ff9ae68e19b80a8f22354c88265f710404c58fc9..7f4716715adff60e0c0f90d2157fb1b0ae125b8d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-cuttingofquadrangles.png and b/doc/salome/gui/SMESH/pics/a-cuttingofquadrangles.png differ
index 57fd8597a10f406fa8f410fd0fa37332c4b61e1c..8d9021290b5d9cb131b3abd7990f6fef8d5ced67 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-deflection1d.png and b/doc/salome/gui/SMESH/pics/a-deflection1d.png 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
index f120fc3c0fc4544d6ac2a10d8c02c6d58c212974..898d43166b8714546bdeec094ea71caab5fef36e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-extusionalongapath2.png and b/doc/salome/gui/SMESH/pics/a-extusionalongapath2.png differ
index 48b3ece016adda7ad3de42683abbd32720753829..004433248a498e599131451d380d342bb1a80e73 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-filteronedges.png and b/doc/salome/gui/SMESH/pics/a-filteronedges.png differ
index b4af4b23fccfa04ce80dd874a297d63303903fe0..e3bfa1841833ca48575eb2a854d355e85c633ab3 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-maxelarea.png and b/doc/salome/gui/SMESH/pics/a-maxelarea.png differ
index 2611807fd6dd72b1c12f6c4e5515e60cfc943c51..419d83ff2c109451c9002a25fe275cfe8df910f8 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-maxelvolume.png and b/doc/salome/gui/SMESH/pics/a-maxelvolume.png differ
index 35c09094def52c61deea1a24d687b06eaa3ea916..a42714aea0212ded646f0be82db556acfc31bb3a 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-nbsegments1.png and b/doc/salome/gui/SMESH/pics/a-nbsegments1.png differ
index 7f33c61ff2961aef668f35f5d1ae867fc6966162..51e7c9ddb28ae1d050b8e067e201311f961ec72b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-nbsegments2.png and b/doc/salome/gui/SMESH/pics/a-nbsegments2.png 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
index 3383cd75e2732f12ddf5073490e1d3c1b0ec8367..3d676af1f2fa3bff89bf23d0c0f7a15d2ee39fb5 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-patterntype.png and b/doc/salome/gui/SMESH/pics/a-patterntype.png differ
index 38449225ad93d6ae2b5db2bd5555838750868925..cffa7da07c62e394d5c9bdb1ceba2742c4d0ba3d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-patterntype1.png and b/doc/salome/gui/SMESH/pics/a-patterntype1.png differ
index 6b35f0a99cc8bced1e0a06362601ef767b49bcef..181c2f46075af722c033985ab8542916291ed8c8 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-standmeshinfo.png and b/doc/salome/gui/SMESH/pics/a-standmeshinfo.png differ
index e48f617d2772ac2522c3957e29d14be81de5acbf..8398a792d00ab547a69ce42793f9887b83bc6d80 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-startendlength.png and b/doc/salome/gui/SMESH/pics/a-startendlength.png differ
index 8e7498d58189e099458a1e6cbf09d68ae101b162..78e2b0f310323a2530cc1a91a08ff962907c2509 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-transparency.png and b/doc/salome/gui/SMESH/pics/a-transparency.png differ
index d9ef53c11f61ea127e8a04052572e8c942e7a0ba..16016551f2b5040308933a80737be543df9eba9b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-unionoftriangles.png and b/doc/salome/gui/SMESH/pics/a-unionoftriangles.png differ
index 09b7c23915ad24256f45cd9188568199e48cbf74..f5637ccfacd59993a2c9208f271776356490375b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/a-viewgeneral.png and b/doc/salome/gui/SMESH/pics/a-viewgeneral.png differ
index 8a532e1d91f6b0b11086d1a225d7f16b6f3f2cb2..8455fcd542f25bfc5290619421f3a67c3dff7f0d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/add_edge.png and b/doc/salome/gui/SMESH/pics/add_edge.png differ
index cb50bf6e62f34cea812c6da3a6fea23b2c6bfe06..562cf16ab7828c85a7b93c034835f4cced3fe7ff 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/add_node.png and b/doc/salome/gui/SMESH/pics/add_node.png differ
index a76baceaee4c4ebbb80cd999324c644bf3ca0ca3..b05e25b37c8f7a7fb7ef061519e876218cd5229b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/add_polygone.png and b/doc/salome/gui/SMESH/pics/add_polygone.png differ
index 2e23634c996e5f9cfcf3e31fe5d1d056ffa7fbe8..62c0857a91cabc297704c671f96870122666f078 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/add_polyhedron.png and b/doc/salome/gui/SMESH/pics/add_polyhedron.png differ
index f25b94d9faf26169a913f9749a86fbf93558d190..b7ec66612a18e5263a7088d52a1b02caf35b39f1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/add_quadrangle.png and b/doc/salome/gui/SMESH/pics/add_quadrangle.png differ
index 41c3359297743992b8bded93e1aa4dbe4ed829c2..fee1ccf80f6718f565e4c6de9d7dcb6bb619406c 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/add_triangle.png and b/doc/salome/gui/SMESH/pics/add_triangle.png differ
index c9eeaf970f71c6a1306b1e11a10483e964df1565..8bea8bf6abc988acabe49067c19acba2b06ce416 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addedge.png and b/doc/salome/gui/SMESH/pics/addedge.png differ
index fd2ef245aac69417874c03ab2cba9aed53064536..909bda8925de9358569d38936c7641ca8fef89b1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addhexahedron.png and b/doc/salome/gui/SMESH/pics/addhexahedron.png differ
index 167a966b8a910265abd5c871399ae26a9ffa054a..181e2c9f76668ab95de63aa263b2e4c8af85c63b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addnode.png and b/doc/salome/gui/SMESH/pics/addnode.png differ
index 785a6234115160d8d2c7022412782e0b1fd88dc5..c59a4b7eed4d5e37240500c91f785865ed7a925d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addpolygon.png and b/doc/salome/gui/SMESH/pics/addpolygon.png differ
index 2bbddf158ff05894830e19d723f3946cd9513994..594078e05dc523bfc1c4a4b3ef923cc53eeba351 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addquadrangle.png and b/doc/salome/gui/SMESH/pics/addquadrangle.png differ
index 0a415707a167d1425c7db75dd4065b8691e3209f..2fc4d062cffc820282155736afacc61b01cb2383 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addtetrahedron.png and b/doc/salome/gui/SMESH/pics/addtetrahedron.png differ
index 405d6f57f366f6a2f99a17b90f65ed700760df60..38349c444d8cdbab1a5324d8fa6f930f6bf5b22f 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/addtriangle.png and b/doc/salome/gui/SMESH/pics/addtriangle.png differ
index f8341e8926fa16fb25a6cd9f5cae42f9fff089ad..183872a790f62a049634044baeb642a356822b24 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png and b/doc/salome/gui/SMESH/pics/advanced_mesh_infos.png differ
index 32e36bd0e5dcc708eda4e4c55f810fc9e82fe23b..01ab899dc36b528b4f92f302a08e7ff3233907be 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/aqt.png and b/doc/salome/gui/SMESH/pics/aqt.png differ
index d96ffc82dd381434faaea8bea03269feaa19a997..0168b58ad78e93a2b29333d66e0950bf9e2571b0 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/automaticlength.png and b/doc/salome/gui/SMESH/pics/automaticlength.png differ
index 26da5fa735bcd1c7b00c2816ff3bbfe8c51ddb32..1608bc08a76e0fa251d1a524808f3e57ef208bca 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/b-art_end_length.png and b/doc/salome/gui/SMESH/pics/b-art_end_length.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
index f64077c9047562f2937d88a62330922bb7269678..03e8593d7adbda66d7f496377f14ce21276d7e8c 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/b-erage_length.png and b/doc/salome/gui/SMESH/pics/b-erage_length.png differ
index e160cf55d76524d7c91daf2f170619011b70c6da..1cedcd087b91da54c330d5aa5ea6e8ac9620a1d8 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/b-flection1d.png and b/doc/salome/gui/SMESH/pics/b-flection1d.png differ
index 72f76b9517f5cca0b61e529d08d48ff3b5e2b3e6..031aaa734944315c19214a9c64094fe802e5ca51 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/b-ithmetic1d.png and b/doc/salome/gui/SMESH/pics/b-ithmetic1d.png differ
index 27f68685e5ad72bd23c389e7935b803ad633a172..c99316b9238dcb63c1a6d968d5e0f6cdcdbb96c1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/b-mberofsegments.png and b/doc/salome/gui/SMESH/pics/b-mberofsegments.png differ
index 6abd3c18420087eb419606e2fc8664838a78ad58..c1f168fe81676587bef48dab2c159b98f05ed913 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/b-mesh_infos.png and b/doc/salome/gui/SMESH/pics/b-mesh_infos.png 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 6fc2367b3e83da6225713d405ebe2410aab3b365..ada742f130a883d7d78fcf998c79e0fd9f7dc962 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/create_group.png and b/doc/salome/gui/SMESH/pics/create_group.png differ
index 12b7d4b14d381efdbd726870e0f33185853e6ed7..27c46ad180cd05b8ccc655a71267d150216a8315 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/creategroup.png and b/doc/salome/gui/SMESH/pics/creategroup.png differ
index 9ed8a62552a80d7245ce6dd4293209cc34d4d75d..495bb37a6a2a754e98b1ff49f391a120adaa05cd 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/createmesh-inv.png and b/doc/salome/gui/SMESH/pics/createmesh-inv.png differ
index f73e1df7d2388c4d722f87a2c77f3cd5023f786e..83c4c520dc1f3721a1f081b749edab6f81ddd4a6 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/createmesh-inv2.png and b/doc/salome/gui/SMESH/pics/createmesh-inv2.png differ
index 6c9da9c0ac342319f6a8494602b5ae4925c7f721..e75e093d7fb9fa0b3e1f2c45dca3c29985a99ef4 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/createmesh-inv3.png and b/doc/salome/gui/SMESH/pics/createmesh-inv3.png differ
index f066a554169075e9f4d69ed72244578ee5e987ab..5ee0b2890eb98de6b647a544a859667c71c99dd2 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/cut_groups1.png and b/doc/salome/gui/SMESH/pics/cut_groups1.png differ
index 3ec7a93d1ddb55bec8882c1e8867d3c947a7bc73..235edf556aa08cf3daa838b550b7797d395ddc4e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/cut_groups2.png and b/doc/salome/gui/SMESH/pics/cut_groups2.png differ
index 1c5ebed801c0e40019d20ba01b9fa7206f0c52ba..a28cc24d1fcbe67496abbfb426fd6c4637df6c57 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/cut_groups3.png and b/doc/salome/gui/SMESH/pics/cut_groups3.png differ
index 87e6da88b55a9ae881e939991bb859f616376ce6..dfac885574528fba0509d939aa5995704e75a93d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/cutgroups.png and b/doc/salome/gui/SMESH/pics/cutgroups.png differ
index 383a79aa82a6035e99c5b28dd81ed1af0e92f5f2..d7ce7c0992c3096e047e89a11d84d2a441b672f6 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/deletegroups.png and b/doc/salome/gui/SMESH/pics/deletegroups.png differ
index 967e7a12e21e29e6becf46c3f98b2af35cfc82d5..baaaebe09f65c0f55edae51188e33d12d35ed7d1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/diagonalinversion.png and b/doc/salome/gui/SMESH/pics/diagonalinversion.png differ
index 87ebc5ffe26bb5796136315087eb230828572be9..99723559d4c58e6d8551b92ddff9789ef44019f6 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png and b/doc/salome/gui/SMESH/pics/distributionwithanalyticdensity.png differ
index 9ea6cab983874f1d26994945264014b86b78d385..fcb1ec81c79d9cb6b8ec7b7bfc6e0a65e24396ef 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png and b/doc/salome/gui/SMESH/pics/distributionwithtabledensity.png differ
index 4369e51b4809d8383a18631b74d197a63e99a0ea..fd469956822d762ed7564346ed57479dd086f505 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/edit_mesh1.png and b/doc/salome/gui/SMESH/pics/edit_mesh1.png differ
index 7dee01f7d2c14deddd93c2871a15dd544a565aef..646d2f39f82af59d6e7de60a861e1cccc3e12fd3 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/edit_mesh_change_value_hyp.png and b/doc/salome/gui/SMESH/pics/edit_mesh_change_value_hyp.png differ
index 0a45639aabc9d0c13b636c9626d091388ea44925..1442477610a0cea300eff38814e8ced2051158f6 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/edit_mesh_remove_hyp.png and b/doc/salome/gui/SMESH/pics/edit_mesh_remove_hyp.png differ
index 384a303998bb002e585297e7f738857c0cb76b35..680b5362431087e2906f916992da5c5eccc366f5 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/editgroup.png and b/doc/salome/gui/SMESH/pics/editgroup.png differ
index beb946ab7f1048304248ec7c74980ec5fb55e706..39bbf946ef9e490773238f898e4caef51d5e491a 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/editing_groups1.png and b/doc/salome/gui/SMESH/pics/editing_groups1.png differ
index 7cff1819c04ff1adeea08813cea707d63ab262f0..0e25847f443d78bd7d48133d96a069a1c9d22fb2 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/editing_groups2.png and b/doc/salome/gui/SMESH/pics/editing_groups2.png differ
index 86b2cba30b7567f3d22fce09e467a5e404bfb165..9da5018f2c273052a1c76f906e95fbd6e5fedeed 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/extrusionalongaline1.png and b/doc/salome/gui/SMESH/pics/extrusionalongaline1.png differ
index b039cfce59ac601b7aa17825b2208064afbcc453..ffe57f325b519bf4eb913cd80a808559ea079417 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/extrusionalongaline2.png and b/doc/salome/gui/SMESH/pics/extrusionalongaline2.png differ
index 6e73c93291d6775cc2cb50940c55311723a46230..e64eac2559ef1aeb9536f961bc2b9bfd087af19d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/free_borders1.png and b/doc/salome/gui/SMESH/pics/free_borders1.png differ
index 6f1100c87877e6b82364a6c56c74ea35dbc344bd..c9d6354d406acbf10cddc0bc058c0cd737bbca81 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/free_edges.png and b/doc/salome/gui/SMESH/pics/free_edges.png differ
index cf021ba4281dc156c488d4dd03bd27c2baf37096..92985cf826c101ee623e8c312f60cde1c0b47316 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/graduatedaxes1.png and b/doc/salome/gui/SMESH/pics/graduatedaxes1.png 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
index 9251b0e7a68e64b8fe3e788be6574dfe9a4ccd24..4c82027ba2fc93725a389a6190cebce4e62632c6 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/intersect_groups1.png and b/doc/salome/gui/SMESH/pics/intersect_groups1.png differ
index eeaed8da1c21ab4dd0db2efd961a14a3bc82a168..db6a7d12dcda1c77a30878ac5865c8e80382a027 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/intersect_groups2.png and b/doc/salome/gui/SMESH/pics/intersect_groups2.png differ
index 74f5c2d768472ba15a8e7111c172672b3758fd7b..004fbb50633d3e002e8e668eec74730b3e009ffe 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/intersect_groups3.png and b/doc/salome/gui/SMESH/pics/intersect_groups3.png differ
index b28b4d4d6cf3f80104a57509e5611e1e74c03622..edaf6b584702b7705dc5d7165bae38efda489f62 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/intersectgroups.png and b/doc/salome/gui/SMESH/pics/intersectgroups.png differ
index 96836cd878d5cb88116d54bad735a44011ef2e97..5f13ee5d2c80871c7b6260c5a196d57aeb87e244 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/length-crit.png 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
index 9a5264a020e2167b0b5e072cec8fda4135d76235..c7d0068a3c254bf1bde85e191f336196618b4cca 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/length2d.png and b/doc/salome/gui/SMESH/pics/length2d.png differ
index 88db3d6f8e55d903317b34181cc7be19e883f014..00547b911e78d0524c3c803a7c36d86968f5e38f 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/max_el_area.png and b/doc/salome/gui/SMESH/pics/max_el_area.png differ
index 9314da8c345beb0b6e7989033a01f8228152ad74..84769dc99d056cdd8218a5be84407b349cb8a9d4 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/mergeelems.png and b/doc/salome/gui/SMESH/pics/mergeelems.png differ
index d994afa28395640ecc39c440f01e7ae57016f5a9..d0e5806d6f94d7b7141e07419b418cae08fd681e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/mergenodes.png and b/doc/salome/gui/SMESH/pics/mergenodes.png differ
index f64bdcbe2f052d3976e9a40c896cd8f46988f3c2..bd5ffe4fd850794ca462c0a966bbd3f6ba9956b4 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/merging_nodes1.png and b/doc/salome/gui/SMESH/pics/merging_nodes1.png differ
index 8d7cfdd09e8a84046a11579a2448152b4eccaa30..085ce3540145253af622ec4261181aec63073721 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/merging_nodes2.png and b/doc/salome/gui/SMESH/pics/merging_nodes2.png differ
index a84b2520787475416b3fca4508cb6752075b0524..7b748a6487af149b959aa5c5f477721afefab069 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/meshexportmesh.png and b/doc/salome/gui/SMESH/pics/meshexportmesh.png differ
index f87250bf462ad954dd984e40951c37f991a3950f..0d0fd470d9bbb870fe27ff050a5d9cedaa188a2c 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/meshimportmesh.png and b/doc/salome/gui/SMESH/pics/meshimportmesh.png differ
index 0f9bd5215bd8f9109e315a1cbb2eae9bf3931501..af34335af7f43b23267c0d0ddc5b8e86b0297f0f 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png and b/doc/salome/gui/SMESH/pics/meshtrianglemergeelem1.png differ
index 16e9e6262524af0750c058276f25d2199fad8c63..3addc6d5eac26f9b94e6762f658388277a95aa30 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/movenodes.png and b/doc/salome/gui/SMESH/pics/movenodes.png differ
index 2bae388500a0ba1c9b6df9fde542e613f828bd7b..f37153c9e0fce85443237acea1cf7d609b51b46b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/moving_nodes1.png and b/doc/salome/gui/SMESH/pics/moving_nodes1.png differ
index b65e57ae97af9cf397aa8493ce51039f5b581ab8..63dc54a9849116e500a2a8946205c9d7fff21377 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/moving_nodes2.png and b/doc/salome/gui/SMESH/pics/moving_nodes2.png differ
index c23b0b8a821510992f5c43f18bec265e833f1007..ca2758fc3d8f5a6d2b8a091974a48f602bd349d5 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/orientaation1.png and b/doc/salome/gui/SMESH/pics/orientaation1.png differ
index 14daae1879b3b6761bbc41d097efa5f6ab796752..82ee652880840f823ae6adcbfe2bc2404b87d819 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/patternmapping1.png and b/doc/salome/gui/SMESH/pics/patternmapping1.png differ
index fbcf35544f94ec5c8a80a8e8cd8129fcc2644015..1727eb8461ace3797d9f8423079fff4c61aa3d23 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/patternmapping2.png and b/doc/salome/gui/SMESH/pics/patternmapping2.png differ
index 538460f43ad68278f37f0461e7dd41022f2d9dd4..e68cd0e5868b09af4757f51182c3dca155c6fe7b 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/remove_elements1.png and b/doc/salome/gui/SMESH/pics/remove_elements1.png differ
index 888188cc7333cd1c693df7554823734ef31c0e82..6ede5e1d79c9a84f1934f147e2807e5aa44f7697 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/remove_elements2.png and b/doc/salome/gui/SMESH/pics/remove_elements2.png differ
index 94caae6797fd6bbcc8e2e612ba0a5a2d7acf48f2..544a73e93c6b4fd20855edb7b25bda213773ea47 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/remove_nodes1.png and b/doc/salome/gui/SMESH/pics/remove_nodes1.png differ
index e9f806402d8837566592d4aa849fb92854d2b7fa..3448cdae1d05d4f15cccc54fa119cdf21c8a82ef 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/remove_nodes2.png and b/doc/salome/gui/SMESH/pics/remove_nodes2.png differ
index 42a79b5b14839b5e3e285eaecfa69a51511f4a87..9a1eeff4531ccdbaeb28c74af576b6db03de28a1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/removeelements.png and b/doc/salome/gui/SMESH/pics/removeelements.png differ
index cfcb777c64a560e841a227420619952b59b5303e..47c0fc3da50dc71e7fb54ee898404f82185c9063 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/removenodes.png and b/doc/salome/gui/SMESH/pics/removenodes.png differ
index 0812b5066d37d69189dc67518cdc435dc197d904..ef4809cc42db919af641a4cbf204855a2fb2ab95 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/renumberelements.png and b/doc/salome/gui/SMESH/pics/renumberelements.png differ
index 90a0eda1335a2ee699e41a932935863f26d68368..ffd985b278413f8e177af28032b0c97f32e67569 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/renumbernodes.png and b/doc/salome/gui/SMESH/pics/renumbernodes.png differ
index d459cf463323ceef7192544d0a2a93e5caa6b37c..ba9ed7c62a4f8a63f56124efbdb028afa3b438e5 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/revolution1.png and b/doc/salome/gui/SMESH/pics/revolution1.png differ
index a3c005202801034646e2ed545c03b43e87d37fe7..e2c9db2911af61608f8562388c64f8c6668e1b18 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/revolution2.png and b/doc/salome/gui/SMESH/pics/revolution2.png differ
index 372b9b307ff8b8ed53049d88bb9fcb9863532650..fa35af8c8b917709ed76c79ac1e7b05f59074b28 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/rotation.png and b/doc/salome/gui/SMESH/pics/rotation.png differ
index 5a4ad9901c5307d17402abef9056acb6a210af5c..2fbc60235aaf66369e3030642dfcf4febc15d57c 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/rotation1.png and b/doc/salome/gui/SMESH/pics/rotation1.png differ
index 366771a69a2b9953e401b03b88fa1da3663f3f0f..579647f29c23c0343eca60203cb8dfcbaad3cd43 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/rotation2.png and b/doc/salome/gui/SMESH/pics/rotation2.png differ
index f07c0964162f3e9b7b9aec82131b78a1d7b2fc22..aa48f8d8b173d3d482c796a2ea099f46cc57f7fe 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/selectionfilterlibrary.png and b/doc/salome/gui/SMESH/pics/selectionfilterlibrary.png differ
index 795d7a06bc52f653752b53007b53f149489a8573..48b0d65a317e103c1600aaa9655e879ee94ae45e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/sewing1.png and b/doc/salome/gui/SMESH/pics/sewing1.png differ
index 66a40997368f8aa82d296a9141e37007bad62c84..2e8e379d320f0ce7ab63b5ee4efe7c7042817f2d 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/sewing2.png and b/doc/salome/gui/SMESH/pics/sewing2.png differ
index 6c74f1cbfa9b240a129cdf0dfc7b50609c5d0e8e..46fc4352e8864a3a9bf9b59ef30f7d92d0fffbc3 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/sewing3.png and b/doc/salome/gui/SMESH/pics/sewing3.png differ
index cd9869a852b8e30f6ba9007551143518bf082d55..17f4f42f20673a79c511cc5a36dc63dd7e5ba15e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/sewing4.png and b/doc/salome/gui/SMESH/pics/sewing4.png differ
index 0fda00a224d385c17b52c70bb60d05de6aa41c1d..9d4f806f9150cab6c2c89d9f08e8a49a25a2aa42 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/smoothing.png and b/doc/salome/gui/SMESH/pics/smoothing.png differ
index 763a5300b1a335827619d0f247e57b66b4372844..fdc719c9f31085deb3f9c789e4bb7375ea12ca81 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/smoothing1.png and b/doc/salome/gui/SMESH/pics/smoothing1.png differ
index bfce45739f4bf1834a7efe8549e9a009c537dde1..4dc3f5b9afce4ed6c11081ffdb626ec16851cd62 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/smoothing2.png and b/doc/salome/gui/SMESH/pics/smoothing2.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 0fe145964e3734ca504eb11018eed6912a3e8b83..83b4dc48492b1938eec0c2f202ad1f1750786df2 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/symmetry1.png and b/doc/salome/gui/SMESH/pics/symmetry1.png differ
index 99c456463c27a3e47940231ba740f5e7a96d14d5..ecdeb58f82e71bc2d1cf38ae74e61039605498b5 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/symmetry2.png and b/doc/salome/gui/SMESH/pics/symmetry2.png differ
index 0ded9ce79a1868d6a9e42bbb11fbefe88ae9bd3f..2be735dd6954a8d2144c78fcc5a7073f58a38a2e 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/symmetry3.png and b/doc/salome/gui/SMESH/pics/symmetry3.png differ
index 7455061498c24eeeba713db850721234d1dd866c..3725033902913161007f2d44e34efc525ea83578 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/translation1.png and b/doc/salome/gui/SMESH/pics/translation1.png differ
index f321be1180e8a669faba90c177751b44859d33b3..a2b522a0e312036f682860aeabfbf957530becd1 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/translation2.png and b/doc/salome/gui/SMESH/pics/translation2.png differ
index 7b2fc7511ff55d67a3dcb2d07ce09b524e6d9cf6..ad4fa0fb43390c3acbe1f6a8f8302a7e150565af 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/union_groups1.png and b/doc/salome/gui/SMESH/pics/union_groups1.png differ
index 980e48d4106ab6a9d8784900a3bb627eb7273f5f..32e990b85dfa0e2e75877811d5055401f458a518 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/union_groups2.png and b/doc/salome/gui/SMESH/pics/union_groups2.png differ
index caf6bb42bfda6501d495e29ba299818d1d8be66a..13fbd50f700682ee33c56c34c78bf516525983df 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/union_groups3.png and b/doc/salome/gui/SMESH/pics/union_groups3.png differ
index 936c3b9f7211807ab4a6627d1fe1a300b76beb2a..4604e816cc08b6451e04058027b2dc2b34c6869c 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/uniongroups.png and b/doc/salome/gui/SMESH/pics/uniongroups.png differ
index b9d2bdbd7efee9e86df029cf576aceada774dbb6..5d19fcf4e66a45adc5af5a51df9177c1d3014077 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/unionoftwotriangles.png and b/doc/salome/gui/SMESH/pics/unionoftwotriangles.png differ
index fb00167a58776f637afa72dd5d889588bd8edf51..080a2314c878b917b20613655723f3c48888f137 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/uniting_a_set_of_triangles1.png and b/doc/salome/gui/SMESH/pics/uniting_a_set_of_triangles1.png differ
index 16d13511265190eaebe748719a94b9236452b2f4..ace401b37788d5027230be5d7d19e3a26f240e54 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/uniting_a_set_of_triangles2.png and b/doc/salome/gui/SMESH/pics/uniting_a_set_of_triangles2.png differ
index e94be3a0fec6c85ce27307cf98ac3cca54c0991d..09188c0f53655b2ae61fd342a3359707915ef5ff 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/uniting_two_triangles1.png and b/doc/salome/gui/SMESH/pics/uniting_two_triangles1.png differ
index 5cac5f541a917fbcd84acc09700bb96554c58a32..8b58ef9f540ec14b400c189778f3f0fa9fa41459 100755 (executable)
Binary files a/doc/salome/gui/SMESH/pics/uniting_two_triangles2.png and b/doc/salome/gui/SMESH/pics/uniting_two_triangles2.png differ
index c12e5bcfde75116d147db5eb7ee1f407cbfc2d8e..21c5ae4ccfd8a2a9e23e8866f306addfc490f971 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Presentation</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border: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
--->\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\nViewing meshes\nDisplay Mode");\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>Display Mode</h1>\r
-\r
-<p>By default your objects are represented as set in <span style="font-weight: bold;"><B>Preferences.</B></span></p>\r
-\r
-<p>However, right-clicking on the mesh in the <span style="font-weight: bold;"><B>Object \r
- Browser, </B></span>and selecting<span style="font-weight: bold;"><B> Display \r
- Mode, </B></span>you can display your mesh as<span style="font-weight: bold;"><B>: \r
- </B></span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><span style="font-weight: bold;"><B>Wireframe, </B></span></p>\r
-\r
-<p><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs1"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><span style="font-weight: normal;">or </span>Nodes.</p>\r
-\r
-<p class="whs2"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs4"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">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
-\r
-<p class="whs2">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
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Presentation</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; height:274px; width:260px; border-style:none; }
+p.whs3 { font-weight:bold; margin-left:40px; }
+img_whs4 { border:none; height:285px; width:261px; border-style:none; }
+p.whs5 { font-weight:bold; }
+img_whs6 { border:none; width:263px; height:277px; border-style:none; }
+p.whs7 { font-weight:normal; }
+img_whs8 { border:none; height:287px; width:259px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nDisplay Mode");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Display Mode</h1>
+
+<p>By default your objects are represented as set in <span style="font-weight: bold;"><B>Preferences.</B></span></p>
+
+<p>However, right-clicking on the mesh in the <span style="font-weight: bold;"><B>Object 
+ Browser, </B></span>and selecting<span style="font-weight: bold;"><B> Display 
+ Mode, </B></span>you can display your mesh as<span style="font-weight: bold;"><B>: 
+ </B></span></p>
+
+<p>&nbsp;</p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>Wireframe 
+ </B></span></p>
+
+<p class="whs1"><img src="image53.gif" height="274px" width="260px" border="0" class="img_whs2"></p>
+
+<p>&nbsp;</p>
+
+<p class="whs1"><span style="font-weight: bold;"><B>Shading</B></span></p>
+
+<p class="whs3"><img src="image37.jpg" height="285px" width="261px" border="0" class="img_whs4"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs3"><span style="font-weight: normal;">or 
+ </span>Nodes.</p>
+
+<p class="whs3"><img src="image56.gif" width="263px" height="277px" border="0" class="img_whs6"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">Wireframe <span style="font-weight: normal;">can 
+ combine with</span> Nodes<span style="font-weight: normal;"> and</span> 
+ Shading.</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">Shading<span style="font-weight: normal;"> 
+ and</span> Wireframe<span style="font-weight: normal;"> modes can combine 
+ with</span> Shrink, <span style="font-weight: normal;">however</span> 
+ Nodes <span style="font-weight: normal;">can't.</span></p>
+
+<p class="whs7"><img src="image55.gif" height="287px" width="259px" border="0" class="img_whs8"></p>
+
+<p class="whs5">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 9b7239010b58653a77c25cfe8b0c5202ce6868e4..4e4d2fcdcb3c78fedc18ed9e2b68ab1ee3516268 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Quality Controls</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; font-family:'Lucida Console' , monospace; }\r
-p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\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.whs3 {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\nTUI Scripts\nQuality Controls");\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>Quality Controls</h1>\r
-\r
-<h3><a name=bookmark>Free Borders</a></h3>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a box without \r
- one plane</p>\r
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">FaceList &nbsp;= \r
- []</p>\r
-\r
-<p class="whs1">for i in range( \r
- 5 ):</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;FaceList.append( \r
- subShapeList[ i ] )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aComp = geompy.MakeCompound( \r
- FaceList )</p>\r
-\r
-<p class="whs1">aBox = geompy.Sew( \r
- aComp, 1. )</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy( \r
- aBox, &quot;box&quot; )</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">aBox &nbsp;= \r
- salome.IDToObject( idbox )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># create a mesh</p>\r
-\r
-<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp1.SetNumberOfSegments(5)</p>\r
-\r
-<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(20)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,aBox)</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="whs1">smeshgui.SetName( \r
- salome.ObjectToID( mesh ), &quot;Mesh_freebord&quot; );</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># criterion : free borders</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateFreeBorders()</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">anIds = aFilter.GetElementsId( \r
- mesh )</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Free borders 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.EDGE, &quot;Free borders&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</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=bookmark1>Borders at Multiconnection</a></h3>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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">&nbsp;</p>\r
-\r
-<p class="whs2"># create a box without \r
- one plane</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">FaceList &nbsp;= \r
- []</p>\r
-\r
-<p class="whs1">for i in range( \r
- 5 ):</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;FaceList.append( \r
- subShapeList[ i ] )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aComp = geompy.MakeCompound( \r
- FaceList )</p>\r
-\r
-<p class="whs1">aBox = geompy.Sew( \r
- aComp, 1. )</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy( \r
- aBox, &quot;box&quot; )</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">aBox &nbsp;= \r
- salome.IDToObject( idbox )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># create a mesh</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp1.SetNumberOfSegments(5)</p>\r
-\r
-<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(20)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,aBox)</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="whs1">smeshgui.SetName( \r
- salome.ObjectToID( mesh ), &quot;Mesh_borders_at_multi-connections&quot; \r
- );</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : Borders at \r
- multi-connection</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateMultiConnection()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 2 )</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;Criterion: \r
- Borders at multi-connections 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.EDGE, &quot;Borders at multi-connections&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</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=bookmark2>Length 1D</a></h3>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a box without \r
- one plane</p>\r
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">FaceList &nbsp;= \r
- []</p>\r
-\r
-<p class="whs1">for i in range( \r
- 5 ):</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;FaceList.append( \r
- subShapeList[ i ] )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aComp = geompy.MakeCompound( \r
- FaceList )</p>\r
-\r
-<p class="whs1">aBox = geompy.Sew( \r
- aComp, 1. )</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy( \r
- aBox, &quot;box&quot; )</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">aBox &nbsp;= \r
- salome.IDToObject( idbox )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># create a mesh</p>\r
-\r
-<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp1.SetNumberOfSegments(5)</p>\r
-\r
-<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(20)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,aBox)</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="whs1">smeshgui.SetName( \r
- salome.ObjectToID( mesh ), &quot;Mesh&quot; );</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : Length &gt; \r
- 3</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateLength()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 3 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Edges length &gt; 3 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.EDGE, &quot;Edges with legth &gt; 3&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark3>Free Edges</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs2">&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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 30 )</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">anEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs1">anEditor.RemoveElements(anIds)</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\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
-\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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Free edges 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.EDGE, &quot;Free edges&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</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=bookmark4>Length 2D</a></h3>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a box without \r
- one plane</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">FaceList &nbsp;= \r
- []</p>\r
-\r
-<p class="whs1">for i in range( \r
- 5 ):</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;FaceList.append( \r
- subShapeList[ i ] )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aComp = geompy.MakeCompound( \r
- FaceList )</p>\r
-\r
-<p class="whs1">aBox = geompy.Sew( \r
- aComp, 1. )</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy( \r
- aBox, &quot;box&quot; )</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">aBox &nbsp;= \r
- salome.IDToObject( idbox )</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a mesh</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp1.SetNumberOfSegments(5)</p>\r
-\r
-<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(20)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,aBox)</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="whs1">smeshgui.SetName( \r
- salome.ObjectToID( mesh ), &quot;Mesh&quot; );</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : Length 2D \r
- &gt; 5</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateLength2D()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 5 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Edges length 2D &gt; 5 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Edges with legth 2D &gt; 5&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
-\r
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- &nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark5>Borders at Multiconnection 2D</a></h3>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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">&nbsp;</p>\r
-\r
-<p class="whs2"># create a box without \r
- one plane</p>\r
-\r
-<p class="whs1">box = geompy.MakeBox(0., \r
- 0., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">FaceList &nbsp;= \r
- []</p>\r
-\r
-<p class="whs1">for i in range( \r
- 5 ):</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;FaceList.append( \r
- subShapeList[ i ] )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aComp = geompy.MakeCompound( \r
- FaceList )</p>\r
-\r
-<p class="whs1">aBox = geompy.Sew( \r
- aComp, 1. )</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy( \r
- aBox, &quot;box&quot; )</p>\r
-\r
-<p class="whs1">&nbsp;&nbsp;</p>\r
-\r
-<p class="whs1">aBox &nbsp;= \r
- salome.IDToObject( idbox )</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a mesh</p>\r
-\r
-<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp1.SetNumberOfSegments(5)</p>\r
-\r
-<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(20)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,aBox)</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="whs1">smeshgui.SetName( \r
- salome.ObjectToID( mesh ), &quot;Mesh&quot; );</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : MULTI-CONNECTION \r
- 2D = 2</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateMultiConnection2D()</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 2 )</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">anIds = aFilter.GetElementsId( \r
- mesh )</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Borders at multi-connection 2D = 2 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Borders at multi-connection 2D = 2&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</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=bookmark6>Area</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : AREA &gt; \r
- 100</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
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 100 )</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;Criterion: \r
- Area &gt; 100 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Area &gt; 100&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
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark7>Taper</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : Taper &gt; \r
- 3e-20</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateTaper()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 3e-20 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Taper &gt; 3e-20 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Taper &gt; 3e-20&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
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark8>Aspect Ratio</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : ASPECT RATIO \r
- &gt; 1.4</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateAspectRatio()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 1.4 )</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;Criterion: \r
- Aspect Ratio &gt; 1.4 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Aspect Ratio &gt; 1.4&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h3><a name=bookmark9>Minimum Angle</a></h3>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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="whs3"># Criterion : MINIMUM \r
- ANGLE &lt; 70</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateMinimumAngle()</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
- 70 )</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="whs3"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Minimum Angle &lt; 70 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="whs3"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Minimum Angle &lt; 70&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) \r
- </p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<h3><a name=bookmark10>Warping</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># Criterion : WARP ANGLE \r
- &gt; 1e-15</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateWarping()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 1e-15 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Warp &gt; 1e-15 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Warp &gt; 1e-15&quot; )</p>\r
-\r
-<p class="whs1">aGroup.Add( anIds \r
- )</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=bookmark12>Skew</a></h3>\r
-\r
-<p class="whs1">import SMESH</p>\r
-\r
-<p class="whs1">import SMESH_mechanic</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs1">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs1">salome = SMESH_mechanic.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 : Skew &gt; \r
- 18</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateSkew()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 18 )</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;Criterion: \r
- Skew &gt; 18 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.FACE, &quot;Skew &gt; 18&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
-<p class="whs2">&nbsp;</p>\r
-\r
-<h3><a name=bookmark11>Aspect Ratio 3D</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 : ASPECT RATIO \r
- 3D &gt; 2.2</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs1">aFunctor = aFilterMgr.CreateAspectRatio3D()</p>\r
-\r
-<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
-\r
-<p class="whs1">aPredicate.SetNumFunctor( \r
- aFunctor )</p>\r
-\r
-<p class="whs1">aPredicate.SetMargin( \r
- 2.2 )</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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># print the result</p>\r
-\r
-<p class="whs1">print &quot;Criterion: \r
- Aspect Ratio 3D &gt; 2.2 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="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"># create a group</p>\r
-\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.VOLUME, &quot;Aspect Ratio 3D &gt; 2.2&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
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Quality Controls</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; }
+p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nQuality Controls");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Quality Controls</h1>
+
+<h3><a name=bookmark>Free Borders</a></h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a box without 
+ one plane</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 20., 20., 15.)</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">FaceList &nbsp;= 
+ []</p>
+
+<p class="whs1">for i in range( 
+ 5 ):</p>
+
+<p class="whs1">&nbsp;&nbsp;FaceList.append( 
+ subShapeList[ i ] )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aComp = geompy.MakeCompound( 
+ FaceList )</p>
+
+<p class="whs1">aBox = geompy.Sew( 
+ aComp, 1. )</p>
+
+<p class="whs1">idbox = geompy.addToStudy( 
+ aBox, &quot;box&quot; )</p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">aBox &nbsp;= 
+ salome.IDToObject( idbox )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a mesh</p>
+
+<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp1.SetNumberOfSegments(5)</p>
+
+<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(20)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh.Compute(mesh,aBox)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs1">smeshgui.SetName( 
+ salome.ObjectToID( mesh ), &quot;Mesh_freebord&quot; );</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># criterion : free borders</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateFreeBorders()</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Free borders Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.EDGE, &quot;Free borders&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark1>Borders at Multiconnection</a></h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a box without 
+ one plane</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 20., 20., 15.)</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">FaceList &nbsp;= 
+ []</p>
+
+<p class="whs1">for i in range( 
+ 5 ):</p>
+
+<p class="whs1">&nbsp;&nbsp;FaceList.append( 
+ subShapeList[ i ] )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aComp = geompy.MakeCompound( 
+ FaceList )</p>
+
+<p class="whs1">aBox = geompy.Sew( 
+ aComp, 1. )</p>
+
+<p class="whs1">idbox = geompy.addToStudy( 
+ aBox, &quot;box&quot; )</p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">aBox &nbsp;= 
+ salome.IDToObject( idbox )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a mesh</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp1.SetNumberOfSegments(5)</p>
+
+<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(20)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh.Compute(mesh,aBox)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs1">smeshgui.SetName( 
+ salome.ObjectToID( mesh ), &quot;Mesh_borders_at_multi-connections&quot; 
+ );</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : Borders at 
+ multi-connection</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateMultiConnection()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 2 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Borders at multi-connections Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.EDGE, &quot;Borders at multi-connections&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark2>Length 1D</a></h3>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a box without 
+ one plane</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 20., 20., 15.)</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">FaceList &nbsp;= 
+ []</p>
+
+<p class="whs1">for i in range( 
+ 5 ):</p>
+
+<p class="whs1">&nbsp;&nbsp;FaceList.append( 
+ subShapeList[ i ] )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aComp = geompy.MakeCompound( 
+ FaceList )</p>
+
+<p class="whs1">aBox = geompy.Sew( 
+ aComp, 1. )</p>
+
+<p class="whs1">idbox = geompy.addToStudy( 
+ aBox, &quot;box&quot; )</p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">aBox &nbsp;= 
+ salome.IDToObject( idbox )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a mesh</p>
+
+<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp1.SetNumberOfSegments(5)</p>
+
+<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(20)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh.Compute(mesh,aBox)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs1">smeshgui.SetName( 
+ salome.ObjectToID( mesh ), &quot;Mesh&quot; );</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : Length &gt; 
+ 3</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateLength()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 3 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Edges length &gt; 3 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.EDGE, &quot;Edges with legth &gt; 3&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark3>Free Edges</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 30</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 95 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">anEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs1">anEditor.RemoveElements(anIds)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># Criterion : Free Edges</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateFreeEdges()</p>
+
+<p class="whs1">aPredicate.SetMesh( 
+ mesh )</p>
+
+<p class="whs1">aBorders = aPredicate.GetBorders()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create groups</p>
+
+<p class="whs1">aGroupF = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Faces with free edges&quot; )</p>
+
+<p class="whs1">aGroupN = mesh.CreateGroup( 
+ SMESH.NODE, &quot;Nodes on free edges&quot; )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># fill groups with elements, 
+ corresponding to the criterion</p>
+
+<p class="whs1">print &quot;&quot;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Free edges Nb = &quot;, len( aBorders )</p>
+
+<p class="whs1">for i in range( 
+ len( aBorders ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;aBorder 
+ = aBorders[ i ]</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ &quot;Face # &quot;, aBorder.myElemId, &quot; : Edge between nodes (&quot;,</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ aBorder.myPnt1, &quot;, &quot;, aBorder.myPnt2, &quot;)&quot;</p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">&nbsp;&nbsp;aGroupF.Add( 
+ [aBorder.myElemId] )</p>
+
+<p class="whs1">&nbsp;&nbsp;aGroupN.Add( 
+ [aBorder.myPnt1, aBorder.myPnt2] )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark4>Length 2D</a></h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a box without 
+ one plane</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 20., 20., 15.)</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">FaceList &nbsp;= 
+ []</p>
+
+<p class="whs1">for i in range( 
+ 5 ):</p>
+
+<p class="whs1">&nbsp;&nbsp;FaceList.append( 
+ subShapeList[ i ] )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aComp = geompy.MakeCompound( 
+ FaceList )</p>
+
+<p class="whs1">aBox = geompy.Sew( 
+ aComp, 1. )</p>
+
+<p class="whs1">idbox = geompy.addToStudy( 
+ aBox, &quot;box&quot; )</p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">aBox &nbsp;= 
+ salome.IDToObject( idbox )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a mesh</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp1.SetNumberOfSegments(5)</p>
+
+<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(20)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh.Compute(mesh,aBox)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs1">smeshgui.SetName( 
+ salome.ObjectToID( mesh ), &quot;Mesh&quot; );</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># Criterion : Length 2D 
+ &gt; 5</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateLength2D()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 5 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Edges length 2D &gt; 5 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Edges with legth 2D &gt; 5&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ &nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark5>Borders at Multiconnection 2D</a></h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a box without 
+ one plane</p>
+
+<p class="whs1">box = geompy.MakeBox(0., 
+ 0., 0., 20., 20., 15.)</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">FaceList &nbsp;= 
+ []</p>
+
+<p class="whs1">for i in range( 
+ 5 ):</p>
+
+<p class="whs1">&nbsp;&nbsp;FaceList.append( 
+ subShapeList[ i ] )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aComp = geompy.MakeCompound( 
+ FaceList )</p>
+
+<p class="whs1">aBox = geompy.Sew( 
+ aComp, 1. )</p>
+
+<p class="whs1">idbox = geompy.addToStudy( 
+ aBox, &quot;box&quot; )</p>
+
+<p class="whs1">&nbsp;&nbsp;</p>
+
+<p class="whs1">aBox &nbsp;= 
+ salome.IDToObject( idbox )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a mesh</p>
+
+<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp1.SetNumberOfSegments(5)</p>
+
+<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(20)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
+
+<p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh.Compute(mesh,aBox)</p>
+
+<p class="whs1">smeshgui = salome.ImportComponentGUI(&quot;SMESH&quot;)</p>
+
+<p class="whs1">smeshgui.Init(salome.myStudyId);</p>
+
+<p class="whs1">smeshgui.SetName( 
+ salome.ObjectToID( mesh ), &quot;Mesh&quot; );</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># Criterion : MULTI-CONNECTION 
+ 2D = 2</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateMultiConnection2D()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 2 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Borders at multi-connection 2D = 2 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Borders at multi-connection 2D = 2&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark6>Area</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : AREA &gt; 
+ 100</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 100 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Area &gt; 100 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Area &gt; 100&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark7>Taper</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># Criterion : Taper &gt; 
+ 3e-20</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateTaper()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 3e-20 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Taper &gt; 3e-20 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Taper &gt; 3e-20&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark8>Aspect Ratio</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : ASPECT RATIO 
+ &gt; 1.4</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateAspectRatio()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 1.4 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Aspect Ratio &gt; 1.4 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Aspect Ratio &gt; 1.4&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<h3><a name=bookmark9>Minimum Angle</a></h3>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># Criterion : MINIMUM 
+ ANGLE &lt; 70</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 70 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Minimum Angle &lt; 70 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs3"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Minimum Angle &lt; 70&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) 
+ </p>
+
+<p class="whs1">&nbsp;</p>
+
+<h3><a name=bookmark10>Warping</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># Criterion : WARP ANGLE 
+ &gt; 1e-15</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateWarping()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 1e-15 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Warp &gt; 1e-15 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Warp &gt; 1e-15&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark12>Skew</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : Skew &gt; 
+ 18</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateSkew()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 18 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Skew &gt; 18 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.FACE, &quot;Skew &gt; 18&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=bookmark11>Aspect Ratio 3D</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic_tetra</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic_tetra.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic_tetra.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : ASPECT RATIO 
+ 3D &gt; 2.2</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateAspectRatio3D()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 2.2 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Aspect Ratio 3D &gt; 2.2 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.VOLUME, &quot;Aspect Ratio 3D &gt; 2.2&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs2">&nbsp;</p>
+
+<h3><a name=Volume>Volume</a></h3>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import SMESH_mechanic_tetra</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh &nbsp;= 
+ SMESH_mechanic_tetra.smesh</p>
+
+<p class="whs1">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic_tetra.mesh</p>
+
+<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># Criterion : VOLUME &lt; 
+ 7</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs1">aFunctor = aFilterMgr.CreateVolume3D()</p>
+
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
+
+<p class="whs1">aPredicate.SetNumFunctor( 
+ aFunctor )</p>
+
+<p class="whs1">aPredicate.SetMargin( 
+ 7 )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
+
+<p class="whs1">aFilter.SetPredicate( 
+ aPredicate )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">anIds = aFilter.GetElementsId( 
+ mesh )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># print the result</p>
+
+<p class="whs1">print &quot;&quot;</p>
+
+<p class="whs1">print &quot;Criterion: 
+ Volume &lt; 7 Nb = &quot;, len( anIds )</p>
+
+<p class="whs1">for i in range( 
+ len( anIds ) ):</p>
+
+<p class="whs1">&nbsp;&nbsp;print 
+ anIds[ i ]</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># create a group</p>
+
+<p class="whs1">aGroup = mesh.CreateGroup( 
+ SMESH.VOLUME, &quot;Volume &lt; 7&quot; )</p>
+
+<p class="whs1">aGroup.Add( anIds 
+ )</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d409d47a6386dc9f92b014e70822e4fb18d5b86a..b5d7a667def94b29f5444ab0c131abf1139a58e0 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Revolution</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { margin-left:40px; }\r
-img_whs2 { border: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
--->\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\nRevolution");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Revolution</h1>\r
-\r
-<p>Revolution is a type of surface meshing by generation from discretized \r
- lines. It is used to build mesh elements of plus one dimension than the \r
- swept ones. Each swept 1D element produces one or more quadrangles (or \r
- triangles if one node of a rotated element lays on the revolution axis).</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class=TODO>To apply revolution:</p>\r
-\r
-<p class=TODO>&nbsp;</p>\r
-\r
-<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification \r
- </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item \r
- or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box \r
- shall appear:</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1"><img src="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
-\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
-       \r
-       <li class=kadov-p><p class="whs1">the type of elements \r
- which will be extruded (1D or 2D),</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the IDs of \r
- the elements which will be revolved by selecting them in the 3D viewer \r
- or select the whole mesh or submesh,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">specify the axis (point \r
- and vector) around which the elements will be revolved,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">angle of rotation,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">number of steps,</p></li>\r
-       \r
-       <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>\r
-</ul>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply \r
- </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class=TODO\r
-       style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs6"></p>\r
-\r
-<p class=TODO>&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="grouping_elements.htm#bookmark3">&nbsp;</a><a href="modifying_meshes.htm#bookmark11">Revolution</a> \r
- operation. &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Revolution</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; width:24px; height:25px; border-style:none; }
+img_whs3 { border:none; width:390px; height:437px; float:none; border-style:none; }
+ul.whs4 { list-style:disc; }
+img_whs5 { border:none; width:350px; height:201px; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nModifying meshes\nRevolution");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Revolution</h1>
+
+<p>Revolution is a type of surface meshing by generation from discretized 
+ lines. It is used to build mesh elements of plus one dimension than the 
+ swept ones. Each swept 1D element produces one or more quadrangles (or 
+ triangles if one node of a rotated element lays on the revolution axis).</p>
+
+<p>&nbsp;</p>
+
+<p class=TODO>To apply revolution:</p>
+
+<p class=TODO>&nbsp;</p>
+
+<p class="whs1">1. From the <span style="font-weight: bold;"><B>Modification 
+ </B></span>menu choose the <span style="font-weight: bold;"><B>Revolution </B></span>item 
+ or click <img src="image92.gif" width="24px" height="25px" border="0" class="img_whs2"> button in the toolbar. The following dialog box 
+ shall appear:</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="pics/revolution1.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1"><img src="pics/revolution2.png" x-maintain-ratio="TRUE" width="390px" height="437px" border="0" class="img_whs3"></p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">2. In this dialog box you should specify:</p>
+
+<ul type="disc" class="whs4">
+       
+       <li class=kadov-p><p class="whs1">the type of elements 
+ which will be extruded (1D or 2D),</p></li>
+       
+       <li class=kadov-p><p class="whs1">specify the IDs of 
+ the elements which will be revolved by selecting them in the 3D viewer 
+ or select the whole mesh or submesh,</p></li>
+       
+       <li class=kadov-p><p class="whs1">specify the axis (point 
+ and vector) around which the elements will be revolved,</p></li>
+       
+       <li class=kadov-p><p class="whs1">angle of rotation,</p></li>
+       
+       <li class=kadov-p><p class="whs1">number of steps,</p></li>
+       
+       <li class=kadov-p><p class="whs1">tolerance of rotation</p></li>
+</ul>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">3. Click the <span style="font-weight: bold;"><B>Apply 
+ </B></span>or <span style="font-weight: bold;"><B>OK </B></span>button.</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class=TODO
+       style="margin-left: 40px;"><img src="image78.jpg" width="350px" height="201px" border="0" class="img_whs5"></p>
+
+<p class=TODO>&nbsp;</p>
+
+<p>&nbsp;<span style="font-weight: bold;"><B>See 
+ Also</B></span> a sample TUI Script of a <a href="grouping_elements.htm#bookmark3">&nbsp;</a><a href="modifying_meshes.htm#bookmark11">Revolution</a> 
+ operation. &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 333b5b0d2f0266ae4faead589adf53fa6be219ef..2a2cb8d7857540c3b0e7efb36382685cf75b5424 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Selection filter library</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-p.whs1 { font-weight:bold; }\r
-img_whs2 { border:none; width:624px; height:776px; float:none; border-style:none; }\r
-img_whs3 { border:none; width:31px; height:30px; border-style:none; }\r
-img_whs4 { border:none; width:624px; height:525px; 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\nGrouping elements\nSelection filter library");\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>Selection filter library</h1>\r
-\r
-<p>Selection filter library is a powerful tool enabling to create filters \r
- to be used on meshes. You can access to it from the Main Menu via <span \r
- style="font-weight: bold;"><B>Tools / Selection filter library.</B></span></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1"><img src="pics/selectionfilterlibrary.png" x-maintain-ratio="TRUE" width="624px" height="776px" border="0" class="img_whs2"></p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p class="whs1">Library file name s<span style="font-weight: normal;">hows \r
- the path and the file name where your filters will be stored. By clicking \r
- the</span> <img src="image103.gif" width="31px" height="30px" border="0" class="img_whs3"> <span style="font-weight: normal;">browse button \r
- you can load an existing filter library.</span></p>\r
-\r
-<p><span style="font-weight: bold;"><B>Names of filters</B></span> lists the filters \r
- created or uploaded for the current study. You can <span style="font-weight: bold;"><B>Add</B></span> \r
- or <span style="font-weight: bold;"><B>Delete</B></span> filters. &nbsp;</p>\r
-\r
-<p>In <span style="font-weight: bold;"><B>Filter name</B></span> box you can specify \r
- the name for your filter. By default it is prefixed with the corresponding \r
- entity type.</p>\r
-\r
-<p>Each filter can be applicable to <span style="font-weight: bold;"><B>Nodes, \r
- Edges, Faces</B></span> or <span style="font-weight: bold;"><B>Volumes</B></span>. \r
- You can combine many criteria in one filter, but they all must be of the \r
- same <span style="font-weight: bold;"><B>Entity type</B></span>. </p>\r
-\r
-<p>The <span style="font-weight: bold;"><B>Add</B></span> button creates a new \r
- criterion at the end of the list of criteria. The <span style="font-weight: bold;"><B>Insert</B></span> \r
- button creates a new criterion before the selected criterion. The <span \r
- style="font-weight: bold;"><B>Remove</B></span> button deletes the selected criterion. \r
- The <span style="font-weight: bold;"><B>Clear</B></span> button deletes all criteria. \r
- &nbsp;</p>\r
-\r
-<p>Each <span style="font-weight: bold;"><B>Entity type</B></span> has its specific \r
- list of criteria, however all filters have common syntax. For each criterion \r
- you should specify the <span style="font-weight: bold;"><B>Threshold Value</B></span> \r
- and whether we search for the elements that should be <span style="font-weight: bold;"><B>More, \r
- Less or Equal</B></span> to this <span style="font-weight: bold;"><B>Value</B></span>. \r
- You should also specify if the criterion is <span style="font-weight: bold;"><B>Unary</B></span> \r
- or <span style="font-weight: bold;"><B>Binary.</B></span> &nbsp;&nbsp;</p>\r
-\r
-<p>Some criteria should have the additional parameter of <span style="font-weight: bold;"><B>Tolerance</B></span>.</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>When we create a <span style="font-weight: bold;"><B>Standalone Group</B></span> \r
- using filters (for this click <span style="font-weight: bold;"><B>Set Filters</B></span> \r
- button in the <span style="font-weight: bold;"><B>Create Group</B></span> menu), \r
- the menu for setting filters looks a bit differently. Toggling <span style="font-weight: bold;"><B>Insert \r
- filter in viewer</B></span> checkbox enables to preview the group selected \r
- with your current filter in the viewer. </p>\r
-\r
-<p>In the <span style="font-weight: bold;"><B>Source</B></span> field you choose \r
- if the filter will be applied to the whole <span style="font-weight: bold;"><B>Mesh</B></span>, \r
- the<span style="font-weight: bold;"><B> Initial Selection </B></span>or the<span \r
- style="font-weight: bold;"><B> Current Group. </B></span></p>\r
-\r
-<p><span style="font-weight: bold;"><B>Copy from...</B></span> button gives you \r
- a possibility to load an existing filter from <span style="font-weight: bold;"><B>Selection \r
- filter library</B></span> and <span style="font-weight: bold;"><B>Add to...</B></span> \r
- button gives you a possibility to save your current filter in the Library. \r
- &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p><img src="pics/a-filteronedges.png" x-maintain-ratio="TRUE" width="624px" height="525px" border="0" class="img_whs4"></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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Selection filter library</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { font-weight:bold; }
+img_whs2 { border:none; width:624px; height:776px; float:none; border-style:none; }
+img_whs3 { border:none; width:31px; height:30px; border-style:none; }
+img_whs4 { border:none; width:624px; height:525px; float:none; border-style:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nGrouping elements\nSelection filter library");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Selection filter library</h1>
+
+<p>Selection filter library is a powerful tool enabling to create filters 
+ to be used on meshes. You can access to it from the Main Menu via <span 
+ style="font-weight: bold;"><B>Tools / Selection filter library.</B></span></p>
+
+<p>&nbsp;</p>
+
+<p class="whs1"><img src="pics/selectionfilterlibrary.png" x-maintain-ratio="TRUE" width="624px" height="776px" border="0" class="img_whs2"></p>
+
+<p>&nbsp;</p>
+
+<p class="whs1">Library file name s<span style="font-weight: normal;">hows 
+ the path and the file name where your filters will be stored. By clicking 
+ the</span> <img src="image103.gif" width="31px" height="30px" border="0" class="img_whs3"> <span style="font-weight: normal;">browse button 
+ you can load an existing filter library.</span></p>
+
+<p><span style="font-weight: bold;"><B>Names of filters</B></span> lists the filters 
+ created or uploaded for the current study. You can <span style="font-weight: bold;"><B>Add</B></span> 
+ or <span style="font-weight: bold;"><B>Delete</B></span> filters. &nbsp;</p>
+
+<p>In <span style="font-weight: bold;"><B>Filter name</B></span> box you can specify 
+ the name for your filter. By default it is prefixed with the corresponding 
+ entity type.</p>
+
+<p>Each filter can be applicable to <span style="font-weight: bold;"><B>Nodes, 
+ Edges, Faces</B></span> or <span style="font-weight: bold;"><B>Volumes</B></span>. 
+ You can combine many criteria in one filter, but they all must be of the 
+ same <span style="font-weight: bold;"><B>Entity type</B></span>. </p>
+
+<p>The <span style="font-weight: bold;"><B>Add</B></span> button creates a new 
+ criterion at the end of the list of criteria. The <span style="font-weight: bold;"><B>Insert</B></span> 
+ button creates a new criterion before the selected criterion. The <span 
+ style="font-weight: bold;"><B>Remove</B></span> button deletes the selected criterion. 
+ The <span style="font-weight: bold;"><B>Clear</B></span> button deletes all criteria. 
+ &nbsp;</p>
+
+<p>Each <span style="font-weight: bold;"><B>Entity type</B></span> has its specific 
+ list of criteria, however all filters have common syntax. For each criterion 
+ you should specify the <span style="font-weight: bold;"><B>Threshold Value</B></span> 
+ and whether we search for the elements that should be <span style="font-weight: bold;"><B>More, 
+ Less or Equal</B></span> to this <span style="font-weight: bold;"><B>Value</B></span>. 
+ You should also specify if the criterion is <span style="font-weight: bold;"><B>Unary</B></span> 
+ or <span style="font-weight: bold;"><B>Binary.</B></span> &nbsp;&nbsp;</p>
+
+<p>Some criteria should have the additional parameter of <span style="font-weight: bold;"><B>Tolerance</B></span>.</p>
+
+<p>&nbsp;</p>
+
+<p>When we create a <span style="font-weight: bold;"><B>Standalone Group</B></span> 
+ using filters (for this click <span style="font-weight: bold;"><B>Set Filters</B></span> 
+ button in the <span style="font-weight: bold;"><B>Create Group</B></span> menu), 
+ the menu for setting filters looks a bit differently. Toggling <span style="font-weight: bold;"><B>Insert 
+ filter in viewer</B></span> checkbox enables to preview the group selected 
+ with your current filter in the viewer. </p>
+
+<p>In the <span style="font-weight: bold;"><B>Source</B></span> field you choose 
+ if the filter will be applied to the whole <span style="font-weight: bold;"><B>Mesh</B></span>, 
+ the<span style="font-weight: bold;"><B> Initial Selection </B></span>or the<span 
+ style="font-weight: bold;"><B> Current Group. </B></span></p>
+
+<p><span style="font-weight: bold;"><B>Copy from...</B></span> button gives you 
+ a possibility to load an existing filter from <span style="font-weight: bold;"><B>Selection 
+ filter library</B></span> and <span style="font-weight: bold;"><B>Add to...</B></span> 
+ button gives you a possibility to save your current filter in the Library. 
+ &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p><img src="pics/a-filteronedges.png" x-maintain-ratio="TRUE" width="624px" height="525px" border="0" class="img_whs4"></p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/smesh.htm b/doc/salome/gui/SMESH/smesh.htm
deleted file mode 100755 (executable)
index 4964c60..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-\r
-<html>\r
-<head><script language="javascript">\r
-<!--\r
-var sIcon="whstart.ico";\r
-var sPath=document.location.href;\r
-if (sPath.indexOf("http")!= -1)\r
-       document.write("<link REL=\"SHORTCUT ICON\" href=\""+ sIcon +"\">");\r
-//-->\r
-</script>\r
- <title>SMESH reference manual</title>\r
- <meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
- <meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whstub.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:NoframeAt all\r
-var strPaneDHTML  = "whskin_pdhtml.htm";               //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
-var strPaneApplet = "whskin_papplet.htm";\r
-var strPaneList   = "whskin_plist.htm";\r
-var bNoApplet  = false;\r
-\r
-var strPane = "";\r
-\r
-var nViewFrameType = -1;\r
-\r
-if (!window.gAgent)\r
-{\r
-       // low end browser, we don't even try to determine it.\r
-       document.location = "whnjs.htm";\r
-}\r
-else\r
-{\r
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)                              \r
-               document.location = "whnjs.htm";\r
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
-               document.location = "whnjs.htm";\r
-       else if (gbMac && gbIE4 && !gbIE5)              \r
-               document.location = "whnjs.htm";\r
-       //figure out which mode is the best\r
-       else\r
-       {\r
-               nViewFrameType=nWebhelpNavPaneMode;\r
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)\r
-               {\r
-                       var gbDHTML=(nWebhelpNavPaneMode==1);\r
-                       if (gbNav4)                                                                             nViewFrameType = 2;\r
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;\r
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;\r
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;\r
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;\r
-                       if (gbNav4&&gbSunOS&&nViewFrameType==2)                 nViewFrameType = 3;\r
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;\r
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;\r
-                       if (gbMac)                                                                                      nViewFrameType = 3;\r
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;\r
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;\r
-               }\r
-       }\r
-}\r
-\r
-if (nViewFrameType!=-1)\r
-{\r
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-       //The colordepth of the 16 color on Windows is 1. \r
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
-       {\r
-          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
-          nViewFrameType = 3;\r
-       }\r
-\r
-       //figure out which one is navpane\r
-       // ReplaceMark:nViewFrameType = 1\r
-       if (nViewFrameType == 1)\r
-       {\r
-               if (gbNav4 && !gbNav6)\r
-                       strPane = strPaneList;\r
-               else\r
-                       strPane = strPaneDHTML;\r
-       }\r
-       else if (nViewFrameType == 2)\r
-               strPane = strPaneApplet;\r
-       else\r
-               strPane = strPaneList;\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="javascript" src="whstart.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!gbIE4&&!gbNav4&&!gbOpera7&&!gbSafari)\r
-       document.location = "whnjs.htm";\r
-\r
-function CMRAgent( strID, strURL, strLabel, strFrameAttr )\r
-{\r
-  this.m_strID = strID;\r
-  this.m_strURL = strURL;\r
-  this.m_strLabel = strLabel;\r
-  this.m_strFrameAttr = strFrameAttr;\r
-}\r
-\r
-function CMRServer()\r
-{\r
-  this.m_cAgents = new Array;\r
-}\r
-var cMRServer = new CMRServer;\r
-// GetServerInfo\r
-// Registry the agent array handled by webhelp\r
-// ReplaceMark:MRServer.strServerData\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (nViewFrameType!=-1)\r
-{\r
-       var strHTML = "<frameset rows=\"32,*\" hostof=\"parent:toolbar!startpage:yes\" frameborder=\"0\" border=\"0\"><frame src=\"whskin_tbars.htm\" id=\"toolbar\" frameborder=\"0\" border=\"0\" scrolling=\"no\" noresize marginheight=\"0\" marginwidth=\"0\" title=\"Toolbar\"></frame><frame src=\"whskin_frmset01.htm\"  frameborder=\"1\" border=\"1\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame></frameset>";\r
-       document.write(strHTML);\r
-}\r
-//-->\r
-</script>\r
-\r
-<frameset cols="100%,*" frameborder=no border=0>\r
-  <frame src="whnjs.htm">\r
-  <frame src="whskin_blank.htm" noresize>\r
-</frameset>\r
-\r
-</html>
\ No newline at end of file
index f87769ff771c377995e572fd9c26118c3824b2fd..73dbb7053b2d89750393e3b63af00ba478026920 100755 (executable)
-|SourceProjectName:SMESH.hpr\r
-|DestinationProjectName:smesh.htm\r
-whhost.js\r
-whmsg.js\r
-whmozemu.js\r
-whproxy.js\r
-whstub.js\r
-whutils.js\r
-whver.js\r
-whform.js\r
-whphost.js\r
-whstart.js\r
-whtopic.js\r
-whframes.js\r
-whlang.js\r
-whskin_info.htm\r
-whskin_blank.htm\r
-whskin_pickup.htm\r
-whskin_homepage.htm\r
-whskin_tw.htm\r
-whnjs.htm\r
-whthost.js\r
-whtdhtml.htm\r
-whihost.js\r
-whibody.htm\r
-whiform.htm\r
-whfhost.js\r
-whfbody.htm\r
-whfform.htm\r
-whghost.js\r
-whgbody.htm\r
-whgdhtml.htm\r
-whgdef.htm\r
-whproj.js\r
-whproj.xml\r
-whproj.htm\r
-whxdata\whtoc.xml\r
-whxdata\whidx.xml\r
-whxdata\whfts.xml\r
-whxdata\whglo.xml\r
-whdata\whtoc.js\r
-whdata\whtoc.htm\r
-whdata\whtdata.js\r
-whdata\whidx.js\r
-whdata\whidx.htm\r
-whdata\whidata.js\r
-whdata\whfts.js\r
-whdata\whfts.htm\r
-whdata\whglo.js\r
-whdata\whglo.htm\r
-whdata\whgdata.js\r
-whdata\whftdata.js\r
-whdata\whfwdata.js\r
-whres.xml\r
-webhelp.jar\r
-webhelp.cab\r
-whgdata\whnvp30.htm\r
-whgdata\whnvp31.htm\r
-whgdata\whnvp32.htm\r
-whgdata\whnvp33.htm\r
-whgdata\whnvt30.htm\r
-whgdata\whnvt31.htm\r
-whgdata\whnvt32.htm\r
-whgdata\whnvt33.htm\r
-whgdata\whnvf30.htm\r
-whgdata\whnvf31.htm\r
-whgdata\whnvf32.htm\r
-whgdata\whnvf33.htm\r
-whgdata\whnvl31.htm\r
-whgdata\whnvl32.htm\r
-whgdata\whnvl33.htm\r
-whgdata\whexpbar.gif\r
-cshdat_webhelp.htm\r
-whcsh_home.htm\r
-whcshdata.htm\r
-cshdat_robohelp.htm\r
-wht_tab0.gif\r
-wht_tab1.gif\r
-wht_tab2.gif\r
-wht_tab3.gif\r
-wht_tab4.gif\r
-wht_tab5.gif\r
-wht_tab6.gif\r
-wht_tab7.gif\r
-wht_tab8.gif\r
-wht_glo_h.gif\r
-wht_glo_n.gif\r
-wht_fts_h.gif\r
-wht_fts_n.gif\r
-wht_idx_h.gif\r
-wht_idx_n.gif\r
-wht_toc_h.gif\r
-wht_toc_n.gif\r
-wht_ws.gif\r
-wht_ws_g.gif\r
-wht_logo1.gif\r
-wht_logo2.gif\r
-wht_abgw.jpg\r
-wht_abgi.jpg\r
-wht_abge.jpg\r
-wht_abtw.jpg\r
-wht_abte.jpg\r
-wht_abti.jpg\r
-wht_spac.gif\r
-wht_next.gif\r
-wht_next_g.gif\r
-wht_prev.gif\r
-wht_prev_g.gif\r
-wht_sync.gif\r
-wht_hide.gif\r
-wht_go.gif\r
-whstart.ico\r
-whestart.ico\r
-whrstart.ico\r
-whidhtml.htm\r
-whfdhtml.htm\r
-whskin_banner.htm\r
-whtbar.js\r
-whskin_pdhtml.htm\r
-whskin_papplet.htm\r
-whskin_plist.htm\r
-whskin_tbars.htm\r
-whskin_mbars.htm\r
-wht_toc4.gif\r
-wht_toc1.gif\r
-wht_toc2.gif\r
-wht_toc3.gif\r
-whskin_frmset010.htm\r
-whst_topics.xml\r
-whskin_frmset01.htm\r
-smesh_hha.hhk\r
-smesh.hhc\r
-smesh.hhk\r
-about_viewing_meshes.htm\r
-aspect_ratio_3d.htm\r
-borders_at_multi-connection.htm\r
-borders_at_multiconnection_2d.htm\r
-clipping.htm\r
-constructing_meshes.htm\r
-defining_hypotheses_tui.htm\r
-deleting_groups.htm\r
-display_entity.htm\r
-extrusion.htm\r
-extrusion_along_a_path.htm\r
-files\about_hypotheses.htm\r
-files\about_meshes.htm\r
-files\about_meshing_algorithms.htm\r
-files\about_quality_controls.htm\r
-files\adding_nodes_and_elements.htm\r
-files\area_of_elements.htm\r
-files\arithmetic_1d.htm\r
-files\aspect_ratio.htm\r
-files\changing_orientation_of_elements.htm\r
-files\constructing_groups_of_specific_elements.htm\r
-files\constructing_meshes.htm\r
-files\constructing_submeshes.htm\r
-files\creating_groups.htm\r
-files\cutting_quadrangles.htm\r
-files\diagonal_iversion_of_elements.htm\r
-files\displacing_nodes.htm\r
-files\displaying_nodes_numbers.htm\r
-files\editing_groups.htm\r
-files\importing_and_exporting_meshes.htm\r
-files\introduction_to_smesh.htm\r
-files\length_of_edges.htm\r
-files\max._element_area_hypothesis.htm\r
-files\max._element_volume_hypothsis.htm\r
-files\merging_nodes.htm\r
-files\minimum_angle.htm\r
-files\non_conform_mesh_allowed_hypothesis.htm\r
-files\reassigning_hypotheses_and_algorithms.htm\r
-files\removing_nodes_and_elements.htm\r
-files\renumbering_nodes_and_elements.htm\r
-files\rotation.htm\r
-files\running_smesh_module.htm\r
-files\sewing_meshes.htm\r
-files\skew.htm\r
-files\smoothing.htm\r
-files\symmetry.htm\r
-files\taper.htm\r
-files\translation.htm\r
-files\uniting_a_set_of_triangles.htm\r
-files\uniting_two_triangles.htm\r
-files\using_operations_on_groups.htm\r
-files\viewing_mesh_info.htm\r
-files\warp.htm\r
-free_borders.htm\r
-free_edges.htm\r
-grouping_elements.htm\r
-length.htm\r
-modifying_meshes.htm\r
-pattern_mapping.htm\r
-presentation.htm\r
-quality_controls.htm\r
-revolution.htm\r
-selection_filter_library.htm\r
-transforming_meshes.htm\r
-transparency.htm\r
-viewing_meshes.htm\r
-ehelp.xml\r
-texture_horiz_ltbluebubbles.jpg\r
-smesh.glo\r
-default.css\r
-pics\add_node.png\r
-pics\remove_nodes2.png\r
-pics\merging_nodes2.png\r
-pics\moving_nodes2.png\r
-pics\smoothing2.png\r
-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
-image95.jpg\r
-pics\sewing1.png\r
-image92.gif\r
-image51.jpg\r
-image70.gif\r
-pics\create_group.png\r
-pics\edit_mesh_change_value_hyp.png\r
-pics\free_borders1.png\r
-pics\add_triangle.png\r
-pics\b-art_end_length.png\r
-pics\a-creategroup.png\r
-pics\a-clipping2.png\r
-pics\a-transparency.png\r
-pics\diagonalinversion.png\r
-pics\translation1.png\r
-image96.jpg\r
-pics\sewing2.png\r
-image119.gif\r
-image108.gif\r
-image52.jpg\r
-image82.gif\r
-image71.gif\r
-image30.jpg\r
-pics\rotation1.png\r
-pics\a-createpolyhedralvolume.png\r
-pics\a-patterntype.png\r
-pics\orientaation1.png\r
-pics\translation2.png\r
-pics\cutgroups.png\r
-image97.jpg\r
-pics\sewing3.png\r
-image86.jpg\r
-image50.gif\r
-image94.gif\r
-image83.gif\r
-image31.jpg\r
-pics\add_polyhedron.png\r
-pics\add_edge.png\r
-pics\rotation2.png\r
-pics\b-ithmetic1d.png\r
-image10.jpg\r
-pics\a-maxelarea.png\r
-pics\addhexahedron.png\r
-pics\addtetrahedron.png\r
-image5.jpg\r
-pics\sewing4.png\r
-image95.gif\r
-image76.jpg\r
-image84.gif\r
-image73.gif\r
-image32.jpg\r
-image40.gif\r
-pics\smoothing.png\r
-image88.jpg\r
-image30.gif\r
-image96.gif\r
-image77.jpg\r
-image74.gif\r
-image63.gif\r
-image22.jpg\r
-image41.gif\r
-pics\deletegroups.png\r
-pics\editing_groups1.png\r
-pics\uniting_two_triangles1.png\r
-image7.jpg\r
-pics\a-averagelength.png\r
-pics\a-patterntype1.png\r
-pics\extrusionalongaline1.png\r
-pics\movenodes.png\r
-pics\rotation.png\r
-image56.jpg\r
-image53.gif\r
-image20.gif\r
-image97.gif\r
-image78.jpg\r
-image64.gif\r
-image23.jpg\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\cut_groups2.png\r
-image130.gif\r
-pics\max_el_area.png\r
-pics\a-extusionalongapath2.png\r
-pics\a-viewgeneral.png\r
-pics\revolution1.png\r
-pics\addtriangle.png\r
-image99.gif\r
-image55.gif\r
-image88.gif\r
-image36.jpg\r
-image33.gif\r
-image22.gif\r
-image25.jpg\r
-i_blue.jpg\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
-pics\revolution2.png\r
-pics\unionoftwotriangles.png\r
-pics\addnode.png\r
-image120.gif\r
-image56.gif\r
-image37.jpg\r
-image23.gif\r
-image67.gif\r
-image34.gif\r
-image26.jpg\r
-image132.gif\r
-pics\edit_mesh1.png\r
-pics\remove_elements1.png\r
-pics\uniting_a_set_of_triangles2.png\r
-pics\mergenodes.png\r
-pics\symmetry1.png\r
-image121.gif\r
-image79.gif\r
-image38.jpg\r
-image46.gif\r
-image35.gif\r
-image27.jpg\r
-image24.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
-pics\symmetry2.png\r
-image122.gif\r
-image58.gif\r
-image36.gif\r
-image25.gif\r
-note1.gif\r
-pics\intersect_groups2.png\r
-image134.gif\r
-pics\b-mesh_infos.png\r
-pics\symmetry3.png\r
-pics\addedge.png\r
-image123.gif\r
-image101.gif\r
-image37.gif\r
-pics\intersect_groups3.png\r
-image135.gif\r
-pics\b-erage_length.png\r
-pics\a-standmeshinfo.png\r
-pics\a-nbsegments1.png\r
-pics\patternmapping1.png\r
-image90.jpg\r
-image124.gif\r
-image102.gif\r
-image19.jpg\r
-image49.gif\r
-image27.gif\r
-image38.gif\r
-image136.gif\r
-pics\c-createmesh.png\r
-pics\a-nbsegments2.png\r
-pics\a-startendlength.png\r
-pics\patternmapping2.png\r
-pics\removeelements.png\r
-pics\removenodes.png\r
-pics\uniongroups.png\r
-image125.gif\r
-image103.gif\r
-pics\exemple.gif\r
-image39.gif\r
-image28.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\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\selectionfilterlibrary.png\r
-pics\union_groups3.png\r
-pics\edit_mesh_remove_hyp.png\r
-pics\remove_nodes1.png\r
-pics\merging_nodes1.png\r
-pics\moving_nodes1.png\r
-pics\smoothing1.png\r
-pics\a-filteronedges.png\r
-pics\renumberelements.png\r
-pics\addpolygon.png\r
-image94.jpg\r
-image106.gif\r
-image91.gif\r
-image80.gif\r
-smesh.ppf\r
-ehlpdhtm.js\r
-default_ns.css\r
-whxdata\whtdata0.xml\r
-whxdata\whftdata0.xml\r
-whxdata\whfwdata0.xml\r
-whxdata\whgdata0.xml\r
-whdata\whtdata0.htm\r
-whdata\whftdata0.htm\r
-whdata\whfwdata0.htm\r
-whdata\whgdata0.htm\r
-whgdata\whlstt0.htm\r
-whgdata\whlstt1.htm\r
-whgdata\whlstt2.htm\r
-whgdata\whlstt3.htm\r
-whgdata\whlstt4.htm\r
-whgdata\whlstt5.htm\r
-whgdata\whlstt6.htm\r
-whgdata\whlstt7.htm\r
-whgdata\whlstt8.htm\r
-whgdata\whlstt9.htm\r
-whgdata\whlsti0.htm\r
-whgdata\whlstfl0.htm\r
-whgdata\whlstfl1.htm\r
-whgdata\whlstfl2.htm\r
-whgdata\whlstfl3.htm\r
-whgdata\whlstfl4.htm\r
-whgdata\whlstfl5.htm\r
-whgdata\whlstfl6.htm\r
-whgdata\whlstfl7.htm\r
-whgdata\whlstfl8.htm\r
-whgdata\whlstfl9.htm\r
-whgdata\whlstfl10.htm\r
-whgdata\whlstfl11.htm\r
-whgdata\whlstfl12.htm\r
-whgdata\whlstfl13.htm\r
-whgdata\whlstfl14.htm\r
-whgdata\whlstfl15.htm\r
-whgdata\whlstfl16.htm\r
-whgdata\whlstfl17.htm\r
-whgdata\whlstfl18.htm\r
-whgdata\whlstfl19.htm\r
-whgdata\whlstfl20.htm\r
-whgdata\whlstfl21.htm\r
-whgdata\whlstfl22.htm\r
-whgdata\whlstfl23.htm\r
-whgdata\whlstfl24.htm\r
-whgdata\whlstfl25.htm\r
-whgdata\whlstf0.htm\r
-whgdata\whlstf1.htm\r
-whgdata\whlstf2.htm\r
-whgdata\whlstf3.htm\r
-whgdata\whlstf4.htm\r
-whgdata\whlstf5.htm\r
-whgdata\whlstf6.htm\r
-whgdata\whlstf7.htm\r
-whgdata\whlstf8.htm\r
-whgdata\whlstf9.htm\r
-whgdata\whlstf10.htm\r
-whgdata\whlstf11.htm\r
-whgdata\whlstf12.htm\r
-whgdata\whlstg0.htm\r
-smesh.htm\r
-smesh_csh.htm\r
-smesh_rhc.htm\r
+|SourceProjectName:SMESH.hpr
+|DestinationProjectName:index.htm
+whhost.js
+whmsg.js
+whmozemu.js
+whproxy.js
+whstub.js
+whutils.js
+whver.js
+whform.js
+whphost.js
+whstart.js
+whtopic.js
+whframes.js
+whlang.js
+whskin_info.htm
+whskin_blank.htm
+whskin_pickup.htm
+whskin_homepage.htm
+whskin_tw.htm
+whnjs.htm
+whthost.js
+whtdhtml.htm
+whihost.js
+whibody.htm
+whiform.htm
+whfhost.js
+whfbody.htm
+whfform.htm
+whghost.js
+whgbody.htm
+whgdhtml.htm
+whgdef.htm
+whproj.js
+whproj.xml
+whproj.htm
+whxdata\whtoc.xml
+whxdata\whidx.xml
+whxdata\whfts.xml
+whxdata\whglo.xml
+whdata\whtoc.js
+whdata\whtoc.htm
+whdata\whtdata.js
+whdata\whidx.js
+whdata\whidx.htm
+whdata\whidata.js
+whdata\whfts.js
+whdata\whfts.htm
+whdata\whglo.js
+whdata\whglo.htm
+whdata\whgdata.js
+whdata\whftdata.js
+whdata\whfwdata.js
+whres.xml
+webhelp.jar
+webhelp.cab
+whgdata\whnvp30.htm
+whgdata\whnvp31.htm
+whgdata\whnvp32.htm
+whgdata\whnvp33.htm
+whgdata\whnvt30.htm
+whgdata\whnvt31.htm
+whgdata\whnvt32.htm
+whgdata\whnvt33.htm
+whgdata\whnvf30.htm
+whgdata\whnvf31.htm
+whgdata\whnvf32.htm
+whgdata\whnvf33.htm
+whgdata\whnvl31.htm
+whgdata\whnvl32.htm
+whgdata\whnvl33.htm
+whgdata\whexpbar.gif
+cshdat_webhelp.htm
+whcsh_home.htm
+whcshdata.htm
+cshdat_robohelp.htm
+whd_topic.xml
+whd_nvp10.htm
+whd_nvp20.htm
+whd_tabs.htm
+whd_dpns.htm
+whd_tab0.gif
+whd_tab1.gif
+whd_tab2.gif
+whd_tab3.gif
+whd_tab4.gif
+whd_tab5.gif
+whd_tab6.gif
+whd_tab7.gif
+whd_tab8.gif
+whd_toc1.gif
+whd_toc2.gif
+whd_toc3.gif
+whd_toc4.gif
+whd_show0.gif
+whd_show1.gif
+whd_show2.gif
+whd_hide0.gif
+whd_hide1.gif
+whd_hide2.gif
+whd_sync0.gif
+whd_sync1.gif
+whd_sync2.gif
+whd_prev0.gif
+whd_prev1.gif
+whd_prev2.gif
+whd_next0.gif
+whd_next1.gif
+whd_next2.gif
+whd_wbsh0.gif
+whd_wbsh1.gif
+whd_wbsh2.gif
+whidhtml.htm
+whfdhtml.htm
+index_hha.hhk
+index.hhc
+index.hhk
+about_viewing_meshes.htm
+adding_quadratic_nodes_and_elements.htm
+aspect_ratio_3d.htm
+borders_at_multi-connection.htm
+borders_at_multiconnection_2d.htm
+clipping.htm
+constructing_meshes.htm
+defining_hypotheses_tui.htm
+deleting_groups.htm
+display_entity.htm
+extrusion.htm
+extrusion_along_a_path.htm
+files\about_hypotheses.htm
+files\about_meshes.htm
+files\about_meshing_algorithms.htm
+files\about_quality_controls.htm
+files\adding_nodes_and_elements.htm
+files\area_of_elements.htm
+files\arithmetic_1d.htm
+files\aspect_ratio.htm
+files\changing_orientation_of_elements.htm
+files\constructing_groups_of_specific_elements.htm
+files\constructing_meshes.htm
+files\constructing_submeshes.htm
+files\creating_groups.htm
+files\cutting_quadrangles.htm
+files\diagonal_iversion_of_elements.htm
+files\displacing_nodes.htm
+files\displaying_nodes_numbers.htm
+files\editing_groups.htm
+files\importing_and_exporting_meshes.htm
+files\length_of_edges.htm
+files\max._element_area_hypothesis.htm
+files\max._element_volume_hypothsis.htm
+files\merging_nodes.htm
+files\minimum_angle.htm
+files\non_conform_mesh_allowed_hypothesis.htm
+files\reassigning_hypotheses_and_algorithms.htm
+files\removing_nodes_and_elements.htm
+files\renumbering_nodes_and_elements.htm
+files\rotation.htm
+files\running_smesh_module.htm
+files\sewing_meshes.htm
+files\skew.htm
+files\smoothing.htm
+files\symmetry.htm
+files\taper.htm
+files\translation.htm
+files\uniting_a_set_of_triangles.htm
+files\uniting_two_triangles.htm
+files\using_operations_on_groups.htm
+files\viewing_mesh_info.htm
+files\vtk_3d_viewer.htm
+files\warp.htm
+free_borders.htm
+free_edges.htm
+grouping_elements.htm
+length.htm
+merge_elements.htm
+mesh.htm
+modifying_meshes.htm
+pattern_mapping.htm
+presentation.htm
+quality_controls.htm
+revolution.htm
+selection_filter_library.htm
+transforming_meshes.htm
+transparency.htm
+viewing_meshes.htm
+volume.htm
+ehelp.xml
+texture_horiz_ltbluebubbles.jpg
+index.glo
+default.css
+pics\add_node.png
+pics\remove_nodes2.png
+pics\merging_nodes2.png
+pics\moving_nodes2.png
+pics\smoothing2.png
+pics\b-mberofsegments.png
+pics\b-flection1d.png
+pics\a-cuttingofquadrangles.png
+pics\addquadrangle.png
+pics\intersectgroups.png
+pics\editgroup.png
+image95.jpg
+pics\sewing1.png
+image92.gif
+image51.jpg
+image70.gif
+pics\image138.gif
+pics\create_group.png
+pics\edit_mesh_change_value_hyp.png
+pics\free_borders1.png
+pics\add_triangle.png
+pics\b-art_end_length.png
+pics\a-creategroup.png
+pics\a-clipping2.png
+pics\a-transparency.png
+pics\diagonalinversion.png
+pics\translation1.png
+image96.jpg
+pics\sewing2.png
+image119.gif
+image108.gif
+image52.jpg
+image82.gif
+image71.gif
+image30.jpg
+pics\distributionwithanalyticdensity.png
+pics\image139.gif
+pics\rotation1.png
+pics\a-createpolyhedralvolume.png
+pics\a-patterntype.png
+pics\orientaation1.png
+pics\translation2.png
+pics\cutgroups.png
+image97.jpg
+pics\sewing3.png
+image86.jpg
+image50.gif
+image94.gif
+image83.gif
+image31.jpg
+pics\graduatedaxes1.png
+pics\image107.gif
+pics\automaticlength.png
+pics\image27.gif
+pics\add_polyhedron.png
+pics\add_edge.png
+pics\rotation2.png
+pics\b-ithmetic1d.png
+image10.jpg
+pics\a-maxelarea.png
+pics\addhexahedron.png
+pics\addtetrahedron.png
+image5.jpg
+pics\sewing4.png
+image95.gif
+image76.jpg
+image84.gif
+image32.jpg
+image40.gif
+pics\image108.gif
+pics\aqt.png
+pics\distributionwithtabledensity.png
+pics\smoothing.png
+image88.jpg
+image30.gif
+image96.gif
+image77.jpg
+image74.gif
+image63.gif
+image22.jpg
+image41.gif
+pics\image109.gif
+pics\meshimportmesh.png
+pics\deletegroups.png
+pics\editing_groups1.png
+pics\uniting_two_triangles1.png
+image7.jpg
+pics\a-averagelength.png
+pics\a-patterntype1.png
+pics\extrusionalongaline1.png
+pics\movenodes.png
+pics\rotation.png
+image56.jpg
+image53.gif
+image20.gif
+image97.gif
+image78.jpg
+image64.gif
+image23.jpg
+image151.gif
+pics\cut_groups1.png
+pics\editing_groups2.png
+pics\uniting_two_triangles2.png
+pics\a-unionoftriangles.png
+pics\a-arithmetic1d.png
+pics\extrusionalongaline2.png
+image79.jpg
+image98.gif
+image32.gif
+pics\image91.gif
+image152.gif
+pics\cut_groups2.png
+image130.gif
+pics\max_el_area.png
+pics\a-extusionalongapath2.png
+pics\a-viewgeneral.png
+pics\revolution1.png
+pics\addtriangle.png
+image99.gif
+image55.gif
+image88.gif
+image36.jpg
+image33.gif
+image25.jpg
+i_blue.jpg
+image15.jpg
+image142.gif
+pics\cut_groups3.png
+image131.gif
+pics\add_quadrangle.png
+pics\uniting_a_set_of_triangles1.png
+pics\a-deflection1d.png
+pics\revolution2.png
+pics\unionoftwotriangles.png
+pics\addnode.png
+image120.gif
+image56.gif
+image37.jpg
+image67.gif
+image34.gif
+image143.gif
+image132.gif
+pics\edit_mesh1.png
+pics\remove_elements1.png
+pics\uniting_a_set_of_triangles2.png
+pics\mergenodes.png
+pics\symmetry1.png
+image121.gif
+image79.gif
+image38.jpg
+image46.gif
+image35.gif
+image27.jpg
+image24.gif
+pics\createmesh-inv2.png
+image144.gif
+pics\intersect_groups1.png
+image133.gif
+pics\add_polygone.png
+pics\remove_elements2.png
+pics\a-maxelvolume.png
+pics\symmetry2.png
+image122.gif
+image58.gif
+image36.gif
+image25.gif
+note1.gif
+pics\createmesh-inv3.png
+image145.gif
+pics\intersect_groups2.png
+image134.gif
+pics\b-mesh_infos.png
+pics\symmetry3.png
+pics\addedge.png
+image123.gif
+image101.gif
+image37.gif
+pics\image96.gif
+image146.gif
+pics\intersect_groups3.png
+image135.gif
+pics\b-erage_length.png
+pics\a-standmeshinfo.png
+pics\a-nbsegments1.png
+pics\patternmapping1.png
+image90.jpg
+image124.gif
+image102.gif
+image49.gif
+image38.gif
+pics\image100.gif
+pics\image97.gif
+pics\length-crit.png
+image147.gif
+image136.gif
+pics\a-nbsegments2.png
+pics\a-startendlength.png
+pics\patternmapping2.png
+pics\removeelements.png
+pics\removenodes.png
+pics\uniongroups.png
+image125.gif
+image103.gif
+pics\exemple.gif
+image39.gif
+image28.gif
+pics\advanced_mesh_infos.png
+pics\image98.gif
+image148.gif
+pics\meshexportmesh.png
+pics\image21.gif
+pics\union_groups1.png
+image137.gif
+pics\free_edges.png
+pics\creategroup.png
+image92.jpg
+image126.gif
+image104.gif
+image18.gif
+image70.jpg
+pics\createmesh-inv.png
+pics\image102.gif
+pics\image99.gif
+pics\image77.gif
+pics\meshtrianglemergeelem1.png
+pics\mergeelems.png
+pics\union_groups2.png
+pics\length2d.png
+pics\renumbernodes.png
+image127.gif
+image93.jpg
+image105.gif
+image19.gif
+image71.jpg
+pics\image89.gif
+pics\image78.gif
+pics\image23.gif
+pics\selectionfilterlibrary.png
+pics\union_groups3.png
+pics\edit_mesh_remove_hyp.png
+pics\remove_nodes1.png
+pics\merging_nodes1.png
+pics\moving_nodes1.png
+pics\smoothing1.png
+pics\a-filteronedges.png
+pics\renumberelements.png
+pics\addpolygon.png
+image94.jpg
+image106.gif
+image91.gif
+image80.gif
+index.ppf
+ehlpdhtm.js
+default_ns.css
+whxdata\whtdata0.xml
+whxdata\whftdata0.xml
+whxdata\whfwdata0.xml
+whxdata\whgdata0.xml
+whdata\whtdata0.htm
+whdata\whftdata0.htm
+whdata\whfwdata0.htm
+whdata\whgdata0.htm
+whgdata\whlstt0.htm
+whgdata\whlstt1.htm
+whgdata\whlstt2.htm
+whgdata\whlstt3.htm
+whgdata\whlstt4.htm
+whgdata\whlstt5.htm
+whgdata\whlstt6.htm
+whgdata\whlstt7.htm
+whgdata\whlstt8.htm
+whgdata\whlstt9.htm
+whgdata\whlsti0.htm
+whgdata\whlstfl0.htm
+whgdata\whlstfl1.htm
+whgdata\whlstfl2.htm
+whgdata\whlstfl3.htm
+whgdata\whlstfl4.htm
+whgdata\whlstfl5.htm
+whgdata\whlstfl6.htm
+whgdata\whlstfl7.htm
+whgdata\whlstfl8.htm
+whgdata\whlstfl9.htm
+whgdata\whlstfl10.htm
+whgdata\whlstfl11.htm
+whgdata\whlstfl12.htm
+whgdata\whlstfl13.htm
+whgdata\whlstfl14.htm
+whgdata\whlstfl15.htm
+whgdata\whlstfl16.htm
+whgdata\whlstfl17.htm
+whgdata\whlstfl18.htm
+whgdata\whlstfl19.htm
+whgdata\whlstfl20.htm
+whgdata\whlstfl21.htm
+whgdata\whlstfl22.htm
+whgdata\whlstfl23.htm
+whgdata\whlstfl24.htm
+whgdata\whlstfl25.htm
+whgdata\whlstf0.htm
+whgdata\whlstf1.htm
+whgdata\whlstf2.htm
+whgdata\whlstf3.htm
+whgdata\whlstf4.htm
+whgdata\whlstf5.htm
+whgdata\whlstf6.htm
+whgdata\whlstf7.htm
+whgdata\whlstf8.htm
+whgdata\whlstf9.htm
+whgdata\whlstf10.htm
+whgdata\whlstf11.htm
+whgdata\whlstf12.htm
+whgdata\whlstf13.htm
+whgdata\whlstg0.htm
+index.htm
+index_csh.htm
+index_rhc.htm
diff --git a/doc/salome/gui/SMESH/smesh_csh.htm b/doc/salome/gui/SMESH/smesh_csh.htm
deleted file mode 100755 (executable)
index ebe4e93..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_csh.html";\r
-var gCSHSuffixName2 = "_csh.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_webhelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       if (strProj)\r
-       {\r
-               strProj = _replaceSlash(strProj);\r
-               if (strProj.lastIndexOf("/") != strProj.length - 1)\r
-                       strProj += "/";\r
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-               var bFound = false;\r
-               for (var i = 0; i < len; i ++)\r
-               {\r
-                       if (isSamePath(gasProj[i], strPPath))\r
-                       {\r
-                               bFound = true;\r
-                               break;\r
-                       }\r
-               }\r
-               if (!bFound)\r
-                       gasProj[len] = strPPath;\r
-       }\r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_webhelp.htm"></frame>            \r
-</frameset>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/smesh_rhc.htm b/doc/salome/gui/SMESH/smesh_rhc.htm
deleted file mode 100755 (executable)
index 3bb6f9a..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gCSHFileName   = "whc_data.htm";\r
-var gCSHSuffixName1 = "_rhc.html";\r
-var gCSHSuffixName2 = "_rhc.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-gCSHFileName="cshdat_robohelp.htm";\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-var gasProj = new Array();\r
-gasProj[0] = _getPath(document.location.href);\r
-var gCurrent = 0;\r
-\r
-function addProject(strProj)\r
-{\r
-       var len  = gasProj.length;\r
-       if (strProj)\r
-       {\r
-               strProj = _replaceSlash(strProj);\r
-               if (strProj.lastIndexOf("/") != strProj.length - 1)\r
-                       strProj += "/";\r
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);\r
-               var bFound = false;\r
-               for (var i = 0; i < len; i ++)\r
-               {\r
-                       if (isSamePath(gasProj[i], strPPath))\r
-                       {\r
-                               bFound = true;\r
-                               break;\r
-                       }\r
-               }\r
-               if (!bFound)\r
-                       gasProj[len] = strPPath;\r
-       }\r
-}\r
-\r
-function isSamePath(strPath1, strPath2)\r
-{\r
-       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
-}\r
-\r
-function goNext()\r
-{\r
-       gCurrent ++;\r
-       var len = gasProj.length;\r
-       if (gCurrent >= len)\r
-               return getHomePage()\r
-       else\r
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
-       return "";\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath = _getPath(strLocation);\r
-       var strOriPPath = _getPath(getHomePage());\r
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
-       var strURL = getHomePage() + "#" + strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp = location.toString();\r
-       var nPos = strTmp.indexOf("#");\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strTmp.substring(0, nPos);\r
-       }\r
-       else\r
-       {\r
-          strHomePage = strTmp;\r
-       }\r
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
-       if (nPos != -1)\r
-       {\r
-          strHomePage = strHomePage.substring(0,nPos);\r
-          if (nPos1 != -1)\r
-            strHomePage += ".html";\r
-          else\r
-            strHomePage += ".htm";\r
-       }\r
-       return strHomePage;\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<frameset rows="1,*">\r
-<frame name="dumb" src="about:blank"></frame>\r
-<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
-</frameset>\r
-</html>
\ No newline at end of file
index 4d1e65ac6675d7b7cda598fd0e834ded872a02fb..08777ef7c519b924ce2444fca9653111096af116 100644 (file)
Binary files a/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg and b/doc/salome/gui/SMESH/smeshpy_doc/classsmesh_1_1Mesh__Hexahedron__inherit__graph.jpg differ
index 130b8881fc2794cb8f730c0370cb7c3d7ad3c0f0..5b3964358b44d2a9551d857068cccd5fef2f614b 100644 (file)
@@ -7,9 +7,6 @@
 <!-- Generated by Doxygen 1.4.6 -->
 <h1>Package smesh</h1>
 <p>
-Python package smesh defines several classes, destined for easy and clear mesh creation and edition.
-<p class="whs2"><a href="../smesh_py_introduction.htm">Example.</a></p>
-<p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
 <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
index 6d2ada4f1d772a5f4f8ed17eceaebb9f5cbb6a9e..a03fcf220c9cdfbd5d18b19fdf07394c9fedf98c 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Transforming Meshes</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
-h3.whs1 { margin-top:0pt; margin-bottom:0pt; }\r
-h4.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs4 { margin-top:0pt; margin-bottom:0pt; }\r
-p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "h3.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "h4.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs5 {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\nTUI Scripts\nTransforming Meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Transforming Meshes</h1>\r
-\r
-<h3 class="whs1">Transforming Meshes</h3>\r
-\r
-<h4 class="whs2">&nbsp;</h4>\r
-\r
-<h4 class="whs2"><a name=bookmark>Translation</a></h4>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">import SMESH</p>\r
-\r
-<p class="whs3">import SMESH_mechanic</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs3">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># translate a mesh</p>\r
-\r
-<p class="whs3">anEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs3">point = SMESH.PointStruct(-150, -150, \r
- 0)</p>\r
-\r
-<p class="whs3">vector = SMESH.DirStruct(point) </p>\r
-\r
-<p class="whs3">anEditor.TranslateObject(mesh, vector, \r
- 1)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4 class="whs2"><a name=bookmark1>Rotation</a></h4>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">import SMESH</p>\r
-\r
-<p class="whs3">import SMESH_mechanic</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">mport math</p>\r
-\r
-<p class="whs3">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs3">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># rotate a mesh </p>\r
-\r
-<p class="whs3">anEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs3">axisXYZ = SMESH.AxisStruct(0, 0, 0, 5, \r
- 5, 20)</p>\r
-\r
-<p class="whs3">angle180 = &nbsp;1.5*math.pi</p>\r
-\r
-<p class="whs3">anEditor.RotateObject(mesh, axisXYZ, angle180, \r
- 1)</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs5">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4 class="whs2"><a name=bookmark2>Symmetry</a></h4>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">import SMESH</p>\r
-\r
-<p class="whs3">import SMESH_mechanic</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">import math</p>\r
-\r
-<p class="whs3">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs3">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a symmetrical \r
- copy of the mesh mirrored through a point</p>\r
-\r
-<p class="whs3">anEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs3">anEditor.MirrorObject(mesh, SMESH.AxisStruct(0, \r
- 0, 0, 0, 0, 0), SMESH.SMESH_MeshEditor.POINT, 1) </p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4 class="whs2"><a name=bookmark3>Merging \r
- Nodes</a></h4>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">import SMESH</p>\r
-\r
-<p class="whs3">import SMESH_mechanic</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">smesh &nbsp;= \r
- SMESH_mechanic.smesh</p>\r
-\r
-<p class="whs3">mesh &nbsp;&nbsp;= \r
- SMESH_mechanic.mesh</p>\r
-\r
-<p class="whs3">salome = SMESH_mechanic.salome</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># merge nodes</p>\r
-\r
-<p class="whs3">aMeshEditor = mesh.GetMeshEditor()</p>\r
-\r
-<p class="whs3">Tolerance = 25.0</p>\r
-\r
-<p class="whs3">&nbsp;</p>\r
-\r
-<p class="whs3">GroupsOfNodes = aMeshEditor.FindCoincidentNodes(Tolerance)</p>\r
-\r
-<p class="whs3">aMeshEditor.MergeNodes(GroupsOfNodes)</p>\r
-\r
-<p class="whs3">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h3>Sewing Meshes</h3>\r
-\r
-<h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>\r
-\r
-<p class="whs5">import salome</p>\r
-\r
-<p class="whs5">import geompy</p>\r
-\r
-<p class="whs5">import smesh</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create two faces of a \r
- box</p>\r
-\r
-<p class="whs5">box1 = geompy.MakeBox(0., \r
- 0., -10., 30., 20., 25.)</p>\r
-\r
-<p class="whs5">subShapeList1 = \r
- geompy.SubShapeAll(box1, geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">box2 = geompy.MakeBox(0., \r
- 5., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs5">subShapeList2 = \r
- geompy.SubShapeAll(box2, geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs5">EdgesList = geompy.SubShapeAll(subShapeList2[ \r
- 1 ], geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">aComp = geompy.MakeCompound( \r
- [subShapeList1[ 2 ], subShapeList2[ 1 ]] )</p>\r
-\r
-<p class="whs5">idComp = geompy.addToStudy( \r
- aComp, &quot;Two faces&quot; )</p>\r
-\r
-<p class="whs5">aCompobj &nbsp;= \r
- salome.IDToObject( idComp )</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs4"># create a mesh on two \r
- faces</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5">mesh = smesh.Mesh(aCompobj, \r
- &quot;Two faces : quadrangle mesh&quot;)</p>\r
-\r
-<p class="whs5">algo = mesh.Segment()</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs5">algo.NumberOfSegments(9)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a quadrangle 2D \r
- algorithm for faces</p>\r
-\r
-<p class="whs5">mesh.Quadrangle()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a local hypothesis</p>\r
-\r
-<p class="whs5">algo = mesh.Segment(EdgesList[2])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Arithmetic1D&quot; \r
- hypothesis to cut an edge in several segments with increasing arithmetic \r
- length </p>\r
-\r
-<p class="whs5">algo.Arithmetic1D(1, \r
- 4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Propagation&quot; \r
- hypothesis that propagates all other hypothesis on all edges on the opposite \r
- side in case of quadrangular faces</p>\r
-\r
-<p class="whs5">algo.Propagation()</p>\r
-\r
-<p class="whs5">mesh.Compute()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># sew free borders</p>\r
-\r
-<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>\r
-\r
-<p class="whs5">anEditor.SewBorderToSide(5, \r
- 45, 6, 113, 109, 0, 0)</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
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4><a name=bookmark5>Sew Conform Free Borders</a></h4>\r
-\r
-<p class="whs5">import salome</p>\r
-\r
-<p class="whs5">import geompy</p>\r
-\r
-<p class="whs5">import smesh</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create two faces of the \r
- box</p>\r
-\r
-<p class="whs5">box1 = geompy.MakeBox(0., \r
- 0., -10., 20., 20., 15.)</p>\r
-\r
-<p class="whs5">subShapeList1 = \r
- geompy.SubShapeAll(box1, geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">box2 = geompy.MakeBox(0., \r
- 5., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs5">subShapeList2 = \r
- geompy.SubShapeAll(box2, geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs5">EdgesList = geompy.SubShapeAll(subShapeList2[ \r
- 1 ], geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">aComp = geompy.MakeCompound( \r
- [subShapeList1[ 2 ], subShapeList2[ 1 ]] )</p>\r
-\r
-<p class="whs5">idComp = geompy.addToStudy( \r
- aComp, &quot;Two faces&quot; )</p>\r
-\r
-<p class="whs5">aCompobj &nbsp;= \r
- salome.IDToObject( idComp )</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a mesh on two \r
- faces</p>\r
-\r
-<p class="whs5">mesh = smesh.Mesh(aCompobj, \r
- &quot;Two faces : quadrangle mesh&quot;)</p>\r
-\r
-<p class="whs5">algo = mesh.Segment()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs5">algo.NumberOfSegments(9)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a quadrangle 2D \r
- algorithm for faces</p>\r
-\r
-<p class="whs5">mesh.Quadrangle()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a local hypothesis</p>\r
-\r
-<p class="whs5">algo = mesh.Segment(EdgesList[2])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Arithmetic1D&quot; \r
- hypothesis to cut an edge in several segments with increasing arithmetic \r
- length </p>\r
-\r
-<p class="whs5">algo.Arithmetic1D(1, \r
- 4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Propagation&quot; \r
- hypothesis that propagate all other hypothesis on all edges on<span style="margin-top: 0pt; margin-bottom: 0pt;"> \r
- the opposite side in case of quadrangular faces</span></p>\r
-\r
-<p class="whs5">algo.Propagation()</p>\r
-\r
-<p class="whs5">mesh.Compute()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># sew free borders</p>\r
-\r
-<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>\r
-\r
-<p class="whs5">anEditor.SewConformFreeBorders(5, \r
- 45, 6, 3, 24)</p>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4><a name=bookmark6>Sew Free Borders</a></h4>\r
-\r
-<p class="whs5">import salome</p>\r
-\r
-<p class="whs5">import geompy</p>\r
-\r
-<p class="whs5">import smesh</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create two faces of the \r
- box</p>\r
-\r
-<p class="whs5">box1 = geompy.MakeBox(0., \r
- 0., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs5">subShapeList1 = \r
- geompy.SubShapeAll(box1, geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5">box2 = geompy.MakeBox(0., \r
- 5., 0., 20., 20., 15.)</p>\r
-\r
-<p class="whs5">subShapeList2 = \r
- geompy.SubShapeAll(box2, geompy.ShapeType[&quot;FACE&quot;])</p>\r
-\r
-<p class="whs5">EdgesList = geompy.SubShapeAll(subShapeList2[ \r
- 1 ], geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs5">aComp = geompy.MakeCompound( \r
- [subShapeList1[ 2 ], subShapeList2[ 1 ]] )</p>\r
-\r
-<p class="whs5">idComp = geompy.addToStudy( \r
- aComp, &quot;Two faces&quot; )</p>\r
-\r
-<p class="whs5">aCompobj &nbsp;= \r
- salome.IDToObject( idComp )</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs4"># create a mesh on two \r
- faces</p>\r
-\r
-<p class="whs5">mesh = smesh.Mesh(aCompobj, \r
- &quot;Two faces : quadrangle mesh&quot;)</p>\r
-\r
-<p class="whs5">algo = mesh.Segment()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs5">algo.NumberOfSegments(4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># creates a quadrangle \r
- 2D algorithm for faces</p>\r
-\r
-<p class="whs5">mesh.Quadrangle()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a local hypothesis</p>\r
-\r
-<p class="whs5">algo = mesh.Segment(EdgesList[2])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Arithmetic1D&quot; \r
- hypothesis to cut an edge in several segments with &nbsp;increasing \r
- arithmetic length</p>\r
-\r
-<p class="whs5">algo.Arithmetic1D(1, \r
- 4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Propagation&quot; \r
- hypothesis that propagate all other hypothesis on all edges on<span style="margin-top: 0pt; margin-bottom: 0pt;"> \r
- the opposite side in case of quadrangular faces</span></p>\r
-\r
-<p class="whs5">algo.Propagation()</p>\r
-\r
-<p class="whs5">mesh.Compute()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># sew free borders</p>\r
-\r
-<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>\r
-\r
-<p class="whs5">anEditor.SewFreeBorders(6, \r
- 21, 5, 1, 12, 3, 0, 0)</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
-<p class="whs4">&nbsp;</p>\r
-\r
-<h4><a name=bookmark7>Sew Side Elements</a></h4>\r
-\r
-<p class="whs5">import salome</p>\r
-\r
-<p class="whs5">import geompy</p>\r
-\r
-<p class="whs5">import smesh</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs4"># create two faces of the \r
- box</p>\r
-\r
-<p class="whs5">box1 = geompy.MakeBox(0., \r
- &nbsp;0., 0., \r
- 10., 10., 10.)</p>\r
-\r
-<p class="whs5">box2 = geompy.MakeBox(0., \r
- 15., 0., 20., 25., 10.)</p>\r
-\r
-<p class="whs5">EdgesList = geompy.SubShapeAll(box2, \r
- geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs5">aComp = geompy.MakeCompound( \r
- [box1, box2] )</p>\r
-\r
-<p class="whs5">idComp = geompy.addToStudy( \r
- aComp, &quot;Two faces&quot; )</p>\r
-\r
-<p class="whs5">aCompobj &nbsp;= \r
- salome.IDToObject( idComp )</p>\r
-\r
-<p class="whs5">&nbsp;</p>\r
-\r
-<p class="whs4"># create a mesh on two \r
- faces</p>\r
-\r
-<p class="whs5">mesh = smesh.Mesh(aCompobj, \r
- &quot;Two faces : quadrangle mesh&quot;)</p>\r
-\r
-<p class="whs5">algo = mesh.Segment()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;NumberOfSegments&quot; \r
- hypothesis to cut an edge in a fixed number of segments</p>\r
-\r
-<p class="whs5">algo.NumberOfSegments(2)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a quadrangle 2D \r
- algorithm for faces</p>\r
-\r
-<p class="whs5">mesh.Quadrangle()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># create a local hypothesis</p>\r
-\r
-<p class="whs5">algo = mesh.Segment(EdgesList[8])</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Arithmetic1D&quot; \r
- hypothesis to cut an edge in several segments with increasing arithmetic \r
- length </p>\r
-\r
-<p class="whs5">algo.NumberOfSegments(4)</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># define &quot;Propagation&quot; \r
- hypothesis that propagates all other hypothesis on all edges on <span \r
- style="margin-top: 0pt; margin-bottom: 0pt;">the opposite side in case \r
- of quadrangular faces</span></p>\r
-\r
-<p class="whs5">algo.Propagation()</p>\r
-\r
-<p class="whs5">mesh.Compute()</p>\r
-\r
-<p class="whs4">&nbsp;</p>\r
-\r
-<p class="whs4"># sew free borders</p>\r
-\r
-<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>\r
-\r
-<p class="whs5">anEditor.SewSideElements([69, \r
- 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58)</p>\r
-\r
-<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
- </p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Transforming Meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+h3.whs1 { margin-top:0pt; margin-bottom:0pt; }
+h4.whs2 { margin-top:0pt; margin-bottom:0pt; }
+p.whs3 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }
+p.whs4 { margin-top:0pt; margin-bottom:0pt; }
+p.whs5 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "h3.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "h4.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nTransforming Meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Transforming Meshes</h1>
+
+<h3 class="whs1">Transforming Meshes</h3>
+
+<h4 class="whs2">&nbsp;</h4>
+
+<h4 class="whs2"><a name=bookmark>Translation</a></h4>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">import SMESH</p>
+
+<p class="whs3">import SMESH_mechanic</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs3">salome = SMESH_mechanic.salome</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># translate a mesh</p>
+
+<p class="whs3">anEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs3">point = SMESH.PointStruct(-150, -150, 
+ 0)</p>
+
+<p class="whs3">vector = SMESH.DirStruct(point) </p>
+
+<p class="whs3">anEditor.TranslateObject(mesh, vector, 
+ 1)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4 class="whs2"><a name=bookmark1>Rotation</a></h4>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">import SMESH</p>
+
+<p class="whs3">import SMESH_mechanic</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">import math</p>
+
+<p class="whs3">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs3">salome = SMESH_mechanic.salome</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># rotate a mesh </p>
+
+<p class="whs3">anEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs3">axisXYZ = SMESH.AxisStruct(0, 0, 0, 5, 
+ 5, 20)</p>
+
+<p class="whs3">angle180 = &nbsp;1.5*math.pi</p>
+
+<p class="whs3">anEditor.RotateObject(mesh, axisXYZ, angle180, 
+ 1)</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs5">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4 class="whs2"><a name=bookmark2>Symmetry</a></h4>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">import SMESH</p>
+
+<p class="whs3">import SMESH_mechanic</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">import math</p>
+
+<p class="whs3">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs3">salome = SMESH_mechanic.salome</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a symmetrical 
+ copy of the mesh mirrored through a point</p>
+
+<p class="whs3">anEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs3">anEditor.MirrorObject(mesh, SMESH.AxisStruct(0, 
+ 0, 0, 0, 0, 0), SMESH.SMESH_MeshEditor.POINT, 1) </p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4 class="whs2"><a name=bookmark3>Merging 
+ Nodes</a></h4>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">import SMESH</p>
+
+<p class="whs3">import SMESH_mechanic</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">smesh &nbsp;= 
+ SMESH_mechanic.smesh</p>
+
+<p class="whs3">mesh &nbsp;&nbsp;= 
+ SMESH_mechanic.mesh</p>
+
+<p class="whs3">salome = SMESH_mechanic.salome</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># merge nodes</p>
+
+<p class="whs3">aMeshEditor = mesh.GetMeshEditor()</p>
+
+<p class="whs3">Tolerance = 25.0</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3">GroupsOfNodes = aMeshEditor.FindCoincidentNodes(Tolerance)</p>
+
+<p class="whs3">aMeshEditor.MergeNodes(GroupsOfNodes)</p>
+
+<p class="whs3">&nbsp;&nbsp;&nbsp;&nbsp;</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4><a name=bookmark8>Merging Elements</a></h4>
+
+<p class="whs5">import geompy</p>
+
+<p class="whs5">import smesh</p>
+
+<p class="whs5">import salome</p>
+
+<p class="whs5">import SMESH</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a face to be meshed</p>
+
+<p class="whs5">px = geompy.MakeVertex(100., 
+ 0. &nbsp;, 0. 
+ &nbsp;)</p>
+
+<p class="whs5">py = geompy.MakeVertex(0. 
+ &nbsp;, 100., 
+ 0. &nbsp;)</p>
+
+<p class="whs5">pz = geompy.MakeVertex(0. 
+ &nbsp;, 0. &nbsp;, 
+ 100.)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">vxy = geompy.MakeVector(px, 
+ py)</p>
+
+<p class="whs5">arc = geompy.MakeArc(py, 
+ pz, px)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">wire = geompy.MakeWire([vxy, 
+ arc])</p>
+
+<p class="whs5">isPlanarFace = 1</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">face1 = geompy.MakeFace(wire, 
+ isPlanarFace)</p>
+
+<p class="whs5">id_face1 = geompy.addToStudy(face1, 
+ &quot;Face1&quot;)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a 2D mesh on the 
+ face</p>
+
+<p class="whs5">trias = smesh.Mesh(face1, 
+ &quot;Face : 2D mesh&quot;)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">algo = trias.Segment()</p>
+
+<p class="whs5">algo.NumberOfSegments(6)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">algo = trias.Triangle()</p>
+
+<p class="whs5">algo.LengthFromEdges()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">trias.Compute()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">tri_mesh = trias.GetMesh()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a path mesh</p>
+
+<p class="whs5">px1 = geompy.MakeVertex(100., 
+ 100. &nbsp;, 
+ 0. &nbsp;)</p>
+
+<p class="whs5">py1 = geompy.MakeVertex(-100. 
+ &nbsp;, -100., 
+ 0. &nbsp;)</p>
+
+<p class="whs5">pz1 = geompy.MakeVertex(0. 
+ &nbsp;, 0. &nbsp;, 
+ 50.)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">circle = geompy.MakeCircleThreePnt(py1, 
+ pz1, px1)</p>
+
+<p class="whs5">id_circle = geompy.addToStudy(circle, 
+ &quot;Path&quot;)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">circlemesh = smesh.Mesh(circle, 
+ &quot;Path mesh&quot;)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">algo = circlemesh.Segment()</p>
+
+<p class="whs5">algo.NumberOfSegments(10)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">circlemesh.Compute()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># extrusion of the mesh</p>
+
+<p class="whs5">aMeshEditor = tri_mesh.GetMeshEditor()</p>
+
+<p class="whs5">aMeshEditor.ExtrusionAlongPathObject(tri_mesh, 
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># merge nodes</p>
+
+<p class="whs5">print &quot;Number 
+ of nodes before MergeNodes:&quot;, tri_mesh.NbNodes()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">tolerance = 0.001</p>
+
+<p class="whs5">array_of_nodes_groups 
+ = aMeshEditor.FindCoincidentNodes(tolerance)</p>
+
+<p class="whs5">aMeshEditor.MergeNodes(array_of_nodes_groups)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">print &quot;Number 
+ of nodes after MergeNodes:&quot;, tri_mesh.NbNodes()</p>
+
+<p class="whs5">print &quot;&quot;</p>
+
+<p class="whs5">print &quot;Number 
+ of elements before MergeEqualElements:&quot;</p>
+
+<p class="whs5">print &quot;Edges 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, tri_mesh.NbEdges()</p>
+
+<p class="whs5">print &quot;Triangles 
+ &nbsp;: &quot;, 
+ tri_mesh.NbTriangles()</p>
+
+<p class="whs5">print &quot;Quadrangles: 
+ &quot;, tri_mesh.NbQuadrangles()</p>
+
+<p class="whs5">print &quot;Volumes 
+ &nbsp;&nbsp;&nbsp;: 
+ &quot;, tri_mesh.NbVolumes()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># merge elements</p>
+
+<p class="whs5">aMeshEditor.MergeEqualElements()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">print &quot;Number 
+ of elements after MergeEqualElements:&quot;</p>
+
+<p class="whs5">print &quot;Edges 
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, tri_mesh.NbEdges()</p>
+
+<p class="whs5">print &quot;Triangles 
+ &nbsp;: &quot;, 
+ tri_mesh.NbTriangles()</p>
+
+<p class="whs5">print &quot;Quadrangles: 
+ &quot;, tri_mesh.NbQuadrangles()</p>
+
+<p class="whs5">print &quot;Volumes 
+ &nbsp;&nbsp;&nbsp;: 
+ &quot;, tri_mesh.NbVolumes()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<h3>Sewing Meshes</h3>
+
+<h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>
+
+<p class="whs5">import salome</p>
+
+<p class="whs5">import geompy</p>
+
+<p class="whs5">import smesh</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create two faces of a 
+ box</p>
+
+<p class="whs5">box1 = geompy.MakeBox(0., 
+ 0., -10., 30., 20., 25.)</p>
+
+<p class="whs5">subShapeList1 = 
+ geompy.SubShapeAll(box1, geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">box2 = geompy.MakeBox(0., 
+ 5., 0., 20., 20., 15.)</p>
+
+<p class="whs5">subShapeList2 = 
+ geompy.SubShapeAll(box2, geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs5">EdgesList = geompy.SubShapeAll(subShapeList2[ 
+ 1 ], geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">aComp = geompy.MakeCompound( 
+ [subShapeList1[ 2 ], subShapeList2[ 1 ]] )</p>
+
+<p class="whs5">idComp = geompy.addToStudy( 
+ aComp, &quot;Two faces&quot; )</p>
+
+<p class="whs5">aCompobj &nbsp;= 
+ salome.IDToObject( idComp )</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"># create a mesh on two 
+ faces</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5">mesh = smesh.Mesh(aCompobj, 
+ &quot;Two faces : quadrangle mesh&quot;)</p>
+
+<p class="whs5">algo = mesh.Segment()</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut an edge in a fixed number of segments</p>
+
+<p class="whs5">algo.NumberOfSegments(9)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a quadrangle 2D 
+ algorithm for faces</p>
+
+<p class="whs5">mesh.Quadrangle()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a local hypothesis</p>
+
+<p class="whs5">algo = mesh.Segment(EdgesList[2])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Arithmetic1D&quot; 
+ hypothesis to cut an edge in several segments with increasing arithmetic 
+ length </p>
+
+<p class="whs5">algo.Arithmetic1D(1, 
+ 4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Propagation&quot; 
+ hypothesis that propagates all other hypothesis on all edges on the opposite 
+ side in case of quadrangular faces</p>
+
+<p class="whs5">algo.Propagation()</p>
+
+<p class="whs5">mesh.Compute()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># sew free borders</p>
+
+<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>
+
+<p class="whs5">anEditor.SewBorderToSide(5, 
+ 45, 6, 113, 109, 0, 0)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4><a name=bookmark5>Sew Conform Free Borders</a></h4>
+
+<p class="whs5">import salome</p>
+
+<p class="whs5">import geompy</p>
+
+<p class="whs5">import smesh</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create two faces of the 
+ box</p>
+
+<p class="whs5">box1 = geompy.MakeBox(0., 
+ 0., -10., 20., 20., 15.)</p>
+
+<p class="whs5">subShapeList1 = 
+ geompy.SubShapeAll(box1, geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">box2 = geompy.MakeBox(0., 
+ 5., 0., 20., 20., 15.)</p>
+
+<p class="whs5">subShapeList2 = 
+ geompy.SubShapeAll(box2, geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs5">EdgesList = geompy.SubShapeAll(subShapeList2[ 
+ 1 ], geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">aComp = geompy.MakeCompound( 
+ [subShapeList1[ 2 ], subShapeList2[ 1 ]] )</p>
+
+<p class="whs5">idComp = geompy.addToStudy( 
+ aComp, &quot;Two faces&quot; )</p>
+
+<p class="whs5">aCompobj &nbsp;= 
+ salome.IDToObject( idComp )</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a mesh on two 
+ faces</p>
+
+<p class="whs5">mesh = smesh.Mesh(aCompobj, 
+ &quot;Two faces : quadrangle mesh&quot;)</p>
+
+<p class="whs5">algo = mesh.Segment()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut an edge in a fixed number of segments</p>
+
+<p class="whs5">algo.NumberOfSegments(9)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a quadrangle 2D 
+ algorithm for faces</p>
+
+<p class="whs5">mesh.Quadrangle()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a local hypothesis</p>
+
+<p class="whs5">algo = mesh.Segment(EdgesList[2])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Arithmetic1D&quot; 
+ hypothesis to cut an edge in several segments with increasing arithmetic 
+ length </p>
+
+<p class="whs5">algo.Arithmetic1D(1, 
+ 4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Propagation&quot; 
+ hypothesis that propagate all other hypothesis on all edges on<span style="margin-top: 0pt; margin-bottom: 0pt;"> 
+ the opposite side in case of quadrangular faces</span></p>
+
+<p class="whs5">algo.Propagation()</p>
+
+<p class="whs5">mesh.Compute()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># sew free borders</p>
+
+<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>
+
+<p class="whs5">anEditor.SewConformFreeBorders(5, 
+ 45, 6, 3, 24)</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4><a name=bookmark6>Sew Free Borders</a></h4>
+
+<p class="whs5">import salome</p>
+
+<p class="whs5">import geompy</p>
+
+<p class="whs5">import smesh</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create two faces of the 
+ box</p>
+
+<p class="whs5">box1 = geompy.MakeBox(0., 
+ 0., 0., 20., 20., 15.)</p>
+
+<p class="whs5">subShapeList1 = 
+ geompy.SubShapeAll(box1, geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5">box2 = geompy.MakeBox(0., 
+ 5., 0., 20., 20., 15.)</p>
+
+<p class="whs5">subShapeList2 = 
+ geompy.SubShapeAll(box2, geompy.ShapeType[&quot;FACE&quot;])</p>
+
+<p class="whs5">EdgesList = geompy.SubShapeAll(subShapeList2[ 
+ 1 ], geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs5">aComp = geompy.MakeCompound( 
+ [subShapeList1[ 2 ], subShapeList2[ 1 ]] )</p>
+
+<p class="whs5">idComp = geompy.addToStudy( 
+ aComp, &quot;Two faces&quot; )</p>
+
+<p class="whs5">aCompobj &nbsp;= 
+ salome.IDToObject( idComp )</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"># create a mesh on two 
+ faces</p>
+
+<p class="whs5">mesh = smesh.Mesh(aCompobj, 
+ &quot;Two faces : quadrangle mesh&quot;)</p>
+
+<p class="whs5">algo = mesh.Segment()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut an edge in a fixed number of segments</p>
+
+<p class="whs5">algo.NumberOfSegments(4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># creates a quadrangle 
+ 2D algorithm for faces</p>
+
+<p class="whs5">mesh.Quadrangle()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a local hypothesis</p>
+
+<p class="whs5">algo = mesh.Segment(EdgesList[2])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Arithmetic1D&quot; 
+ hypothesis to cut an edge in several segments with &nbsp;increasing 
+ arithmetic length</p>
+
+<p class="whs5">algo.Arithmetic1D(1, 
+ 4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Propagation&quot; 
+ hypothesis that propagate all other hypothesis on all edges on<span style="margin-top: 0pt; margin-bottom: 0pt;"> 
+ the opposite side in case of quadrangular faces</span></p>
+
+<p class="whs5">algo.Propagation()</p>
+
+<p class="whs5">mesh.Compute()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># sew free borders</p>
+
+<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>
+
+<p class="whs5">anEditor.SewFreeBorders(6, 
+ 21, 5, 1, 12, 3, 0, 0)</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<p class="whs4">&nbsp;</p>
+
+<h4><a name=bookmark7>Sew Side Elements</a></h4>
+
+<p class="whs5">import salome</p>
+
+<p class="whs5">import geompy</p>
+
+<p class="whs5">import smesh</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"># create two faces of the 
+ box</p>
+
+<p class="whs5">box1 = geompy.MakeBox(0., 
+ &nbsp;0., 0., 
+ 10., 10., 10.)</p>
+
+<p class="whs5">box2 = geompy.MakeBox(0., 
+ 15., 0., 20., 25., 10.)</p>
+
+<p class="whs5">EdgesList = geompy.SubShapeAll(box2, 
+ geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs5">aComp = geompy.MakeCompound( 
+ [box1, box2] )</p>
+
+<p class="whs5">idComp = geompy.addToStudy( 
+ aComp, &quot;Two faces&quot; )</p>
+
+<p class="whs5">aCompobj &nbsp;= 
+ salome.IDToObject( idComp )</p>
+
+<p class="whs5">&nbsp;</p>
+
+<p class="whs4"># create a mesh on two 
+ faces</p>
+
+<p class="whs5">mesh = smesh.Mesh(aCompobj, 
+ &quot;Two faces : quadrangle mesh&quot;)</p>
+
+<p class="whs5">algo = mesh.Segment()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;NumberOfSegments&quot; 
+ hypothesis to cut an edge in a fixed number of segments</p>
+
+<p class="whs5">algo.NumberOfSegments(2)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a quadrangle 2D 
+ algorithm for faces</p>
+
+<p class="whs5">mesh.Quadrangle()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># create a local hypothesis</p>
+
+<p class="whs5">algo = mesh.Segment(EdgesList[8])</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Arithmetic1D&quot; 
+ hypothesis to cut an edge in several segments with increasing arithmetic 
+ length </p>
+
+<p class="whs5">algo.NumberOfSegments(4)</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># define &quot;Propagation&quot; 
+ hypothesis that propagates all other hypothesis on all edges on <span 
+ style="margin-top: 0pt; margin-bottom: 0pt;">the opposite side in case 
+ of quadrangular faces</span></p>
+
+<p class="whs5">algo.Propagation()</p>
+
+<p class="whs5">mesh.Compute()</p>
+
+<p class="whs4">&nbsp;</p>
+
+<p class="whs4"># sew free borders</p>
+
+<p class="whs5">anEditor = mesh.GetMesh().GetMeshEditor()</p>
+
+<p class="whs5">anEditor.SewSideElements([69, 
+ 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58)</p>
+
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+ </p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 701b47a01c97c0e9ae6f73d3384f8a4ae509f62d..ab7df8c56cda4e74895f36cbbe17d7170c35b752 100755 (executable)
@@ -1,92 +1,98 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Transparency</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">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; border-style:none; width:354px; height:173px; float: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\nViewing meshes\nTransparency");\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>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
-\r
-<p>&nbsp;</p>\r
-\r
-<p>Using this slider you can set the transparency of shading. Absolutely \r
- transparent shading will be invisible. By default it is absolutely opaque. \r
- &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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Transparency</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
+<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
+<!--
+if (navigator.appName !="Netscape")
+{   document.write("<link rel='stylesheet' href='default.css'>");}
+//-->
+</script>
+<style type="text/css">
+<!--
+p.whs1 { margin-left:40px; }
+img_whs2 { border:none; border-style:none; width:354px; height:173px; float:none; }
+-->
+</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nViewing meshes\nTransparency");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Transparency</h1>
+
+<p class="whs1"><img src="pics/a-transparency.png" x-maintain-ratio="TRUE" width="354px" height="173px" border="0" class="img_whs2"></p>
+
+<p>&nbsp;</p>
+
+<p>Using this slider you can set the transparency of shading. Absolutely 
+ transparent shading will be invisible. By default it is absolutely opaque. 
+ &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index d6a576e1a0e56031f8e0edaa22ff5a43756c5523..37580f7ac1903c474606bab20f856a9ab1d4f589 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Viewing Meshes</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-p.whs1 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }\r
-p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
--->\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\nTUI Scripts\nViewing Meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
-\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("smesh.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-<h1>Viewing Meshes</h1>\r
-\r
-<h3>Viewing Mesh Infos</h3>\r
-\r
-<p class="whs1">import salome</p>\r
-\r
-<p class="whs1">import geompy</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="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">&nbsp;</p>\r
-\r
-<p class="whs1">box &nbsp;&nbsp;= \r
- geompy.MakeBox(0., 0., 0., 20., 20., 20.)</p>\r
-\r
-<p class="whs1">idbox = geompy.addToStudy(box, &quot;box&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">subShapeList = geompy.SubShapeAll(box, \r
- geompy.ShapeType[&quot;EDGE&quot;])</p>\r
-\r
-<p class="whs1">edge &nbsp;&nbsp;= \r
- subShapeList[0]</p>\r
-\r
-<p class="whs1">name &nbsp;&nbsp;= \r
- geompy.SubShapeName(edge, box)</p>\r
-\r
-<p class="whs1">idedge = geompy.addToStudyInFather(box, \r
- edge, name)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">box &nbsp;= \r
- salome.IDToObject(idbox)</p>\r
-\r
-<p class="whs1">edge = salome.IDToObject(idedge)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp1.SetNumberOfSegments(3)</p>\r
-\r
-<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(10)</p>\r
-\r
-<p class="whs1">hyp3 = smesh.CreateHypothesis(&quot;Arithmetic1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">hyp3.SetLength(1,1)</p>\r
-\r
-<p class="whs1">hyp3.SetLength(6,0)</p>\r
-\r
-<p class="whs1">hyp4 = smesh.CreateHypothesis(&quot;Propagation&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, \r
- &quot;libStdMeshersEngine.so&quot;)</p>\r
-\r
-<p class="whs1">mesh = smesh.CreateMesh(box)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,hyp1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,hyp2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,algo1)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,algo2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(edge,hyp3)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(edge,hyp4)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(edge,algo1)</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,box)</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># remove one hypothesis</p>\r
-\r
-<p class="whs1">mesh.RemoveHypothesis(edge,hyp4)</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,box)</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1)</p>\r
-\r
-<p class="whs1">&nbsp;</p>\r
-\r
-<p class="whs2"># change the value \r
- of the hypothesis</p>\r
-\r
-<p class="whs1">hyp2.SetMaxElementArea(2)</p>\r
-\r
-<p class="whs1">mesh.AddHypothesis(box,hyp2)</p>\r
-\r
-<p class="whs1">smesh.Compute(mesh,box)</p>\r
-\r
-<p class="whs1">print &quot;Information about mesh:&quot;</p>\r
-\r
-<p class="whs1">print &quot;Number of nodes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbNodes()</p>\r
-\r
-<p class="whs1">print &quot;Number of edges &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbEdges()</p>\r
-\r
-<p class="whs1">print &quot;Number of faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbFaces()</p>\r
-\r
-<p class="whs1">print &quot;Number of triangles &nbsp;&nbsp;: \r
- &quot;, mesh.NbTriangles()</p>\r
-\r
-<p class="whs1">print &quot;Number of quadrangles : &quot;, \r
- mesh.NbQuadrangles()</p>\r
-\r
-<p class="whs1">print &quot;Number of polygons &nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbPolygons()</p>\r
-\r
-<p class="whs1">print &quot;Number of volumes &nbsp;&nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbVolumes()</p>\r
-\r
-<p class="whs1">print &quot;Number of tetrahedrons: &quot;, \r
- mesh.NbTetras()</p>\r
-\r
-<p class="whs1">print &quot;Number of hexahedrons : &quot;, \r
- mesh.NbHexas()</p>\r
-\r
-<p class="whs1">print &quot;Number of prisms &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbPrisms()</p>\r
-\r
-<p class="whs1">print &quot;Number of pyramids &nbsp;&nbsp;&nbsp;: \r
- &quot;, mesh.NbPyramids()</p>\r
-\r
-<p class="whs1">print &quot;Number of polyhedrons : &quot;, \r
- mesh.NbPolyhedrons()</p>\r
-\r
-<p class="whs1">salome.sg.updateObjBrowser(1) </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
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Viewing Meshes</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+p.whs1 { font-family:'Lucida Console' , monospace; margin-top:0pt; margin-bottom:0pt; }
+p.whs2 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nTUI Scripts\nViewing Meshes");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1>Viewing Meshes</h1>
+
+<h3>Viewing Mesh Infos</h3>
+
+<p class="whs1">import salome</p>
+
+<p class="whs1">import geompy</p>
+
+<p class="whs1">import SMESH</p>
+
+<p class="whs1">import StdMeshers</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, 
+ &quot;SMESH&quot;)</p>
+
+<p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">box &nbsp;&nbsp;= 
+ geompy.MakeBox(0., 0., 0., 20., 20., 20.)</p>
+
+<p class="whs1">idbox = geompy.addToStudy(box, &quot;box&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">subShapeList = geompy.SubShapeAll(box, 
+ geompy.ShapeType[&quot;EDGE&quot;])</p>
+
+<p class="whs1">edge &nbsp;&nbsp;= 
+ subShapeList[0]</p>
+
+<p class="whs1">name &nbsp;&nbsp;= 
+ geompy.SubShapeName(edge, box)</p>
+
+<p class="whs1">idedge = geompy.addToStudyInFather(box, 
+ edge, name)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">box &nbsp;= 
+ salome.IDToObject(idbox)</p>
+
+<p class="whs1">edge = salome.IDToObject(idedge)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">hyp1 = smesh.CreateHypothesis(&quot;NumberOfSegments&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp1.SetNumberOfSegments(3)</p>
+
+<p class="whs1">hyp2 = smesh.CreateHypothesis(&quot;MaxElementArea&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(10)</p>
+
+<p class="whs1">hyp3 = smesh.CreateHypothesis(&quot;Arithmetic1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">hyp3.SetLength(1,1)</p>
+
+<p class="whs1">hyp3.SetLength(6,0)</p>
+
+<p class="whs1">hyp4 = smesh.CreateHypothesis(&quot;Propagation&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">algo1 = smesh.CreateHypothesis(&quot;Regular_1D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">algo2 = smesh.CreateHypothesis(&quot;MEFISTO_2D&quot;, 
+ &quot;libStdMeshersEngine.so&quot;)</p>
+
+<p class="whs1">mesh = smesh.CreateMesh(box)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hyp1)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hyp2)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,algo1)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,algo2)</p>
+
+<p class="whs1">mesh.AddHypothesis(edge,hyp3)</p>
+
+<p class="whs1">mesh.AddHypothesis(edge,hyp4)</p>
+
+<p class="whs1">mesh.AddHypothesis(edge,algo1)</p>
+
+<p class="whs1">smesh.Compute(mesh,box)</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># remove one hypothesis</p>
+
+<p class="whs1">mesh.RemoveHypothesis(edge,hyp4)</p>
+
+<p class="whs1">smesh.Compute(mesh,box)</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2"># change the value 
+ of the hypothesis</p>
+
+<p class="whs1">hyp2.SetMaxElementArea(2)</p>
+
+<p class="whs1">mesh.AddHypothesis(box,hyp2)</p>
+
+<p class="whs1">smesh.Compute(mesh,box)</p>
+
+<p class="whs1">print &quot;Information about mesh:&quot;</p>
+
+<p class="whs1">print &quot;Number of nodes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbNodes()</p>
+
+<p class="whs1">print &quot;Number of edges &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbEdges()</p>
+
+<p class="whs1">print &quot;Number of faces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbFaces()</p>
+
+<p class="whs1">print &quot;Number of triangles &nbsp;&nbsp;: 
+ &quot;, mesh.NbTriangles()</p>
+
+<p class="whs1">print &quot;Number of quadrangles : &quot;, 
+ mesh.NbQuadrangles()</p>
+
+<p class="whs1">print &quot;Number of polygons &nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbPolygons()</p>
+
+<p class="whs1">print &quot;Number of volumes &nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbVolumes()</p>
+
+<p class="whs1">print &quot;Number of tetrahedrons: &quot;, 
+ mesh.NbTetras()</p>
+
+<p class="whs1">print &quot;Number of hexahedrons : &quot;, 
+ mesh.NbHexas()</p>
+
+<p class="whs1">print &quot;Number of prisms &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbPrisms()</p>
+
+<p class="whs1">print &quot;Number of pyramids &nbsp;&nbsp;&nbsp;: 
+ &quot;, mesh.NbPyramids()</p>
+
+<p class="whs1">print &quot;Number of polyhedrons : &quot;, 
+ mesh.NbPolyhedrons()</p>
+
+<p class="whs1">salome.sg.updateObjBrowser(1) </p>
+
+<p class="whs1">&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index f55993eaf14366f80a4a0e6f4f92cf85a0f05bd7..bb675f1e0b5ecd0ec9e320b676fd9f9314dc1f6d 100755 (executable)
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Volume</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">\r
-<!--\r
-h1.whs1 { font-size:24pt; }\r
-img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }\r
-p.whs3 { margin-left:40px; }\r
-img_whs4 { border:none; width:164px; height:199px; border-style:none; }\r
-img_whs5 { border:none; width:23px; height:25px; border-style:none; }\r
-p.whs6 { margin-left:0px; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript">\r
-<!--\r
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
-{\r
-  var strNSS = "<style type='text/css'>";\r
-  strNSS += "p.whs6 {margin-left:1pt; }";\r
-  strNSS +="</style>";\r
-  document.write(strNSS);\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
-p.WebHelpNavBar { text-align:right; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       addTocInfo("MESH module\nQuality controls\nVolume");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("index.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1 class="whs1">Volume</h1>\r
-\r
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Volume</B></span> mesh quality \r
- criterion reflects the volume of meshes of a 3D object. </p>\r
-\r
-<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>\r
-\r
-<p class=TODO\r
-       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To \r
- apply the Volume quality criterion to your mesh:</p>\r
-\r
-<p class="whs3">1. Display your mesh in the viewer.</p>\r
-\r
-<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls \r
- &gt; Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your \r
- mesh will be displayed in the viewer with its elements colored according \r
- to the applied mesh quality control criterion:</p>\r
-\r
-<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> \r
- a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span \r
- style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation. \r
- &nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<p>&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+
+<head>
+<title>Volume</title>
+<meta http-equiv="content-type" content="text/html; charset=windows-1252">
+<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
+<!--
+h1.whs1 { font-size:24pt; }
+img_whs2 { border:none; width:30px; height:30px; float:none; border-style:none; }
+p.whs3 { margin-left:40px; }
+img_whs4 { border:none; width:164px; height:199px; border-style:none; }
+img_whs5 { border:none; width:23px; height:25px; border-style:none; }
+p.whs6 { margin-left:0px; }
+-->
+</style><script type="text/javascript" language="JavaScript">
+<!--
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
+{
+  var strNSS = "<style type='text/css'>";
+  strNSS += "p.whs6 {margin-left:1pt; }";
+  strNSS +="</style>";
+  document.write(strNSS);
+}
+//-->
+</script>
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
+<!--
+function reDo() {
+  if (innerWidth != origWidth || innerHeight != origHeight)
+     location.reload();
+}
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
+       origWidth = innerWidth;
+       origHeight = innerHeight;
+       onresize = reDo;
+}
+onerror = null; 
+//-->
+</script>
+<style type="text/css">
+<!--
+div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
+p.WebHelpNavBar { text-align:right; }
+-->
+</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
+<script type="text/javascript" language="javascript" src="whver.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
+<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       addTocInfo("MESH module\nQuality controls\nVolume");
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
+
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       setRelStartPage("index.htm");
+
+               autoSync(1);
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+</head>
+<body><script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(4);
+//-->
+</script>
+<h1 class="whs1">Volume</h1>
+
+<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs2"> <span style="font-weight: bold;"><B>Volume</B></span> mesh quality 
+ criterion reflects the volume of meshes of a 3D object. </p>
+
+<p class="whs3"><img src="image143.gif" width="164px" height="199px" border="0" class="img_whs4"></p>
+
+<p class=TODO
+       style="font-family: 'Arial Black', sans-serif; font-style: italic;">To 
+ apply the Volume quality criterion to your mesh:</p>
+
+<p class="whs3">1. Display your mesh in the viewer.</p>
+
+<p class="whs3">2. Choose <span style="font-weight: bold;"><B>Controls 
+ &gt; Volume </B></span>or click <img src="image145.gif" width="23px" height="25px" border="0" class="img_whs5"> button in the toolbar. Your 
+ mesh will be displayed in the viewer with its elements colored according 
+ to the applied mesh quality control criterion:</p>
+
+<p class="whs6"><span style="font-weight: bold;"><B>See Also</B></span> 
+ a sample TUI Script of a <a href="quality_controls.htm#bookmark12"><span 
+ style="font-weight: bold;"><B>Volume</B></span> quality control</a> operation. 
+ &nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<p>&nbsp;</p>
+
+<script type="text/javascript" language="javascript1.2">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(0);
+//-->
+</script>
+</body>
+</html>
index 53b2666365f925aa3d03937608babf0aef95f661..1d1697e7646e8c22cada468b8813c461258493fa 100755 (executable)
Binary files a/doc/salome/gui/SMESH/webhelp.jar and b/doc/salome/gui/SMESH/webhelp.jar differ
index 38f71d169bab218c517e1b4c46542af9b72cef03..ad8f8d4c02390617c920bfae6dadddd64339d984 100755 (executable)
-<html>\r
-<script language="javascript1.2" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if(gbIE4||gbNav61)\r
-{\r
-       document.write("<body></body>");\r
-}\r
-else\r
-{\r
-       document.write("<frameset rows=\"100%,*\"><frame name=\"data_frm\" src=\"about:blank\"><frame name=\"dumb_frm\" src=\"about:blank\"></frameset>");\r
-}\r
-var gCSHFileName="whcshdata.htm";\r
-\r
-var gHomePage="smesh.htm";\r
-var gaProj=new Array();\r
-gaProj[0]=new Object();\r
-gaProj[0].sProjPath=_replaceSlash(_getPath(document.location.href));\r
-gaProj[0].nLoadState=0;\r
-var gCurrent=0;\r
-\r
-var gsTopicURL="";\r
-var gnCurProj=0;\r
-var gnCommand=-1;\r
-var CMD_SHOWTOC=1;\r
-var CMD_SHOWINDEX=2;\r
-var CMD_SHOWSEARCH=3;\r
-var CMD_SHOWGLOSSARY=4;\r
-var CMD_SHOWNONE=0;\r
-\r
-var RHWO_LOCATION=0x01;                /*need location bar?*/\r
-var RHWO_MENUBAR=0x02;         /*need menubar?*/               \r
-var RHWO_RESIZABLE=0x04;       /*resizable window?*/\r
-var RHWO_TOOLBAR=0x08;         /*need toolbar?*/\r
-var RHWO_STATUS=0x10;          /*need statusbar?*/\r
-var RHWO_SCROLLBARS=0x20;      /*need scrollbars?*/\r
-\r
-var gsStr="";\r
-var gnId=-1;\r
-var gsWindow="";\r
-var gsJava="false";\r
-var gbUseStr=false;\r
-var gbURLReady=false;\r
-var goWnd=new Object();\r
-goWnd.sName="whCshDefault";\r
-goWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;\r
-goWnd.sBLeft="49%";\r
-goWnd.sBTop="0";\r
-goWnd.sBWidth="49%";\r
-goWnd.sBHeight="49%";\r
-goWnd.nPanes=1;\r
-var goFullWnd=new Object();\r
-goFullWnd.sName="whDefault";\r
-goFullWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;\r
-goFullWnd.sBLeft="20%";\r
-goFullWnd.sBTop="0";\r
-goFullWnd.sBWidth="79%";\r
-goFullWnd.sBHeight="79%";\r
-goFullWnd.nPanes=2;\r
-\r
-var goNewWnd=null;\r
-var gbLoadWnd=false;\r
-var gsURL="";\r
-\r
-function showCSH(sParam)\r
-{\r
-       //id=\r
-       //str=\r
-       //url=\r
-       //cmd=\r
-       //with the format #<a=xxx>>b=xxx>>c=xxx...\r
-       parseParam(sParam);\r
-       SwitchURL();\r
-}\r
-\r
-function IsWndReady()\r
-{\r
-       if(gaProj[0].nLoadState==0)\r
-       {\r
-               var sCshFile=_getFullPath(gaProj[0].sProjPath,gCSHFileName);\r
-               gaProj[0].nLoadState=1;\r
-               setTimeout("loadFail("+0+");",3000);\r
-               loadDataCsh(sCshFile);\r
-               gbLoadWnd=true;\r
-               return false;\r
-       }\r
-       else\r
-               return true;\r
-}\r
-\r
-function SwitchURL()\r
-{\r
-       if(gbURLReady)\r
-       {\r
-               var sURL="";\r
-               var oWnd=null;\r
-               if(gsTopicURL)\r
-               {\r
-                       sURL=_getPath(document.location.href)+gHomePage+"#"+gsTopicURL;\r
-                       oWnd=goWnd;\r
-               }\r
-               else\r
-               {\r
-                       if(gnCommand!=-1)\r
-                               sURL=_getPath(document.location.href)+gHomePage+"#>>cmd="+gnCommand;\r
-                       else\r
-                               sURL=_getPath(document.location.href)+gHomePage;\r
-                       oWnd=goFullWnd;\r
-               }\r
-               if(gsWindow)\r
-               {\r
-                       if(!IsWndReady())\r
-                               return false;\r
-                       if(gaProj[gnCurProj].aWnd)\r
-                       {\r
-                               var aWnd=gaProj[gnCurProj].aWnd;\r
-                               var bFound=false;\r
-                               for(var i=0;i<aWnd.length;i++)\r
-                               {\r
-                                       if(aWnd[i].sName.toLowerCase()==gsWindow.toLowerCase())\r
-                                       {\r
-                                               oWnd=aWnd[i];\r
-                                               bFound=true;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               if(!bFound&&gnCurProj!=0)\r
-                               {\r
-                                       var aWnd=gaProj[0].aWnd;\r
-                                       for(var j=0;j<aWnd.length;j++)\r
-                                       {\r
-                                               if(aWnd[j].sName.toLowerCase()==gsWindow.toLowerCase())\r
-                                               {\r
-                                                       oWnd=aWnd[j];\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               if(sURL&&oWnd)\r
-               {\r
-                       strURLOpt="";\r
-                       if(oWnd.sCaption)\r
-                               strURLOpt+=">>cap="+oWnd.sCaption;\r
-                       if(oWnd.nPanes==1)\r
-                               strURLOpt+=">>pan="+oWnd.nPanes;\r
-                       else if(oWnd.nPanes==2)\r
-                       {\r
-                               strURLOpt+=">>pan="+oWnd.nPanes;\r
-                               if(oWnd.nPOptions)\r
-                                       strURLOpt+=">>pot="+oWnd.nPOptions;\r
-                               if(oWnd.sPButtons)\r
-                                       strURLOpt+=">>pbs="+oWnd.sPButtons;\r
-                               if(oWnd.sPDefBtn)\r
-                                       strURLOpt+=">>pdb="+oWnd.sPDefBtn;\r
-                       }\r
-                       if(strURLOpt)\r
-                       {\r
-                               if(sURL.indexOf("#")==-1)\r
-                                       sURL+="#";\r
-                               sURL+=strURLOpt;\r
-                       }\r
-                       if(gsJava=="false")\r
-                       {\r
-                               var strOpt=getBrowserOptionString(oWnd);\r
-                               var sNewName=convertWindowName(oWnd.sName);\r
-                               if(gbNav4)\r
-                               {\r
-                                       if (gbNav6)\r
-                                       {\r
-                                               gsURL = sURL;\r
-                                               goNewWnd=window.open("about:blank",sNewName,strOpt);\r
-                                               setTimeout("postWindowNSOpen();",100);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               window.open("about:blank",sNewName,strOpt);\r
-                                               var oNewWnd=window.open(sURL,sNewName);\r
-                                               window.close();\r
-                                               oNewWnd.focus();\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(gbIE5)\r
-                                       {\r
-                                               window.open("about:blank",sNewName,strOpt);\r
-                                               goNewWnd=window.open(sURL,sNewName);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               gsURL = sURL; // IE4 had hard time to handle bookmark.\r
-                                               goNewWnd=window.open("about:blank",sNewName,strOpt);\r
-                                       }\r
-                                       setTimeout("postWindowOpen();",100);\r
-                               }\r
-                       }\r
-                       else\r
-                               document.location=sURL;\r
-               }\r
-       }\r
-}\r
-\r
-function convertWindowName(strName)\r
-{\r
-       var strNewName = strName;\r
-       var strResultName = "";\r
-       var re=new RegExp("_","g");\r
-       strNewName = strName.replace(re,"__");\r
-       for (var i=0;i<strNewName.length;i++)\r
-               if (!(strNewName[i] == '_' ||\r
-                       (strNewName[i] <= '9' && strNewName[i] >= '0') ||\r
-                       (strNewName[i] <= 'z' && strNewName[i] >= 'a') ||\r
-                       (strNewName[i] <= 'Z' && strNewName[i] >= 'A')))\r
-               {\r
-                       strResultName += "_" + strNewName.charCodeAt(i);\r
-               }\r
-               else\r
-                       strResultName += strNewName[i];\r
-       return strResultName;\r
-}\r
-\r
-function postWindowNSOpen()\r
-{\r
-       if(goNewWnd)\r
-       {\r
-               if (gsURL)\r
-                       goNewWnd.document.location.href=gsURL;\r
-               window.close();\r
-               goNewWnd.focus();\r
-       }\r
-}\r
-\r
-function postWindowOpen()\r
-{\r
-       if(goNewWnd)\r
-       {\r
-               if (gsURL&&!gbIE5&&gbIE4)\r
-                       goNewWnd.document.location.href=gsURL;\r
-               goNewWnd.focus();\r
-       }\r
-}\r
-\r
-function parseParam(sParam)\r
-{\r
-       if(sParam)\r
-       {\r
-               var nBPos=0;\r
-               do\r
-               {\r
-                       var nPos=sParam.indexOf(">>",nBPos);\r
-                       if(nPos!=-1)\r
-                       {\r
-                               if(nPos>0)\r
-                               {\r
-                                       var sPart=sParam.substring(nBPos,nPos);\r
-                                       parsePart(sPart);\r
-                               }\r
-                               nBPos=nPos+2;\r
-                       }\r
-                       else\r
-                       {\r
-                               var sPart=sParam.substring(nBPos);\r
-                               parsePart(sPart);\r
-                               break;\r
-                       }\r
-               }while(nBPos<sParam.length);\r
-       }\r
-}\r
-\r
-function parsePart(sPart)\r
-{\r
-       if(sPart.toLowerCase().indexOf("id=")==0)\r
-       {\r
-               fetchURLById(sPart.substring(3));\r
-               gbURLReady=false;\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("str=")==0)\r
-       {\r
-               fetchURLByStr(sPart.substring(4));\r
-               gbURLReady=false;\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("url=")==0)\r
-       {\r
-               gsTopicURL=sPart.substring(4);\r
-               gbURLReady=true;\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("cmd=")==0)\r
-       {\r
-               var sCmd=sPart.substring(4);\r
-               if(sCmd.toLowerCase()=="toc")\r
-               {\r
-                       gnCommand=CMD_SHOWTOC;\r
-               }\r
-               else if(sCmd.toLowerCase()=="idx")\r
-               {\r
-                       gnCommand=CMD_SHOWINDEX;\r
-               }\r
-               else if(sCmd.toLowerCase()=="fts")\r
-               {\r
-                       gnCommand=CMD_SHOWSEARCH;\r
-               }\r
-               else if(sCmd.toLowerCase()=="glo")\r
-               {\r
-                       gnCommand=CMD_SHOWGLOSSARY;\r
-               }\r
-               else if(sCmd.toLowerCase()=="none")\r
-               {\r
-                       gnCommand=CMD_SHOWNONE;\r
-               }\r
-               gbURLReady=true;\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("wnd=")==0)\r
-       {\r
-               gsWindow=_browserStringToText(sPart.substring(4));\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("java=")==0)\r
-       {\r
-               gsJava=sPart.substring(5);\r
-       }\r
-}\r
-\r
-function fetchURLById(sId)\r
-{\r
-       var nId=parseInt(sId);\r
-       gsTopicURL="";\r
-       fetchURL("",nId,false);\r
-}\r
-\r
-function fetchURLByStr(sStr)\r
-{\r
-       gsTopicURL="";\r
-       fetchURL(sStr,0,true);\r
-}\r
-\r
-function fetchURL(sStr,nId,bUseStr)\r
-{\r
-       var bNeedLoad=false;\r
-       var bFound=false;\r
-       for(var i=0;i<gaProj.length;i++)\r
-       {\r
-               if(gaProj[i].nLoadState==3)\r
-               {\r
-                       if(gaProj[i].aCsh)\r
-                       {\r
-                               for(var j=0;j<gaProj[i].aCsh.length;j++)\r
-                               {\r
-                                       var sTopicURL="";\r
-                                       if(bUseStr)\r
-                                       {\r
-                                               if(gaProj[i].aCsh[j].strAliasId.toLowerCase()==sStr.toLowerCase())\r
-                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               if(gaProj[i].aCsh[j].nTopicNum==nId)\r
-                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;\r
-                                       }\r
-                                       if(sTopicURL)\r
-                                       {\r
-                                               if(i!=0)\r
-                                               {\r
-                                                       gnCurProj=i;\r
-                                                       if(gaProj[i].sProjPath.indexOf(gaProj[0].sProjPath)==0)\r
-                                                       {\r
-                                                               var sRelPath=gaProj[i].sProjPath.substring(gaProj[0].sProjPath.length);\r
-                                                               gsTopicURL=sRelPath+sTopicURL;\r
-                                                       }\r
-                                                       else\r
-                                                               gsTopicURL=gaProj[i].sProjPath+sTopicURL;\r
-                                               }\r
-                                               else\r
-                                                       gsTopicURL=sTopicURL;\r
-                                               bFound=true;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       }\r
-                       \r
-               }\r
-               else if(gaProj[i].nLoadState==0)\r
-               {\r
-                       gsStr=sStr;\r
-                       gnId=nId;\r
-                       gbUseStr=bUseStr;\r
-                       var sCshFile=_getFullPath(gaProj[i].sProjPath,gCSHFileName);\r
-                       gaProj[i].nLoadState=1;\r
-                       setTimeout("loadFail("+i+");",3000);\r
-                       loadDataCsh(sCshFile);\r
-                       bNeedLoad=true;\r
-               }\r
-               if(bFound||bNeedLoad)\r
-                       break;\r
-       }\r
-       if(!bNeedLoad)\r
-       {\r
-               gbURLReady=true;\r
-               SwitchURL();\r
-       }\r
-}\r
-\r
-function loadDataCsh(sFile)\r
-{\r
-       if(gbIE4||gbNav61)\r
-               loadData(sFile);\r
-       else\r
-       {\r
-               window.frames[0].location=sFile;\r
-       }\r
-}\r
-\r
-function loadFail(nProj)\r
-{\r
-       if(gaProj[nProj].nLoadState==1)\r
-       {\r
-               gaProj[nProj].nLoadState=2;\r
-               if(!gbLoadWnd)\r
-                       fetchURL(gsStr,gnId,gbUseStr);\r
-               else\r
-                       SwitchURL();\r
-       }\r
-}\r
-\r
-function putCshData(strProj,aCsh,aWnd,aRmtProj)\r
-{\r
-       if(strProj)\r
-       {\r
-               strProj=_replaceSlash(strProj);\r
-               if(strProj.lastIndexOf("/")!=strProj.length-1)\r
-                       strProj+="/";\r
-               for(var i=0;i<gaProj.length;i++)\r
-               {\r
-                       if(gaProj[i].sProjPath)\r
-                       {\r
-                               if(isSamePath(gaProj[i].sProjPath,strProj))\r
-                               {\r
-                                       gaProj[i].nLoadState=3;\r
-                                       gaProj[i].aCsh=aCsh;\r
-                                       gaProj[i].aWnd=aWnd;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-               if(aRmtProj&&aRmtProj.length)\r
-               {\r
-                       for(var j=0;j<aRmtProj.length;j++)\r
-                       {\r
-                               var strRPath=_getFullPath(strProj,aRmtProj[j]);\r
-                               var bFound=false;\r
-                               for (var k=0;k<gaProj.length;k++)\r
-                               {\r
-                                       if(gaProj[k].sProjPath)\r
-                                       {\r
-                                               if(isSamePath(gaProj[k].sProjPath,strRPath))\r
-                                               {\r
-                                                       bFound=true;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if(!bFound)\r
-                               {\r
-                                       var len=gaProj.length;\r
-                                       gaProj[len]=new Object();\r
-                                       gaProj[len].sProjPath=strRPath;\r
-                                       gaProj[len].nLoadState=0;\r
-                               }\r
-                       }\r
-               }\r
-               if(!gbLoadWnd)\r
-                       fetchURL(gsStr,gnId,gbUseStr);\r
-               else\r
-                       SwitchURL();\r
-                       \r
-       }\r
-}\r
-\r
-function isSamePath(strPath1,strPath2)\r
-{\r
-       return strPath1.toLowerCase()==strPath2.toLowerCase();\r
-}\r
-\r
-function getRelHomePage(strLocation)\r
-{\r
-       var strCurPPath=_getPath(strLocation);\r
-       var strOriPPath=_getPath(getHomePage());\r
-       var strRelPath=_getRelativeFileName(strOriPPath,strCurPPath);\r
-       var strURL=getHomePage()+"#"+strRelPath;\r
-       return strURL;\r
-}\r
-\r
-function getHomePage()\r
-{\r
-       var strHomePage;\r
-       var strTmp=location.toString();\r
-       var nPos=strTmp.indexOf("#");\r
-       if(nPos!=-1)\r
-       {\r
-               strHomePage=strTmp.substring(0,nPos);\r
-       }\r
-       else\r
-       {\r
-               strHomePage=strTmp;\r
-       }\r
-       return strHomePage;\r
-}\r
-\r
-function getBrowserOptionString(oWnd)\r
-{\r
-       var strOpts="";\r
-       if(oWnd.bUseDefault)\r
-               return strOpts;\r
-       if(oWnd.nBOptions&RHWO_LOCATION)\r
-               strOpts+="location=yes";\r
-       else\r
-               strOpts+="location=no";\r
-       if(oWnd.nBOptions&RHWO_TOOLBAR)\r
-               strOpts+=",toolbar=yes";                \r
-       else\r
-               strOpts+=",toolbar=no";         \r
-       if(oWnd.nBOptions&RHWO_MENUBAR)\r
-               strOpts+=",menubar=yes";                \r
-       else\r
-               strOpts+=",menubar=no";\r
-       if(oWnd.nBOptions&RHWO_STATUS)\r
-               strOpts+=",status=yes";         \r
-       else\r
-               strOpts+=",status=no";          \r
-       if(oWnd.nBOptions&RHWO_SCROLLBARS)\r
-               strOpts+=",scrollbars=yes";\r
-       else\r
-               strOpts+=",scrollbars=no";      \r
-       if(oWnd.nBOptions&RHWO_RESIZABLE)\r
-               strOpts+=",resizable=yes";\r
-       else\r
-               strOpts+=",resizable=no";\r
-       if(oWnd.sBTop)\r
-       {\r
-               var nTop=getSValue(oWnd.sBTop,screen.height);\r
-               strOpts+=",top="+nTop;\r
-               strOpts+=",screenY="+nTop;\r
-       }\r
-       if(oWnd.sBLeft)\r
-       {\r
-               var nLeft=getSValue(oWnd.sBLeft,screen.width);\r
-               strOpts+=",left="+nLeft;\r
-               strOpts+=",screenX="+nLeft;\r
-       }\r
-       if(oWnd.sBWidth)\r
-       {\r
-               var nWidth=getSValue(oWnd.sBWidth,screen.width);\r
-               strOpts+=",width="+nWidth;\r
-               strOpts+=",outerWidth="+nWidth;\r
-       }\r
-       if(oWnd.sBHeight)\r
-       {\r
-               var nHeight=getSValue(oWnd.sBHeight,screen.height);\r
-               strOpts+=",height="+nHeight;\r
-               strOpts+=",outerHeight="+nHeight;\r
-       }\r
-       return strOpts;\r
-}\r
-\r
-function getSValue(sValue,nLength)\r
-{\r
-       var nValue=0;\r
-       var nPos=sValue.indexOf("%");\r
-       if(nPos!=-1)\r
-       {\r
-               if(nPos>0)\r
-               {\r
-                       var nPart=parseInt(sValue.substring(0,nPos));\r
-                       nValue=nLength*nPart/100;\r
-               }\r
-       }\r
-       else\r
-               nValue=parseInt(sValue);\r
-       return nValue;\r
-}\r
-\r
-\r
-window.onload=window_OnLoad;\r
-\r
-function window_OnLoad()\r
-{\r
-       if(document.location.hash.length>0)\r
-       {\r
-               showCSH(document.location.hash.substring(1));\r
-       }\r
-\r
-       if(gsJava=="false")\r
-               window.moveTo(screen.width,screen.height);\r
-}\r
-//-->\r
-</script>\r
+<html>
+<script language="javascript1.2" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2">
+<!--
+if(gbIE4||gbNav61)
+{
+       document.write("<body></body>");
+}
+else
+{
+       document.write("<frameset rows=\"100%,*\"><frame name=\"data_frm\" src=\"about:blank\"><frame name=\"dumb_frm\" src=\"about:blank\"></frameset>");
+}
+var gCSHFileName="whcshdata.htm";
+
+var gHomePage="index.htm";
+var gaProj=new Array();
+gaProj[0]=new Object();
+gaProj[0].sProjPath=_replaceSlash(_getPath(document.location.href));
+gaProj[0].nLoadState=0;
+var gCurrent=0;
+
+var gsTopicURL="";
+var gnCurProj=0;
+var gnCommand=-1;
+var CMD_SHOWTOC=1;
+var CMD_SHOWINDEX=2;
+var CMD_SHOWSEARCH=3;
+var CMD_SHOWGLOSSARY=4;
+var CMD_SHOWNONE=0;
+
+var RHWO_LOCATION=0x01;                /*need location bar?*/
+var RHWO_MENUBAR=0x02;         /*need menubar?*/               
+var RHWO_RESIZABLE=0x04;       /*resizable window?*/
+var RHWO_TOOLBAR=0x08;         /*need toolbar?*/
+var RHWO_STATUS=0x10;          /*need statusbar?*/
+var RHWO_SCROLLBARS=0x20;      /*need scrollbars?*/
+
+var gsStr="";
+var gnId=-1;
+var gsWindow="";
+var gsJava="false";
+var gbUseStr=false;
+var gbURLReady=false;
+var goWnd=new Object();
+goWnd.sName="whCshDefault";
+goWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
+goWnd.sBLeft="49%";
+goWnd.sBTop="0";
+goWnd.sBWidth="49%";
+goWnd.sBHeight="49%";
+goWnd.nPanes=1;
+var goFullWnd=new Object();
+goFullWnd.sName="whDefault";
+goFullWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
+goFullWnd.sBLeft="20%";
+goFullWnd.sBTop="0";
+goFullWnd.sBWidth="79%";
+goFullWnd.sBHeight="79%";
+goFullWnd.nPanes=2;
+
+var goNewWnd=null;
+var gbLoadWnd=false;
+var gsURL="";
+
+function showCSH(sParam)
+{
+       //id=
+       //str=
+       //url=
+       //cmd=
+       //with the format #<a=xxx>>b=xxx>>c=xxx...
+       parseParam(sParam);
+       SwitchURL();
+}
+
+function IsWndReady()
+{
+       if(gaProj[0].nLoadState==0)
+       {
+               var sCshFile=_getFullPath(gaProj[0].sProjPath,gCSHFileName);
+               gaProj[0].nLoadState=1;
+               setTimeout("loadFail("+0+");",3000);
+               loadDataCsh(sCshFile);
+               gbLoadWnd=true;
+               return false;
+       }
+       else
+               return true;
+}
+
+function SwitchURL()
+{
+       if(gbURLReady)
+       {
+               var sURL="";
+               var oWnd=null;
+               if(gsTopicURL)
+               {
+                       sURL=_getPath(document.location.href)+gHomePage+"#"+gsTopicURL;
+                       oWnd=goWnd;
+               }
+               else
+               {
+                       if(gnCommand!=-1)
+                               sURL=_getPath(document.location.href)+gHomePage+"#>>cmd="+gnCommand;
+                       else
+                               sURL=_getPath(document.location.href)+gHomePage;
+                       oWnd=goFullWnd;
+               }
+               if(gsWindow)
+               {
+                       if(!IsWndReady())
+                               return false;
+                       if(gaProj[gnCurProj].aWnd)
+                       {
+                               var aWnd=gaProj[gnCurProj].aWnd;
+                               var bFound=false;
+                               for(var i=0;i<aWnd.length;i++)
+                               {
+                                       if(aWnd[i].sName.toLowerCase()==gsWindow.toLowerCase())
+                                       {
+                                               oWnd=aWnd[i];
+                                               bFound=true;
+                                               break;
+                                       }
+                               }
+                               if(!bFound&&gnCurProj!=0)
+                               {
+                                       var aWnd=gaProj[0].aWnd;
+                                       for(var j=0;j<aWnd.length;j++)
+                                       {
+                                               if(aWnd[j].sName.toLowerCase()==gsWindow.toLowerCase())
+                                               {
+                                                       oWnd=aWnd[j];
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               if(sURL&&oWnd)
+               {
+                       strURLOpt="";
+                       if(oWnd.sCaption)
+                               strURLOpt+=">>cap="+oWnd.sCaption;
+                       if(oWnd.nPanes==1)
+                               strURLOpt+=">>pan="+oWnd.nPanes;
+                       else if(oWnd.nPanes==2)
+                       {
+                               strURLOpt+=">>pan="+oWnd.nPanes;
+                               if(oWnd.nPOptions)
+                                       strURLOpt+=">>pot="+oWnd.nPOptions;
+                               if(oWnd.sPButtons)
+                                       strURLOpt+=">>pbs="+oWnd.sPButtons;
+                               if(oWnd.sPDefBtn)
+                                       strURLOpt+=">>pdb="+oWnd.sPDefBtn;
+                       }
+                       if(strURLOpt)
+                       {
+                               if(sURL.indexOf("#")==-1)
+                                       sURL+="#";
+                               sURL+=strURLOpt;
+                       }
+                       if(gsJava=="false")
+                       {
+                               var strOpt=getBrowserOptionString(oWnd);
+                               var sNewName=convertWindowName(oWnd.sName);
+                               if(gbNav4)
+                               {
+                                       if (gbNav6)
+                                       {
+                                               gsURL = sURL;
+                                               goNewWnd=window.open("about:blank",sNewName,strOpt);
+                                               setTimeout("postWindowNSOpen();",100);
+                                       }
+                                       else
+                                       {
+                                               window.open("about:blank",sNewName,strOpt);
+                                               var oNewWnd=window.open(sURL,sNewName);
+                                               window.close();
+                                               oNewWnd.focus();
+                                       }
+                               }
+                               else
+                               {
+                                       if(gbIE5)
+                                       {
+                                               window.open("about:blank",sNewName,strOpt);
+                                               goNewWnd=window.open(sURL,sNewName);
+                                       }
+                                       else
+                                       {
+                                               gsURL = sURL; // IE4 had hard time to handle bookmark.
+                                               goNewWnd=window.open("about:blank",sNewName,strOpt);
+                                       }
+                                       setTimeout("postWindowOpen();",100);
+                               }
+                       }
+                       else
+                               document.location=sURL;
+               }
+       }
+}
+
+function convertWindowName(strName)
+{
+       var strNewName = strName;
+       var strResultName = "";
+       var re=new RegExp("_","g");
+       strNewName = strName.replace(re,"__");
+       for (var i=0;i<strNewName.length;i++)
+               if (!(strNewName[i] == '_' ||
+                       (strNewName[i] <= '9' && strNewName[i] >= '0') ||
+                       (strNewName[i] <= 'z' && strNewName[i] >= 'a') ||
+                       (strNewName[i] <= 'Z' && strNewName[i] >= 'A')))
+               {
+                       strResultName += "_" + strNewName.charCodeAt(i);
+               }
+               else
+                       strResultName += strNewName[i];
+       return strResultName;
+}
+
+function postWindowNSOpen()
+{
+       if(goNewWnd)
+       {
+               if (gsURL)
+                       goNewWnd.document.location.href=gsURL;
+               window.close();
+               goNewWnd.focus();
+       }
+}
+
+function postWindowOpen()
+{
+       if(goNewWnd)
+       {
+               if (gsURL&&!gbIE5&&gbIE4)
+                       goNewWnd.document.location.href=gsURL;
+               goNewWnd.focus();
+       }
+}
+
+function parseParam(sParam)
+{
+       if(sParam)
+       {
+               var nBPos=0;
+               do
+               {
+                       var nPos=sParam.indexOf(">>",nBPos);
+                       if(nPos!=-1)
+                       {
+                               if(nPos>0)
+                               {
+                                       var sPart=sParam.substring(nBPos,nPos);
+                                       parsePart(sPart);
+                               }
+                               nBPos=nPos+2;
+                       }
+                       else
+                       {
+                               var sPart=sParam.substring(nBPos);
+                               parsePart(sPart);
+                               break;
+                       }
+               }while(nBPos<sParam.length);
+       }
+}
+
+function parsePart(sPart)
+{
+       if(sPart.toLowerCase().indexOf("id=")==0)
+       {
+               fetchURLById(sPart.substring(3));
+               gbURLReady=false;
+       }
+       else if(sPart.toLowerCase().indexOf("str=")==0)
+       {
+               fetchURLByStr(sPart.substring(4));
+               gbURLReady=false;
+       }
+       else if(sPart.toLowerCase().indexOf("url=")==0)
+       {
+               gsTopicURL=sPart.substring(4);
+               gbURLReady=true;
+       }
+       else if(sPart.toLowerCase().indexOf("cmd=")==0)
+       {
+               var sCmd=sPart.substring(4);
+               if(sCmd.toLowerCase()=="toc")
+               {
+                       gnCommand=CMD_SHOWTOC;
+               }
+               else if(sCmd.toLowerCase()=="idx")
+               {
+                       gnCommand=CMD_SHOWINDEX;
+               }
+               else if(sCmd.toLowerCase()=="fts")
+               {
+                       gnCommand=CMD_SHOWSEARCH;
+               }
+               else if(sCmd.toLowerCase()=="glo")
+               {
+                       gnCommand=CMD_SHOWGLOSSARY;
+               }
+               else if(sCmd.toLowerCase()=="none")
+               {
+                       gnCommand=CMD_SHOWNONE;
+               }
+               gbURLReady=true;
+       }
+       else if(sPart.toLowerCase().indexOf("wnd=")==0)
+       {
+               gsWindow=_browserStringToText(sPart.substring(4));
+       }
+       else if(sPart.toLowerCase().indexOf("java=")==0)
+       {
+               gsJava=sPart.substring(5);
+       }
+}
+
+function fetchURLById(sId)
+{
+       var nId=parseInt(sId);
+       gsTopicURL="";
+       fetchURL("",nId,false);
+}
+
+function fetchURLByStr(sStr)
+{
+       gsTopicURL="";
+       fetchURL(sStr,0,true);
+}
+
+function fetchURL(sStr,nId,bUseStr)
+{
+       var bNeedLoad=false;
+       var bFound=false;
+       for(var i=0;i<gaProj.length;i++)
+       {
+               if(gaProj[i].nLoadState==3)
+               {
+                       if(gaProj[i].aCsh)
+                       {
+                               for(var j=0;j<gaProj[i].aCsh.length;j++)
+                               {
+                                       var sTopicURL="";
+                                       if(bUseStr)
+                                       {
+                                               if(gaProj[i].aCsh[j].strAliasId.toLowerCase()==sStr.toLowerCase())
+                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;
+                                       }
+                                       else
+                                       {
+                                               if(gaProj[i].aCsh[j].nTopicNum==nId)
+                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;
+                                       }
+                                       if(sTopicURL)
+                                       {
+                                               if(i!=0)
+                                               {
+                                                       gnCurProj=i;
+                                                       if(gaProj[i].sProjPath.indexOf(gaProj[0].sProjPath)==0)
+                                                       {
+                                                               var sRelPath=gaProj[i].sProjPath.substring(gaProj[0].sProjPath.length);
+                                                               gsTopicURL=sRelPath+sTopicURL;
+                                                       }
+                                                       else
+                                                               gsTopicURL=gaProj[i].sProjPath+sTopicURL;
+                                               }
+                                               else
+                                                       gsTopicURL=sTopicURL;
+                                               bFound=true;
+                                               break;
+                                       }
+                               }
+                       }
+                       
+               }
+               else if(gaProj[i].nLoadState==0)
+               {
+                       gsStr=sStr;
+                       gnId=nId;
+                       gbUseStr=bUseStr;
+                       var sCshFile=_getFullPath(gaProj[i].sProjPath,gCSHFileName);
+                       gaProj[i].nLoadState=1;
+                       setTimeout("loadFail("+i+");",3000);
+                       loadDataCsh(sCshFile);
+                       bNeedLoad=true;
+               }
+               if(bFound||bNeedLoad)
+                       break;
+       }
+       if(!bNeedLoad)
+       {
+               gbURLReady=true;
+               SwitchURL();
+       }
+}
+
+function loadDataCsh(sFile)
+{
+       if(gbIE4||gbNav61)
+               loadData(sFile);
+       else
+       {
+               window.frames[0].location=sFile;
+       }
+}
+
+function loadFail(nProj)
+{
+       if(gaProj[nProj].nLoadState==1)
+       {
+               gaProj[nProj].nLoadState=2;
+               if(!gbLoadWnd)
+                       fetchURL(gsStr,gnId,gbUseStr);
+               else
+                       SwitchURL();
+       }
+}
+
+function putCshData(strProj,aCsh,aWnd,aRmtProj)
+{
+       if(strProj)
+       {
+               strProj=_replaceSlash(strProj);
+               if(strProj.lastIndexOf("/")!=strProj.length-1)
+                       strProj+="/";
+               for(var i=0;i<gaProj.length;i++)
+               {
+                       if(gaProj[i].sProjPath)
+                       {
+                               if(isSamePath(gaProj[i].sProjPath,strProj))
+                               {
+                                       gaProj[i].nLoadState=3;
+                                       gaProj[i].aCsh=aCsh;
+                                       gaProj[i].aWnd=aWnd;
+                                       break;
+                               }
+                       }
+               }
+               if(aRmtProj&&aRmtProj.length)
+               {
+                       for(var j=0;j<aRmtProj.length;j++)
+                       {
+                               var strRPath=_getFullPath(strProj,aRmtProj[j]);
+                               var bFound=false;
+                               for (var k=0;k<gaProj.length;k++)
+                               {
+                                       if(gaProj[k].sProjPath)
+                                       {
+                                               if(isSamePath(gaProj[k].sProjPath,strRPath))
+                                               {
+                                                       bFound=true;
+                                                       break;
+                                               }
+                                       }
+                               }
+                               if(!bFound)
+                               {
+                                       var len=gaProj.length;
+                                       gaProj[len]=new Object();
+                                       gaProj[len].sProjPath=strRPath;
+                                       gaProj[len].nLoadState=0;
+                               }
+                       }
+               }
+               if(!gbLoadWnd)
+                       fetchURL(gsStr,gnId,gbUseStr);
+               else
+                       SwitchURL();
+                       
+       }
+}
+
+function isSamePath(strPath1,strPath2)
+{
+       return strPath1.toLowerCase()==strPath2.toLowerCase();
+}
+
+function getRelHomePage(strLocation)
+{
+       var strCurPPath=_getPath(strLocation);
+       var strOriPPath=_getPath(getHomePage());
+       var strRelPath=_getRelativeFileName(strOriPPath,strCurPPath);
+       var strURL=getHomePage()+"#"+strRelPath;
+       return strURL;
+}
+
+function getHomePage()
+{
+       var strHomePage;
+       var strTmp=location.toString();
+       var nPos=strTmp.indexOf("#");
+       if(nPos!=-1)
+       {
+               strHomePage=strTmp.substring(0,nPos);
+       }
+       else
+       {
+               strHomePage=strTmp;
+       }
+       return strHomePage;
+}
+
+function getBrowserOptionString(oWnd)
+{
+       var strOpts="";
+       if(oWnd.bUseDefault)
+               return strOpts;
+       if(oWnd.nBOptions&RHWO_LOCATION)
+               strOpts+="location=yes";
+       else
+               strOpts+="location=no";
+       if(oWnd.nBOptions&RHWO_TOOLBAR)
+               strOpts+=",toolbar=yes";                
+       else
+               strOpts+=",toolbar=no";         
+       if(oWnd.nBOptions&RHWO_MENUBAR)
+               strOpts+=",menubar=yes";                
+       else
+               strOpts+=",menubar=no";
+       if(oWnd.nBOptions&RHWO_STATUS)
+               strOpts+=",status=yes";         
+       else
+               strOpts+=",status=no";          
+       if(oWnd.nBOptions&RHWO_SCROLLBARS)
+               strOpts+=",scrollbars=yes";
+       else
+               strOpts+=",scrollbars=no";      
+       if(oWnd.nBOptions&RHWO_RESIZABLE)
+               strOpts+=",resizable=yes";
+       else
+               strOpts+=",resizable=no";
+       if(oWnd.sBTop)
+       {
+               var nTop=getSValue(oWnd.sBTop,screen.height);
+               strOpts+=",top="+nTop;
+               strOpts+=",screenY="+nTop;
+       }
+       if(oWnd.sBLeft)
+       {
+               var nLeft=getSValue(oWnd.sBLeft,screen.width);
+               strOpts+=",left="+nLeft;
+               strOpts+=",screenX="+nLeft;
+       }
+       if(oWnd.sBWidth)
+       {
+               var nWidth=getSValue(oWnd.sBWidth,screen.width);
+               strOpts+=",width="+nWidth;
+               strOpts+=",outerWidth="+nWidth;
+       }
+       if(oWnd.sBHeight)
+       {
+               var nHeight=getSValue(oWnd.sBHeight,screen.height);
+               strOpts+=",height="+nHeight;
+               strOpts+=",outerHeight="+nHeight;
+       }
+       return strOpts;
+}
+
+function getSValue(sValue,nLength)
+{
+       var nValue=0;
+       var nPos=sValue.indexOf("%");
+       if(nPos!=-1)
+       {
+               if(nPos>0)
+               {
+                       var nPart=parseInt(sValue.substring(0,nPos));
+                       nValue=nLength*nPart/100;
+               }
+       }
+       else
+               nValue=parseInt(sValue);
+       return nValue;
+}
+
+
+window.onload=window_OnLoad;
+
+function window_OnLoad()
+{
+       if(document.location.hash.length>0)
+       {
+               showCSH(document.location.hash.substring(1));
+       }
+
+       if(gsJava=="false")
+               window.moveTo(screen.width,screen.height);
+}
+//-->
+</script>
 </html>
\ No newline at end of file
index 2964043b74f033e0b96880903bd6741edfe4c2b6..a21983910a8bd4a6b6b5e120aad682ec73a38226 100755 (executable)
@@ -1,87 +1,87 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript1.2" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="JavaScript">\r
-<!--\r
-var gaCsh=new Array();\r
-\r
-var gaWindow=new Array();\r
-\r
-var gaRmtProj=new Array();\r
-\r
-var gsProjPath=_getPath(document.location.href);\r
-\r
-function CshEntityItem(strAliasId,nTopicNum,strUrl)\r
-{\r
-       this.strAliasId=strAliasId;\r
-       this.nTopicNum=nTopicNum;\r
-       this.strUrl=strUrl;\r
-}\r
-\r
-function CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)\r
-{\r
-       this.sName=sWName;\r
-       this.bUseDefault=bBUseDefault;\r
-       if(!this.bUseDefault)\r
-       {\r
-               this.nBOptions=nWBOptions;\r
-               this.sBLeft=sWBLeft;\r
-               this.sBTop=sWBTop;\r
-               this.sBWidth=sWBWidth;\r
-               this.sBHeight=sWBHeight;\r
-       }\r
-       this.sCaption=sWCaption;\r
-       this.nPanes=nWPanes;\r
-       if(this.nPanes==2)\r
-       {\r
-               this.nPOptions=nWPOptions;\r
-               this.sPButtons=sWPButtons;\r
-               this.sPDefBtn=sWPDefBtn;\r
-       }\r
-}\r
-\r
-function addRemoteProject(sPath)\r
-{\r
-       if(sPath.length!=0)\r
-       {\r
-               if(sPath.lastIndexOf("/")!=sPath.length-1)\r
-                       sPath+="/";\r
-               gaRmtProj[gaRmtProj.length]=sPath;      \r
-       }\r
-}\r
-\r
-//Set Context-sensitive help entity...\r
-function SetCsh(n,strAliasId,nTopicNum,strUrl)\r
-{\r
-       gaCsh[n]=new CshEntityItem(strAliasId,nTopicNum,strUrl);\r
-}\r
-\r
-function addWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)\r
-{\r
-       gaWindow[gaWindow.length]=new CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn);\r
-}\r
-\r
-\r
-\r
-\r
-\r
-window.onload=window_OnLoad;\r
-\r
-function window_OnLoad()\r
-{\r
-       if(parent&&parent!=this&&parent.putCshData)\r
-       {\r
-               parent.putCshData(gsProjPath,gaCsh,gaWindow,gaRmtProj);\r
-       }\r
-}\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript1.2" src="whver.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="JavaScript">
+<!--
+var gaCsh=new Array();
+
+var gaWindow=new Array();
+
+var gaRmtProj=new Array();
+
+var gsProjPath=_getPath(document.location.href);
+
+function CshEntityItem(strAliasId,nTopicNum,strUrl)
+{
+       this.strAliasId=strAliasId;
+       this.nTopicNum=nTopicNum;
+       this.strUrl=strUrl;
+}
+
+function CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
+{
+       this.sName=sWName;
+       this.bUseDefault=bBUseDefault;
+       if(!this.bUseDefault)
+       {
+               this.nBOptions=nWBOptions;
+               this.sBLeft=sWBLeft;
+               this.sBTop=sWBTop;
+               this.sBWidth=sWBWidth;
+               this.sBHeight=sWBHeight;
+       }
+       this.sCaption=sWCaption;
+       this.nPanes=nWPanes;
+       if(this.nPanes==2)
+       {
+               this.nPOptions=nWPOptions;
+               this.sPButtons=sWPButtons;
+               this.sPDefBtn=sWPDefBtn;
+       }
+}
+
+function addRemoteProject(sPath)
+{
+       if(sPath.length!=0)
+       {
+               if(sPath.lastIndexOf("/")!=sPath.length-1)
+                       sPath+="/";
+               gaRmtProj[gaRmtProj.length]=sPath;      
+       }
+}
+
+//Set Context-sensitive help entity...
+function SetCsh(n,strAliasId,nTopicNum,strUrl)
+{
+       gaCsh[n]=new CshEntityItem(strAliasId,nTopicNum,strUrl);
+}
+
+function addWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
+{
+       gaWindow[gaWindow.length]=new CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn);
+}
+
+
+
+
+
+window.onload=window_OnLoad;
+
+function window_OnLoad()
+{
+       if(parent&&parent!=this&&parent.putCshData)
+       {
+               parent.putCshData(gsProjPath,gaCsh,gaWindow,gaRmtProj);
+       }
+}
+//-->
+</script>
+</body>
+</html>
index 1bca23603e8bb45f725f9126337d185dcf6ec10f..3983ccbdd0d39556d4cee966f73cc1a7cd8502b8 100755 (executable)
@@ -1,43 +1,43 @@
-<html>\r
-<head>\r
-<title>Navigator Pane</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whphost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsNavReDirect="whgdata/whnvp30.htm";\r
-var gbReDirectThis=false;\r
-  var bPreferXML             = false;\r
-  var strProjectFileXML =  "whproj.xml";\r
-  var strProjectFileHTM =  "whproj.htm";       \r
-if(window.gbWhPHost)\r
-{\r
-         addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);\r
-         addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+<title>Navigator Pane</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whphost.js"></script>
+<script language="javascript1.2">
+<!--
+var gsNavReDirect="whgdata/whnvp30.htm";
+var gbReDirectThis=false;
+  var bPreferXML             = false;
+  var strProjectFileXML =  "whproj.xml";
+  var strProjectFileHTM =  "whproj.htm";       
+if(window.gbWhPHost)
+{
+         addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);
+         addPane("toc","whtdhtml.htm");
+  addPane("fts","whfdhtml.htm");
+  addPane("glo","whgdhtml.htm");
+  setShowPane("toc");
+
+}
+else
+       document.location.reload();
+
+if (window.gbNav6)
+{
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
+       SendMessage(oMsg);
+}
+
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index a57fe1e490457bdbc9302baae604ab38bf135133..05b5f908c41504ce854f515542cfe9d085c2ea6e 100755 (executable)
@@ -1,15 +1,15 @@
-<html>\r
-<head>\r
-<title>Navigation Pane</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-</head>\r
-<frameset rows="30, *" border="0" frameborder="0">\r
-       <frame name="navtabs" title="tab selection frame" src="whd_tabs.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="navpane" title="navigation frame" src="whd_dpns.htm" ></frame>\r
-</frameset>\r
-</html>\r
+<html>
+<head>
+<title>Navigation Pane</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+</head>
+<frameset rows="30, *" border="0" frameborder="0">
+       <frame name="navtabs" title="tab selection frame" src="whd_tabs.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="navpane" title="navigation frame" src="whd_dpns.htm" ></frame>
+</frameset>
+</html>
index c5754bc41e7b4e3908283ef3bf13c215ccc00147..23c23dc4fc553ef5753f6723aae08a4ce080652b 100755 (executable)
-<html>\r
-<head>\r
-<title>navigation pane</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsInitPane="toc";\r
-var gsCurrentPane="";\r
-var gbLoading = "unknown";\r
-var gbTryTime = 0;\r
-var gbMaxTryTime = 6;\r
-var gbPassPhase0 = 0;\r
-var gbretried = 0;\r
-var gbmaxretry = 3;\r
-var gbretrytime = new Array();\r
-\r
-var origWidth = 0;\r
-var origHeight = 0;\r
-\r
-gbretrytime[0]= 5000;\r
-gbretrytime[1]= 30000;\r
-gbretrytime[2]= 60000;\r
-\r
-function addPane(sName, sFile)\r
-{\r
-}\r
-\r
-function setShowPane(sName)\r
-{\r
-       gsInitPane=sName;\r
-}\r
-\r
-  addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-       UnRegisterListener2(this, WH_MSG_SYNCTOC);\r
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       var bHidePane=false;\r
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if(oMsg.oParam>0)\r
-               {\r
-                       if(oMsg.oParam==1)\r
-                               gsInitPane="toc";\r
-                       else if(oMsg.oParam==2)\r
-                               gsInitPane="idx";\r
-                       else if(oMsg.oParam==3)\r
-                               gsInitPane="fts";\r
-                       else if(oMsg.oParam==4)\r
-                               gsInitPane="glo";\r
-               }\r
-               else if(oMsg.oParam==0)\r
-               {\r
-                       bHidePane=true;\r
-               }\r
-       }\r
-       if (bHidePane)\r
-       {\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)\r
-               SendMessage(oMsg);\r
-       }\r
-       else if (gsInitPane == "toc")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="idx")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="fts")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="glo")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-}\r
-\r
-function CheckLoadingPhase0()\r
-{\r
-       if (!gbPassPhase0) {\r
-               setTimeout("CheckLoadingPhase0()", 1000);\r
-               document.applets[0];\r
-               gbPassPhase0 = 1;\r
-       }\r
-       else {\r
-               CheckLoadingPhase1();\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase1()\r
-{\r
-       if (gbNav4) {\r
-               if ("unknown" == gbLoading && document.readystate < 4) {\r
-                       setTimeout("CheckLoadingPhase1()", 1000);\r
-               }\r
-               else if ("unknown" == gbLoading) {\r
-                       CheckLoadingPhase2();\r
-               }\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase2()\r
-{\r
-       if (gbNav4) {\r
-               gbTryTime ++;\r
-               if ("unknown" == gbLoading) {\r
-                       if (gbTryTime <= gbMaxTryTime )\r
-                               setTimeout("CheckLoadingPhase2()", 1000);\r
-                       else {\r
-                               if (gnVerMinor != 4.60) {\r
-                                       alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");\r
-                               }\r
-                       }       \r
-               }\r
-       }\r
-}\r
-\r
-function CheckAppletLoaded()\r
-{\r
-       if (typeof(document.webhelp) == "undefined")\r
-       {\r
-               document.location.reload();\r
-               if (gbretried < gbmaxretry)\r
-               {\r
-                       gbretried ++;\r
-                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
-               }\r
-       }\r
-}\r
-\r
-function reDo() \r
-{\r
-       if (innerWidth != origWidth || innerHeight != origHeight)  \r
-       {\r
-               //reloaded applet if nessary\r
-               gbretried = 0;\r
-\r
-               if (gnVerMinor == 4.60) \r
-               {\r
-                       //reload the applet again.\r
-                       document.location.reload();\r
-                       gbretried ++;\r
-               }\r
-               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
-       }\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if (oMsg)\r
-       {       \r
-               var nMsgId = oMsg.nMessageId;\r
-               var WebHelpApplet = null;\r
-               if (gbNav4)\r
-               {\r
-                       WebHelpApplet = document.applets["WebHelp"];\r
-                       if (!WebHelpApplet.Command)\r
-                               document.location="whgdata/whnvp30.htm";\r
-               }\r
-               else\r
-                       WebHelpApplet = WebHelp;\r
-\r
-               if(nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam=gsCurrentPane;\r
-                       return false;\r
-               }\r
-               else if (gbLoading!="unknown"||gbNav6)\r
-               {\r
-                       if (nMsgId == WH_MSG_SHOWTOC)\r
-                       {\r
-                               gsCurrentPane="toc";\r
-                               WebHelpApplet .Command("Contents", null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
-                               SendMessage(onMsg);\r
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if (nMsgId == WH_MSG_SHOWIDX)\r
-                       {\r
-                               gsCurrentPane="idx";\r
-                               WebHelpApplet .Command("Index", null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
-                               SendMessage(onMsg);\r
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if (nMsgId == WH_MSG_SHOWFTS)\r
-                       {\r
-                               gsCurrentPane="fts";\r
-                               WebHelpApplet .Command("Search", null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
-                               SendMessage(onMsg);\r
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if (nMsgId == WH_MSG_SHOWGLO)\r
-                       {\r
-                               gsCurrentPane="glo";\r
-                               WebHelpApplet .Command("Glossary", null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
-                               SendMessage(onMsg);\r
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if (nMsgId == WH_MSG_SYNCTOC)\r
-                       {\r
-                               gsCurrentPane="toc";\r
-                               var oTopicParam = oMsg.oParam;\r
-                               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)\r
-                               {\r
-                                       var sPPath = _browserStringToText(oTopicParam.sPPath);\r
-                                       var sParam = "";\r
-                                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)\r
-                                       {\r
-                                               sParam += oTopicParam.aPaths[i] + "\r\r";\r
-                                       }\r
-                                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);\r
-                               }\r
-                       }\r
-                       else if(nMsgId==WH_MSG_SEARCHTHIS)\r
-                       {\r
-                               gsCurrentPane="fts";\r
-                               WebHelpApplet .Command("Search", oMsg.oParam);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
-                               SendMessage(onMsg);\r
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function getInitTocInfo()\r
-{\r
-       // send message ask for the first time sync toc info.\r
-       var oParam = new Object();\r
-       oParam.oTocInfo = null;\r
-       var oMsg = new whMessage(WH_MSG_GETTOCPATHS, this, 1, oParam);\r
-       if (SendMessage(oMsg ))\r
-       {\r
-               var oTopicParam = oMsg.oParam.oTocInfo;\r
-               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)\r
-               {\r
-                       var sPPath = _browserStringToText(oTopicParam.sPPath);\r
-                       var sParam = "";\r
-                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)\r
-                       {\r
-                               sParam += oTopicParam.aPaths[i] + "\r\r";\r
-                       }\r
-                       var WebHelpApplet;\r
-                       if (gbNav4)\r
-                               WebHelpApplet = document.applets["WebHelp"];\r
-                       else\r
-                               WebHelpApplet = WebHelp;\r
-                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);\r
-               }\r
-       }\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       RegisterListener2(this, WH_MSG_SYNCTOC);\r
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
-\r
-       window.onunload = window_unload;\r
-       window.onload=window_OnLoad;\r
-       window.onerror = null;\r
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-\r
-       if (gbNav4 && !gbNav6 && gbWindows) {\r
-               setTimeout("CheckLoadingPhase0()", 1000);\r
-       }\r
-\r
-       if (gbNav4) \r
-       {\r
-               origWidth = innerWidth;\r
-               origHeight = innerHeight;\r
-               onresize = reDo;\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">\r
-<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>\r
-<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>\r
-<PARAM name=Frame value=bsscright>\r
-<PARAM name=cabbase value=webhelp.cab>\r
-</applet>\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>navigation pane</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2">
+<!--
+var gsInitPane="toc";
+var gsCurrentPane="";
+var gbLoading = "unknown";
+var gbTryTime = 0;
+var gbMaxTryTime = 6;
+var gbPassPhase0 = 0;
+var gbretried = 0;
+var gbmaxretry = 3;
+var gbretrytime = new Array();
+
+var origWidth = 0;
+var origHeight = 0;
+
+gbretrytime[0]= 5000;
+gbretrytime[1]= 30000;
+gbretrytime[2]= 60000;
+
+function addPane(sName, sFile)
+{
+}
+
+function setShowPane(sName)
+{
+       gsInitPane=sName;
+}
+
+  addPane("toc","whtdhtml.htm");
+  addPane("fts","whfdhtml.htm");
+  addPane("glo","whgdhtml.htm");
+  setShowPane("toc");
+
+
+function window_unload()
+{
+       UnRegisterListener2(this, WH_MSG_SHOWTOC);
+       UnRegisterListener2(this, WH_MSG_SHOWIDX);
+       UnRegisterListener2(this, WH_MSG_SHOWFTS);
+       UnRegisterListener2(this, WH_MSG_SHOWGLO);
+       UnRegisterListener2(this, WH_MSG_SYNCTOC);
+       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
+       UnRegisterListener2(this, WH_MSG_GETPANEINFO);
+}
+
+function window_OnLoad()
+{
+       var bHidePane=false;
+       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
+       if (SendMessage(oMsg))
+       {
+               if(oMsg.oParam>0)
+               {
+                       if(oMsg.oParam==1)
+                               gsInitPane="toc";
+                       else if(oMsg.oParam==2)
+                               gsInitPane="idx";
+                       else if(oMsg.oParam==3)
+                               gsInitPane="fts";
+                       else if(oMsg.oParam==4)
+                               gsInitPane="glo";
+               }
+               else if(oMsg.oParam==0)
+               {
+                       bHidePane=true;
+               }
+       }
+       if (bHidePane)
+       {
+               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)
+               SendMessage(oMsg);
+       }
+       else if (gsInitPane == "toc")
+       {
+               oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
+               SendMessage(oMsg);      
+       }
+       else if (gsInitPane=="idx")
+       {
+               oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
+               SendMessage(oMsg);      
+       }
+       else if (gsInitPane=="fts")
+       {
+               oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
+               SendMessage(oMsg);      
+       }
+       else if (gsInitPane=="glo")
+       {
+               oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
+               SendMessage(oMsg);      
+       }
+}
+
+function CheckLoadingPhase0()
+{
+       if (!gbPassPhase0) {
+               setTimeout("CheckLoadingPhase0()", 1000);
+               document.applets[0];
+               gbPassPhase0 = 1;
+       }
+       else {
+               CheckLoadingPhase1();
+       }
+}
+
+function CheckLoadingPhase1()
+{
+       if (gbNav4) {
+               if ("unknown" == gbLoading && document.readystate < 4) {
+                       setTimeout("CheckLoadingPhase1()", 1000);
+               }
+               else if ("unknown" == gbLoading) {
+                       CheckLoadingPhase2();
+               }
+       }
+}
+
+function CheckLoadingPhase2()
+{
+       if (gbNav4) {
+               gbTryTime ++;
+               if ("unknown" == gbLoading) {
+                       if (gbTryTime <= gbMaxTryTime )
+                               setTimeout("CheckLoadingPhase2()", 1000);
+                       else {
+                               if (gnVerMinor != 4.60) {
+                                       alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");
+                               }
+                       }       
+               }
+       }
+}
+
+function CheckAppletLoaded()
+{
+       if (typeof(document.webhelp) == "undefined")
+       {
+               document.location.reload();
+               if (gbretried < gbmaxretry)
+               {
+                       gbretried ++;
+                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
+               }
+       }
+}
+
+function reDo() 
+{
+       if (innerWidth != origWidth || innerHeight != origHeight)  
+       {
+               //reloaded applet if nessary
+               gbretried = 0;
+
+               if (gnVerMinor == 4.60) 
+               {
+                       //reload the applet again.
+                       document.location.reload();
+                       gbretried ++;
+               }
+               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
+       }
+}
+
+function onSendMessage(oMsg)
+{
+       if (oMsg)
+       {       
+               var nMsgId = oMsg.nMessageId;
+               var WebHelpApplet = null;
+               if (gbNav4)
+               {
+                       WebHelpApplet = document.applets["WebHelp"];
+                       if (!WebHelpApplet.Command)
+                               document.location="whgdata/whnvp30.htm";
+               }
+               else
+                       WebHelpApplet = WebHelp;
+
+               if(nMsgId==WH_MSG_GETPANEINFO)
+               {
+                       oMsg.oParam=gsCurrentPane;
+                       return false;
+               }
+               else if (gbLoading!="unknown"||gbNav6)
+               {
+                       if (nMsgId == WH_MSG_SHOWTOC)
+                       {
+                               gsCurrentPane="toc";
+                               WebHelpApplet .Command("Contents", null);
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
+                               SendMessage(onMsg);
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                               SendMessage(onMsg);
+                       }
+                       else if (nMsgId == WH_MSG_SHOWIDX)
+                       {
+                               gsCurrentPane="idx";
+                               WebHelpApplet .Command("Index", null);
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
+                               SendMessage(onMsg);
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                               SendMessage(onMsg);
+                       }
+                       else if (nMsgId == WH_MSG_SHOWFTS)
+                       {
+                               gsCurrentPane="fts";
+                               WebHelpApplet .Command("Search", null);
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
+                               SendMessage(onMsg);
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                               SendMessage(onMsg);
+                       }
+                       else if (nMsgId == WH_MSG_SHOWGLO)
+                       {
+                               gsCurrentPane="glo";
+                               WebHelpApplet .Command("Glossary", null);
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
+                               SendMessage(onMsg);
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                               SendMessage(onMsg);
+                       }
+                       else if (nMsgId == WH_MSG_SYNCTOC)
+                       {
+                               gsCurrentPane="toc";
+                               var oTopicParam = oMsg.oParam;
+                               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
+                               {
+                                       var sPPath = _browserStringToText(oTopicParam.sPPath);
+                                       var sParam = "";
+                                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)
+                                       {
+                                               sParam += oTopicParam.aPaths[i] + "\r\r";
+                                       }
+                                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);
+                               }
+                       }
+                       else if(nMsgId==WH_MSG_SEARCHTHIS)
+                       {
+                               gsCurrentPane="fts";
+                               WebHelpApplet .Command("Search", oMsg.oParam);
+                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
+                               SendMessage(onMsg);
+                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                               SendMessage(onMsg);
+                       }
+               }
+       }
+       return true;
+}
+
+function getInitTocInfo()
+{
+       // send message ask for the first time sync toc info.
+       var oParam = new Object();
+       oParam.oTocInfo = null;
+       var oMsg = new whMessage(WH_MSG_GETTOCPATHS, this, 1, oParam);
+       if (SendMessage(oMsg ))
+       {
+               var oTopicParam = oMsg.oParam.oTocInfo;
+               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
+               {
+                       var sPPath = _browserStringToText(oTopicParam.sPPath);
+                       var sParam = "";
+                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)
+                       {
+                               sParam += oTopicParam.aPaths[i] + "\r\r";
+                       }
+                       var WebHelpApplet;
+                       if (gbNav4)
+                               WebHelpApplet = document.applets["WebHelp"];
+                       else
+                               WebHelpApplet = WebHelp;
+                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);
+               }
+       }
+}
+
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
+{
+       RegisterListener2(this, WH_MSG_SHOWTOC);
+       RegisterListener2(this, WH_MSG_SHOWIDX);
+       RegisterListener2(this, WH_MSG_SHOWFTS);
+       RegisterListener2(this, WH_MSG_SHOWGLO);
+       RegisterListener2(this, WH_MSG_SYNCTOC);
+       RegisterListener2(this, WH_MSG_SEARCHTHIS);
+       RegisterListener2(this, WH_MSG_GETPANEINFO);
+
+       window.onunload = window_unload;
+       window.onload=window_OnLoad;
+       window.onerror = null;
+       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
+
+       if (gbNav4 && !gbNav6 && gbWindows) {
+               setTimeout("CheckLoadingPhase0()", 1000);
+       }
+
+       if (gbNav4) 
+       {
+               origWidth = innerWidth;
+               origHeight = innerHeight;
+               onresize = reDo;
+       }
+}
+else
+       document.location.reload();
+
+if (window.gbNav6)
+{
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
+       SendMessage(oMsg);
+}
+
+//-->
+</script>
+</head>
+<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">
+<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>
+<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>
+<PARAM name=Frame value=bsscright>
+<PARAM name=cabbase value=webhelp.cab>
+</applet>
+</body>
+</html>
index 1568f573ded24cf0708033cdbc36d069bea12727..e8c498c887f93ebf75aad6426b146b41ee40364e 100755 (executable)
-<HTML>\r
-<HEAD>\r
-<TITLE>WebHelp Tabs Frame in Navigation Pane</TITLE>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<!-- WebHelp version 5.10 -->\r
-</HEAD>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsBgColor="#c0c0c0"\r
-var gsBgImage="";\r
-var gnCurPane=0;\r
-var gsFirstPane="";\r
-var goTocFont=null;\r
-var goIdxFont=null;\r
-var goFtsFont=null;\r
-var goGloFont=null;\r
-var gPane=new Array();\r
-var gShowFirst=0;\r
-var gnTabType=0;\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-}\r
-\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Toc") goTocFont=vFont;\r
-       else if(sType=="Idx") goIdxFont=vFont;\r
-       else if(sType=="Fts") goFtsFont=vFont;\r
-       else if(sType=="Glo") goGloFont=vFont;\r
-}\r
-\r
-function TocWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>";\r
-       sStyle+=".TextTabToc {"+getFontStyle(goTocFont)+"}";\r
-       sStyle+=".TextTabIdx {"+getFontStyle(goIdxFont)+"}";\r
-       sStyle+=".TextTabFts {"+getFontStyle(goFtsFont)+"}";\r
-       sStyle+=".TextTabGlo {"+getFontStyle(goGloFont)+"}";\r
-       sStyle+="A:hover {text-decoration:underline;}";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       if(sBgColor!=null&&sBgColor.length>0)\r
-               gsBgColor=sBgColor;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       if(sBgImage!=null&&sBgImage.length>0)\r
-               gsBgImage=sBgImage;\r
-}\r
-\r
-function selectToc()\r
-{\r
-       var oMessage=new whMessage(WH_MSG_SHOWTOC,this,1,null);\r
-       SendMessage(oMessage);\r
-}\r
-\r
-function selectIdx()\r
-{\r
-       var oMessage=new whMessage(WH_MSG_SHOWIDX,this,1,null);\r
-       SendMessage(oMessage);\r
-}\r
-function selectFts()\r
-{\r
-       var oMessage=new whMessage(WH_MSG_SHOWFTS,this,1,null);\r
-       SendMessage(oMessage);\r
-}\r
-\r
-function selectGlo()\r
-{\r
-       var oMessage=new whMessage(WH_MSG_SHOWGLO,this,1,null);\r
-       SendMessage(oMessage);\r
-}\r
-\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       setTimeout("showTabByName(\"toc\");",1);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWIDX)\r
-               {\r
-                       setTimeout("showTabByName(\"idx\");",1);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWFTS)\r
-               {\r
-                       setTimeout("showTabByName(\"fts\");",1);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       setTimeout("showTabByName(\"glo\");",1);\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function showTabByName(sTabName)\r
-{\r
-       for(var i=0;i<gPane.length;i++)\r
-       {\r
-               if(gPane[i]==sTabName)\r
-               {\r
-                       showTab(i);\r
-                       break;\r
-               }\r
-       }\r
-}\r
-\r
-function showTab(n)\r
-{\r
-       gnCurPane=n;\r
-       if(gnTabType==0)\r
-       {\r
-               if(n<gPane.length)\r
-               {\r
-                       if(document.images["TocTab"]&&document.images["TocTab"]!=null){\r
-                               if(gPane[n]=="toc")\r
-                                       document.images["TocTab"].src=getBtnImage("toc",1);\r
-                               else\r
-                                       document.images["TocTab"].src=getBtnImage("toc",0);\r
-                       }\r
-                       if(document.images["IndexTab"]&&document.images["IndexTab"]!=null){\r
-                               if(gPane[n]=="idx")\r
-                                       document.images["IndexTab"].src=getBtnImage("idx",1);\r
-                               else\r
-                                       document.images["IndexTab"].src=getBtnImage("idx",0);\r
-                       }\r
-                       if(document.images["FtsTab"]&&document.images["FtsTab"]!=null){\r
-                               if(gPane[n]=="fts")\r
-                                       document.images["FtsTab"].src=getBtnImage("fts",1);\r
-                               else\r
-                                       document.images["FtsTab"].src=getBtnImage("fts",0);\r
-                       }\r
-                       if(document.images["GloTab"]&&document.images["GloTab"]!=null){\r
-                               if(gPane[n]=="glo")\r
-                                       document.images["GloTab"].src=getBtnImage("glo",1);\r
-                               else\r
-                                       document.images["GloTab"].src=getBtnImage("glo",0);\r
-                       }\r
-               }\r
-       }\r
-       else if(gnTabType==1)\r
-       {\r
-       }\r
-       else if(gnTabType==2)\r
-       {\r
-               if(n<gPane.length)\r
-               {\r
-                       if(document.images["tabSelection"]!=null)\r
-                               document.images["tabSelection"].src=getMapImage(gPane[n]);\r
-               }\r
-       }\r
-}\r
-\r
-function addPane(sName)\r
-{\r
-       gPane[gPane.length]=sName;\r
-}\r
-\r
-function setShowPane(sName)\r
-{\r
-       if(gsFirstPane!="")\r
-               sName=gsFirstPane;\r
-       for(var i=0;i<gPane.length;i++)\r
-       {\r
-               if(gPane[i]==sName)\r
-                       gShowFirst=i;\r
-       }\r
-}\r
-\r
-function selectDefaultTab()\r
-{\r
-       showTab(gShowFirst);\r
-       if(document.body)\r
-       {\r
-               if(gsBgImage&&gsBgImage.length>0)\r
-               {\r
-                       document.body.background=gsBgImage;\r
-               }\r
-               if(gsBgColor&&gsBgColor.length>0)\r
-               {\r
-                       document.body.bgColor=gsBgColor;\r
-               }\r
-       }\r
-}\r
-\r
-function getTabsHTML()\r
-{\r
-       var sHTML="";\r
-       for(var i=0;i<gPane.length;i++)\r
-       {\r
-               if(gnTabType==0)\r
-                       sHTML+=getTabHTML(gPane[i]);\r
-               else if(gnTabType==1)\r
-               {\r
-                       if(sHTML.length>0)\r
-                       {\r
-                               sHTML+=getSeparator();\r
-                       }\r
-                       sHTML+=getTabHTMLText(gPane[i]);\r
-               }\r
-\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-function getSeparator()\r
-{\r
-       var sSep="";\r
-       \r
-       return sSep;\r
-}\r
-\r
-function getTabHTML(sTabName)\r
-{\r
-       if (sTabName == "toc")\r
-               return "<a title=\"Contents\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\" onmouseover=\"mouseOverToc();\" onmouseout=\"mouseOutToc();\"><img name=\"TocTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
-       else if (sTabName =="idx")\r
-               return "<a title=\"Index\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\" onmouseover=\"mouseOverIdx();\" onmouseout=\"mouseOutIdx();\"><img name=\"IndexTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
-       else if (sTabName == "fts")\r
-               return "<a title=\"Search\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\" onmouseover=\"mouseOverFts();\" onmouseout=\"mouseOutFts();\"><img name=\"FtsTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
-       else if (sTabName == "glo")\r
-               return "<a title=\"Glossary\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\"onmouseover=\"mouseOverGlo();\" onmouseout=\"mouseOutGlo();\"><img name=\"GloTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";\r
-       return "";\r
-}\r
-\r
-function mouseOverToc()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "toc")\r
-       {\r
-               sImg = getBtnImage("toc", 3);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("toc", 2);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["TocTab"].src = sImg;\r
-}\r
-\r
-function mouseOverIdx()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "idx")\r
-       {\r
-               sImg = getBtnImage("idx", 3);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("idx", 2);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["IndexTab"].src = sImg;\r
-}\r
-\r
-function mouseOverFts()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "fts")\r
-       {\r
-               sImg = getBtnImage("fts", 3);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("fts", 2);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["FtsTab"].src = sImg;\r
-}\r
-\r
-function mouseOverGlo()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "glo")\r
-       {\r
-               sImg = getBtnImage("glo", 3);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("glo", 2);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["GloTab"].src = sImg;\r
-}\r
-\r
-function mouseOutToc()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "toc")\r
-       {\r
-               sImg = getBtnImage("toc", 1);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("toc", 0);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["TocTab"].src = sImg;\r
-}\r
-\r
-function mouseOutIdx()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "idx")\r
-       {\r
-               sImg = getBtnImage("idx", 1);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("idx", 0);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["IndexTab"].src = sImg;\r
-}\r
-\r
-function mouseOutFts()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "fts")\r
-       {\r
-               sImg = getBtnImage("fts", 1);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("fts", 0);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["FtsTab"].src = sImg;\r
-}\r
-\r
-function mouseOutGlo()\r
-{\r
-       var sImg = "";\r
-       if (gPane[gnCurPane] == "glo")\r
-       {\r
-               sImg = getBtnImage("glo", 1);\r
-       }\r
-       else\r
-       {\r
-               sImg = getBtnImage("glo", 0);\r
-       }\r
-       if (sImg.length > 0)\r
-               document.images["GloTab"].src = sImg;\r
-}\r
-\r
-function getTabHTMLText(sTabName)\r
-{\r
-       if (sTabName == "toc")\r
-               return "<a class=\"TextTabToc\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">Contents</a>&nbsp;";\r
-       else if (sTabName =="idx")\r
-               return "<a class=\"TextTabIdx\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">Index</a>&nbsp;";\r
-       else if (sTabName == "fts")\r
-               return "<a class=\"TextTabFts\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">Search</a>&nbsp;";\r
-       else if (sTabName == "glo")\r
-               return "<a class=\"TextTabGlo\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">Glossary</a>&nbsp;";\r
-       return "";\r
-}\r
-\r
-function getImageMap()\r
-{\r
-       var sHTML = "<map name=\"tabSelectionMap\">";\r
-       for (var i = 0; i < gPane.length; i ++)\r
-       {\r
-               sHTML += getMapArea(gPane[i]);\r
-       }\r
-       sHTML += "</map>";\r
-       return sHTML;\r
-}\r
-\r
-function getMapArea(sTabName)\r
-{\r
-       if (sTabName == "toc")\r
-               return "<area title=\"Contents\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">";\r
-       else if (sTabName =="idx")\r
-               return "<area title=\"Index\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">";\r
-       else if (sTabName == "fts")\r
-               return "<area title=\"Search\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">";\r
-       else if (sTabName == "glo")\r
-               return "<area title=\"Glossary\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">";\r
-       return "";\r
-}\r
-\r
-function getBtnImage(sTabName, nStatus)\r
-{\r
-       if (sTabName == "toc")\r
-       {\r
-               if (nStatus == 0)\r
-                       return "whd_tab2.gif";\r
-               else if (nStatus == 1)\r
-                       return "whd_tab1.gif";\r
-               else if (nStatus == 2)\r
-                       return "";\r
-               else if (nStatus == 3)\r
-                       return "";\r
-       }\r
-       else if (sTabName =="idx")\r
-       {\r
-               if (nStatus == 0)\r
-                       return "whd_tab4.gif";\r
-               else if (nStatus == 1)\r
-                       return "whd_tab3.gif";\r
-               else if (nStatus == 2)\r
-                       return "";\r
-               else if (nStatus == 3)\r
-                       return "";\r
-       }\r
-       else if (sTabName == "fts")\r
-       {\r
-               if (nStatus == 0)\r
-                       return "whd_tab6.gif";\r
-               else if (nStatus == 1)\r
-                       return "whd_tab5.gif";\r
-               else if (nStatus == 2)\r
-                       return "";\r
-               else if (nStatus == 3)\r
-                       return "";\r
-       }\r
-       else if (sTabName == "glo")\r
-       {\r
-               if (nStatus == 0)\r
-                       return "whd_tab8.gif";\r
-               else if (nStatus == 1)\r
-                       return "whd_tab7.gif";\r
-               else if (nStatus == 2)\r
-                       return "";\r
-               else if (nStatus == 3)\r
-                       return "";\r
-       }\r
-       return "";\r
-}\r
-\r
-function getMapImage(sTabName)\r
-{\r
-       if (sTabName == "toc")\r
-               return "";\r
-       else if (sTabName =="idx")\r
-               return "";\r
-       else if (sTabName == "fts")\r
-               return "";\r
-       else if (sTabName == "glo")\r
-               return "";\r
-       return "";\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       window.onload = selectDefaultTab;\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       window.onunload = window_unload;\r
-       goTocFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
-       goIdxFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
-       goFtsFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
-       goGloFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
-\r
-       if (navigator.currentNavPen)\r
-               gsFirstPane = navigator.currentNavPen;\r
-\r
-       setBackgroundcolor("");\r
-       setBackground("whd_tab0.gif");\r
-       \r
-       \r
-       \r
-       \r
-         addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-\r
-       gnTabType = 0; // 0 button. // 1 text. // 2 image mapping.\r
-       TocWriteClassStyle();\r
-       var sHTML = "<body scroll=\"no\" bgcolor=\"#c0c0c0\"    background=\"whd_tab0.gif\" style=\"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0\">";\r
-       if (gPane.length > 0)\r
-       {\r
-               if (gnTabType == 0 || gnTabType == 1)\r
-               {\r
-                       sHTML += "<table width=\"100%\">";\r
-                       sHTML += "<tr>";\r
-                       sHTML += "<td>";\r
-                       sHTML += "<nobr>";\r
-                       sHTML += getTabsHTML();\r
-                       sHTML += "</nobr></td></tr>";\r
-                       sHTML += " <tr><td height=\"2\"></td></tr>";\r
-                       sHTML += "</table>";\r
-               }\r
-               else if (gnTabType == 2)\r
-               {\r
-                       sHTML += getImageMap();\r
-                       sHTML +="<img name=\"tabSelection\" src=\"" + getMapImage(gPane[0]) + "\" x-maintain-ratio=\"true\" usemap=\"#tabSelectionMap\"";\r
-                       if (gbIE)\r
-                               sHTML +=" style=\"border: none; width:px; height:px; float: none;\"";\r
-                       sHTML +=" width=\"\" height=\"\" border=\"0\">";\r
-               }\r
-       }\r
-       sHTML += "</body>";\r
-       document.write(sHTML);\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-//-->\r
-</script>\r
+<HTML>
+<HEAD>
+<TITLE>WebHelp Tabs Frame in Navigation Pane</TITLE>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<!-- WebHelp version 5.10 -->
+</HEAD>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2">
+<!--
+var gsBgColor="#c0c0c0"
+var gsBgImage="";
+var gnCurPane=0;
+var gsFirstPane="";
+var goTocFont=null;
+var goIdxFont=null;
+var goFtsFont=null;
+var goGloFont=null;
+var gPane=new Array();
+var gShowFirst=0;
+var gnTabType=0;
+
+function window_unload()
+{
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);
+       UnRegisterListener2(this,WH_MSG_SHOWIDX);
+       UnRegisterListener2(this,WH_MSG_SHOWFTS);
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);
+}
+
+
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Toc") goTocFont=vFont;
+       else if(sType=="Idx") goIdxFont=vFont;
+       else if(sType=="Fts") goFtsFont=vFont;
+       else if(sType=="Glo") goGloFont=vFont;
+}
+
+function TocWriteClassStyle()
+{
+       var sStyle="<STYLE TYPE='text/css'>";
+       sStyle+=".TextTabToc {"+getFontStyle(goTocFont)+"}";
+       sStyle+=".TextTabIdx {"+getFontStyle(goIdxFont)+"}";
+       sStyle+=".TextTabFts {"+getFontStyle(goFtsFont)+"}";
+       sStyle+=".TextTabGlo {"+getFontStyle(goGloFont)+"}";
+       sStyle+="A:hover {text-decoration:underline;}";
+       sStyle+="</STYLE>";
+       document.write(sStyle);
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       if(sBgColor!=null&&sBgColor.length>0)
+               gsBgColor=sBgColor;
+}
+
+function setBackground(sBgImage)
+{
+       if(sBgImage!=null&&sBgImage.length>0)
+               gsBgImage=sBgImage;
+}
+
+function selectToc()
+{
+       var oMessage=new whMessage(WH_MSG_SHOWTOC,this,1,null);
+       SendMessage(oMessage);
+}
+
+function selectIdx()
+{
+       var oMessage=new whMessage(WH_MSG_SHOWIDX,this,1,null);
+       SendMessage(oMessage);
+}
+function selectFts()
+{
+       var oMessage=new whMessage(WH_MSG_SHOWFTS,this,1,null);
+       SendMessage(oMessage);
+}
+
+function selectGlo()
+{
+       var oMessage=new whMessage(WH_MSG_SHOWGLO,this,1,null);
+       SendMessage(oMessage);
+}
+
+
+function onSendMessage(oMsg)
+{
+       if(oMsg)
+       {
+               var nMsgId=oMsg.nMessageId;
+               if(nMsgId==WH_MSG_SHOWTOC)
+               {
+                       setTimeout("showTabByName(\"toc\");",1);
+               }
+               else if(nMsgId==WH_MSG_SHOWIDX)
+               {
+                       setTimeout("showTabByName(\"idx\");",1);
+               }
+               else if(nMsgId==WH_MSG_SHOWFTS)
+               {
+                       setTimeout("showTabByName(\"fts\");",1);
+               }
+               else if(nMsgId==WH_MSG_SHOWGLO)
+               {
+                       setTimeout("showTabByName(\"glo\");",1);
+               }
+       }
+       return true;
+}
+
+function showTabByName(sTabName)
+{
+       for(var i=0;i<gPane.length;i++)
+       {
+               if(gPane[i]==sTabName)
+               {
+                       showTab(i);
+                       break;
+               }
+       }
+}
+
+function showTab(n)
+{
+       gnCurPane=n;
+       if(gnTabType==0)
+       {
+               if(n<gPane.length)
+               {
+                       if(document.images["TocTab"]&&document.images["TocTab"]!=null){
+                               if(gPane[n]=="toc")
+                                       document.images["TocTab"].src=getBtnImage("toc",1);
+                               else
+                                       document.images["TocTab"].src=getBtnImage("toc",0);
+                       }
+                       if(document.images["IndexTab"]&&document.images["IndexTab"]!=null){
+                               if(gPane[n]=="idx")
+                                       document.images["IndexTab"].src=getBtnImage("idx",1);
+                               else
+                                       document.images["IndexTab"].src=getBtnImage("idx",0);
+                       }
+                       if(document.images["FtsTab"]&&document.images["FtsTab"]!=null){
+                               if(gPane[n]=="fts")
+                                       document.images["FtsTab"].src=getBtnImage("fts",1);
+                               else
+                                       document.images["FtsTab"].src=getBtnImage("fts",0);
+                       }
+                       if(document.images["GloTab"]&&document.images["GloTab"]!=null){
+                               if(gPane[n]=="glo")
+                                       document.images["GloTab"].src=getBtnImage("glo",1);
+                               else
+                                       document.images["GloTab"].src=getBtnImage("glo",0);
+                       }
+               }
+       }
+       else if(gnTabType==1)
+       {
+       }
+       else if(gnTabType==2)
+       {
+               if(n<gPane.length)
+               {
+                       if(document.images["tabSelection"]!=null)
+                               document.images["tabSelection"].src=getMapImage(gPane[n]);
+               }
+       }
+}
+
+function addPane(sName)
+{
+       gPane[gPane.length]=sName;
+}
+
+function setShowPane(sName)
+{
+       if(gsFirstPane!="")
+               sName=gsFirstPane;
+       for(var i=0;i<gPane.length;i++)
+       {
+               if(gPane[i]==sName)
+                       gShowFirst=i;
+       }
+}
+
+function selectDefaultTab()
+{
+       showTab(gShowFirst);
+       if(document.body)
+       {
+               if(gsBgImage&&gsBgImage.length>0)
+               {
+                       document.body.background=gsBgImage;
+               }
+               if(gsBgColor&&gsBgColor.length>0)
+               {
+                       document.body.bgColor=gsBgColor;
+               }
+       }
+}
+
+function getTabsHTML()
+{
+       var sHTML="";
+       for(var i=0;i<gPane.length;i++)
+       {
+               if(gnTabType==0)
+                       sHTML+=getTabHTML(gPane[i]);
+               else if(gnTabType==1)
+               {
+                       if(sHTML.length>0)
+                       {
+                               sHTML+=getSeparator();
+                       }
+                       sHTML+=getTabHTMLText(gPane[i]);
+               }
+
+       }
+       return sHTML;
+}
+
+function getSeparator()
+{
+       var sSep="";
+       
+       return sSep;
+}
+
+function getTabHTML(sTabName)
+{
+       if (sTabName == "toc")
+               return "<a title=\"Contents\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\" onmouseover=\"mouseOverToc();\" onmouseout=\"mouseOutToc();\"><img name=\"TocTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
+       else if (sTabName =="idx")
+               return "<a title=\"Index\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\" onmouseover=\"mouseOverIdx();\" onmouseout=\"mouseOutIdx();\"><img name=\"IndexTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
+       else if (sTabName == "fts")
+               return "<a title=\"Search\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\" onmouseover=\"mouseOverFts();\" onmouseout=\"mouseOutFts();\"><img name=\"FtsTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
+       else if (sTabName == "glo")
+               return "<a title=\"Glossary\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\"onmouseover=\"mouseOverGlo();\" onmouseout=\"mouseOutGlo();\"><img name=\"GloTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
+       return "";
+}
+
+function mouseOverToc()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "toc")
+       {
+               sImg = getBtnImage("toc", 3);
+       }
+       else
+       {
+               sImg = getBtnImage("toc", 2);
+       }
+       if (sImg.length > 0)
+               document.images["TocTab"].src = sImg;
+}
+
+function mouseOverIdx()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "idx")
+       {
+               sImg = getBtnImage("idx", 3);
+       }
+       else
+       {
+               sImg = getBtnImage("idx", 2);
+       }
+       if (sImg.length > 0)
+               document.images["IndexTab"].src = sImg;
+}
+
+function mouseOverFts()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "fts")
+       {
+               sImg = getBtnImage("fts", 3);
+       }
+       else
+       {
+               sImg = getBtnImage("fts", 2);
+       }
+       if (sImg.length > 0)
+               document.images["FtsTab"].src = sImg;
+}
+
+function mouseOverGlo()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "glo")
+       {
+               sImg = getBtnImage("glo", 3);
+       }
+       else
+       {
+               sImg = getBtnImage("glo", 2);
+       }
+       if (sImg.length > 0)
+               document.images["GloTab"].src = sImg;
+}
+
+function mouseOutToc()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "toc")
+       {
+               sImg = getBtnImage("toc", 1);
+       }
+       else
+       {
+               sImg = getBtnImage("toc", 0);
+       }
+       if (sImg.length > 0)
+               document.images["TocTab"].src = sImg;
+}
+
+function mouseOutIdx()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "idx")
+       {
+               sImg = getBtnImage("idx", 1);
+       }
+       else
+       {
+               sImg = getBtnImage("idx", 0);
+       }
+       if (sImg.length > 0)
+               document.images["IndexTab"].src = sImg;
+}
+
+function mouseOutFts()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "fts")
+       {
+               sImg = getBtnImage("fts", 1);
+       }
+       else
+       {
+               sImg = getBtnImage("fts", 0);
+       }
+       if (sImg.length > 0)
+               document.images["FtsTab"].src = sImg;
+}
+
+function mouseOutGlo()
+{
+       var sImg = "";
+       if (gPane[gnCurPane] == "glo")
+       {
+               sImg = getBtnImage("glo", 1);
+       }
+       else
+       {
+               sImg = getBtnImage("glo", 0);
+       }
+       if (sImg.length > 0)
+               document.images["GloTab"].src = sImg;
+}
+
+function getTabHTMLText(sTabName)
+{
+       if (sTabName == "toc")
+               return "<a class=\"TextTabToc\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">Contents</a>&nbsp;";
+       else if (sTabName =="idx")
+               return "<a class=\"TextTabIdx\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">Index</a>&nbsp;";
+       else if (sTabName == "fts")
+               return "<a class=\"TextTabFts\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">Search</a>&nbsp;";
+       else if (sTabName == "glo")
+               return "<a class=\"TextTabGlo\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">Glossary</a>&nbsp;";
+       return "";
+}
+
+function getImageMap()
+{
+       var sHTML = "<map name=\"tabSelectionMap\">";
+       for (var i = 0; i < gPane.length; i ++)
+       {
+               sHTML += getMapArea(gPane[i]);
+       }
+       sHTML += "</map>";
+       return sHTML;
+}
+
+function getMapArea(sTabName)
+{
+       if (sTabName == "toc")
+               return "<area title=\"Contents\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">";
+       else if (sTabName =="idx")
+               return "<area title=\"Index\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">";
+       else if (sTabName == "fts")
+               return "<area title=\"Search\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">";
+       else if (sTabName == "glo")
+               return "<area title=\"Glossary\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">";
+       return "";
+}
+
+function getBtnImage(sTabName, nStatus)
+{
+       if (sTabName == "toc")
+       {
+               if (nStatus == 0)
+                       return "whd_tab2.gif";
+               else if (nStatus == 1)
+                       return "whd_tab1.gif";
+               else if (nStatus == 2)
+                       return "";
+               else if (nStatus == 3)
+                       return "";
+       }
+       else if (sTabName =="idx")
+       {
+               if (nStatus == 0)
+                       return "whd_tab4.gif";
+               else if (nStatus == 1)
+                       return "whd_tab3.gif";
+               else if (nStatus == 2)
+                       return "";
+               else if (nStatus == 3)
+                       return "";
+       }
+       else if (sTabName == "fts")
+       {
+               if (nStatus == 0)
+                       return "whd_tab6.gif";
+               else if (nStatus == 1)
+                       return "whd_tab5.gif";
+               else if (nStatus == 2)
+                       return "";
+               else if (nStatus == 3)
+                       return "";
+       }
+       else if (sTabName == "glo")
+       {
+               if (nStatus == 0)
+                       return "whd_tab8.gif";
+               else if (nStatus == 1)
+                       return "whd_tab7.gif";
+               else if (nStatus == 2)
+                       return "";
+               else if (nStatus == 3)
+                       return "";
+       }
+       return "";
+}
+
+function getMapImage(sTabName)
+{
+       if (sTabName == "toc")
+               return "";
+       else if (sTabName =="idx")
+               return "";
+       else if (sTabName == "fts")
+               return "";
+       else if (sTabName == "glo")
+               return "";
+       return "";
+}
+
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
+{
+       window.onload = selectDefaultTab;
+       RegisterListener2(this, WH_MSG_SHOWTOC);
+       RegisterListener2(this, WH_MSG_SHOWIDX);
+       RegisterListener2(this, WH_MSG_SHOWFTS);
+       RegisterListener2(this, WH_MSG_SHOWGLO);
+       window.onunload = window_unload;
+       goTocFont=new whFont("Arial","9pt","#000000","normal","normal","none");
+       goIdxFont=new whFont("Arial","9pt","#000000","normal","normal","none");
+       goFtsFont=new whFont("Arial","9pt","#000000","normal","normal","none");
+       goGloFont=new whFont("Arial","9pt","#000000","normal","normal","none");
+
+       if (navigator.currentNavPen)
+               gsFirstPane = navigator.currentNavPen;
+
+       setBackgroundcolor("");
+       setBackground("whd_tab0.gif");
+       
+       
+       
+       
+         addPane("toc","whtdhtml.htm");
+  addPane("fts","whfdhtml.htm");
+  addPane("glo","whgdhtml.htm");
+  setShowPane("toc");
+
+
+       gnTabType = 0; // 0 button. // 1 text. // 2 image mapping.
+       TocWriteClassStyle();
+       var sHTML = "<body scroll=\"no\" bgcolor=\"#c0c0c0\"    background=\"whd_tab0.gif\" style=\"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0\">";
+       if (gPane.length > 0)
+       {
+               if (gnTabType == 0 || gnTabType == 1)
+               {
+                       sHTML += "<table width=\"100%\">";
+                       sHTML += "<tr>";
+                       sHTML += "<td>";
+                       sHTML += "<nobr>";
+                       sHTML += getTabsHTML();
+                       sHTML += "</nobr></td></tr>";
+                       sHTML += " <tr><td height=\"2\"></td></tr>";
+                       sHTML += "</table>";
+               }
+               else if (gnTabType == 2)
+               {
+                       sHTML += getImageMap();
+                       sHTML +="<img name=\"tabSelection\" src=\"" + getMapImage(gPane[0]) + "\" x-maintain-ratio=\"true\" usemap=\"#tabSelectionMap\"";
+                       if (gbIE)
+                               sHTML +=" style=\"border: none; width:px; height:px; float: none;\"";
+                       sHTML +=" width=\"\" height=\"\" border=\"0\">";
+               }
+       }
+       sHTML += "</body>";
+       document.write(sHTML);
+}
+else
+       document.location.reload();
+
+if (window.gbNav6)
+{
+       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
+       SendMessage(oMsg);
+}
+//-->
+</script>
 </HTML>
\ No newline at end of file
index 3f9a036867847517b1eab4503a4bd378178c0bd5..354aa6ece3d858dddee0810e042bebb83e857b0a 100755 (executable)
Binary files a/doc/salome/gui/SMESH/whd_toc4.gif and b/doc/salome/gui/SMESH/whd_toc4.gif differ
index a1b0320fbc70b4a97c46741a29fd7720fec70f53..b1946d7571f42c588c6682d636c7538369ff9532 100755 (executable)
@@ -1,85 +1,85 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<topictemplate>\r
- <topic type="normal">\r
-  <add tag="head" pos="endbefore" >\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       ";\r
-         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
-         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
-         OutputInTopicNavBarDataButtons("addButton(\"%s\",%s, \"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",%d,%d);\r\n");\r
-       "\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       ";\r
-         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
-         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");\r
-       "\r
-               autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-"]]>\r
-  </add>\r
-  <add tag="body" pos="beginafter">\r
-    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");\r
-//-->\r
-</script>"]]>  \r
-  </add>\r
-  <add tag="body" pos="endbefore">\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");\r
-//-->\r
-</script>";\r
-OutputInTopicNavBarDataWebSearch.form();]]>    \r
-  </add>\r
- </topic>\r
- <topic type="frameset">\r
-  <add tag="head" pos="endbefore" >\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.setRelStartPage)\r
-{\r
-";\r
-  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
-  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
-  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
-"\r
-if (window.autoSync)\r
-       autoSync(1);\r
-}\r
-//-->\r
-</script>\r
-"]]>\r
-  </add>\r
- </topic>\r
-</topictemplate>\r
+<?xml version='1.0' encoding='ISO-8859-1' ?>
+<topictemplate>
+ <topic type="normal">
+  <add tag="head" pos="endbefore" >
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\">
+<!--
+if (window.gbWhTopic)
+{
+       if (window.setRelStartPage)
+       {
+       ";
+         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
+         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
+         OutputInTopicNavBarDataButtons("addButton(\"%s\",%s, \"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",%d,%d);\r\n");
+       "
+       }
+
+
+       if (window.setRelStartPage)
+       {
+       ";
+         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
+         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");
+       "
+               autoSync(";WH_USER_OPTIONS.autosync_toc;");
+               sendSyncInfo();
+               sendAveInfoOut();
+       }
+
+}
+else
+       if (window.gbIE4)
+               document.location.reload();
+//-->
+</script>
+"]]>
+  </add>
+  <add tag="body" pos="beginafter">
+    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");
+//-->
+</script>"]]>  
+  </add>
+  <add tag="body" pos="endbefore">
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
+<!--
+if (window.writeIntopicBar)
+       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");
+//-->
+</script>";
+OutputInTopicNavBarDataWebSearch.form();]]>    
+  </add>
+ </topic>
+ <topic type="frameset">
+  <add tag="head" pos="endbefore" >
+   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
+<script type=\"text/javascript\" language=\"javascript1.2\">
+<!--
+if (window.setRelStartPage)
+{
+";
+  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
+  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
+  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
+"
+if (window.autoSync)
+       autoSync(1);
+}
+//-->
+</script>
+"]]>
+  </add>
+ </topic>
+</topictemplate>
index 071ae6fc7e549e5e6662a61bb743f2341b1190c3..addf2622339fdf1538a21be965115e6dca70c19e 100755 (executable)
@@ -1,25 +1,25 @@
-//     WebHelp 5.10.001\r
-var gTEA = new Array();\r
-function aTE(sTopicTitle, sTopicURL)\r
-{\r
-       var len = gTEA.length;\r
-       gTEA[len] = new topicEntry(sTopicTitle, sTopicURL);\r
-}\r
-\r
-function topicEntry(sTopicTitle, sTopicURL)\r
-{\r
-       this.sTopicTitle = sTopicTitle;\r
-       this.sTopicURL = sTopicURL;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putFtsTData) \r
-               {\r
-                       parent.putFtsTData(gTEA);\r
-               }\r
-       }\r
-}\r
-\r
+//     WebHelp 5.10.001
+var gTEA = new Array();
+function aTE(sTopicTitle, sTopicURL)
+{
+       var len = gTEA.length;
+       gTEA[len] = new topicEntry(sTopicTitle, sTopicURL);
+}
+
+function topicEntry(sTopicTitle, sTopicURL)
+{
+       this.sTopicTitle = sTopicTitle;
+       this.sTopicURL = sTopicURL;
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this) {
+               if (parent.putFtsTData) 
+               {
+                       parent.putFtsTData(gTEA);
+               }
+       }
+}
+
 window.onload = window_OnLoad;
\ No newline at end of file
index 3ecd68c6c4673f13d3d163e42c700059f2d5008b..9e96f979dac0abf130f541dc750a26e3ce735fbb 100755 (executable)
@@ -1,84 +1,88 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whftdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
-//-->\r
-</script>\r
-<script language="javascript">\r
-<!--\r
-aTE("About viewing meshes","about_viewing_meshes.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
-aTE("Clipping","clipping.htm");\r
-aTE("Constructing Meshes","constructing_meshes.htm");\r
-aTE("Defining hypotheses TUI","defining_hypotheses_tui.htm");\r
-aTE("Deleting Groups","deleting_groups.htm");\r
-aTE("Display Entity","display_entity.htm");\r
-aTE("Extrusion","extrusion.htm");\r
-aTE("Extrusion along a path","extrusion_along_a_path.htm");\r
-aTE("About hypotheses","files/about_hypotheses.htm");\r
-aTE("About meshes","files/about_meshes.htm");\r
-aTE("About meshing algorithms","files/about_meshing_algorithms.htm");\r
-aTE("About quality controls","files/about_quality_controls.htm");\r
-aTE("Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
-aTE("Area of elements","files/area_of_elements.htm");\r
-aTE("Arithmetic 1D","files/arithmetic_1d.htm");\r
-aTE("Aspect Ratio","files/aspect_ratio.htm");\r
-aTE("Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
-aTE("Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
-aTE("Constructing meshes","files/constructing_meshes.htm");\r
-aTE("Constructing submeshes","files/constructing_submeshes.htm");\r
-aTE("Creating groups","files/creating_groups.htm");\r
-aTE("Cutting quadrangles","files/cutting_quadrangles.htm");\r
-aTE("Diagonal iversion of elements","files/diagonal_iversion_of_elements.htm");\r
-aTE("Displacing nodes","files/displacing_nodes.htm");\r
-aTE("Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
-aTE("Editing groups","files/editing_groups.htm");\r
-aTE("Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
-aTE("Introduction to SMESH","files/introduction_to_smesh.htm");\r
-aTE("Length of edges","files/length_of_edges.htm");\r
-aTE("Length from edges","files/max._element_area_hypothesis.htm");\r
-aTE("Non conform mesh allowed hypothesis","files/max._element_volume_hypothsis.htm");\r
-aTE("Merging nodes","files/merging_nodes.htm");\r
-aTE("Minimum angle","files/minimum_angle.htm");\r
-aTE("Non conform mesh allowed hypothesis","files/non_conform_mesh_allowed_hypothesis.htm");\r
-aTE("Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
-aTE("Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
-aTE("Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
-aTE("Rotation","files/rotation.htm");\r
-aTE("Running SMESH module","files/running_smesh_module.htm");\r
-aTE("Sewing meshes","files/sewing_meshes.htm");\r
-aTE("Skew","files/skew.htm");\r
-aTE("Smoothing","files/smoothing.htm");\r
-aTE("Symmetry","files/symmetry.htm");\r
-aTE("Taper","files/taper.htm");\r
-aTE("Translation","files/translation.htm");\r
-aTE("Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
-aTE("Uniting two triangles","files/uniting_two_triangles.htm");\r
-aTE("Using operations on groups","files/using_operations_on_groups.htm");\r
-aTE("Viewing mesh info","files/viewing_mesh_info.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("Modifying Meshes","modifying_meshes.htm");\r
-aTE("Pattern mapping","pattern_mapping.htm");\r
-aTE("Presentation","presentation.htm");\r
-aTE("Quality Controls","quality_controls.htm");\r
-aTE("Revolution","revolution.htm");\r
-aTE("Selection filter library","selection_filter_library.htm");\r
-aTE("Transforming Meshes","transforming_meshes.htm");\r
-aTE("Transparency","transparency.htm");\r
-aTE("Viewing Meshes","viewing_meshes.htm");\r
-\r
-//-->\r
-</script>\r
-</html>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whftdata.js"></script>
+<script language="javascript">
+<!--
+//-->
+</script>
+<script language="javascript">
+<!--
+aTE("About viewing meshes","about_viewing_meshes.htm");
+aTE("Adding Quadratic Nodes and Elements","adding_quadratic_nodes_and_elements.htm");
+aTE("Aspect ratio 3D","aspect_ratio_3d.htm");
+aTE("Borders at multi-connection","borders_at_multi-connection.htm");
+aTE("Borders at multiconnection 2D","borders_at_multiconnection_2d.htm");
+aTE("Clipping","clipping.htm");
+aTE("Constructing Meshes","constructing_meshes.htm");
+aTE("Defining hypotheses TUI","defining_hypotheses_tui.htm");
+aTE("Deleting Groups","deleting_groups.htm");
+aTE("Display Entity","display_entity.htm");
+aTE("Extrusion","extrusion.htm");
+aTE("Extrusion along a path","extrusion_along_a_path.htm");
+aTE("About hypotheses","files/about_hypotheses.htm");
+aTE("About meshes","files/about_meshes.htm");
+aTE("About meshing algorithms","files/about_meshing_algorithms.htm");
+aTE("About quality controls","files/about_quality_controls.htm");
+aTE("Adding nodes and elements","files/adding_nodes_and_elements.htm");
+aTE("Area of elements","files/area_of_elements.htm");
+aTE("Arithmetic 1D","files/arithmetic_1d.htm");
+aTE("Aspect Ratio","files/aspect_ratio.htm");
+aTE("Changing orientation of elements","files/changing_orientation_of_elements.htm");
+aTE("Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");
+aTE("Constructing meshes","files/constructing_meshes.htm");
+aTE("Constructing submeshes","files/constructing_submeshes.htm");
+aTE("Creating groups","files/creating_groups.htm");
+aTE("Cutting quadrangles","files/cutting_quadrangles.htm");
+aTE("Diagonal iversion of elements","files/diagonal_iversion_of_elements.htm");
+aTE("Displacing nodes","files/displacing_nodes.htm");
+aTE("Displaying nodes numbers","files/displaying_nodes_numbers.htm");
+aTE("Editing groups","files/editing_groups.htm");
+aTE("Importing and exporting meshes","files/importing_and_exporting_meshes.htm");
+aTE("Length of edges","files/length_of_edges.htm");
+aTE("Length from edges","files/max._element_area_hypothesis.htm");
+aTE("Non conform mesh allowed hypothesis","files/max._element_volume_hypothsis.htm");
+aTE("Merging nodes","files/merging_nodes.htm");
+aTE("Minimum angle","files/minimum_angle.htm");
+aTE("Non conform mesh allowed hypothesis","files/non_conform_mesh_allowed_hypothesis.htm");
+aTE("Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");
+aTE("Removing nodes and elements","files/removing_nodes_and_elements.htm");
+aTE("Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");
+aTE("Rotation","files/rotation.htm");
+aTE("Running SMESH module","files/running_smesh_module.htm");
+aTE("Sewing meshes","files/sewing_meshes.htm");
+aTE("Skew","files/skew.htm");
+aTE("Smoothing","files/smoothing.htm");
+aTE("Symmetry","files/symmetry.htm");
+aTE("Taper","files/taper.htm");
+aTE("Translation","files/translation.htm");
+aTE("Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");
+aTE("Uniting two triangles","files/uniting_two_triangles.htm");
+aTE("Using operations on groups","files/using_operations_on_groups.htm");
+aTE("Viewing mesh info","files/viewing_mesh_info.htm");
+aTE("VTK 3D Viewer","files/vtk_3d_viewer.htm");
+aTE("Warp","files/warp.htm");
+aTE("Free borders","free_borders.htm");
+aTE("Free_edges","free_edges.htm");
+aTE("Grouping Elements","grouping_elements.htm");
+aTE("Length","length.htm");
+aTE("Merge Elements","merge_elements.htm");
+aTE("mesh","mesh.htm");
+aTE("Modifying Meshes","modifying_meshes.htm");
+aTE("Pattern mapping","pattern_mapping.htm");
+aTE("Presentation","presentation.htm");
+aTE("Quality Controls","quality_controls.htm");
+aTE("Revolution","revolution.htm");
+aTE("Selection filter library","selection_filter_library.htm");
+aTE("Transforming Meshes","transforming_meshes.htm");
+aTE("Transparency","transparency.htm");
+aTE("Viewing Meshes","viewing_meshes.htm");
+aTE("Volume","volume.htm");
+
+//-->
+</script>
+</html>
index 1b6176ed03f3d16e5d47ca5d4f23fe469711db47..d243be45fa95bbde5f0ff5b55f8dc3ed607d5952 100755 (executable)
@@ -1,18 +1,18 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whfts.js"></script>\r
-<script language="javascript">\r
-<!--\r
-iWM("0","zero","whfwdata0.htm");\r
-\r
-iTM(0,65,"whftdata0.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whfts.js"></script>
+<script language="javascript">
+<!--
+iWM("0","zoom","whfwdata0.htm");
+
+iTM(0,69,"whftdata0.htm");
+
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index 2b6678690b7a693c0c61e06aba0adc9019bcc22e..54246f6938031837409f3ceb23041345784bd31a 100755 (executable)
@@ -1,40 +1,40 @@
-//     WebHelp 5.10.001\r
-var gaFileMapping = new Array();\r
-var gaFileTopicMapping = new Array();\r
-\r
-function fileMapping(sStartKey, sEndKey, sFileName)\r
-{\r
-       this.sStartKey = sStartKey;\r
-       this.sEndKey = sEndKey;\r
-       this.sFileName = sFileName;\r
-       this.aFtsKeys = null;\r
-}\r
-\r
-function fileTopicMapping(nIdBegin, nIdEnd, sFileName)\r
-{\r
-       this.nBegin = nIdBegin;\r
-       this.nEnd = nIdEnd;\r
-       this.sFileName = sFileName;\r
-       this.aTopics = null;\r
-}\r
-\r
-\r
-function iWM(sStartKey, sEndKey, sFileName)\r
-{\r
-       gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName);   \r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.ftsReady)\r
-       {\r
-               parent.ftsReady(gaFileMapping, gaFileTopicMapping);\r
-       }               \r
-}\r
-\r
-function iTM(nIdBegin, nIdEnd, sFileName)\r
-{\r
-       gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName);      \r
-}\r
-\r
-window.onload = window_OnLoad;\r
+//     WebHelp 5.10.001
+var gaFileMapping = new Array();
+var gaFileTopicMapping = new Array();
+
+function fileMapping(sStartKey, sEndKey, sFileName)
+{
+       this.sStartKey = sStartKey;
+       this.sEndKey = sEndKey;
+       this.sFileName = sFileName;
+       this.aFtsKeys = null;
+}
+
+function fileTopicMapping(nIdBegin, nIdEnd, sFileName)
+{
+       this.nBegin = nIdBegin;
+       this.nEnd = nIdEnd;
+       this.sFileName = sFileName;
+       this.aTopics = null;
+}
+
+
+function iWM(sStartKey, sEndKey, sFileName)
+{
+       gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName);   
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this && parent.ftsReady)
+       {
+               parent.ftsReady(gaFileMapping, gaFileTopicMapping);
+       }               
+}
+
+function iTM(nIdBegin, nIdEnd, sFileName)
+{
+       gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName);      
+}
+
+window.onload = window_OnLoad;
index e9e8bc6c16ab72dcc99c44244a617054c73ba1ba..8340b59d555c0e3bf005ea6eebb11b2b60779906 100755 (executable)
@@ -1,37 +1,37 @@
-//     WebHelp 5.10.001\r
-var gWEA = new Array();\r
-function aWE()\r
-{\r
-       var len = gWEA.length;\r
-       gWEA[len] = new ftsEntry(aWE.arguments);\r
-}\r
-\r
-function ftsEntry(fn_arguments) \r
-{\r
-       if (fn_arguments.length && fn_arguments.length >= 1) \r
-       {\r
-               this.sItemName = fn_arguments[0];\r
-               this.aTopics = null;\r
-               var nLen = fn_arguments.length;\r
-               if (nLen > 1) \r
-               {\r
-                       this.aTopics = new Array();\r
-                       for (var i = 0; i < nLen - 1; i ++ )\r
-                       {\r
-                               this.aTopics[i] = fn_arguments[i + 1];\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putFtsWData) \r
-               {\r
-                       parent.putFtsWData(gWEA);\r
-               }\r
-       }\r
-}\r
-\r
+//     WebHelp 5.10.001
+var gWEA = new Array();
+function aWE()
+{
+       var len = gWEA.length;
+       gWEA[len] = new ftsEntry(aWE.arguments);
+}
+
+function ftsEntry(fn_arguments) 
+{
+       if (fn_arguments.length && fn_arguments.length >= 1) 
+       {
+               this.sItemName = fn_arguments[0];
+               this.aTopics = null;
+               var nLen = fn_arguments.length;
+               if (nLen > 1) 
+               {
+                       this.aTopics = new Array();
+                       for (var i = 0; i < nLen - 1; i ++ )
+                       {
+                               this.aTopics[i] = fn_arguments[i + 1];
+                       }
+               }
+       }
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this) {
+               if (parent.putFtsWData) 
+               {
+                       parent.putFtsWData(gWEA);
+               }
+       }
+}
+
 window.onload = window_OnLoad;
\ No newline at end of file
index dfe30b81710ea4a844c883b0b4de2f9b02b9e3d6..edb094244806da0d5087289093011b70e7ff8c30 100755 (executable)
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whfwdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
-//-->\r
-</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("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("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("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("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("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
-\r
-//-->\r
-</script>\r
-</html>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whfwdata.js"></script>
+<script language="javascript">
+<!--
+//-->
+</script>
+<script language="javascript">
+<!--
+aWE("0",13,18,5,6,24,7,56,60,63,42,66,68);
+aWE("001",66);
+aWE("0d",13);
+aWE("1",16,1,17,18,19,2,20,22,6,25,7,26,27,28,29,10,11,56,30,31,34,35,60,61,63,38,39,64,42,43,44,46,66,48,49,50,68,69,53);
+aWE("10",6,7,56,60,66,68);
+aWE("100",6,7,56,60,63,66);
+aWE("109",66);
+aWE("11",60);
+aWE("113",66);
+aWE("1135",60);
+aWE("1145",60);
+aWE("1147",60);
+aWE("1159",60);
+aWE("12",60,66);
+aWE("13",60);
+aWE("14",60);
+aWE("15",60,63,66);
+aWE("150",66);
+aWE("16",60);
+aWE("17",60);
+aWE("18",60,63);
+aWE("180",60);
+aWE("19",60);
+aWE("1d",12,13,14,15,18,22,7,10,11,59,36,63,64);
+aWE("1e",60,63);
+aWE("2",16,1,17,19,2,20,22,6,25,7,26,27,28,29,10,11,30,31,35,60,61,63,38,39,64,42,43,44,46,66,48,49,50,68,69,53);
+aWE("20",6,7,56,60,63,66,68);
+aWE("200",6,7,60);
+aWE("21",60,66);
+aWE("23",60,66);
+aWE("2381",60);
+aWE("2382",60);
+aWE("2383",60);
+aWE("2384",60);
+aWE("2385",60);
+aWE("2386",60);
+aWE("2387",60);
+aWE("2388",60);
+aWE("2389",60);
+aWE("2390",60);
+aWE("2391",60);
+aWE("2392",60);
+aWE("2393",60);
+aWE("2394",60);
+aWE("2395",60);
+aWE("2396",60);
+aWE("2397",60);
+aWE("2398",60);
+aWE("2399",60);
+aWE("24",66);
+aWE("240",60);
+aWE("2400",60);
+aWE("2401",60);
+aWE("2402",60);
+aWE("2403",60);
+aWE("2404",60);
+aWE("2405",60);
+aWE("2406",60);
+aWE("2407",60);
+aWE("2408",60);
+aWE("2409",60);
+aWE("2410",60);
+aWE("2411",60);
+aWE("2412",60);
+aWE("2413",60);
+aWE("2414",60);
+aWE("2415",60);
+aWE("2416",60);
+aWE("2417",60);
+aWE("2418",60);
+aWE("2419",60);
+aWE("2420",60);
+aWE("2421",60);
+aWE("2422",60);
+aWE("245",60);
+aWE("246",60);
+aWE("25",66);
+aWE("255",60);
+aWE("2d",12,13,14,15,17,19,4,22,6,7,10,11,32,31,59,35,60,61,63,64,42,66,53);
+aWE("3",13,17,19,20,22,6,25,26,27,10,11,56,30,60,61,63,38,39,64,42,43,44,66,48,49,68,53);
+aWE("30",7,56,60,63,66);
+aWE("300",6,7);
+aWE("3128",60);
+aWE("321",60);
+aWE("3265",60);
+aWE("3402",60);
+aWE("3658",60);
+aWE("38",60,66);
+aWE("39",60);
+aWE("3d",12,13,14,15,0,16,1,19,2,20,22,24,25,7,8,26,27,28,10,11,59,33,63,38,39,64,42,44,48,49,69,52);
+aWE("3e",63);
+aWE("3rd",13);
+aWE("3x3",60);
+aWE("4",13,17,19,22,6,25,7,27,11,30,60,61,63,42,43,46,66,53);
+aWE("40",60);
+aWE("405",60);
+aWE("406",60);
+aWE("45",60,66);
+aWE("47",60);
+aWE("492",60);
+aWE("493",60);
+aWE("5",5,60,63,66);
+aWE("50",7,60,66);
+aWE("502",60);
+aWE("503",60);
+aWE("58",66);
+aWE("5th",13);
+aWE("6",2,6,7,56,60,66,68);
+aWE("60",56,60);
+aWE("642",60);
+aWE("66632",60);
+aWE("69",66);
+aWE("7",6,7,56,60,63);
+aWE("70",7,63,66);
+aWE("700",60);
+aWE("71",66);
+aWE("72",66);
+aWE("73",60);
+aWE("77",60);
+aWE("8",56,60,66);
+aWE("800",6,7);
+aWE("814",60);
+aWE("850",60);
+aWE("859",60);
+aWE("864",60);
+aWE("89",66);
+aWE("9",60,66);
+aWE("90",66);
+aWE("900",6,7);
+aWE("91",66);
+aWE("911",60);
+aWE("92",66);
+aWE("931",60);
+aWE("932",60);
+aWE("95",63);
+aWE("950",60);
+aWE("9999",24);
+aWE("a_mesh",60);
+aWE("aa",60);
+aWE("abl",16,1,52);
+aWE("abord",63);
+aWE("aborder",63);
+aWE("abov",11,60,44);
+aWE("abox",63);
+aWE("absent",50);
+aWE("absolute",67);
+aWE("abut",18);
+aWE("acces",0,65,52);
+aWE("accord",15,17,18,19,2,31,35,61,43,44,46,69,53);
+aWE("account",12,61);
+aWE("acomp",63,66);
+aWE("acompobj",66);
+aWE("actual",36);
+aWE("ad",16,1,20,24,25,56,60,48,50);
+aWE("add",16,1,20,22,6,24,25,7,29,11,56,60,63,65,48);
+aWE("addedg",60);
+aWE("addfac",60);
+aWE("addhypothesi",6,7,56,60,63,68);
+aWE("addition",25,59,60);
+aWE("additional",12,13,22,7,36,61,41,65,44);
+aWE("addnod",60);
+aWE("addobject",56);
+aWE("addpolygonalfac",60);
+aWE("addpolyhedralvolum",60);
+aWE("addtostudy",6,7,56,60,63,66,68);
+aWE("addtostudyinfath",6,7,56,60,68);
+aWE("addvolum",60);
+aWE("adjacent",27,35,36,38,42,48);
+aWE("adjust",44);
+aWE("adjustabl",36);
+aWE("advanc",0,51);
+aWE("afilt",56,63);
+aWE("afiltermgr",56,60,63);
+aWE("afunctor",56,60,63);
+aWE("ageomgroup1",56);
+aWE("ageomgroup2",56);
+aWE("agroup",56,63);
+aWE("agroup1",56);
+aWE("agroup2",56);
+aWE("agroup3",56);
+aWE("agroup4",56);
+aWE("agroup5",56);
+aWE("agroupelemid",56);
+aWE("agroupf",63);
+aWE("agroupmain",56);
+aWE("agroupn",63);
+aWE("agroupr",56);
+aWE("agrouptool",56);
+aWE("ai",18);
+aWE("al",60);
+aWE("algo",6,7,60,66);
+aWE("algo1",6,63,68);
+aWE("algo2",6,63,68);
+aWE("algorithm",12,13,14,15,0,17,22,6,23,7,11,56,32,59,33,61,37,42,66);
+aWE("allow",12,0,1,18,20,23,24,25,30,32,58,34,59,36,61,40,42,44,45,47,48,50,52);
+aWE("along",10,11,60,61,44,52);
+aWE("alternativ",22);
+aWE("alternative",0,1);
+aWE("alway",44);
+aWE("amesheditor",60,66);
+aWE("amount",3);
+aWE("analytic",18);
+aWE("aneditor",60,63,66);
+aWE("angl",15,5,25,11,59,35,60,63,64,40,43,48,53);
+aWE("angle180",66);
+aWE("angle45",60);
+aWE("angular",11);
+aWE("angularity",11);
+aWE("anid",56,63);
+aWE("anodeid1",60);
+aWE("anodeid2",60);
+aWE("anodeid3",60);
+aWE("anodeid4",60);
+aWE("anoth",60,36);
+aWE("any",13,1,22,24,27,11,56,61,44);
+aWE("ap",14,16,1,17,19,2,20,5,22,24,25,7,8,26,27,29,10,11,31,58,59,35,60,61,37,38,39,64,42,43,44,45,46,48,49,50,69,53);
+aWE("apparent",22);
+aWE("appear",0,16,1,20,22,23,25,26,27,29,10,11,34,61,38,39,64,40,45,47,48,49,50);
+aWE("append",60,63);
+aWE("appli",17,18,19,2,22,23,32,31,35,33,36,37,65,43,44,46,69,53);
+aWE("applicabl",19,65);
+aWE("application",15,61);
+aWE("apply",12,0,22,23,24);
+aWE("applytomeshfac",60);
+aWE("appropriat",22);
+aWE("approximate",18);
+aWE("apredicat",56,63);
+aWE("arc",7,60,66);
+aWE("arcsin",53);
+aWE("area",12,15,17,7,56,32,59,33,63,44,46,52);
+aWE("arithmetic",12,18,6,7,59,66);
+aWE("arithmetic1d",6,7,66,68);
+aWE("around",5,11,64);
+aWE("array_of_nodes_group",66);
+aWE("asmeshgroup1",56);
+aWE("asmeshgroup2",56);
+aWE("aspect",15,19,2,59,63,44);
+aWE("assign",18,22,24,7,37,53);
+aWE("associat",16,28,38);
+aWE("attribut",24);
+aWE("auto",5);
+aWE("automatic",12,18,22,59,61);
+aWE("automatical",0,18,20,22,25,27,48);
+aWE("availabl",42,52);
+aWE("averag",12,18,7,32,59,61,53);
+aWE("ax",52);
+aWE("axi",10,64,40,45,52,53);
+aWE("axisstruct",60,66);
+aWE("axisxyz",60,66);
+aWE("background",0);
+aWE("bar",15);
+aWE("bas",12,17,7,11,59,53);
+aWE("basi",13,22,23);
+aWE("basic",12,0);
+aWE("becom",61);
+aWE("befor",65,66);
+aWE("begin",18,42);
+aWE("belong",3,4,24,54,55,42,50);
+aWE("below",60);
+aWE("berder",42);
+aWE("bet",19);
+aWE("binary",65);
+aWE("bisect",53);
+aWE("bisector",53);
+aWE("bit",65);
+aWE("black",0);
+aWE("block",6,7);
+aWE("blu",3);
+aWE("bmp",0,52);
+aWE("bog",18);
+aWE("boolean",50);
+aWE("bord",42,66);
+aWE("border",15,3,4,54,55,59,63,42,66);
+aWE("both",0,11,44,50);
+aWE("bottom",60,41);
+aWE("bound",13,61);
+aWE("boundari",61);
+aWE("boundary",12,24,61,42,44);
+aWE("box",14,16,1,18,20,22,6,23,25,7,26,27,29,10,11,56,30,58,34,61,63,38,39,64,40,41,65,42,44,45,66,47,48,49,50,51,68);
+aWE("box_1",60);
+aWE("box_id",6,7);
+aWE("box1",66);
+aWE("box2",66);
+aWE("broken",1,36);
+aWE("brown",24);
+aWE("brows",0,16,1,21,22,23,24,8,29,62,38,39,65,51);
+aWE("build",7,10,32,60,36,61,64);
+aWE("built",19,23,61,44);
+aWE("button",16,1,17,19,2,20,5,22,23,24,25,8,26,27,29,10,11,30,31,35,61,37,38,39,64,40,65,42,43,44,45,46,47,48,49,50,51,69,52,53);
+aWE("cad",13);
+aWE("cal",61);
+aWE("calculat",15,19,2,32,46);
+aWE("calculation",12,17,31,35);
+aWE("careful",38);
+aWE("cas",16,22,6,7,27,60,61,66,51);
+aWE("cel",24,38,49);
+aWE("cent",11,44,52);
+aWE("centroid",44);
+aWE("centroidal",44);
+aWE("centroidal_smooth",60);
+aWE("certain",24,61);
+aWE("chang",0,18,20,6,27,60,36,37,68);
+aWE("characteristic",15);
+aWE("characteriz",13);
+aWE("check",24,42,52);
+aWE("checkbox",16,65,47);
+aWE("choic",12,22,61);
+aWE("choos",16,1,17,19,2,20,21,24,25,8,26,27,9,28,10,11,30,31,34,35,61,38,39,64,40,41,65,42,43,45,46,47,48,49,69,53);
+aWE("chosen",19,25,32,33,48);
+aWE("circl",11,60,66);
+aWE("circlemesh",60,66);
+aWE("clear",65);
+aWE("click",0,16,1,17,19,2,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,31,35,61,62,37,38,39,64,41,65,42,43,44,46,48,49,50,51,69,52,53);
+aWE("clip",0,5);
+aWE("clos",13,19,8,42);
+aWE("co",60,42);
+aWE("coars",18);
+aWE("coincid",58);
+aWE("coincident",58,34);
+aWE("color",15,0,17,19,2,24,31,35,43,46,69,52,53);
+aWE("combin",9,31,62,65);
+aWE("common",26,65,49);
+aWE("compar",18,42);
+aWE("complete",58);
+aWE("complex",1);
+aWE("component",59,41);
+aWE("compos",12,13,14,15,0,18,2,28,32,33,43);
+aWE("compound",6,7);
+aWE("comput",0,18,22,6,7,56,60,61,63,42,66,68);
+aWE("computation",22,23,7,56,60);
+aWE("concept",36);
+aWE("condition",12,24);
+aWE("confirm",20,25,29,38,44,48,50);
+aWE("confirmation",24);
+aWE("conform",12,36,42,66);
+aWE("conformity",19);
+aWE("connect",18,25,44);
+aWE("connection",13,15,3,4,59,63);
+aWE("connectivity",61);
+aWE("consid",19,22);
+aWE("consider",13,19,2,42);
+aWE("consist",15,1,17,18,19,3,4,21,22,23,24,54,55,56,32,31,35,33,46);
+aWE("consol",51);
+aWE("constant",18);
+aWE("construct",18,21,22,6,23,37);
+aWE("construction",18,22,6,23);
+aWE("contain",13,14,20,22,23,24,25,30,32,61,44,48);
+aWE("content",8,52);
+aWE("continu",44);
+aWE("contour",13,42);
+aWE("contrast",48);
+aWE("control",15,0,17,19,2,3,4,25,54,55,57,31,59,35,63,43,46,48,69,53);
+aWE("converg",44);
+aWE("conversion",18);
+aWE("coordinat",13,16,27,61,52);
+aWE("copy",40,65,45,66,47);
+aWE("corn",1,53);
+aWE("corner",25,44,53);
+aWE("correspond",13,15,30,60,61,63,65,42,47);
+aWE("cosal",60);
+aWE("could",13,16);
+aWE("count",42);
+aWE("counterclockwis",61);
+aWE("cours",22);
+aWE("creat",13,14,0,16,1,18,5,22,6,23,24,7,29,56,34,59,60,36,61,63,37,40,65,45,66,47,50,53);
+aWE("createanddisplaygo",7);
+aWE("createarea",56,63);
+aWE("createaspectratio",63);
+aWE("createaspectratio3d",63);
+aWE("createequalto",56,63);
+aWE("createfilt",56,63);
+aWE("createfiltermanag",56,60,63);
+aWE("createfreeborder",63);
+aWE("createfreeedg",63);
+aWE("creategroup",56,60,63);
+aWE("creategroupfromgeom",56);
+aWE("createhypothesi",6,7,56,60,63,68);
+aWE("createlength",63);
+aWE("createlength2d",63);
+aWE("createlessthan",56,63);
+aWE("createmesh",6,7,56,60,63,68);
+aWE("createminimumangl",60,63);
+aWE("createmorethan",56,63);
+aWE("createmulticonnection",63);
+aWE("createmulticonnection2d",63);
+aWE("createskew",63);
+aWE("createtap",63);
+aWE("createvolume3d",63);
+aWE("createwarp",63);
+aWE("creation",13,36,61,37,50);
+aWE("criteria",59,65);
+aWE("criterion",17,19,2,24,25,56,57,31,35,63,65,43,46,48,69,53);
+aWE("cros",0,5,53);
+aWE("cubic",14);
+aWE("current",20,22,25,37,65,42,48);
+aWE("curv",13,18,11);
+aWE("curvilinear",18,11);
+aWE("cut",18,6,25,7,56,60,66,50);
+aWE("cutgroup",56);
+aWE("cylind",60);
+aWE("d",18);
+aWE("deal",13);
+aWE("def",60);
+aWE("default",0,22,11,62,65,67,52);
+aWE("defin",13,14,1,18,19,5,22,6,23,24,7,11,60,36,61,42,66,52);
+aWE("definit",13,15,18,20,21,24,25,59,37,38,48);
+aWE("definition",0,18,32,33);
+aWE("deflection",12,18,7,59);
+aWE("deflection1d",7);
+aWE("deform",52);
+aWE("degre",19,5);
+aWE("delet",8,55,60,38,65);
+aWE("deletediag",60);
+aWE("deletion",38,49);
+aWE("density",18);
+aWE("depend",12,13,22,32,33);
+aWE("describ",13,61);
+aWE("description",61);
+aWE("desirabl",34);
+aWE("desktop",41);
+aWE("destin",13,15,59);
+aWE("detail",12,0);
+aWE("detect",34);
+aWE("dh",60);
+aWE("diagonal",25,26,60,46);
+aWE("dialog",14,16,1,18,20,22,23,25,26,27,29,10,11,30,58,34,61,38,39,64,40,42,44,45,47,48,49,50);
+aWE("diamet",19);
+aWE("dif",1);
+aWE("differ",18);
+aWE("differenc",11,42);
+aWE("different",12,16,24,37,65,42);
+aWE("dimension",13,2,22,10,64,51);
+aWE("direct",13,42,44);
+aWE("direction",61,53);
+aWE("dirstruct",60,66);
+aWE("discretisation",6,7);
+aWE("discretiz",10,64);
+aWE("discretization",13,14);
+aWE("displac",27);
+aWE("display",15,0,1,17,19,2,3,20,22,23,24,25,7,27,9,28,54,31,35,62,43,44,46,48,51,69,52,53);
+aWE("distanc",18,5,61,52,53);
+aWE("distinguish",24);
+aWE("distortion",44);
+aWE("distribution",18);
+aWE("divid",18);
+aWE("do",16);
+aWE("domain",61);
+aWE("don",13,22,36,52);
+aWE("doubl",1);
+aWE("downward",52);
+aWE("dr",60);
+aWE("drag",52);
+aWE("drawn",52);
+aWE("dump",0,52);
+aWE("dx",60);
+aWE("dy",60);
+aWE("e",19,22,23,25,61,42,48);
+aWE("easi",21);
+aWE("edg",12,13,14,15,0,16,1,18,19,3,4,21,22,6,24,25,7,26,27,9,11,54,55,56,57,32,31,59,60,36,61,63,65,42,44,66,48,49,68,53);
+aWE("edgeslist",66);
+aWE("edgex111",6,7);
+aWE("edgex112",6,7);
+aWE("edgex121",6,7);
+aWE("edgex122",6,7);
+aWE("edgey11",6,7);
+aWE("edgey12",6,7);
+aWE("edgey21",6,7);
+aWE("edgey22",6,7);
+aWE("edgez111",6,7);
+aWE("edgez121",6,7);
+aWE("edgez211",6,7);
+aWE("edgez221",6,7);
+aWE("edit",6,8,29,56,34,37);
+aWE("effect",48);
+aWE("eith",61,42);
+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,55,56,32,31,58,59,35,60,33,36,61,63,38,39,64,40,65,42,43,44,45,46,66,47,48,50,51,69,53);
+aWE("els",7,56,60,61);
+aWE("enabl",65);
+aWE("encapsulat",23);
+aWE("encounter",61);
+aWE("end",12,18,7,59,36,65,42,47);
+aWE("enough",42);
+aWE("ent",24,26,27,30,49);
+aWE("entiti",13,14);
+aWE("entity",13,0,9,65);
+aWE("equal",18,32,61,65,42,44);
+aWE("equidistant",18);
+aWE("equilateral",19);
+aWE("eras",0);
+aWE("etc",15,2,25,48);
+aWE("even",22,32);
+aWE("eventual",61);
+aWE("every",53);
+aWE("everyth",22);
+aWE("exampl",13,2,22,24,61,50);
+aWE("exce",18);
+aWE("exceed",44);
+aWE("except",42,52);
+aWE("exist",12,20,24,25,29,61,65,48);
+aWE("existenc",22);
+aWE("exponent",18);
+aWE("export",0,6,30,59,52);
+aWE("exportation",30);
+aWE("exportm",6);
+aWE("extend",52,53);
+aWE("extreme",18);
+aWE("extremiti",5);
+aWE("extrud",10,11,60,64);
+aWE("extrusion",10,11,60,66);
+aWE("extrusionalongpathobject",60,66);
+aWE("extrusionsweepobject",60);
+aWE("f",18,7);
+aWE("fac",12,13,14,0,16,18,2,3,21,22,6,23,24,7,9,54,56,32,59,60,36,61,63,65,42,66,51,68,53);
+aWE("face_1",60);
+aWE("face_2",60);
+aWE("face1",7,60,66);
+aWE("facelist",63);
+aWE("facesrotat",60);
+aWE("facessmooth",60);
+aWE("facestritoquad",60);
+aWE("facex11",6,7);
+aWE("facex21",6,7);
+aWE("facey111",6,7);
+aWE("facey121",6,7);
+aWE("facez11",6,7);
+aWE("facez12",6,7);
+aWE("factor",18,25);
+aWE("factoryserv",6,7,56,60,63,68);
+aWE("fail",60);
+aWE("far",42);
+aWE("fashion",11);
+aWE("fast",44);
+aWE("featur",24);
+aWE("field",16,1,20,24,26,27,39,65,42,44,48,49);
+aWE("fifth",42);
+aWE("fil",30,61,65);
+aWE("fill",63,39,42);
+aWE("filt",20,24,25,65,48);
+aWE("filter",24,65);
+aWE("fin",18);
+aWE("find",30,61,42);
+aWE("findcoincidentnod",66);
+aWE("findorloadcomponent",6,7,56,60,63,68);
+aWE("finenes",18);
+aWE("first",1,18,22,56,60,36,61,42);
+aWE("fit",52);
+aWE("fiv",60);
+aWE("fix",13,6,7,44,66);
+aWE("flag",61);
+aWE("fold",22,23);
+aWE("follow",12,13,14,16,1,2,20,22,23,24,25,26,27,28,29,10,11,34,61,38,39,64,40,42,44,45,47,48,49,50,51);
+aWE("font",52);
+aWE("form",1,26,29,61,42);
+aWE("format",0,30,59,52);
+aWE("formula",18,19,2);
+aWE("four",13,19,53);
+aWE("fourth",60);
+aWE("fram",52);
+aWE("fre",13,15,54,55,59,63,42,44,66);
+aWE("function",13);
+aWE("functionaliti",52);
+aWE("functionality",22,30,58,34,42,52);
+aWE("futur",18);
+aWE("g",23);
+aWE("gaus",52);
+aWE("generat",12,13,15,18,22,59,36,61);
+aWE("generation",10,61,64);
+aWE("geom",13,7,59,60);
+aWE("geometric",13,15,7);
+aWE("geometrical",12,13,14,18,22,23,24,32,59,33,61,37,40,44,45,47,51);
+aWE("geometry",23,24,56,60,44);
+aWE("geompy",6,7,56,60,63,66,68);
+aWE("get",0,5,22,7,11,61,51);
+aWE("getalgorithm",60);
+aWE("getborder",63);
+aWE("getelementsid",56,63);
+aWE("geterrorcod",60);
+aWE("getid",6);
+aWE("getlistofid",56);
+aWE("getmaxelementarea",6,7);
+aWE("getmaxelementvolum",6,7);
+aWE("getmesh",60,66);
+aWE("getmesheditor",60,63,66);
+aWE("getnam",6,7);
+aWE("getnumberofsegment",6,7);
+aWE("getpattern",60);
+aWE("gg",7);
+aWE("giv",65,51);
+aWE("given",18,32,42);
+aWE("global",52);
+aWE("go",60);
+aWE("good",44);
+aWE("got",61);
+aWE("graduat",52);
+aWE("graphical",0);
+aWE("great",18,52);
+aWE("greatest",19,2);
+aWE("green",24);
+aWE("group",20,21,24,25,8,29,11,56,34,59,60,63,65,44,47,48,50,51);
+aWE("group1",50);
+aWE("group12",50);
+aWE("group12a",50);
+aWE("group12b",50);
+aWE("group2",50);
+aWE("grouprotat",60);
+aWE("groupsmooth",60);
+aWE("groupsofnod",66);
+aWE("grouptritoquad",60);
+aWE("h",53);
+aWE("half",19,53);
+aWE("halv",5);
+aWE("hav",19,32,36,61);
+aWE("hedron",60);
+aWE("height",53);
+aWE("helical",11);
+aWE("help",15);
+aWE("henc",61);
+aWE("her",61);
+aWE("hexa",6,7);
+aWE("hexa_3d",7);
+aWE("hexa3d",7);
+aWE("hexagon",11);
+aWE("hexahedral",14,6,7);
+aWE("hexahedralization",22);
+aWE("hexahedrical",6,7);
+aWE("hexahedron",13,14,16,2,7,60,33,68);
+aWE("hh",60);
+aWE("hid",0,52);
+aWE("high",13);
+aWE("highlight",3,4,20,24,25,54,55,48);
+aWE("hmax",19);
+aWE("hol",55);
+aWE("hold",61);
+aWE("how",11,37);
+aWE("hyp",23);
+aWE("hyp1",6,63,68);
+aWE("hyp2",6,63,68);
+aWE("hyp3",6,68);
+aWE("hyp4",6,68);
+aWE("hyparea",6,7);
+aWE("hypnbseg",6,7,56);
+aWE("hypothes",12,0,18,22,23,7,56,32,59,36,37);
+aWE("hypothesi",12,18,22,6,7,56,32,33,36,37,66,68);
+aWE("hypvolum",6,7);
+aWE("i",19,22,25,56,60,61,63,42,48);
+aWE("icon",29,38,41);
+aWE("id",0,18,20,24,25,26,27,28,10,11,64,42,44,48,49);
+aWE("id_arc",7);
+aWE("id_circl",60,66);
+aWE("id_fac",7);
+aWE("id_face1",7,60,66);
+aWE("idbox",6,7,56,63,68);
+aWE("idcomp",66);
+aWE("idea",11);
+aWE("idedg",6,68);
+aWE("idfac",56);
+aWE("idtoobject",6,63,66,68);
+aWE("if",13,16,5,22,6,23,7,10,11,56,32,60,36,61,37,38,64,65,42,44,48,52);
+aWE("ii",60);
+aWE("imag",0,11,52);
+aWE("imp",13);
+aWE("import",6,7,56,30,59,60,63,66,68);
+aWE("importation",30);
+aWE("importcomponentgui",6,7,63);
+aWE("includ",13,51);
+aWE("increas",6,7,66);
+aWE("index",24,61);
+aWE("indic",61);
+aWE("indicat",53);
+aWE("info",0,51,68);
+aWE("information",13,0,29,51,68);
+aWE("init",6,7,63);
+aWE("init_geom",60);
+aWE("initial",11,65,45,50);
+aWE("initializ",6,7,56);
+aWE("input",1,18);
+aWE("inscrib",19);
+aWE("insert",65,42);
+aWE("instead",36,61);
+aWE("intact",8);
+aWE("integ",24);
+aWE("intend",42);
+aWE("interest",13);
+aWE("intermediat",42);
+aWE("internal",61);
+aWE("intersect",61,50);
+aWE("intersectgroup",56);
+aWE("intersection",56,61,50);
+aWE("introduc",12,24,36);
+aWE("introduction",59);
+aWE("invers",13,26,60);
+aWE("inversediag",60);
+aWE("inversion",26,60);
+aWE("invisibl",67);
+aWE("isdon",60);
+aWE("iso",61);
+aWE("isolin",61);
+aWE("isometric",52);
+aWE("isplanarfac",7,60,66);
+aWE("item",16,1,20,21,25,26,27,29,10,11,30,34,61,39,64,40,42,44,45,47,48,49,50);
+aWE("iteration",11,44);
+aWE("iterativ",44);
+aWE("join",43);
+aWE("jpeg",0,52);
+aWE("jpg",0,52);
+aWE("just",1,61,38);
+aWE("k",18,19);
+aWE("keep",11,44,45);
+aWE("key",61);
+aWE("keyboard",25);
+aWE("know",61);
+aWE("ko",60);
+aWE("l",53);
+aWE("label",52);
+aWE("laplacian",44);
+aWE("last",1,18,36,42);
+aWE("lastnodeid",60);
+aWE("lay",10,61,64);
+aWE("lcc",6,7,56,60,63,68);
+aWE("learn",51);
+aWE("least",61,44);
+aWE("leav",22,8);
+aWE("left",0,11,61,52);
+aWE("legth",63);
+aWE("len",56,63);
+aWE("length",12,15,18,19,6,7,57,32,31,59,63,42,66,52,53);
+aWE("lengthfromedg",7,60,66);
+aWE("les",65,42,44);
+aWE("let",11);
+aWE("level",12,16);
+aWE("libnetgenengin",7);
+aWE("library",24,65);
+aWE("libstdmeshersengin",6,7,56,60,63,68);
+aWE("lik",16,2,28,42);
+aWE("limit",61,42,44);
+aWE("lin",13,1,18,10,36,61,64,43);
+aWE("link",42);
+aWE("list",0,16,20,24,25,8,11,65,48);
+aWE("lk",18);
+aWE("ll",52);
+aWE("load",61,65);
+aWE("loadfromfac",60);
+aWE("local",6,23,7,59,36,66);
+aWE("locallength",7);
+aWE("locat",61,42);
+aWE("location",18,27,30,44);
+aWE("lock",25,44,52);
+aWE("longest",19);
+aWE("look",28,61,65);
+aWE("low",13,18);
+aWE("ly",61);
+aWE("main",20,25,8,11,36,61,65,48,50);
+aWE("makearc",7,60,66);
+aWE("makebox",6,7,56,63,66,68);
+aWE("makeboxdxdydz",60);
+aWE("makecirclethreepnt",60,66);
+aWE("makecompound",6,7,63,66);
+aWE("makecylinderrh",7,60);
+aWE("makeedg",6,7);
+aWE("makefac",7,60,66);
+aWE("makehexa",6,7);
+aWE("makemesh",60);
+aWE("makepolygon",60);
+aWE("makequad",6,7);
+aWE("makesketch",7);
+aWE("makevector",7,60,66);
+aWE("makevertex",6,7,60,66);
+aWE("makewir",7,60,66);
+aWE("manag",12,16);
+aWE("manual",24,61);
+aWE("map",32,60,61);
+aWE("mark",52);
+aWE("mas",11);
+aWE("math",60,66);
+aWE("max",12,7,32,59,33,44);
+aWE("max_element_area",60);
+aWE("maxelementarea",6,7,60,63,68);
+aWE("maxelementarea_500",6);
+aWE("maxelementarea_800",7);
+aWE("maxelementvolum",6,7);
+aWE("maxelementvolume_500",6);
+aWE("maxelementvolume_900",7);
+aWE("maximum",18,7,32,33,43,44,51);
+aWE("mean",13);
+aWE("meaningful",13);
+aWE("measur",53);
+aWE("meet",25,48);
+aWE("mefisto_2d",6,7,63,68);
+aWE("mefisto2d",6,7);
+aWE("menu",16,1,18,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,34,36,61,38,39,64,40,41,65,42,44,45,47,48,49,50,51);
+aWE("merg",58,34,42,66);
+aWE("mergeequalelement",66);
+aWE("mergenod",66);
+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,54,55,56,30,32,31,58,34,59,35,60,33,36,61,62,63,37,38,39,64,40,41,65,42,43,44,45,46,66,47,48,49,50,51,68,69,52,53);
+aWE("mesh_1",22,60);
+aWE("mesh_2",60);
+aWE("mesh_borders_at_multi",63);
+aWE("mesh_freebord",63);
+aWE("meshbox",6,7);
+aWE("mesheditor",60);
+aWE("meshm",6);
+aWE("method",60,44);
+aWE("middl",1,36);
+aWE("minimum",15,18,25,59,35,63,42,48);
+aWE("mirror",66);
+aWE("mirrorobject",66);
+aWE("mod",0,18,62);
+aWE("model",13,59);
+aWE("modification",13,16,1,20,25,26,27,29,10,11,34,59,61,38,39,64,40,42,44,45,47,48,49);
+aWE("modify",20,25,29,60,48);
+aWE("modul",13,14,1,18,24,59,60,41,52);
+aWE("mous",0,24,52);
+aWE("mov",27,60);
+aWE("movenod",60);
+aWE("multi",15,3,4,59,63);
+aWE("multiconnection",63);
+aWE("must",22,11,61,65,42);
+aWE("myelemid",63);
+aWE("mypnt1",63);
+aWE("mypnt2",63);
+aWE("mystudy",6,60,63,68);
+aWE("mystudyid",6,7,63);
+aWE("n",61,42);
+aWE("nam",22,6,23,24,29,56,30,65,50,68,52);
+aWE("nb",56,63);
+aWE("nb_segments_1",60);
+aWE("nb_vert",60);
+aWE("nbedg",66,68);
+aWE("nbfac",68);
+aWE("nbhexa",68);
+aWE("nbnod",60,66,68);
+aWE("nbpolygon",68);
+aWE("nbpolyhedron",68);
+aWE("nbprism",68);
+aWE("nbpyramid",68);
+aWE("nbquadrangl",66,68);
+aWE("nbtetra",68);
+aWE("nbtriangl",66,68);
+aWE("nbvolum",66,68);
+aWE("ne",22);
+aWE("necessary",16);
+aWE("negativ",18);
+aWE("neighbor",26,49);
+aWE("netgen",14);
+aWE("netgen_3d",7);
+aWE("netgen3d",7);
+aWE("netgenplugin",7);
+aWE("new",0,5,22,23,24,27,61,37,65,50);
+aWE("next",18,61);
+aWE("nod",13,0,16,1,17,18,19,20,21,24,27,28,10,32,34,59,60,61,62,63,38,39,64,65,42,43,44,46,66,51,68,53);
+aWE("nodal",61,44);
+aWE("node_id",60);
+aWE("node_start_id",60);
+aWE("non",22);
+aWE("normal",45,53);
+aWE("normalisation",19);
+aWE("not",16,19,22,24,8);
+aWE("noth",24);
+aWE("notic",13);
+aWE("now",5,22,11,60);
+aWE("numb",12,13,1,18,6,24,7,10,32,59,61,64,42,44,66,51,68,52);
+aWE("number",0,1,28);
+aWE("numberofsegment",6,7,56,60,63,66,68);
+aWE("numberofsegments_10",6);
+aWE("numberofsegments_7",7);
+aWE("numeric",25);
+aWE("numerical",12);
+aWE("obey",42);
+aWE("object",12,14,0,16,1,18,5,21,22,23,24,25,7,8,29,30,32,60,33,61,62,37,38,39,40,47,48,51,69,52);
+aWE("objecttoid",6,7,63);
+aWE("objet",24);
+aWE("obliqu",11);
+aWE("obtain",16);
+aWE("offset",52);
+aWE("ok",16,1,20,5,25,8,26,27,29,10,11,30,60,38,39,64,42,44,48,49,50);
+aWE("on",13,1,18,22,23,25,8,26,10,54,55,58,36,61,63,37,38,64,65,42,44,45,47,48,50,68);
+aWE("onc",48);
+aWE("onto",36,61);
+aWE("oo",19);
+aWE("opaqu",67);
+aWE("operat",12);
+aWE("operation",14,16,17,18,19,2,3,4,20,23,24,25,8,26,27,29,10,11,54,55,30,57,32,31,58,34,59,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,69,53);
+aWE("opposit",12,5,6,25,7,32,36,42,43,66);
+aWE("option",13,0,18,45,47);
+aWE("optional",22,11);
+aWE("ord",13,20,61);
+aWE("ordinary",1,36);
+aWE("orientat",52);
+aWE("orientation",20,5,25,60,48);
+aWE("origin",53);
+aWE("other",48);
+aWE("otherwis",22,32);
+aWE("our",22);
+aWE("out",52);
+aWE("outlin",55);
+aWE("outsid",61);
+aWE("own",13);
+aWE("pag",24,29);
+aWE("pair",18);
+aWE("pan",52);
+aWE("paramet",13,18,2,65,42);
+aWE("parameter",12,0,5,11,40,42,52);
+aWE("parametric",13,61);
+aWE("parent",23);
+aWE("part",42,44,52);
+aWE("particular",60);
+aWE("particularity",13);
+aWE("pas",60);
+aWE("path",11,60,65,66);
+aWE("pattern",60,61);
+aWE("pattern_nam",61);
+aWE("pentahedron",2);
+aWE("perform",59,39,42,45,50);
+aWE("perimet",19);
+aWE("pi",60,66);
+aWE("pictur",3,24,11,54,55,58);
+aWE("plac",42,52);
+aWE("plan",5,63,45,53);
+aWE("planar",53);
+aWE("platform",24,41);
+aWE("pleas",8);
+aWE("plot",18);
+aWE("plu",10,64);
+aWE("png",0,52);
+aWE("point",13,1,18,7,11,60,36,61,64,40,42,45,66,47,52,53);
+aWE("point111",6,7);
+aWE("point112",6,7);
+aWE("point121",6,7);
+aWE("point122",6,7);
+aWE("point211",6,7);
+aWE("point212",6,7);
+aWE("point221",6,7);
+aWE("point222",6,7);
+aWE("pointstruct",60,66);
+aWE("polygon",16,60,68);
+aWE("polygonal",60);
+aWE("polyhedral",16,60);
+aWE("polyhedron",16,60,68);
+aWE("pop",8,28);
+aWE("position",13,61,52);
+aWE("posses",36);
+aWE("possibility",65);
+aWE("possibl",12,2,24,61);
+aWE("post",52);
+aWE("powerful",65);
+aWE("precision",16);
+aWE("preferenc",12,32,59,62);
+aWE("prefix",65);
+aWE("preproces",24);
+aWE("pres",16,1,11,38,52);
+aWE("present",13,0,50);
+aWE("presentation",15,0,52);
+aWE("preserv",61);
+aWE("preset",12);
+aWE("preview",16,5,25,61,65);
+aWE("previou",18,48);
+aWE("previous",23,24,59,61);
+aWE("principl",11);
+aWE("print",6,7,56,60,63,66,68);
+aWE("prism",68);
+aWE("pro",52);
+aWE("problem",6,7,56);
+aWE("proce",22,8);
+aWE("procedur",44);
+aWE("proceed",37);
+aWE("proces",44);
+aWE("produc",13,10,64,44);
+aWE("product",53);
+aWE("program",22);
+aWE("progression",18);
+aWE("project",61);
+aWE("projection",61,53);
+aWE("prompt",18);
+aWE("propagat",6,7,36,66);
+aWE("propagation",12,6,7,36,66,68);
+aWE("properti",52);
+aWE("provid",0,16,25);
+aWE("pseudo",26);
+aWE("pul",44);
+aWE("px",7,60,66);
+aWE("px1",60,66);
+aWE("py",7,60,66);
+aWE("py1",60,66);
+aWE("pyramid",68);
+aWE("pyramidal",14);
+aWE("python",51);
+aWE("pz",7,60,66);
+aWE("pz1",60,66);
+aWE("qi",2);
+aWE("qk",19,2);
+aWE("quad",60,53);
+aWE("quad2d",7,56);
+aWE("quadrangl",12,13,14,16,17,19,2,6,25,7,26,10,32,31,59,35,60,64,43,66,68);
+aWE("quadrangle_2d",7,56);
+aWE("quadrangular",14,6,7,32,36,66);
+aWE("quadratic",12,1,36);
+aWE("quadtotri",60);
+aWE("quality",15,0,17,18,19,2,3,4,25,54,55,57,31,59,35,63,43,46,48,69,53);
+aWE("quantity",12);
+aWE("r1",60);
+aWE("radio",20,24,25,40,42,45,48);
+aWE("radiu",19,60);
+aWE("rang",18,24,56,60,63);
+aWE("ratio",15,19,2,59,63,44,46,53);
+aWE("ready",22);
+aWE("recent",0);
+aWE("red",55);
+aWE("redefin",0,52);
+aWE("reduc",44);
+aWE("reevaluat",44);
+aWE("refer",61);
+aWE("referenc",13,15,22,23);
+aWE("refin",12);
+aWE("reflect",61,43,69);
+aWE("refresh",0);
+aWE("regular",19);
+aWE("regular_1d",6,7,56,63,68);
+aWE("regular1d",6,7,56);
+aWE("relat",41);
+aWE("relation",13);
+aWE("relationship",13);
+aWE("remot",52);
+aWE("remov",20,6,24,25,8,29,11,56,60,38,65,48,68);
+aWE("removal",59);
+aWE("removeelement",60,63);
+aWE("removehypothesi",6,68);
+aWE("removenod",60);
+aWE("renumb",39);
+aWE("renumber",60,39);
+aWE("renumbernod",60);
+aWE("reorient",20,60);
+aWE("replac",42);
+aWE("represent",12,13,18,2,62,46,52);
+aWE("representation",13);
+aWE("requir",26,27,49);
+aWE("reset",52);
+aWE("resiz",52);
+aWE("respect",11);
+aWE("respectiv",1);
+aWE("rest",61,42);
+aWE("restor",52);
+aWE("restrict",13);
+aWE("result",12,16,11,56,63,44,50);
+aWE("ret",6,7,56);
+aWE("retriev",13);
+aWE("return",57,60);
+aWE("reveal",19);
+aWE("revers",1,61);
+aWE("revert",20);
+aWE("revolution",10,60,64);
+aWE("revolv",64);
+aWE("right",0,21,8,27,28,11,62);
+aWE("rotat",10,11,60,64,40,66,52);
+aWE("rotateobject",66);
+aWE("rotation",5,11,64,40,66,52);
+aWE("rotationsweepobject",60);
+aWE("rough",12);
+aWE("rr",60);
+aWE("rul",18,36,42);
+aWE("run",41);
+aWE("s",11);
+aWE("salom",6,24,7,56,59,60,63,41,66,68);
+aWE("sam",13,0,18,19,2,22,23,7,11,36,37,65,42,50);
+aWE("sampl",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,69,53);
+aWE("sav",65);
+aWE("scal",18,52);
+aWE("scalar",15);
+aWE("scen",52);
+aWE("script",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,51,69,53);
+aWE("se",14,16,17,18,19,2,3,4,20,5,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,69,52,53);
+aWE("seam",61);
+aWE("search",30,65);
+aWE("second",16,60,42);
+aWE("section",0,5,22,61);
+aWE("segment",12,18,6,7,32,59,60,66);
+aWE("select",12,14,0,16,1,18,20,21,22,23,24,25,8,26,27,29,10,11,30,34,36,61,62,38,39,64,40,41,65,42,44,45,47,48,49,50,51,52);
+aWE("selectabl",58);
+aWE("selection",16,1,20,24,25,8,65,48);
+aWE("sens",13);
+aWE("separat",46);
+aWE("sequenc",42);
+aWE("set",13,14,16,18,20,5,22,24,7,27,11,32,59,60,33,61,62,65,42,44,67,48);
+aWE("setcurrentstudy",6,60,63,68);
+aWE("setdisplaymod",7);
+aWE("setlength",6,68);
+aWE("setmargin",56,63);
+aWE("setmaxelementarea",6,7,63,68);
+aWE("setmaxelementvolum",6,7);
+aWE("setmesh",63);
+aWE("setnam",6,7,63);
+aWE("setnumberofsegment",6,7,56,60,63,68);
+aWE("setnumfunctor",56,63);
+aWE("setpredicat",56,63);
+aWE("setting",22);
+aWE("settransparency",7);
+aWE("sew",63,42,66);
+aWE("sewbordertosid",66);
+aWE("sewconformfreeborder",66);
+aWE("sewfreeborder",66);
+aWE("sewsideelement",66);
+aWE("sg",6,7,56,60,63,66,68);
+aWE("shad",0,62,67);
+aWE("shall",20,26,27,34,61,64,40,45,47,48,49);
+aWE("shap",12,13,11,61,44);
+aWE("shape_mesh",60);
+aWE("shapetyp",6,7,56,60,63,66,68);
+aWE("shift",16,1,25,38,44);
+aWE("shortest",53);
+aWE("should",18,24,10,11,61,64,40,65,42,44,50);
+aWE("show",18,5,11,65,52);
+aWE("shown",15,44);
+aWE("shrink",62);
+aWE("sid",6,7,35,42,43,66);
+aWE("simp",22,36);
+aWE("simpl",13,16,61);
+aWE("simplex",19,2);
+aWE("sin",60);
+aWE("siz",0,44);
+aWE("sk",19,2);
+aWE("sketch",7);
+aWE("sketcher",7);
+aWE("sketcher1",7);
+aWE("sketcher2",7);
+aWE("skew",15,25,59,63,43,48);
+aWE("slid",67);
+aWE("small",52);
+aWE("smesh",6,7,56,60,63,42,66,68);
+aWE("smesh_mechanic",56,60,63,66);
+aWE("smesh_mechanic_tetra",63);
+aWE("smesh_mesheditor",60,66);
+aWE("smeshgroup1",56);
+aWE("smeshgroup2",56);
+aWE("smeshgui",6,7,63);
+aWE("smooth",60,44);
+aWE("smoothobject",60);
+aWE("smp",61);
+aWE("so",12,18,19,6,7,56,60,61,63,42,46,68);
+aWE("solid",6,7,59);
+aWE("somewhat",16);
+aWE("sort",20,24,25,48);
+aWE("sourc",65);
+aWE("spac",13,61,40,47);
+aWE("specifi",18,3,61,38,42,44);
+aWE("specific",21,65);
+aWE("specify",16,1,25,10,11,61,38,64,40,65,44,45,47,50);
+aWE("spher",18,19,22);
+aWE("split",14,18,2,5,42);
+aWE("sqrt",60);
+aWE("standalon",24,56,65);
+aWE("standard",0,30,51);
+aWE("start",12,18,5,7,11,59,41,42,47);
+aWE("startendlength",7);
+aWE("statu",60);
+aWE("stdmesher",6,7,56,60,63,68);
+aWE("step",10,64);
+aWE("stor",61,65);
+aWE("straight",1,7,36);
+aWE("stretch",52);
+aWE("strict",52);
+aWE("structur",22,23);
+aWE("study",6,7,56,65);
+aWE("stuf",52);
+aWE("sub",30,34,60,61,40,42,45,47);
+aWE("submenu",16,9,38,39);
+aWE("submesh",12,20,21,6,23,24,25,10,11,37,64,44,47,48,51);
+aWE("subshapeall",6,7,56,60,63,66,68);
+aWE("subshapelist",6,56,63,68);
+aWE("subshapelist1",66);
+aWE("subshapelist2",66);
+aWE("subshapenam",6,56,68);
+aWE("succed",7,56);
+aWE("sum",2);
+aWE("supplement",36);
+aWE("supplementary",25);
+aWE("surfac",13,19,2,10,61,64,42);
+aWE("surround",13,44);
+aWE("sweep",60);
+aWE("swept",10,64);
+aWE("switch",1);
+aWE("symmetrical",45,66);
+aWE("symmetry",45,66);
+aWE("syntax",65);
+aWE("t",13,18,2,22,36,61,62,52);
+aWE("tabl",1,18);
+aWE("tak",19,48);
+aWE("taken",12,21,24,7,61);
+aWE("tap",15,24,59,63,46);
+aWE("techniqu",44);
+aWE("tetra3d",7);
+aWE("tetrahedral",14);
+aWE("tetrahedralization",22);
+aWE("tetrahedron",13,14,16,2,7,60,33,68);
+aWE("th",61,42);
+aWE("them",12,16,1,18,2,24,8,9,10,11,34,38,64,42,44,52);
+aWE("thos",25,48);
+aWE("thre",13,1,19,7,60,36,42,45);
+aWE("threshold",65);
+aWE("tick",52);
+aWE("tim",0);
+aWE("tmp",6);
+aWE("togeth",32);
+aWE("toggl",16,65,47);
+aWE("toleranc",34,64,65,66);
+aWE("tool",65,50);
+aWE("toolbar",19,2,20,22,23,25,26,27,29,10,11,31,61,38,39,64,41,43,44,46,48,49,51,69,52,53);
+aWE("top",60);
+aWE("topological",13,42);
+aWE("topology",13);
+aWE("total",51);
+aWE("toward",44);
+aWE("transform",27,66);
+aWE("transformation",34,40,42,45,47);
+aWE("translat",66,47);
+aWE("translateobject",66);
+aWE("translation",66,47);
+aWE("transparency",0,67);
+aWE("transparent",67);
+aWE("tri_mesh",66);
+aWE("tria",7,60,66);
+aWE("tria_mesh",7);
+aWE("triangl",13,14,16,1,17,19,7,26,10,32,31,58,35,60,64,43,46,66,48,49,68,52);
+aWE("triangle_mefisto",60);
+aWE("triangular",14,32);
+aWE("triangulation",7);
+aWE("trihedron",52);
+aWE("tritoquad",60);
+aWE("try",22);
+aWE("tt",7);
+aWE("tui",14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,51,69,53);
+aWE("two",13,16,5,24,25,7,26,11,56,35,60,61,42,46,66,47,49,50,51);
+aWE("typ",13,16,18,19,2,21,22,24,10,11,38,64,65,42,51);
+aWE("typical",44);
+aWE("u",13,42);
+aWE("unary",65);
+aWE("unassign",37);
+aWE("uniform",44);
+aWE("union",56,48,49,50);
+aWE("uniongroup",56);
+aWE("unit",60,42,48,49,50);
+aWE("unles",36);
+aWE("unv",30);
+aWE("up",18,8,28);
+aWE("updat",0,41,44);
+aWE("updateobjbrows",6,7,56,60,63,66,68);
+aWE("upload",65);
+aWE("us",13,14,18,3,5,22,23,24,10,32,34,61,64,65,42,44,67,50,52);
+aWE("usag",15);
+aWE("useful",0,16,24,11);
+aWE("usual",42,44);
+aWE("v",13);
+aWE("valu",12,15,18,19,2,22,6,11,57,35,36,37,65,43,68);
+aWE("vari",19);
+aWE("variou",0);
+aWE("ve",16);
+aWE("vector",7,10,11,60,64,40,45,66,47,53);
+aWE("vertex",13,61);
+aWE("vertic",6,7,61);
+aWE("very",16,11);
+aWE("via",65,51,52);
+aWE("view",0,16,1,17,19,2,20,5,24,25,8,26,27,28,10,11,31,35,38,39,64,65,42,43,44,46,48,49,51,68,69,52,53);
+aWE("visibl",52);
+aWE("visual",15);
+aWE("visualiz",52);
+aWE("vk",2);
+aWE("volum",12,13,14,15,16,2,21,24,7,9,59,60,33,63,65,66,51,68,69);
+aWE("vtk",0,52);
+aWE("vxy",7,60,66);
+aWE("walk",61);
+aWE("warp",15,25,59,63,48,53);
+aWE("way",13,16,22,23,24,11,61,37,50);
+aWE("weight",44);
+aWE("well",61);
+aWE("wheth",65);
+aWE("whil",38);
+aWE("whit",54);
+aWE("whol",2,10,11,60,64,65,44,47);
+aWE("whos",20,24,25,36,48);
+aWE("will",12,13,0,16,1,17,18,19,2,20,21,22,23,24,25,8,27,28,29,10,11,30,32,31,58,35,60,33,36,61,38,39,64,41,65,42,43,44,46,67,48,50,51,69,53);
+aWE("window",5);
+aWE("wir",14,6,7,11,32,60,66);
+aWE("wire_discretisation",60);
+aWE("wirefram",0,11,62);
+aWE("wish",22,8,30,52);
+aWE("within",18,61,42);
+aWE("without",1,63);
+aWE("word",18);
+aWE("work",1,11);
+aWE("worst",19);
+aWE("would",16,42);
+aWE("ww",7);
+aWE("x",13,5,53);
+aWE("x0",60);
+aWE("y",13,5);
+aWE("y0",60);
+aWE("your",12,13,15,0,16,1,17,18,19,2,20,5,21,22,23,24,27,28,29,30,32,31,34,35,33,61,62,37,38,39,40,65,43,44,45,46,47,51,69,53);
+aWE("z",13,5);
+aWE("z0",60);
+aWE("zero",61);
+aWE("zoom",52);
+
+//-->
+</script>
+</html>
index 77e0107f3ac8482101e3293c7d2433b92f707a89..e38a107b583452cf012d6087e148161c68b72f3b 100755 (executable)
@@ -1,26 +1,26 @@
-//     WebHelp 5.10.001\r
-var gIEA = new Array();\r
-function aGE(sName, sDef)\r
-{\r
-       var len = gIEA.length;\r
-       gIEA[len] = new gloEntry(sName, sDef);\r
-}\r
-\r
-function gloEntry(sName, sDef) \r
-{\r
-       this.sName = sName;\r
-       this.sDef = sDef;\r
-       this.nNKOff = 0;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putData) \r
-               {\r
-                       parent.putData(gIEA);\r
-               }\r
-       }\r
-}\r
-\r
+//     WebHelp 5.10.001
+var gIEA = new Array();
+function aGE(sName, sDef)
+{
+       var len = gIEA.length;
+       gIEA[len] = new gloEntry(sName, sDef);
+}
+
+function gloEntry(sName, sDef) 
+{
+       this.sName = sName;
+       this.sDef = sDef;
+       this.nNKOff = 0;
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this) {
+               if (parent.putData) 
+               {
+                       parent.putData(gIEA);
+               }
+       }
+}
+
 window.onload = window_OnLoad;
\ No newline at end of file
index 9d256b1a86a862d0df36aee9e3077d953f65827a..3865725f4293e848e25f2cb7114eec58b17e0b23 100755 (executable)
@@ -1,33 +1,33 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whgdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
- aGE("Cell","Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.");\r
- aGE("Component","One integer or real value can correspond to each component of a field and to each entity of a mesh");\r
- aGE("Descendant connectivity","It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.");\r
- aGE("Edge","An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).");\r
- aGE("Entity of a mesh","Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.");\r
- aGE("Equivalence","Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.");\r
- aGE("Face","Face of a volumetrical cell (triangle, quadrangle).");\r
- aGE("Family","Entities of a mesh are described by a certain number   of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.");\r
- aGE("Field","Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.");\r
- aGE("Field profile","Fields can be defined only on one part of the mesh. Profile   of the field or profile of the component of a field indicates which entities of the mesh contain values.");\r
- aGE("Group","Unordered set of entities of a mesh. One entity can belong to   several groups.");\r
- aGE("Mesh","Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).");\r
- aGE("Nodal connectivity","It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.");\r
- aGE("Node","Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.");\r
- aGE("Point","Geometrical entity determined by its coordinates in the space.");\r
- aGE("Reference connectivity","For each type of entity of a mesh, reference connectivity define the topology of an entity.");\r
- aGE("Result","List of fields referring to one mesh.");\r
- aGE("Study","Study represents a chain of sequences of calculations.");\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whgdata.js"></script>
+<script language="javascript">
+<!--
+ aGE("Cell","Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.");
+ aGE("Component","One integer or real value can correspond to each component of a field and to each entity of a mesh");
+ aGE("Descendant connectivity","It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.");
+ aGE("Edge","An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).");
+ aGE("Entity of a mesh","Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.");
+ aGE("Equivalence","Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.");
+ aGE("Face","Face of a volumetrical cell (triangle, quadrangle).");
+ aGE("Family","Entities of a mesh are described by a certain number   of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.");
+ aGE("Field","Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.");
+ aGE("Field profile","Fields can be defined only on one part of the mesh. Profile   of the field or profile of the component of a field indicates which entities of the mesh contain values.");
+ aGE("Group","Unordered set of entities of a mesh. One entity can belong to   several groups.");
+ aGE("Mesh","Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).");
+ aGE("Nodal connectivity","It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.");
+ aGE("Node","Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.");
+ aGE("Point","Geometrical entity determined by its coordinates in the space.");
+ aGE("Reference connectivity","For each type of entity of a mesh, reference connectivity define the topology of an entity.");
+ aGE("Result","List of fields referring to one mesh.");
+ aGE("Study","Study represents a chain of sequences of calculations.");
+
+//-->
+</script>
+</body>
+</html>
index dc5a67786450d8e50199605d2c9286a51f5e06c5..9d7ac79f1a5d36c1a625ccfc0bd1ae4e7fdbd53a 100755 (executable)
@@ -1,16 +1,16 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whglo.js"></script>\r
-<script language="javascript">\r
-<!--\r
-iFM("Cell","Study","whgdata0.htm",18);\r
-\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whglo.js"></script>
+<script language="javascript">
+<!--
+iFM("Cell","Study","whgdata0.htm",18);
+
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index e0519afcb8137a50ff418f9f806e8ec5dda207e9..c34fb24b2651604d56f12a169eff088da845cda5 100755 (executable)
@@ -1,34 +1,34 @@
-//     WebHelp 5.10.001\r
-var gaFileMapping = new Array();\r
-function fileMapping(sBK, sEK, sFileName, nNum)\r
-{\r
-       this.sBK = sBK;\r
-       this.sEK = sEK;\r
-       this.sFileName = sFileName;\r
-       this.aKs = null;\r
-       this.nNum = nNum;\r
-       this.oUsedItems = null;\r
-}\r
-\r
-\r
-function iFM(sBK, sEK, sFileName, nNum)\r
-{\r
-       var i = gaFileMapping.length;\r
-       gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum);  \r
-       if (i == 0) {\r
-               gaFileMapping[i].nTotal = nNum;\r
-       }\r
-       else {\r
-               gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal;\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.projReady)\r
-       {\r
-               parent.projReady(gaFileMapping);\r
-       }               \r
-}\r
-\r
-window.onload = window_OnLoad;\r
+//     WebHelp 5.10.001
+var gaFileMapping = new Array();
+function fileMapping(sBK, sEK, sFileName, nNum)
+{
+       this.sBK = sBK;
+       this.sEK = sEK;
+       this.sFileName = sFileName;
+       this.aKs = null;
+       this.nNum = nNum;
+       this.oUsedItems = null;
+}
+
+
+function iFM(sBK, sEK, sFileName, nNum)
+{
+       var i = gaFileMapping.length;
+       gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum);  
+       if (i == 0) {
+               gaFileMapping[i].nTotal = nNum;
+       }
+       else {
+               gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal;
+       }
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this && parent.projReady)
+       {
+               parent.projReady(gaFileMapping);
+       }               
+}
+
+window.onload = window_OnLoad;
index 9f0eb15edc13f4fcc606d23e7fe41ff9a66d2ac6..a92184730764adf14847614291af60534d5e28c0 100755 (executable)
@@ -1,89 +1,89 @@
-//     WebHelp 5.10.001\r
-// const strings\r
-var gIEA = new Array();\r
-function aIE()\r
-{\r
-       var len = gIEA.length;\r
-       gIEA[len] = new indexEntry(aIE.arguments);\r
-}\r
-\r
-function topic(sName, sURL)\r
-{\r
-       this.sName = sName;\r
-       this.sURL = sURL;\r
-}\r
-\r
-function indexEntry(fn_arguments) \r
-{\r
-       if (fn_arguments.length && fn_arguments.length >= 3) \r
-       {\r
-               this.nType = fn_arguments[0];\r
-               this.nPKOff = 0;\r
-               this.nNKOff = fn_arguments[1];\r
-               this.sName = fn_arguments[2];\r
-               this.aTopics = null;\r
-               var nLen = fn_arguments.length;\r
-               if (Math.floor(nLen / 2) * 2 == nLen)\r
-               {\r
-                       this.sTarget = fn_arguments[3];\r
-                       if (nLen > 5)\r
-                       {\r
-                               this.aTopics = new Array();\r
-                               for (var i = 0; i < (nLen - 5)/2; i++)\r
-                               {\r
-                                       this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]);\r
-                               }\r
-                       }\r
-\r
-               }\r
-               else \r
-               {\r
-                       if (nLen > 4) \r
-                       {\r
-                               this.aTopics = new Array();\r
-                               for (var i = 0; i < (nLen - 4)/2; i++)\r
-                               {\r
-                                       this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]);\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function getIndexTopicMappingList(nItemIndex)\r
-{\r
-       var sTopics = "";\r
-       if (gIEA.length > nItemIndex)\r
-       {\r
-               if (gIEA[nItemIndex].aTopics) \r
-               {\r
-                       var i = 0;\r
-                       var nLen = gIEA[nItemIndex].aTopics.length;\r
-                       for (i = 0; i < nLen; i ++) \r
-                       {\r
-                               sTopics += "," + gIEA[nItemIndex].aTopics[i];\r
-                       }\r
-               }\r
-       }\r
-       return sTopics;         \r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this) {\r
-               if (parent.putData) \r
-               {\r
-                       for (var i = 0; i < gIEA.length; i ++ )\r
-                       {\r
-                               if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length)\r
-                               {\r
-                               \r
-                                       gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff;\r
-                               }\r
-                       }\r
-                       parent.putData(gIEA);\r
-               }\r
-       }\r
-}\r
-\r
+//     WebHelp 5.10.001
+// const strings
+var gIEA = new Array();
+function aIE()
+{
+       var len = gIEA.length;
+       gIEA[len] = new indexEntry(aIE.arguments);
+}
+
+function topic(sName, sURL)
+{
+       this.sName = sName;
+       this.sURL = sURL;
+}
+
+function indexEntry(fn_arguments) 
+{
+       if (fn_arguments.length && fn_arguments.length >= 3) 
+       {
+               this.nType = fn_arguments[0];
+               this.nPKOff = 0;
+               this.nNKOff = fn_arguments[1];
+               this.sName = fn_arguments[2];
+               this.aTopics = null;
+               var nLen = fn_arguments.length;
+               if (Math.floor(nLen / 2) * 2 == nLen)
+               {
+                       this.sTarget = fn_arguments[3];
+                       if (nLen > 5)
+                       {
+                               this.aTopics = new Array();
+                               for (var i = 0; i < (nLen - 5)/2; i++)
+                               {
+                                       this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]);
+                               }
+                       }
+
+               }
+               else 
+               {
+                       if (nLen > 4) 
+                       {
+                               this.aTopics = new Array();
+                               for (var i = 0; i < (nLen - 4)/2; i++)
+                               {
+                                       this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]);
+                               }
+                       }
+               }
+       }
+}
+
+function getIndexTopicMappingList(nItemIndex)
+{
+       var sTopics = "";
+       if (gIEA.length > nItemIndex)
+       {
+               if (gIEA[nItemIndex].aTopics) 
+               {
+                       var i = 0;
+                       var nLen = gIEA[nItemIndex].aTopics.length;
+                       for (i = 0; i < nLen; i ++) 
+                       {
+                               sTopics += "," + gIEA[nItemIndex].aTopics[i];
+                       }
+               }
+       }
+       return sTopics;         
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this) {
+               if (parent.putData) 
+               {
+                       for (var i = 0; i < gIEA.length; i ++ )
+                       {
+                               if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length)
+                               {
+                               
+                                       gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff;
+                               }
+                       }
+                       parent.putData(gIEA);
+               }
+       }
+}
+
 window.onload = window_OnLoad;
\ No newline at end of file
index 0a0deedd094e90290616665493c3eba1ab41fbbb..a049a96f99753b5e8b3eaaf551b2fe4d916da231 100755 (executable)
@@ -1,15 +1,15 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whidx.js"></script>\r
-<script language="javascript">\r
-<!--\r
-\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whidx.js"></script>
+<script language="javascript">
+<!--
+
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index e0519afcb8137a50ff418f9f806e8ec5dda207e9..c34fb24b2651604d56f12a169eff088da845cda5 100755 (executable)
@@ -1,34 +1,34 @@
-//     WebHelp 5.10.001\r
-var gaFileMapping = new Array();\r
-function fileMapping(sBK, sEK, sFileName, nNum)\r
-{\r
-       this.sBK = sBK;\r
-       this.sEK = sEK;\r
-       this.sFileName = sFileName;\r
-       this.aKs = null;\r
-       this.nNum = nNum;\r
-       this.oUsedItems = null;\r
-}\r
-\r
-\r
-function iFM(sBK, sEK, sFileName, nNum)\r
-{\r
-       var i = gaFileMapping.length;\r
-       gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum);  \r
-       if (i == 0) {\r
-               gaFileMapping[i].nTotal = nNum;\r
-       }\r
-       else {\r
-               gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal;\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.projReady)\r
-       {\r
-               parent.projReady(gaFileMapping);\r
-       }               \r
-}\r
-\r
-window.onload = window_OnLoad;\r
+//     WebHelp 5.10.001
+var gaFileMapping = new Array();
+function fileMapping(sBK, sEK, sFileName, nNum)
+{
+       this.sBK = sBK;
+       this.sEK = sEK;
+       this.sFileName = sFileName;
+       this.aKs = null;
+       this.nNum = nNum;
+       this.oUsedItems = null;
+}
+
+
+function iFM(sBK, sEK, sFileName, nNum)
+{
+       var i = gaFileMapping.length;
+       gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum);  
+       if (i == 0) {
+               gaFileMapping[i].nTotal = nNum;
+       }
+       else {
+               gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal;
+       }
+}
+
+function window_OnLoad()
+{
+       if (parent && parent != this && parent.projReady)
+       {
+               parent.projReady(gaFileMapping);
+       }               
+}
+
+window.onload = window_OnLoad;
index d5428a7de68aad1a6d9235d19f04530e4bbd8956..0558e198caac7ec9dae1224a7c5e64afd73d9f43 100755 (executable)
@@ -1,64 +1,64 @@
-//     WebHelp 5.10.001\r
-var gTEA = new Array();\r
-function aTE()\r
-{\r
-       gTEA[gTEA.length] = new tocEntry(aTE.arguments);\r
-}\r
-\r
-function tocEntry(fn_arguments) \r
-{\r
-       if (fn_arguments.length < 3)    \r
-       {\r
-               alert ("data format wrong!!!");\r
-               return;\r
-       }\r
-       \r
-       this.nType = fn_arguments[0];\r
-       this.nContents = fn_arguments[1];\r
-       this.sItemName = fn_arguments[2];\r
-       \r
-       if (this.nType == 1 || this.nType == 2 || this.nType == 16)\r
-       {\r
-               if (fn_arguments.length > 3)\r
-               {\r
-                       this.sItemURL = fn_arguments[3];\r
-                       if (fn_arguments.length > 4)\r
-                       {\r
-                               this.sTarget = fn_arguments[4];\r
-                               if (fn_arguments.length > 5)\r
-                                       this.sIconRef = fn_arguments[5];\r
-                       }\r
-               }\r
-       }\r
-       if (this.nType == 4 || this.nType == 8)\r
-       {\r
-               if (fn_arguments.length > 3)\r
-               {\r
-                       this.sRefURL = fn_arguments[3];\r
-                       if (this.nType == 4)\r
-                       {\r
-                               if(this.sRefURL.lastIndexOf("/")!=this.sRefURL.length-1)\r
-                                       this.sRefURL+="/";\r
-                       }\r
-                       if (fn_arguments.length > 4)\r
-                       {\r
-                               this.sItemURL = fn_arguments[4];\r
-                               if (fn_arguments.length > 5)\r
-                               {\r
-                                       this.sTarget = fn_arguments[5];\r
-                                       if (fn_arguments.length > 6)\r
-                                               this.sIconRef = fn_arguments[6];\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.putData) {\r
-               parent.putData(gTEA);\r
-       }\r
-}\r
+//     WebHelp 5.10.001
+var gTEA = new Array();
+function aTE()
+{
+       gTEA[gTEA.length] = new tocEntry(aTE.arguments);
+}
+
+function tocEntry(fn_arguments) 
+{
+       if (fn_arguments.length < 3)    
+       {
+               alert ("data format wrong!!!");
+               return;
+       }
+       
+       this.nType = fn_arguments[0];
+       this.nContents = fn_arguments[1];
+       this.sItemName = fn_arguments[2];
+       
+       if (this.nType == 1 || this.nType == 2 || this.nType == 16)
+       {
+               if (fn_arguments.length > 3)
+               {
+                       this.sItemURL = fn_arguments[3];
+                       if (fn_arguments.length > 4)
+                       {
+                               this.sTarget = fn_arguments[4];
+                               if (fn_arguments.length > 5)
+                                       this.sIconRef = fn_arguments[5];
+                       }
+               }
+       }
+       if (this.nType == 4 || this.nType == 8)
+       {
+               if (fn_arguments.length > 3)
+               {
+                       this.sRefURL = fn_arguments[3];
+                       if (this.nType == 4)
+                       {
+                               if(this.sRefURL.lastIndexOf("/")!=this.sRefURL.length-1)
+                                       this.sRefURL+="/";
+                       }
+                       if (fn_arguments.length > 4)
+                       {
+                               this.sItemURL = fn_arguments[4];
+                               if (fn_arguments.length > 5)
+                               {
+                                       this.sTarget = fn_arguments[5];
+                                       if (fn_arguments.length > 6)
+                                               this.sIconRef = fn_arguments[6];
+                               }
+                       }
+               }
+       }
+}
+
+
+function window_OnLoad()
+{
+       if (parent && parent != this && parent.putData) {
+               parent.putData(gTEA);
+       }
+}
 window.onload = window_OnLoad;
\ No newline at end of file
index 19d460aeef1c24ffb585f6072c042a045b7051f7..6ff50b0a23222a93f2c82cbfb9fcdf19f6070dd3 100755 (executable)
@@ -1,90 +1,95 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whtdata.js"></script>\r
-<script language="javascript">\r
-<!--\r
- aTE(1,74,"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(2,0,"About meshes","files/about_meshes.htm");\r
-     aTE(2,0,"Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
-     aTE(2,0,"Constructing meshes","files/constructing_meshes.htm");\r
-     aTE(2,0,"Defining meshing algorithms","files/about_meshing_algorithms.htm");\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,"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(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(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
-     aTE(2,0,"Length","length.htm");\r
-     aTE(2,0,"Free edges","free_edges.htm");\r
-     aTE(2,0,"Length 2D","files/length_of_edges.htm");\r
-     aTE(2,0,"Borders at multi-connection 2D","borders_at_multiconnection_2d.htm");\r
-     aTE(2,0,"Area","files/area_of_elements.htm");\r
-     aTE(2,0,"Taper","files/taper.htm");\r
-     aTE(2,0,"Aspect ratio","files/aspect_ratio.htm");\r
-     aTE(2,0,"Minimum angle","files/minimum_angle.htm");\r
-     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(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,"Using operations on groups","files/using_operations_on_groups.htm");\r
-     aTE(2,0,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");\r
-     aTE(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(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
-     aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
-     aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");\r
-     aTE(1,5,"Transforming meshes");\r
-       aTE(2,0,"Translation","files/translation.htm");\r
-       aTE(2,0,"Rotation","files/rotation.htm");\r
-       aTE(2,0,"Symmetry","files/symmetry.htm");\r
-       aTE(2,0,"Sewing meshes","files/sewing_meshes.htm");\r
-       aTE(2,0,"Merging nodes","files/merging_nodes.htm");\r
-     aTE(2,0,"Moving nodes","files/displacing_nodes.htm");\r
-     aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");\r
-     aTE(2,0,"Uniting two triangles","files/uniting_two_triangles.htm");\r
-     aTE(2,0,"Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");\r
-     aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
-     aTE(2,0,"Cutting quadrangles","files/cutting_quadrangles.htm");\r
-     aTE(2,0,"Smoothing","files/smoothing.htm");\r
-     aTE(2,0,"Extrusion","extrusion.htm");\r
-     aTE(2,0,"Extrusion along a path","extrusion_along_a_path.htm");\r
-     aTE(2,0,"Revolution","revolution.htm");\r
-     aTE(2,0,"Pattern mapping","pattern_mapping.htm");\r
-   aTE(1,7,"TUI Scripts");\r
-     aTE(2,0,"Creating Meshes","constructing_meshes.htm");\r
-     aTE(2,0,"Defining Hypotheses","defining_hypotheses_tui.htm");\r
-     aTE(2,0,"Viewing Meshes","viewing_meshes.htm");\r
-     aTE(2,0,"Quality Controls","quality_controls.htm");\r
-     aTE(2,0,"Grouping Elements","grouping_elements.htm");\r
-     aTE(2,0,"Modifying Meshes","modifying_meshes.htm");\r
-     aTE(2,0,"Transforming Meshes","transforming_meshes.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whtdata.js"></script>
+<script language="javascript">
+<!--
+ aTE(1,78,"MESH module");
+   aTE(2,0,"Introduction to Mesh","mesh.htm");
+   aTE(2,0,"Running MESH module","files/running_smesh_module.htm");
+   aTE(1,12,"Creating meshes");
+     aTE(2,0,"About meshes","files/about_meshes.htm");
+     aTE(2,0,"Importing and exporting meshes","files/importing_and_exporting_meshes.htm");
+     aTE(2,0,"Constructing meshes","files/constructing_meshes.htm");
+     aTE(2,0,"Defining meshing algorithms","files/about_meshing_algorithms.htm");
+     aTE(1,5,"Defining hypotheses");
+       aTE(2,0,"About Hypotheses","files/about_hypotheses.htm");
+       aTE(2,0,"1D Meshing Hypotheses","files/arithmetic_1d.htm");
+       aTE(2,0,"2D Meshing Hypotheses","files/max._element_area_hypothesis.htm");
+       aTE(2,0,"Max Element Volume hypothesis","files/max._element_volume_hypothsis.htm");
+       aTE(2,0,"Additional Hypotheses","files/non_conform_mesh_allowed_hypothesis.htm");
+     aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");
+     aTE(2,0,"Editing Meshes","files/reassigning_hypotheses_and_algorithms.htm");
+   aTE(1,8,"Viewing meshes");
+     aTE(2,0,"Viewing meshes","about_viewing_meshes.htm");
+     aTE(2,0,"VTK 3D Viewer","files/vtk_3d_viewer.htm");
+     aTE(2,0,"Mesh infos","files/viewing_mesh_info.htm");
+     aTE(2,0,"Numbering","files/displaying_nodes_numbers.htm");
+     aTE(2,0,"Display Mode","presentation.htm");
+     aTE(2,0,"Display Entity","display_entity.htm");
+     aTE(2,0,"Transparency","transparency.htm");
+     aTE(2,0,"Clipping","clipping.htm");
+   aTE(1,15,"Quality controls");
+     aTE(2,0,"About quality controls","files/about_quality_controls.htm");
+     aTE(2,0,"Free borders","free_borders.htm");
+     aTE(2,0,"Borders at multi-connection","borders_at_multi-connection.htm");
+     aTE(2,0,"Length","length.htm");
+     aTE(2,0,"Free edges","free_edges.htm");
+     aTE(2,0,"Length 2D","files/length_of_edges.htm");
+     aTE(2,0,"Borders at multi-connection 2D","borders_at_multiconnection_2d.htm");
+     aTE(2,0,"Area","files/area_of_elements.htm");
+     aTE(2,0,"Taper","files/taper.htm");
+     aTE(2,0,"Aspect ratio","files/aspect_ratio.htm");
+     aTE(2,0,"Minimum angle","files/minimum_angle.htm");
+     aTE(2,0,"Warping","files/warp.htm");
+     aTE(2,0,"Skew","files/skew.htm");
+     aTE(2,0,"Aspect ratio 3D","aspect_ratio_3d.htm");
+     aTE(2,0,"Volume","volume.htm");
+   aTE(1,6,"Grouping elements");
+     aTE(2,0,"Creating groups","files/creating_groups.htm");
+     aTE(2,0,"Editing groups","files/editing_groups.htm");
+     aTE(2,0,"Using operations on groups","files/using_operations_on_groups.htm");
+     aTE(2,0,"Constructing groups of specific elements","files/constructing_groups_of_specific_elements.htm");
+     aTE(2,0,"Deleting Groups","deleting_groups.htm");
+     aTE(2,0,"Selection filter library","selection_filter_library.htm");
+   aTE(1,22,"Modifying meshes");
+     aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");
+     aTE(2,0,"Adding quadratic elements","adding_quadratic_nodes_and_elements.htm");
+     aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");
+     aTE(2,0,"Renumbering nodes and elements","files/renumbering_nodes_and_elements.htm");
+     aTE(1,6,"Transforming meshes");
+       aTE(2,0,"Translation","files/translation.htm");
+       aTE(2,0,"Rotation","files/rotation.htm");
+       aTE(2,0,"Symmetry","files/symmetry.htm");
+       aTE(2,0,"Sewing meshes","files/sewing_meshes.htm");
+       aTE(2,0,"Merging nodes","files/merging_nodes.htm");
+       aTE(2,0,"Merging Elements","merge_elements.htm");
+     aTE(2,0,"Moving nodes","files/displacing_nodes.htm");
+     aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");
+     aTE(2,0,"Uniting two triangles","files/uniting_two_triangles.htm");
+     aTE(2,0,"Uniting a set of triangles","files/uniting_a_set_of_triangles.htm");
+     aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");
+     aTE(2,0,"Cutting quadrangles","files/cutting_quadrangles.htm");
+     aTE(2,0,"Smoothing","files/smoothing.htm");
+     aTE(2,0,"Extrusion","extrusion.htm");
+     aTE(2,0,"Extrusion along a path","extrusion_along_a_path.htm");
+     aTE(2,0,"Revolution","revolution.htm");
+     aTE(2,0,"Pattern mapping","pattern_mapping.htm");
+   aTE(2,0,"Access to Mesh module functionality from Python (using smesh.py)","smeshpy_doc/namespacesmesh.html");
+   aTE(1,7,"TUI Scripts");
+     aTE(2,0,"Creating Meshes","constructing_meshes.htm");
+     aTE(2,0,"Defining Hypotheses","defining_hypotheses_tui.htm");
+     aTE(2,0,"Viewing Meshes","viewing_meshes.htm");
+     aTE(2,0,"Quality Controls","quality_controls.htm");
+     aTE(2,0,"Grouping Elements","grouping_elements.htm");
+     aTE(2,0,"Modifying Meshes","modifying_meshes.htm");
+     aTE(2,0,"Transforming Meshes","transforming_meshes.htm");
+
+//-->
+</script>
+</body>
+</html>
index 54e0cbf2675c3d503ef1423f7b68ba90a78fbf87..459c3e311f1e746da12e0ddb7e7fa8b017e78281 100755 (executable)
@@ -1,16 +1,16 @@
-<html>\r
-<head>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whtoc.js"></script>\r
-<script language="javascript">\r
-<!--\r
-  setRoot("whtdata0.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whtoc.js"></script>
+<script language="javascript">
+<!--
+  setRoot("whtdata0.htm");
+
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index 163d8cc9fccffe102f3668437deb61debc84f163..62de5a132459181d179ba41151b4887edd914928 100755 (executable)
@@ -1,31 +1,31 @@
-//     WebHelp 5.10.001\r
-// const strings\r
-var gaProj = new Array();\r
-var gsRoot = "";\r
-\r
-function setRoot(sRoot)\r
-{\r
-       gsRoot = sRoot\r
-}\r
-\r
-function aPE(sProjPath, sRootPath)\r
-{\r
-       gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath);\r
-}\r
-\r
-function tocProjEntry(sProjPath, sRootPath) \r
-{\r
-       if(sProjPath.lastIndexOf("/")!=sProjPath.length-1)\r
-               sProjPath+="/"; \r
-       this.sPPath = sProjPath;\r
-       this.sRPath = sRootPath;\r
-}\r
-\r
-\r
-function window_OnLoad()\r
-{\r
-       if (parent && parent != this && parent.projReady) {\r
-               parent.projReady(gsRoot, gaProj);\r
-       }\r
-}\r
+//     WebHelp 5.10.001
+// const strings
+var gaProj = new Array();
+var gsRoot = "";
+
+function setRoot(sRoot)
+{
+       gsRoot = sRoot
+}
+
+function aPE(sProjPath, sRootPath)
+{
+       gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath);
+}
+
+function tocProjEntry(sProjPath, sRootPath) 
+{
+       if(sProjPath.lastIndexOf("/")!=sProjPath.length-1)
+               sProjPath+="/"; 
+       this.sPPath = sProjPath;
+       this.sRPath = sRootPath;
+}
+
+
+function window_OnLoad()
+{
+       if (parent && parent != this && parent.projReady) {
+               parent.projReady(gsRoot, gaProj);
+       }
+}
 window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whestart.ico b/doc/salome/gui/SMESH/whestart.ico
deleted file mode 100755 (executable)
index 110f183..0000000
Binary files a/doc/salome/gui/SMESH/whestart.ico and /dev/null differ
index 86d8e63dbafe7e5d038dc7b66ab0930a12c8706f..ea648e4b375454493febe9b00b94b1ef2a6da129 100755 (executable)
@@ -1,37 +1,37 @@
-<html>\r
-<head>\r
-<title>Search Result</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
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whlang.js"></script>\r
-<script language="javascript1.2" src="whfhost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if(window.gbWhFHost)\r
-{\r
-       setBackgroundcolor("White"); \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Error", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       FtsWriteClassStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">\r
-</body>\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Result</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whlang.js"></script>
+<script language="javascript1.2" src="whfhost.js"></script>
+<script language="javascript1.2">
+<!--
+if(window.gbWhFHost)
+{
+       
+       
+       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
+       setFont("Error", "Arial","9pt","#000000","normal","normal","none");
+       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
+       setActiveBgColor("#cccccc");
+       setMargin("0pt");
+       setIndent("9pt");
+       FtsWriteClassStyle();
+}
+else
+       document.location.reload();
+//-->
+</script>
+</head>
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
+</body>
+</html>
+
index 236beec73745da25df5bf9aa542ef7f3eb13f00f..c2e65bea10d2bcce6dcd3de7ff3b11ca070214ee 100755 (executable)
@@ -1,30 +1,30 @@
-<html>\r
-<head>\r
-<title>Search Frame</TITLE>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script LANGUAGE="javascript1.2">\r
-<!--\r
-var gbIndexLayerInit = false;\r
-var strWrite="";\r
-if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)\r
-{\r
-       if (gbMac)\r
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=0>";\r
-       else\r
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=0>";\r
-       strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";\r
-       strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";\r
-       strWrite +="</FRAMESET>";\r
-       document.write(strWrite);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</html>\r
+<html>
+<head>
+<title>Search Frame</TITLE>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script LANGUAGE="javascript1.2">
+<!--
+var gbIndexLayerInit = false;
+var strWrite="";
+if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
+{
+       if (gbMac)
+               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=1>";
+       else
+               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=1>";
+       strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";
+       strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";
+       strWrite +="</FRAMESET>";
+       document.write(strWrite);
+}
+else
+       document.location.reload();
+//-->
+</script>
+</html>
index f592a738df1874adf8ea78fbe08266987935ea4d..e01bedde668f4d56f0d4f66ee82cba60a2f1aa27 100755 (executable)
-<html>\r
-<head>\r
-<title>Search Form</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<body bgcolor="#c0c0c0">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whform.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gstrInput = "";\r
-function ftsLookup(bCR)\r
-{\r
-       if (bCR)\r
-       {\r
-               var strInput = document.FtsInputForm.keywordField.value.toUpperCase();\r
-               if (strInput != "") {\r
-                       var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);\r
-                       if (!SendMessage(oMsg))\r
-                       {\r
-                               gstrInput = strInput;\r
-                       }\r
-                       else\r
-                               gstrInput = "";\r
-               }\r
-\r
-               if (gbMac) {\r
-                       document.FtsInputForm.keywordField.focus();\r
-               }\r
-       }\r
-       return;\r
-}\r
-\r
-function beforeInit()\r
-{\r
-       var oParam = new Object();\r
-       oParam.sValue = "";\r
-       var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if (oParam.sValue != "" && oParam.sValue != "- Search -")\r
-               {\r
-                       document.FtsInputForm.keywordField.value = oParam.sValue;\r
-                       gfunLookUp(true);\r
-               }\r
-       }\r
-       init(); \r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if (oMsg.nMessageId == WH_MSG_SHOWFTS)\r
-       {\r
-               document.FtsInputForm.keywordField.focus();\r
-       }\r
-       else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||\r
-               oMsg.nMessageId == WH_MSG_SHOWTOC || \r
-               oMsg.nMessageId == WH_MSG_SHOWGLO)\r
-       {\r
-               document.FtsInputForm.keywordField.blur();\r
-       }\r
-       else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)\r
-       {\r
-               if (oMsg.oParam != "- Search -")\r
-               {\r
-                       document.FtsInputForm.keywordField.value = oMsg.oParam;\r
-                       gfunLookUp(true);\r
-               }\r
-       }\r
-       else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)\r
-       {\r
-               if (gstrInput)\r
-               {\r
-                       oMsg.oParam = gstrInput;\r
-                       gstrInput = "";\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhForm)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       RegisterListener2(this, WH_MSG_BACKUPSEARCH);\r
-       gfunLookUp = ftsLookup;\r
-       gfunInit = null;\r
-       gstrFormName = "FtsInputForm"\r
-       gsTitle = "Type in the word(s) to search for:";\r
-       gsTitle = "Type in the word(s) to search for:";\r
-       setGoImage1("wht_go.gif");\r
-       setBackgroundcolor("White");\r
-       \r
-       setBtnType("image");\r
-       \r
-       \r
-       \r
-       setGoText("Go");\r
-       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-       \r
-       \r
-       document.write(getFormHTML());\r
-       writeFormStyle();\r
-       window.onload = beforeInit;\r
-       window.onunload=window_unload;\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+<title>Search Form</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<style>
+<!--
+body {margin:0;}
+-->
+</style>
+<body bgcolor="#c0c0c0">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whform.js"></script>
+<script language="javascript1.2">
+<!--
+var gstrInput = "";
+function ftsLookup(bCR)
+{
+       if (bCR)
+       {
+               var strInput = document.FtsInputForm.keywordField.value.toUpperCase();
+               if (strInput != "") {
+                       var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);
+                       if (!SendMessage(oMsg))
+                       {
+                               gstrInput = strInput;
+                       }
+                       else
+                               gstrInput = "";
+               }
+
+               if (gbMac) {
+                       document.FtsInputForm.keywordField.focus();
+               }
+       }
+       return;
+}
+
+function beforeInit()
+{
+       var oParam = new Object();
+       oParam.sValue = "";
+       var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);
+       if (SendMessage(oMsg))
+       {
+               if (oParam.sValue != "" && oParam.sValue != "- Search -")
+               {
+                       document.FtsInputForm.keywordField.value = oParam.sValue;
+                       gfunLookUp(true);
+               }
+       }
+       init(); 
+}
+
+function window_unload()
+{
+       UnRegisterListener2(this, WH_MSG_SHOWTOC);
+       UnRegisterListener2(this, WH_MSG_SHOWIDX);
+       UnRegisterListener2(this, WH_MSG_SHOWFTS);
+       UnRegisterListener2(this, WH_MSG_SHOWGLO);
+       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
+       UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);
+}
+
+function onSendMessage(oMsg)
+{
+       if (oMsg.nMessageId == WH_MSG_SHOWFTS)
+       {
+               document.FtsInputForm.keywordField.focus();
+       }
+       else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||
+               oMsg.nMessageId == WH_MSG_SHOWTOC || 
+               oMsg.nMessageId == WH_MSG_SHOWGLO)
+       {
+               document.FtsInputForm.keywordField.blur();
+       }
+       else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)
+       {
+               if (oMsg.oParam != "- Search -")
+               {
+                       document.FtsInputForm.keywordField.value = oMsg.oParam;
+                       gfunLookUp(true);
+               }
+       }
+       else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)
+       {
+               if (gstrInput)
+               {
+                       oMsg.oParam = gstrInput;
+                       gstrInput = "";
+                       return false;
+               }
+       }
+       return true;
+}
+
+if (window.gbWhForm)
+{
+       RegisterListener2(this, WH_MSG_SHOWTOC);
+       RegisterListener2(this, WH_MSG_SHOWIDX);
+       RegisterListener2(this, WH_MSG_SHOWFTS);
+       RegisterListener2(this, WH_MSG_SHOWGLO);
+       RegisterListener2(this, WH_MSG_SEARCHTHIS);
+       RegisterListener2(this, WH_MSG_BACKUPSEARCH);
+       gfunLookUp = ftsLookup;
+       gfunInit = null;
+       gstrFormName = "FtsInputForm"
+       gsTitle = "Type in the word(s) to search for:";
+       gsTitle = "Type in the word(s) to search for:";
+       setGoImage1("");
+       
+       
+       
+       
+       
+       
+       setGoText("Go");
+       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
+       
+       
+       document.write(getFormHTML());
+       writeFormStyle();
+       window.onload = beforeInit;
+       window.onunload=window_unload;
+}
+else
+       document.location.reload();
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index 167acc45915b05c012cd31f07c821f7b6471945f..c3c7144fa7c88c2735b433abc615760fb8a314c4 100755 (executable)
-//     WebHelp 5.10.003\r
-var gsSK2=null;\r
-var gsSK=null;\r
-var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";\r
-var gnCLF=0;\r
-var gsHelpCannotSearch="Cannot search for that phrase.";\r
-var gsNoTopics="No Topics Found.";\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading data, please wait...";\r
-var gsSearchMsg="Searching...";\r
-var gsResultDivID="ResultDiv";\r
-var gaaFCD=new Array();\r
-var gaaFTCD=new Array();\r
-var goCF=null;\r
-var goCTF=null;\r
-var gaTI=null;\r
-var gnCurrentOp=0;\r
-var gbNot=false;\r
-var gbReady=false;\r
-var gnLoadFts=1;\r
-var gnCacheLimits=5;\r
-var gaCCD=new Array();\r
-var gbXML=false;\r
-var gaData=new Array();\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var gsMargin="0pt";\r
-var gsIndent="0pt";\r
-var gsCheckKey=null;\r
-var gnIndexNum=0;\r
-var gaFtsContentsCon=null;\r
-var gaTopicCheckInfo=null;\r
-var gnTopicCheck=0;\r
-var goFont=null;\r
-var goErrFont=null;\r
-var goHoverFont=null;\r
-var gsABgColor="#cccccc";\r
-var gbWhFHost=false;\r
-var gbFirst=false;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal")\r
-               goFont=vFont;\r
-       else if(sType=="Error")\r
-               goErrFont=vFont;\r
-       else if(sType=="Hover")\r
-               goHoverFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsABgColor=sBgColor;\r
-}\r
-\r
-function setMargin(sMargin)\r
-{\r
-       gsMargin=sMargin;\r
-}\r
-\r
-function setIndent(sIndent)\r
-{\r
-       gsIndent=sIndent;\r
-}\r
-\r
-function updateCache(oCF)\r
-{\r
-       var len=gaCCD.length;\r
-       if(len<gnCacheLimits*gnCLF)\r
-               gaCCD[len]=oCF;\r
-       else{\r
-               gaCCD[0].aTopics=null;\r
-               gaCCD[0].aFtsKeys=null;\r
-               removeItemFromArray(gaCCD,0);\r
-               gaCCD[len-1]=oCF;\r
-       }\r
-}\r
-\r
-function addFtsInfo(sPPath,sDPath,sFtsFile)\r
-{\r
-       gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);\r
-}\r
-\r
-function onLoadXMLError()\r
-{\r
-       if(gnLoadFts==1)\r
-       {\r
-               var aFCD=new Array();\r
-               var aFTCD=new Array();\r
-               ftsReady(aFCD,aFTCD);\r
-       }\r
-       else if(gnLoadFts==3)\r
-       {\r
-               var aTopics=new Array();\r
-               putFtsTData(aTopics);\r
-       }\r
-       else if(gnLoadFts==2)\r
-       {\r
-               putFtsWData(aFtsContents);\r
-               var aFtsContents=new Array();\r
-       }\r
-}\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gnLoadFts==1)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var oChild=node.firstChild;\r
-                       var aFCD=new Array();\r
-                       var aFTCD=new Array();\r
-                       while(oChild)\r
-                       {\r
-                               if(oChild.nodeName=="chunkinfo")\r
-                               {\r
-                                       var sURL=oChild.getAttribute("url");\r
-                                       var sFirst=oChild.getAttribute("first");\r
-                                       var sLast=oChild.getAttribute("last");\r
-                                       if(sURL&&sFirst&&sLast)\r
-                                       {\r
-                                               item=new Object();\r
-                                               item.sStartKey=sFirst;\r
-                                               item.sEndKey=sLast;\r
-                                               item.sFileName=sURL;\r
-                                               aFCD[aFCD.length]=item;\r
-                                       }\r
-                               }\r
-                               else if(oChild.nodeName=="tchunkinfo")\r
-                               {\r
-                                       var sURL=oChild.getAttribute("url");\r
-                                       var nB=parseInt(oChild.getAttribute("first"));\r
-                                       var nE=parseInt(oChild.getAttribute("last"));\r
-                                       if(sURL&&sFirst&&sLast)\r
-                                       {\r
-                                               item=new Object();\r
-                                               item.nBegin=nB;\r
-                                               item.nEnd=nE;\r
-                                               item.sFileName=sURL;\r
-                                               aFTCD[aFTCD.length]=item;\r
-                                       }\r
-\r
-                               }\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       ftsReady(aFCD,aFTCD);\r
-               }\r
-       }\r
-       else if(gnLoadFts==3)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var oChild=node.firstChild;\r
-                       var aTopics=new Array();\r
-                       while(oChild)\r
-                       {\r
-                               if(oChild.nodeName=="topic")\r
-                               {\r
-                                       var name=oChild.getAttribute("name");\r
-                                       var sURL=oChild.getAttribute("url");\r
-                                       if(name&&name.length>0&&sURL)\r
-                                       {\r
-                                               var topic=new Object();\r
-                                               topic.sTopicTitle=name;\r
-                                               topic.sTopicURL=sURL;\r
-                                               aTopics[aTopics.length]=topic;\r
-                                       }\r
-                               }\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       putFtsTData(aTopics);\r
-               }\r
-       }\r
-       else if(gnLoadFts==2)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var oChild=node.firstChild;\r
-                       var aFtsContents=new Array();\r
-                       while(oChild)\r
-                       {\r
-                               if(oChild.nodeName=="key")\r
-                               {\r
-                                       var name=oChild.getAttribute("name");\r
-                                       if(name&&name.length>0)\r
-                                       {\r
-                                               var item=new Object();\r
-                                               item.sItemName=name;\r
-                                               aFtsContents[aFtsContents.length]=item;\r
-                                               var oChildChild=oChild.firstChild;\r
-                                               while(oChildChild)\r
-                                               {\r
-                                                       if(oChildChild.nodeName=="#text")\r
-                                                       {\r
-                                                               var sIDs=oChildChild.nodeValue;\r
-                                                               if(sIDs)\r
-                                                               {\r
-                                                                       var nBPos=0;\r
-                                                                       do\r
-                                                                       {\r
-                                                                               var nPos=sIDs.indexOf(",",nBPos);\r
-                                                                               var sID=null;\r
-                                                                               if(nPos!=-1)\r
-                                                                                       sID=sIDs.substring(nBPos,nPos);\r
-                                                                               else\r
-                                                                                       sID=sIDs.substring(nBPos);\r
-\r
-                                                                               if(sID)\r
-                                                                               {\r
-                                                                                       var id=parseInt(sID);\r
-                                                                                       if(!isNaN(id))\r
-                                                                                       {\r
-                                                                                               if(!item.aTopics)\r
-                                                                                                       item.aTopics=new Array();\r
-                                                                                               item.aTopics[item.aTopics.length]=id;\r
-                                                                                       }\r
-                                                                               }\r
-                                                                               nBPos=nPos+1;\r
-                                                                       }while(nBPos!=0&&nBPos<sIDs.length);\r
-                                                               }\r
-                                                       }\r
-                                                       oChildChild=oChildChild.nextSibling;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       putFtsWData(aFtsContents);\r
-               }\r
-       }\r
-}\r
-\r
-function ftsInfo(sPPath,sDPath,sFtsFile)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.sFtsFile=sFtsFile;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       writeResultDiv();\r
-       loadFts();\r
-       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function writeResultDiv()\r
-{\r
-       var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";\r
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-}\r
-\r
-function loadFts()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbReady=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       var aProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       if(aProj.length>0)\r
-                       {\r
-                               var sLangId=aProj[0].sLangId;\r
-                               for(var i=0;i<aProj.length;i++)\r
-                               {\r
-                                       if(aProj[i].sFts&&aProj[i].sLangId==sLangId)\r
-                                       {\r
-                                               addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);\r
-                                       }\r
-                               }\r
-                       }\r
-                       loadFD();\r
-\r
-               }                               \r
-       }\r
-}\r
-\r
-function loadFD()\r
-{\r
-       if(gnCLF<gaData.length)\r
-       {\r
-               gnLoadFts=1;\r
-               loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);\r
-       }\r
-       else \r
-       {\r
-               var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);\r
-               if (SendMessage(oMsg))\r
-               {\r
-                       if (oMsg.oParam)\r
-                       {\r
-                               gsSK=oMsg.oParam.toLowerCase();\r
-                               findFTSKey();\r
-                       }\r
-               }\r
-               RegisterListener2(this, WH_MSG_SEARCHFTSKEY);\r
-       }\r
-}\r
-\r
-function loadData2(sFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(sFile);\r
-       else\r
-               loadData(sFile);\r
-}\r
-\r
-function findFTSKey()\r
-{\r
-       gaTI=new Array();\r
-       gnCurrentOp=1;\r
-       gbNot=false;\r
-       displayMsg(gsSearchMsg);\r
-       if(gsSK!="")\r
-       {\r
-               gbFirst=true;\r
-               findOneKey();\r
-       }\r
-}\r
-\r
-function findOneKey()\r
-{\r
-       if(gsSK && gsSK!="")\r
-       {\r
-               var sInput=gsSK;\r
-               var sCW="";\r
-               var nS=-1;\r
-               var nSep=-1;\r
-               for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){\r
-                       var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));\r
-                       if((nFound!=-1)&&((nS==-1)||(nFound<nS))){\r
-                               nS=nFound;\r
-                               nSep=nChar;\r
-                       }\r
-               }\r
-               if(nS==-1){\r
-                       sCW=sInput;\r
-                       sInput="";\r
-               }else{\r
-                       sCW=sInput.substring(0,nS);\r
-                       sInput=sInput.substring(nS+1);\r
-               }\r
-\r
-               gsSK=sInput;\r
-               \r
-               if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){\r
-                       gnCurrentOp=0;\r
-                       gbNot=false;\r
-               }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){\r
-                       gnCurrentOp=1;\r
-                       gbNot=false;\r
-               }else if((sCW=="not")||\r
-                       ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){\r
-                       gbNot=!gbNot;\r
-               }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){\r
-                       var sCurrentStem=GetStem(sCW);\r
-                       gsCW=sCurrentStem;\r
-                       ftsFindKeyword();\r
-                       return;\r
-               }\r
-               findOneKey();\r
-       }\r
-       else{\r
-               displayTopics();\r
-               checkAgain();\r
-       }\r
-}\r
-\r
-function checkAgain()\r
-{\r
-       gsCheckKey = "";\r
-       gnIndexNum = 0;\r
-       gsSK=gsSK2;\r
-       gsSK2=null;\r
-       if(gsSK!=null)\r
-               setTimeout("findFTSKey();",1);\r
-}\r
-\r
-function displayTopics()\r
-{\r
-       var sHTML="";\r
-       var sLine="";\r
-       for(var i=0;i<gaTI.length;i++){\r
-               sLine+="<dt><nobr><a href='"+gaTI[i].sTopicURL+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";\r
-               if(i>>4<<4==i)\r
-               {\r
-                       sHTML+=sLine;\r
-                       sLine="";\r
-               }\r
-       }\r
-       if(sLine.length>0)\r
-               sHTML+=sLine;\r
-\r
-       if(sHTML.length==0)\r
-               sHTML="<P>"+gsNoTopics+"</P>"\r
-       else\r
-               sHTML="<dl>"+sHTML+"</dl>";\r
-\r
-       var resultDiv=getElement(gsResultDivID);\r
-       if(resultDiv)\r
-               resultDiv.innerHTML=sHTML;\r
-}\r
-\r
-function displayMsg(sErrorMsg)\r
-{\r
-       var sHTML="<P>"+sErrorMsg+"</P>";\r
-\r
-       var resultDiv=getElement(gsResultDivID);\r
-       if(resultDiv)\r
-               resultDiv.innerHTML=sHTML;\r
-}\r
-\r
-function ftsFindKeyword()\r
-{\r
-       var sKey=gsCW;\r
-       var bNeedLoad=false;\r
-       var aFtsContentsCon=null;\r
-       var s=0;\r
-       if(sKey==null) return;\r
-       if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)\r
-       {\r
-               aFtsContentsCon=new Array();\r
-               gnCheck=0;\r
-               gsCheckKey=sKey;\r
-               gnTopicCheck=0;\r
-               gaTopicCheckInfo=null;\r
-       }\r
-       else{\r
-               s=gnIndexNum;\r
-               aFtsContentsCon=gaFtsContentsCon;\r
-       }\r
-       for(var i=gnCheck;i<gaaFCD.length;i++)\r
-       {\r
-               var oCF=getChunkedFts(i,sKey);\r
-               if(oCF)\r
-               {\r
-                       if(!oCF.aFtsKeys&&oCF.sFileName!=null)\r
-                       {\r
-                               bNeedLoad=true;\r
-                               oCF.nProjId=i;\r
-                               goCF=oCF;\r
-                               gnIndexNum=s;\r
-                               gnCheck=i;\r
-                               gaFtsContentsCon=aFtsContentsCon;\r
-                               gnLoadFts=2;\r
-                               beginLoading();\r
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);\r
-                               break;\r
-                       }\r
-                       else{\r
-                               aFtsContentsCon[s++]=oCF;\r
-                       }\r
-               }\r
-       }\r
-       if(!bNeedLoad)\r
-       {\r
-               var aTI=gaTopicCheckInfo;\r
-               for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)\r
-               {\r
-                       var aTIPart=getTopics(aFtsContentsCon[m],sKey);\r
-                       if(aTIPart==null)\r
-                       {\r
-                               gnCheck=gaaFCD.length;\r
-                               gnTopicCheck=m;\r
-                               gaTopicCheckInfo=aTI;\r
-                               gaFtsContentsCon=aFtsContentsCon;\r
-                               return;\r
-                       }\r
-                       if(m==0)\r
-                               aTI=aTIPart;\r
-                       else\r
-                               aTI=mergeTopics(aTI,aTIPart);\r
-               }\r
-               if(mergewithPreviousResult(aTI))\r
-               {\r
-                       gbFirst=false;\r
-                       findOneKey();\r
-               }\r
-               else\r
-                       checkAgain();\r
-       }\r
-}\r
-\r
-function mergewithPreviousResult(aTI)\r
-{\r
-       if(aTI!=null&&aTI.length!=0)\r
-       {\r
-               var nNumTopics=aTI.length;\r
-               if(gnCurrentOp==0||gbFirst){\r
-                       if(gbNot){\r
-                               displayMsg(gsHelpCannotSearch);\r
-                               return false;\r
-                       }else{\r
-                               var aLS,aSS;\r
-                               if(gaTI.length>=aTI.length)\r
-                               {\r
-                                       aLS=gaTI;\r
-                                       aSS=aTI;\r
-                               }\r
-                               else\r
-                               {\r
-                                       aLS=aTI;\r
-                                       aSS=gaTI;\r
-                               }\r
-                               var s=0;\r
-                               for(var i=0;i<aSS.length;i++)\r
-                               {\r
-                                       var bAlreadyThere=false;\r
-                                       for(var j=s;j<aLS.length;j++)\r
-                                       {\r
-                                               if(aSS[i].equalTo(aLS[j]))\r
-                                               {\r
-                                                       bAlreadyThere=true;\r
-                                                       s=j;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                                       if(!bAlreadyThere)\r
-                                       {\r
-                                               insertTopic(aLS,aSS[i]);\r
-                                       }\r
-                               }\r
-                               gaTI=aLS;\r
-                       }\r
-               }else if(gnCurrentOp==1){\r
-                       if(gbNot){\r
-                               var s=0;\r
-                               for(var i=0;i<aTI.length;i++)\r
-                               {\r
-                                       for(var j=s;j<gaTI.length;j++)\r
-                                       {\r
-                                               if(aTI[i].equalTo(gaTI[j]))\r
-                                               {\r
-                                                       removeItemFromArray(gaTI,j);\r
-                                                       s=j;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }else{\r
-                               var s=0;\r
-                               for(var i=0;i<gaTI.length;i++)\r
-                               {\r
-                                       var bFound=false;\r
-                                       for(var j=s;j<aTI.length;j++)\r
-                                       {\r
-                                               if(gaTI[i].equalTo(aTI[j]))\r
-                                               {\r
-                                                       bFound=true;\r
-                                                       s=j;\r
-                                               }\r
-                                       }\r
-                                       if(!bFound)\r
-                                       {\r
-                                               removeItemFromArray(gaTI,i);\r
-                                               i--;\r
-                                       }\r
-                               }                               \r
-                       }\r
-               }\r
-       }else{\r
-               if((gnCurrentOp==1)&&(!gbNot)){\r
-                       gaTI.length=0;\r
-               }else if((gnCurrentOp==0)&&(gbNot)){\r
-                       displayMsg(gsHelpCannotSearch);\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function insertTopic(aTI,oTI)\r
-{\r
-       var nB=0;\r
-       var nE=aTI.length-1;\r
-       if(nE>=0)\r
-       {\r
-               var nM;\r
-               var bFound=false;\r
-               do{\r
-                       nM=(nB+nE)>>1;\r
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)\r
-                               nE=nM-1;\r
-                       else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)\r
-                               nB=nM+1;\r
-                       else\r
-                       {\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }while(nB<=nE);\r
-               if(bFound)\r
-                       insertItemIntoArray(aTI,nM,oTI);\r
-               else\r
-               {\r
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)\r
-                               insertItemIntoArray(aTI,nM+1,oTI);\r
-                       else\r
-                               insertItemIntoArray(aTI,nM,oTI);\r
-               }\r
-       }\r
-       else\r
-               aTI[0]=oTI;\r
-}\r
-\r
-function mergeTopics(aTI1,aTI2)\r
-{\r
-       var i1=0;\r
-       var i2=0;\r
-       var len1=aTI1.length;\r
-       var len2=aTI2.length;\r
-       var aTopicNew=new Array();\r
-       var i=0;\r
-       while(i1<len1||i2<len2)\r
-       {\r
-               if(i1<len1&&i2<len2)\r
-               {\r
-                       if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)\r
-                               aTopicNew[i++]=aTI1[i1++];\r
-                       else\r
-                               aTopicNew[i++]=aTI2[i2++];\r
-               }\r
-               else if(i1<len1)\r
-                       aTopicNew[i++]=aTI1[i1++];\r
-               else if(i2<len2)\r
-                       aTopicNew[i++]=aTI2[i2++];\r
-       }\r
-       return aTopicNew;\r
-}\r
-\r
-function getTopics(oCF,sKey)\r
-{\r
-       var aTIPart=new Array();\r
-       if(oCF&&oCF.aFtsKeys)\r
-       {\r
-               var keys=oCF.aFtsKeys;\r
-               var nB=0;\r
-               var nE=keys.length-1;\r
-               var nM=-1;\r
-               var bFound=false;\r
-               do{\r
-                       nM=(nB+nE)>>1;\r
-                       if(compare(keys[nM].sItemName,sKey)>0)\r
-                               nE=nM-1;\r
-                       else if(compare(keys[nM].sItemName,sKey)<0)\r
-                               nB=nM+1;\r
-                       else{\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }while(nB<=nE);\r
-               if(bFound)\r
-               {\r
-                       if(keys[nM].aTopics)\r
-                       {\r
-                               for(var i=0;i<keys[nM].aTopics.length;i++)\r
-                               {\r
-                                       var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);\r
-                                       if(oTC.aTopics)\r
-                                       {\r
-                                               aTIPart[aTIPart.length]=\r
-                                                       new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,\r
-                                                               gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);\r
-                                       }\r
-                                       else{\r
-                                               goCTF=oTC;\r
-                                               gnLoadFts=3;\r
-                                               beginLoading();\r
-                                               loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);\r
-                                               return null;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return aTIPart;\r
-}\r
-\r
-function getTopicChunk(aFTCD,nTopicId)\r
-{\r
-       if(aFTCD&&aFTCD.length)\r
-       {\r
-               var nB=0;\r
-               var nE=aFTCD.length-1;\r
-               var nM=-1;\r
-               var bFound=false;\r
-               do{\r
-                       nM=(nB+nE)>>1;\r
-                       if(aFTCD[nM].nBegin>nTopicId)\r
-                               nE=nM-1;\r
-                       else if(aFTCD[nM].nEnd<nTopicId)\r
-                               nB=nM+1;\r
-                       else{\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }while(nB<=nE);\r
-               if(bFound)\r
-                       return aFTCD[nM];\r
-       }\r
-       return null;\r
-}\r
-\r
-function endLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(oDiv)\r
-               oDiv.style.visibility="hidden";\r
-}\r
-\r
-function beginLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(!oDiv)\r
-       {\r
-               document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());\r
-               oDiv=getElement(gsLoadingDivID);\r
-       }\r
-       \r
-       if(oDiv)\r
-       {\r
-               oDiv.style.top=document.body.scrollTop;\r
-               oDiv.style.visibility="visible";\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIIdx)\r
-{\r
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
-}\r
-\r
-function topicInfo(sTopicTitle,sTopicURL)\r
-{\r
-       this.sTopicTitle=sTopicTitle;\r
-       this.sTopicURL=sTopicURL;\r
-       this.equalTo=function(oTI)\r
-       {\r
-               return ((this.sTopicTitle==oTI.sTopicTitle)&&\r
-                       (this.sTopicURL==oTI.sTopicURL));\r
-       }\r
-}\r
-\r
-function getChunkedFts(nIndex,sKey)\r
-{\r
-       var oCF=null;\r
-       if(nIndex<gaaFCD.length)\r
-       {\r
-               var len=gaaFCD[nIndex].length;\r
-               if(len>0)\r
-               {\r
-                       var nB=0;\r
-                       var nE=len-1;\r
-                       var bFound=false;\r
-                       do{\r
-                               var nM=(nB+nE)>>1;\r
-                               if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)\r
-                               {\r
-                                       nB=nM+1;\r
-                               }\r
-                               else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)\r
-                               {\r
-                                       nE=nM-1;\r
-                               }\r
-                               else{\r
-                                       bFound=true;\r
-                                       break;\r
-                               }\r
-                       }while(nE>=nB);\r
-                       if(bFound)\r
-                               oCF=gaaFCD[nIndex][nM];\r
-               }\r
-       }\r
-       return oCF;\r
-}\r
-\r
-function ftsReady(aFCD,aFTCD)\r
-{\r
-       endLoading();\r
-       gaaFTCD[gnCLF]=aFTCD;\r
-       gaaFCD[gnCLF++]=aFCD;\r
-       setTimeout("loadFD();",1);\r
-}\r
-\r
-function putFtsTData(aTopics)\r
-{\r
-       endLoading();\r
-       var oCTF=goCTF;\r
-       if(oCTF)\r
-       {\r
-               oCTF.aTopics=aTopics;\r
-               setTimeout("ftsFindKeyword();",1);\r
-       }\r
-}\r
-\r
-function putFtsWData(aFtsContents)\r
-{\r
-       endLoading();\r
-       var oCF=goCF;\r
-       if(oCF)\r
-       {\r
-               updateCache(oCF);\r
-               oCF.aFtsKeys=aFtsContents;\r
-               setTimeout("ftsFindKeyword();",1);\r
-       }\r
-}\r
-\r
-function IsStopWord(sCW,aFtsStopArray)\r
-{\r
-       var nStopArrayLen=aFtsStopArray.length;\r
-       var nB=0;\r
-       var nE=nStopArrayLen-1;\r
-       var nM=0;\r
-       var bFound=false;\r
-       var sStopWord="";\r
-       while(nB<=nE){\r
-               nM=(nB+nE);\r
-               nM>>=1;\r
-               sStopWord=aFtsStopArray[nM];\r
-               if(compare(sCW,sStopWord)>0){\r
-                       nB=(nB==nM)?nM+1:nM;\r
-               }else{\r
-                       if(compare(sCW,sStopWord)<0){\r
-                               nE=(nE==nM)?nM-1:nM;\r
-                       }else{\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-       return bFound;\r
-}\r
-\r
-function GetStem(szWord)\r
-{\r
-       if(gaFtsStem==null||gaFtsStem.length==0)return szWord;\r
-       var aStems=gaFtsStem;\r
-\r
-       var nStemPos=0;\r
-       var csStem="";\r
-       for(var iStem=0;iStem<aStems.length;iStem++){\r
-\r
-               if(aStems[iStem].length>=szWord.length-1)       continue;\r
-               nStemPos=szWord.lastIndexOf(aStems[iStem]);\r
-               if(nStemPos>0){\r
-                       var cssub=szWord.substring(nStemPos);\r
-                       if(cssub==aStems[iStem]){\r
-                               csStem=szWord;\r
-                               if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){\r
-                                       csStem=csStem.substring(0,nStemPos-1);\r
-                               }else{\r
-                                       csStem=csStem.substring(0,nStemPos);\r
-                               }\r
-                               return csStem;\r
-                       }\r
-               }\r
-       }\r
-       return szWord;\r
-}\r
-\r
-function FtsWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);\r
-}\r
-\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_SEARCHFTSKEY)\r
-       {\r
-               if(oMsg.oParam)\r
-               {\r
-                       if(gsSK==null||gsSK=="")\r
-                       {\r
-                               gsSK=oMsg.oParam.toLowerCase();\r
-                               findFTSKey();\r
-                       }\r
-                       else\r
-                               gsSK2=oMsg.oParam.toLowerCase();\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_PROJECTREADY)\r
-       {\r
-               loadFts();\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)\r
-{\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");\r
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_Unload;\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       gbWhFHost=true;\r
-}\r
-else\r
+//     WebHelp 5.10.003
+var gsSK2=null;
+var gsSK=null;
+var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";
+var gnCLF=0;
+var gsHelpCannotSearch="Cannot search for that phrase.";
+var gsNoTopics="No Topics Found.";
+var gsLoadingDivID="LoadingDiv";
+var gsLoadingMsg="Loading data, please wait...";
+var gsSearchMsg="Searching...";
+var gsResultDivID="ResultDiv";
+var gaaFCD=new Array();
+var gaaFTCD=new Array();
+var goCF=null;
+var goCTF=null;
+var gaTI=null;
+var gnCurrentOp=0;
+var gbNot=false;
+var gbReady=false;
+var gnLoadFts=1;
+var gnCacheLimits=5;
+var gaCCD=new Array();
+var gbXML=false;
+var gaData=new Array();
+var gsBgColor="#ffffff";
+var gsBgImage="";
+var gsMargin="0pt";
+var gsIndent="0pt";
+var gsCheckKey=null;
+var gnIndexNum=0;
+var gaFtsContentsCon=null;
+var gaTopicCheckInfo=null;
+var gnTopicCheck=0;
+var goFont=null;
+var goErrFont=null;
+var goHoverFont=null;
+var gsABgColor="#cccccc";
+var gbWhFHost=false;
+var gbFirst=false;
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Normal")
+               goFont=vFont;
+       else if(sType=="Error")
+               goErrFont=vFont;
+       else if(sType=="Hover")
+               goHoverFont=vFont;
+}
+
+function setActiveBgColor(sBgColor)
+{
+       gsABgColor=sBgColor;
+}
+
+function setMargin(sMargin)
+{
+       gsMargin=sMargin;
+}
+
+function setIndent(sIndent)
+{
+       gsIndent=sIndent;
+}
+
+function updateCache(oCF)
+{
+       var len=gaCCD.length;
+       if(len<gnCacheLimits*gnCLF)
+               gaCCD[len]=oCF;
+       else{
+               gaCCD[0].aTopics=null;
+               gaCCD[0].aFtsKeys=null;
+               removeItemFromArray(gaCCD,0);
+               gaCCD[len-1]=oCF;
+       }
+}
+
+function addFtsInfo(sPPath,sDPath,sFtsFile)
+{
+       gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);
+}
+
+function onLoadXMLError()
+{
+       if(gnLoadFts==1)
+       {
+               var aFCD=new Array();
+               var aFTCD=new Array();
+               ftsReady(aFCD,aFTCD);
+       }
+       else if(gnLoadFts==3)
+       {
+               var aTopics=new Array();
+               putFtsTData(aTopics);
+       }
+       else if(gnLoadFts==2)
+       {
+               putFtsWData(aFtsContents);
+               var aFtsContents=new Array();
+       }
+}
+
+function putDataXML(xmlDoc,sDocPath)
+{
+       if(gnLoadFts==1)
+       {
+               var node=xmlDoc.lastChild;
+               if(node)
+               {
+                       var oChild=node.firstChild;
+                       var aFCD=new Array();
+                       var aFTCD=new Array();
+                       while(oChild)
+                       {
+                               if(oChild.nodeName=="chunkinfo")
+                               {
+                                       var sURL=oChild.getAttribute("url");
+                                       var sFirst=oChild.getAttribute("first");
+                                       var sLast=oChild.getAttribute("last");
+                                       if(sURL&&sFirst&&sLast)
+                                       {
+                                               item=new Object();
+                                               item.sStartKey=sFirst;
+                                               item.sEndKey=sLast;
+                                               item.sFileName=sURL;
+                                               aFCD[aFCD.length]=item;
+                                       }
+                               }
+                               else if(oChild.nodeName=="tchunkinfo")
+                               {
+                                       var sURL=oChild.getAttribute("url");
+                                       var nB=parseInt(oChild.getAttribute("first"));
+                                       var nE=parseInt(oChild.getAttribute("last"));
+                                       if(sURL&&sFirst&&sLast)
+                                       {
+                                               item=new Object();
+                                               item.nBegin=nB;
+                                               item.nEnd=nE;
+                                               item.sFileName=sURL;
+                                               aFTCD[aFTCD.length]=item;
+                                       }
+
+                               }
+                               oChild=oChild.nextSibling;
+                       }
+                       ftsReady(aFCD,aFTCD);
+               }
+       }
+       else if(gnLoadFts==3)
+       {
+               var node=xmlDoc.lastChild;
+               if(node)
+               {
+                       var oChild=node.firstChild;
+                       var aTopics=new Array();
+                       while(oChild)
+                       {
+                               if(oChild.nodeName=="topic")
+                               {
+                                       var name=oChild.getAttribute("name");
+                                       var sURL=oChild.getAttribute("url");
+                                       if(name&&name.length>0&&sURL)
+                                       {
+                                               var topic=new Object();
+                                               topic.sTopicTitle=name;
+                                               topic.sTopicURL=sURL;
+                                               aTopics[aTopics.length]=topic;
+                                       }
+                               }
+                               oChild=oChild.nextSibling;
+                       }
+                       putFtsTData(aTopics);
+               }
+       }
+       else if(gnLoadFts==2)
+       {
+               var node=xmlDoc.lastChild;
+               if(node)
+               {
+                       var oChild=node.firstChild;
+                       var aFtsContents=new Array();
+                       while(oChild)
+                       {
+                               if(oChild.nodeName=="key")
+                               {
+                                       var name=oChild.getAttribute("name");
+                                       if(name&&name.length>0)
+                                       {
+                                               var item=new Object();
+                                               item.sItemName=name;
+                                               aFtsContents[aFtsContents.length]=item;
+                                               var oChildChild=oChild.firstChild;
+                                               while(oChildChild)
+                                               {
+                                                       if(oChildChild.nodeName=="#text")
+                                                       {
+                                                               var sIDs=oChildChild.nodeValue;
+                                                               if(sIDs)
+                                                               {
+                                                                       var nBPos=0;
+                                                                       do
+                                                                       {
+                                                                               var nPos=sIDs.indexOf(",",nBPos);
+                                                                               var sID=null;
+                                                                               if(nPos!=-1)
+                                                                                       sID=sIDs.substring(nBPos,nPos);
+                                                                               else
+                                                                                       sID=sIDs.substring(nBPos);
+
+                                                                               if(sID)
+                                                                               {
+                                                                                       var id=parseInt(sID);
+                                                                                       if(!isNaN(id))
+                                                                                       {
+                                                                                               if(!item.aTopics)
+                                                                                                       item.aTopics=new Array();
+                                                                                               item.aTopics[item.aTopics.length]=id;
+                                                                                       }
+                                                                               }
+                                                                               nBPos=nPos+1;
+                                                                       }while(nBPos!=0&&nBPos<sIDs.length);
+                                                               }
+                                                       }
+                                                       oChildChild=oChildChild.nextSibling;
+                                               }
+                                       }
+                               }
+                               oChild=oChild.nextSibling;
+                       }
+                       putFtsWData(aFtsContents);
+               }
+       }
+}
+
+function ftsInfo(sPPath,sDPath,sFtsFile)
+{
+       this.sPPath=sPPath;
+       this.sDPath=sDPath;
+       this.sFtsFile=sFtsFile;
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+       {
+               document.body.background=gsBgImage;
+       }
+       if(gsBgColor&&gsBgColor.length>0)
+       {
+               document.body.bgColor=gsBgColor;
+       }
+       writeResultDiv();
+       loadFts();
+       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
+       SendMessage(oMsg);
+}
+
+function writeResultDiv()
+{
+       var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";
+       document.body.insertAdjacentHTML("beforeEnd",sHTML);
+}
+
+function loadFts()
+{
+       if(!gbReady)
+       {
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
+               if(SendMessage(oResMsg)&&oResMsg.oParam)
+               {
+                       gbReady=true;
+                       var oProj=oResMsg.oParam;
+                       var aProj=oProj.aProj;
+                       gbXML=oProj.bXML;
+                       if(aProj.length>0)
+                       {
+                               var sLangId=aProj[0].sLangId;
+                               for(var i=0;i<aProj.length;i++)
+                               {
+                                       if(aProj[i].sFts&&aProj[i].sLangId==sLangId)
+                                       {
+                                               addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);
+                                       }
+                               }
+                       }
+                       loadFD();
+
+               }                               
+       }
+}
+
+function loadFD()
+{
+       if(gnCLF<gaData.length)
+       {
+               gnLoadFts=1;
+               loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);
+       }
+       else 
+       {
+               var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);
+               if (SendMessage(oMsg))
+               {
+                       if (oMsg.oParam)
+                       {
+                               gsSK=oMsg.oParam.toLowerCase();
+                               findFTSKey();
+                       }
+               }
+               RegisterListener2(this, WH_MSG_SEARCHFTSKEY);
+       }
+}
+
+function loadData2(sFile)
+{
+       if(gbXML)
+               loadDataXML(sFile);
+       else
+               loadData(sFile);
+}
+
+function findFTSKey()
+{
+       gaTI=new Array();
+       gnCurrentOp=1;
+       gbNot=false;
+       displayMsg(gsSearchMsg);
+       if(gsSK!="")
+       {
+               gbFirst=true;
+               findOneKey();
+       }
+}
+
+function findOneKey()
+{
+       if(gsSK && gsSK!="")
+       {
+               var sInput=gsSK;
+               var sCW="";
+               var nS=-1;
+               var nSep=-1;
+               for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){
+                       var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));
+                       if((nFound!=-1)&&((nS==-1)||(nFound<nS))){
+                               nS=nFound;
+                               nSep=nChar;
+                       }
+               }
+               if(nS==-1){
+                       sCW=sInput;
+                       sInput="";
+               }else{
+                       sCW=sInput.substring(0,nS);
+                       sInput=sInput.substring(nS+1);
+               }
+
+               gsSK=sInput;
+               
+               if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){
+                       gnCurrentOp=0;
+                       gbNot=false;
+               }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){
+                       gnCurrentOp=1;
+                       gbNot=false;
+               }else if((sCW=="not")||
+                       ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){
+                       gbNot=!gbNot;
+               }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){
+                       var sCurrentStem=GetStem(sCW);
+                       gsCW=sCurrentStem;
+                       ftsFindKeyword();
+                       return;
+               }
+               findOneKey();
+       }
+       else{
+               displayTopics();
+               checkAgain();
+       }
+}
+
+function checkAgain()
+{
+       gsCheckKey = "";
+       gnIndexNum = 0;
+       gsSK=gsSK2;
+       gsSK2=null;
+       if(gsSK!=null)
+               setTimeout("findFTSKey();",1);
+}
+
+function displayTopics()
+{
+       var sHTML="";
+       var sLine="";
+       for(var i=0;i<gaTI.length;i++){
+               sLine+="<dt><nobr><a href='"+gaTI[i].sTopicURL+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";
+               if(i>>4<<4==i)
+               {
+                       sHTML+=sLine;
+                       sLine="";
+               }
+       }
+       if(sLine.length>0)
+               sHTML+=sLine;
+
+       if(sHTML.length==0)
+               sHTML="<P>"+gsNoTopics+"</P>"
+       else
+               sHTML="<dl>"+sHTML+"</dl>";
+
+       var resultDiv=getElement(gsResultDivID);
+       if(resultDiv)
+               resultDiv.innerHTML=sHTML;
+}
+
+function displayMsg(sErrorMsg)
+{
+       var sHTML="<P>"+sErrorMsg+"</P>";
+
+       var resultDiv=getElement(gsResultDivID);
+       if(resultDiv)
+               resultDiv.innerHTML=sHTML;
+}
+
+function ftsFindKeyword()
+{
+       var sKey=gsCW;
+       var bNeedLoad=false;
+       var aFtsContentsCon=null;
+       var s=0;
+       if(sKey==null) return;
+       if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)
+       {
+               aFtsContentsCon=new Array();
+               gnCheck=0;
+               gsCheckKey=sKey;
+               gnTopicCheck=0;
+               gaTopicCheckInfo=null;
+       }
+       else{
+               s=gnIndexNum;
+               aFtsContentsCon=gaFtsContentsCon;
+       }
+       for(var i=gnCheck;i<gaaFCD.length;i++)
+       {
+               var oCF=getChunkedFts(i,sKey);
+               if(oCF)
+               {
+                       if(!oCF.aFtsKeys&&oCF.sFileName!=null)
+                       {
+                               bNeedLoad=true;
+                               oCF.nProjId=i;
+                               goCF=oCF;
+                               gnIndexNum=s;
+                               gnCheck=i;
+                               gaFtsContentsCon=aFtsContentsCon;
+                               gnLoadFts=2;
+                               beginLoading();
+                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);
+                               break;
+                       }
+                       else{
+                               aFtsContentsCon[s++]=oCF;
+                       }
+               }
+       }
+       if(!bNeedLoad)
+       {
+               var aTI=gaTopicCheckInfo;
+               for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)
+               {
+                       var aTIPart=getTopics(aFtsContentsCon[m],sKey);
+                       if(aTIPart==null)
+                       {
+                               gnCheck=gaaFCD.length;
+                               gnTopicCheck=m;
+                               gaTopicCheckInfo=aTI;
+                               gaFtsContentsCon=aFtsContentsCon;
+                               return;
+                       }
+                       if(m==0)
+                               aTI=aTIPart;
+                       else
+                               aTI=mergeTopics(aTI,aTIPart);
+               }
+               if(mergewithPreviousResult(aTI))
+               {
+                       gbFirst=false;
+                       findOneKey();
+               }
+               else
+                       checkAgain();
+       }
+}
+
+function mergewithPreviousResult(aTI)
+{
+       if(aTI!=null&&aTI.length!=0)
+       {
+               var nNumTopics=aTI.length;
+               if(gnCurrentOp==0||gbFirst){
+                       if(gbNot){
+                               displayMsg(gsHelpCannotSearch);
+                               return false;
+                       }else{
+                               var aLS,aSS;
+                               if(gaTI.length>=aTI.length)
+                               {
+                                       aLS=gaTI;
+                                       aSS=aTI;
+                               }
+                               else
+                               {
+                                       aLS=aTI;
+                                       aSS=gaTI;
+                               }
+                               var s=0;
+                               for(var i=0;i<aSS.length;i++)
+                               {
+                                       var bAlreadyThere=false;
+                                       for(var j=s;j<aLS.length;j++)
+                                       {
+                                               if(aSS[i].equalTo(aLS[j]))
+                                               {
+                                                       bAlreadyThere=true;
+                                                       s=j;
+                                                       break;
+                                               }
+                                       }
+                                       if(!bAlreadyThere)
+                                       {
+                                               insertTopic(aLS,aSS[i]);
+                                       }
+                               }
+                               gaTI=aLS;
+                       }
+               }else if(gnCurrentOp==1){
+                       if(gbNot){
+                               var s=0;
+                               for(var i=0;i<aTI.length;i++)
+                               {
+                                       for(var j=s;j<gaTI.length;j++)
+                                       {
+                                               if(aTI[i].equalTo(gaTI[j]))
+                                               {
+                                                       removeItemFromArray(gaTI,j);
+                                                       s=j;
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }else{
+                               var s=0;
+                               for(var i=0;i<gaTI.length;i++)
+                               {
+                                       var bFound=false;
+                                       for(var j=s;j<aTI.length;j++)
+                                       {
+                                               if(gaTI[i].equalTo(aTI[j]))
+                                               {
+                                                       bFound=true;
+                                                       s=j;
+                                               }
+                                       }
+                                       if(!bFound)
+                                       {
+                                               removeItemFromArray(gaTI,i);
+                                               i--;
+                                       }
+                               }                               
+                       }
+               }
+       }else{
+               if((gnCurrentOp==1)&&(!gbNot)){
+                       gaTI.length=0;
+               }else if((gnCurrentOp==0)&&(gbNot)){
+                       displayMsg(gsHelpCannotSearch);
+                       return false;
+               }
+       }
+       return true;
+}
+
+function insertTopic(aTI,oTI)
+{
+       var nB=0;
+       var nE=aTI.length-1;
+       if(nE>=0)
+       {
+               var nM;
+               var bFound=false;
+               do{
+                       nM=(nB+nE)>>1;
+                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)
+                               nE=nM-1;
+                       else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
+                               nB=nM+1;
+                       else
+                       {
+                               bFound=true;
+                               break;
+                       }
+               }while(nB<=nE);
+               if(bFound)
+                       insertItemIntoArray(aTI,nM,oTI);
+               else
+               {
+                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
+                               insertItemIntoArray(aTI,nM+1,oTI);
+                       else
+                               insertItemIntoArray(aTI,nM,oTI);
+               }
+       }
+       else
+               aTI[0]=oTI;
+}
+
+function mergeTopics(aTI1,aTI2)
+{
+       var i1=0;
+       var i2=0;
+       var len1=aTI1.length;
+       var len2=aTI2.length;
+       var aTopicNew=new Array();
+       var i=0;
+       while(i1<len1||i2<len2)
+       {
+               if(i1<len1&&i2<len2)
+               {
+                       if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)
+                               aTopicNew[i++]=aTI1[i1++];
+                       else
+                               aTopicNew[i++]=aTI2[i2++];
+               }
+               else if(i1<len1)
+                       aTopicNew[i++]=aTI1[i1++];
+               else if(i2<len2)
+                       aTopicNew[i++]=aTI2[i2++];
+       }
+       return aTopicNew;
+}
+
+function getTopics(oCF,sKey)
+{
+       var aTIPart=new Array();
+       if(oCF&&oCF.aFtsKeys)
+       {
+               var keys=oCF.aFtsKeys;
+               var nB=0;
+               var nE=keys.length-1;
+               var nM=-1;
+               var bFound=false;
+               do{
+                       nM=(nB+nE)>>1;
+                       if(compare(keys[nM].sItemName,sKey)>0)
+                               nE=nM-1;
+                       else if(compare(keys[nM].sItemName,sKey)<0)
+                               nB=nM+1;
+                       else{
+                               bFound=true;
+                               break;
+                       }
+               }while(nB<=nE);
+               if(bFound)
+               {
+                       if(keys[nM].aTopics)
+                       {
+                               for(var i=0;i<keys[nM].aTopics.length;i++)
+                               {
+                                       var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);
+                                       if(oTC.aTopics)
+                                       {
+                                               aTIPart[aTIPart.length]=
+                                                       new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,
+                                                               gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);
+                                       }
+                                       else{
+                                               goCTF=oTC;
+                                               gnLoadFts=3;
+                                               beginLoading();
+                                               loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);
+                                               return null;
+                                       }
+                               }
+                       }
+               }
+       }
+       return aTIPart;
+}
+
+function getTopicChunk(aFTCD,nTopicId)
+{
+       if(aFTCD&&aFTCD.length)
+       {
+               var nB=0;
+               var nE=aFTCD.length-1;
+               var nM=-1;
+               var bFound=false;
+               do{
+                       nM=(nB+nE)>>1;
+                       if(aFTCD[nM].nBegin>nTopicId)
+                               nE=nM-1;
+                       else if(aFTCD[nM].nEnd<nTopicId)
+                               nB=nM+1;
+                       else{
+                               bFound=true;
+                               break;
+                       }
+               }while(nB<=nE);
+               if(bFound)
+                       return aFTCD[nM];
+       }
+       return null;
+}
+
+function endLoading()
+{
+       var oDiv=getElement(gsLoadingDivID);
+       if(oDiv)
+               oDiv.style.visibility="hidden";
+}
+
+function beginLoading()
+{
+       var oDiv=getElement(gsLoadingDivID);
+       if(!oDiv)
+       {
+               document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());
+               oDiv=getElement(gsLoadingDivID);
+       }
+       
+       if(oDiv)
+       {
+               oDiv.style.top=document.body.scrollTop;
+               oDiv.style.visibility="visible";
+       }
+}
+
+function writeLoadingDiv(nIIdx)
+{
+       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
+}
+
+function topicInfo(sTopicTitle,sTopicURL)
+{
+       this.sTopicTitle=sTopicTitle;
+       this.sTopicURL=sTopicURL;
+       this.equalTo=function(oTI)
+       {
+               return ((this.sTopicTitle==oTI.sTopicTitle)&&
+                       (this.sTopicURL==oTI.sTopicURL));
+       }
+}
+
+function getChunkedFts(nIndex,sKey)
+{
+       var oCF=null;
+       if(nIndex<gaaFCD.length)
+       {
+               var len=gaaFCD[nIndex].length;
+               if(len>0)
+               {
+                       var nB=0;
+                       var nE=len-1;
+                       var bFound=false;
+                       do{
+                               var nM=(nB+nE)>>1;
+                               if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)
+                               {
+                                       nB=nM+1;
+                               }
+                               else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)
+                               {
+                                       nE=nM-1;
+                               }
+                               else{
+                                       bFound=true;
+                                       break;
+                               }
+                       }while(nE>=nB);
+                       if(bFound)
+                               oCF=gaaFCD[nIndex][nM];
+               }
+       }
+       return oCF;
+}
+
+function ftsReady(aFCD,aFTCD)
+{
+       endLoading();
+       gaaFTCD[gnCLF]=aFTCD;
+       gaaFCD[gnCLF++]=aFCD;
+       setTimeout("loadFD();",1);
+}
+
+function putFtsTData(aTopics)
+{
+       endLoading();
+       var oCTF=goCTF;
+       if(oCTF)
+       {
+               oCTF.aTopics=aTopics;
+               setTimeout("ftsFindKeyword();",1);
+       }
+}
+
+function putFtsWData(aFtsContents)
+{
+       endLoading();
+       var oCF=goCF;
+       if(oCF)
+       {
+               updateCache(oCF);
+               oCF.aFtsKeys=aFtsContents;
+               setTimeout("ftsFindKeyword();",1);
+       }
+}
+
+function IsStopWord(sCW,aFtsStopArray)
+{
+       var nStopArrayLen=aFtsStopArray.length;
+       var nB=0;
+       var nE=nStopArrayLen-1;
+       var nM=0;
+       var bFound=false;
+       var sStopWord="";
+       while(nB<=nE){
+               nM=(nB+nE);
+               nM>>=1;
+               sStopWord=aFtsStopArray[nM];
+               if(compare(sCW,sStopWord)>0){
+                       nB=(nB==nM)?nM+1:nM;
+               }else{
+                       if(compare(sCW,sStopWord)<0){
+                               nE=(nE==nM)?nM-1:nM;
+                       }else{
+                               bFound=true;
+                               break;
+                       }
+               }
+       }
+       return bFound;
+}
+
+function GetStem(szWord)
+{
+       if(gaFtsStem==null||gaFtsStem.length==0)return szWord;
+       var aStems=gaFtsStem;
+
+       var nStemPos=0;
+       var csStem="";
+       for(var iStem=0;iStem<aStems.length;iStem++){
+
+               if(aStems[iStem].length>=szWord.length-1)       continue;
+               nStemPos=szWord.lastIndexOf(aStems[iStem]);
+               if(nStemPos>0){
+                       var cssub=szWord.substring(nStemPos);
+                       if(cssub==aStems[iStem]){
+                               csStem=szWord;
+                               if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){
+                                       csStem=csStem.substring(0,nStemPos-1);
+                               }else{
+                                       csStem=csStem.substring(0,nStemPos);
+                               }
+                               return csStem;
+                       }
+               }
+       }
+       return szWord;
+}
+
+function FtsWriteClassStyle()
+{
+       var sStyle="<STYLE TYPE='text/css'>\n";
+       if (gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
+       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
+       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
+       sStyle+="</STYLE>";
+       document.write(sStyle);
+}
+
+function window_Unload()
+{
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
+       UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);
+}
+
+
+function onSendMessage(oMsg)
+{
+       var nMsgId=oMsg.nMessageId;
+       if(nMsgId==WH_MSG_SEARCHFTSKEY)
+       {
+               if(oMsg.oParam)
+               {
+                       if(gsSK==null||gsSK=="")
+                       {
+                               gsSK=oMsg.oParam.toLowerCase();
+                               findFTSKey();
+                       }
+                       else
+                               gsSK2=oMsg.oParam.toLowerCase();
+               }
+       }
+       else if(nMsgId==WH_MSG_PROJECTREADY)
+       {
+               loadFts();
+       }
+       return true;
+}
+
+if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)
+{
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+       goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");
+       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
+       window.onload=window_OnLoad;
+       window.onbeforeunload=window_BUnload;
+       window.onunload=window_Unload;
+       RegisterListener2(this,WH_MSG_PROJECTREADY);
+       gbWhFHost=true;
+}
+else
        document.location.reload();
\ No newline at end of file
index 323fe8e91bf33c105ab281fe476935f42e0b1a85..bc4ebfd4a5f5c00ec054c1e625b1ac144bd5342e 100755 (executable)
-//     WebHelp 5.10.001\r
-var gfunLookUp;\r
-var gbInputEnable;\r
-var gfunInit;\r
-var gstrFormName= "";\r
-var gbWithButton = false;\r
-var gsTitle="";\r
-var gsOverImage = "";\r
-var gsOutImage = "";\r
-var gsClickImage = "";\r
-var gsText = "";\r
-var gsBgColor = "#c0c0c0";\r
-var gsBgImage = "";\r
-var gbInImage = 0;\r
-var gbInputEnable = 0;\r
-\r
-var goTitleFont=null;\r
-var goInputFont=null;\r
-var goNormalFont=null;\r
-var goHoverFont=null;\r
-var gnType=-1;\r
-var gbWhForm=false;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       if (sBgImage != null && sBgImage.length > 0)\r
-               gsBgImage = sBgImage;\r
-\r
-       if  (gsBgImage  && gsBgImage .length > 0)\r
-       {\r
-               document.body.background = gsBgImage ;\r
-       }\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       if (sBgColor != null && sBgColor.length > 0)\r
-               gsBgColor = sBgColor;\r
-\r
-       if (gsBgColor&& gsBgColor.length > 0)\r
-       {\r
-               document.body.bgColor = gsBgColor;\r
-       }\r
-}\r
-\r
-function setBtnType(sType)\r
-{\r
-       if (sType == "image")\r
-       {\r
-               gnType = 0;\r
-       }\r
-       else if (sType == "text")\r
-       {\r
-               gnType = 1;\r
-       }\r
-}\r
-\r
-function setGoImage1(sImage1)\r
-{\r
-       gsOutImage = sImage1;\r
-       if (gsOutImage && gsOutImage.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setGoImage2(sImage2)\r
-{\r
-       gsOverImage = sImage2;\r
-       if (gsOverImage && gsOverImage.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setGoImage3(sImage3)\r
-{\r
-       gsClickImage = sImage3;\r
-       if (gsClickImage && gsClickImage.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setGoText(sText)\r
-{\r
-       gsText = sText;\r
-       if (gsText.length > 0)\r
-               gbWithButton = true;\r
-}\r
-\r
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)\r
-{\r
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);\r
-       if (sType == "Title")\r
-       {\r
-               goTitleFont = vFont;\r
-               var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);\r
-               goInputFont=vFont1;             \r
-       }\r
-       else if (sType == "Normal")\r
-               goNormalFont = vFont;\r
-       else if (sType == "Hover")\r
-               goHoverFont = vFont;\r
-}\r
-\r
-function writeFormStyle()\r
-{\r
-       var sStyle = "<style type='text/css'>";\r
-       sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";\r
-       sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";\r
-       sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";\r
-       sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+=".clsFormBackground{\n";\r
-       if (gsBgImage)\r
-               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="border-top:black 1px solid;}\n";\r
-\r
-       sStyle += "</style>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function lookupKeyDown()\r
-{\r
-       if (gbInputEnable)\r
-       {\r
-               if (gbIE4)\r
-               {\r
-                       if (event.keyCode == 13)        //Enter key\r
-                               gfunLookUp(true);\r
-                       else\r
-                               gfunLookUp(false);\r
-               }                       \r
-               else\r
-                       gfunLookUp(false);\r
-       }\r
-}\r
-\r
-function init()\r
-{\r
-       if (gfunInit)\r
-               gfunInit();\r
-       if (!window.Array)  return;\r
-               document.onkeyup = lookupKeyDown;\r
-}\r
-\r
-function inputSubmit()\r
-{\r
-       if ((gbInputEnable && !gbIE4)|| gbInImage)\r
-               gfunLookUp(true);\r
-}\r
-\r
-function inputEnable(bEnable)\r
-{\r
-       gbInputEnable = bEnable;\r
-}\r
-\r
-function inImage(bImage)\r
-{\r
-       gbInImage = bImage;\r
-}\r
-\r
-function getFormHTML()\r
-{\r
-       var sForm = "";\r
-       sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";\r
-       sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";\r
-       sForm += "<tr>";\r
-       sForm += "<td>";\r
-       sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";\r
-       if (gbWithButton && gnType >= 0)\r
-       {\r
-               sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"\r
-               if (gnType == 0)\r
-               {\r
-                       if (!gsText)\r
-                               gsText="Go";\r
-                       sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";\r
-               }\r
-               else\r
-                       sForm += gsText ;\r
-               sForm += "</a></td>";\r
-       }\r
-       sForm += "</tr></table></p></td></tr></form></table>";\r
-       return sForm;\r
-}\r
-\r
-function onMouseOver()\r
-{\r
-       if (getElement("go") && gsOverImage)\r
-               getElement("go").src = gsOverImage;\r
-}\r
-\r
-function onMouseDown()\r
-{\r
-       if (getElement("go") && gsClickImage)\r
-               getElement("go").src = gsClickImage;\r
-}\r
-\r
-function onMouseUp()\r
-{\r
-       if (getElement("go") && gsOutImage)\r
-               getElement("go").src = gsOutImage;\r
-}\r
-\r
-function onMouseOut()\r
-{\r
-       if (getElement("go") && gsOutImage)\r
-               getElement("go").src = gsOutImage;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)\r
-{\r
-       goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");\r
-       goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");\r
-       goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");\r
-       gbWhForm=true;\r
-}\r
-else\r
+//     WebHelp 5.10.001
+var gfunLookUp;
+var gbInputEnable;
+var gfunInit;
+var gstrFormName= "";
+var gbWithButton = false;
+var gsTitle="";
+var gsOverImage = "";
+var gsOutImage = "";
+var gsClickImage = "";
+var gsText = "";
+var gsBgColor = "#c0c0c0";
+var gsBgImage = "";
+var gbInImage = 0;
+var gbInputEnable = 0;
+
+var goTitleFont=null;
+var goInputFont=null;
+var goNormalFont=null;
+var goHoverFont=null;
+var gnType=-1;
+var gbWhForm=false;
+
+function setBackground(sBgImage)
+{
+       if (sBgImage != null && sBgImage.length > 0)
+               gsBgImage = sBgImage;
+
+       if  (gsBgImage  && gsBgImage .length > 0)
+       {
+               document.body.background = gsBgImage ;
+       }
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       if (sBgColor != null && sBgColor.length > 0)
+               gsBgColor = sBgColor;
+
+       if (gsBgColor&& gsBgColor.length > 0)
+       {
+               document.body.bgColor = gsBgColor;
+       }
+}
+
+function setBtnType(sType)
+{
+       if (sType == "image")
+       {
+               gnType = 0;
+       }
+       else if (sType == "text")
+       {
+               gnType = 1;
+       }
+}
+
+function setGoImage1(sImage1)
+{
+       gsOutImage = sImage1;
+       if (gsOutImage && gsOutImage.length > 0)
+               gbWithButton = true;
+}
+
+function setGoImage2(sImage2)
+{
+       gsOverImage = sImage2;
+       if (gsOverImage && gsOverImage.length > 0)
+               gbWithButton = true;
+}
+
+function setGoImage3(sImage3)
+{
+       gsClickImage = sImage3;
+       if (gsClickImage && gsClickImage.length > 0)
+               gbWithButton = true;
+}
+
+function setGoText(sText)
+{
+       gsText = sText;
+       if (gsText.length > 0)
+               gbWithButton = true;
+}
+
+function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
+{
+       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
+       if (sType == "Title")
+       {
+               goTitleFont = vFont;
+               var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);
+               goInputFont=vFont1;             
+       }
+       else if (sType == "Normal")
+               goNormalFont = vFont;
+       else if (sType == "Hover")
+               goHoverFont = vFont;
+}
+
+function writeFormStyle()
+{
+       var sStyle = "<style type='text/css'>";
+       sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";
+       sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";
+       sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";
+       sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";
+       sStyle+=".clsFormBackground{\n";
+       if (gsBgImage)
+               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="border-top:black 1px solid;}\n";
+
+       sStyle += "</style>";
+       document.write(sStyle);
+}
+
+function lookupKeyDown()
+{
+       if (gbInputEnable)
+       {
+               if (gbIE4)
+               {
+                       if (event.keyCode == 13)        //Enter key
+                               gfunLookUp(true);
+                       else
+                               gfunLookUp(false);
+               }                       
+               else
+                       gfunLookUp(false);
+       }
+}
+
+function init()
+{
+       if (gfunInit)
+               gfunInit();
+       if (!window.Array)  return;
+               document.onkeyup = lookupKeyDown;
+}
+
+function inputSubmit()
+{
+       if ((gbInputEnable && !gbIE4)|| gbInImage)
+               gfunLookUp(true);
+}
+
+function inputEnable(bEnable)
+{
+       gbInputEnable = bEnable;
+}
+
+function inImage(bImage)
+{
+       gbInImage = bImage;
+}
+
+function getFormHTML()
+{
+       var sForm = "";
+       sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";
+       sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";
+       sForm += "<tr>";
+       sForm += "<td>";
+       sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";
+       if (gbWithButton && gnType >= 0)
+       {
+               sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"
+               if (gnType == 0)
+               {
+                       if (!gsText)
+                               gsText="Go";
+                       sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";
+               }
+               else
+                       sForm += gsText ;
+               sForm += "</a></td>";
+       }
+       sForm += "</tr></table></p></td></tr></form></table>";
+       return sForm;
+}
+
+function onMouseOver()
+{
+       if (getElement("go") && gsOverImage)
+               getElement("go").src = gsOverImage;
+}
+
+function onMouseDown()
+{
+       if (getElement("go") && gsClickImage)
+               getElement("go").src = gsClickImage;
+}
+
+function onMouseUp()
+{
+       if (getElement("go") && gsOutImage)
+               getElement("go").src = gsOutImage;
+}
+
+function onMouseOut()
+{
+       if (getElement("go") && gsOutImage)
+               getElement("go").src = gsOutImage;
+}
+
+if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
+{
+       goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
+       goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
+       goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");
+       gbWhForm=true;
+}
+else
        document.location.reload();
\ No newline at end of file
index 2040f336f4858d299ffced5d6c649c59c8f80320..121011e2dd1073306a58bd775a87a70904e009ee 100755 (executable)
@@ -1,79 +1,79 @@
-//     WebHelp 5.10.001\r
-// this value should be identical to the value used in whproxy.js\r
-window.whname = "wh_stub";\r
-\r
-// this file will be used by Topic and NavBar and NavPane and other components\r
-// and this file is used in child frame html.\r
-// and the whstub.js will be used in the start page.\r
-// see reference in whstub.js.\r
-// Internal Area\r
-var gbInited = false;\r
-var gWndStubPage = null;\r
-function getStubPage()\r
-{\r
-       if (!gbInited)\r
-       {\r
-               gWndStubPage = getStubPage_inter(window);\r
-               gbInited = true;\r
-       }\r
-       return gWndStubPage;\r
-}\r
-\r
-function getStubPage_inter(wCurrent) {\r
-       if (null == wCurrent.parent || wCurrent.parent == wCurrent)\r
-               return null;\r
-\r
-       if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname) \r
-               return wCurrent.parent;\r
-       else\r
-               if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)\r
-                       return getStubPage_inter(wCurrent.parent);\r
-               else \r
-                       return null;\r
-}\r
-\r
-// Public interface begin here................\r
-function RegisterListener(framename, nMessageId)\r
-{\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this) {\r
-               return wStartPage.RegisterListener(framename, nMessageId);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-\r
-function RegisterListener2(oframe, nMessageId)\r
-{\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this) {\r
-               return wStartPage.RegisterListener2(oframe, nMessageId);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-\r
-function UnRegisterListener2(oframe, nMessageId)\r
-{\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {\r
-               return wStartPage.UnRegisterListener2(oframe, nMessageId);\r
-       }\r
-       else \r
-               return false;\r
-}\r
-\r
-function SendMessage(oMessage)\r
-{\r
-       var nMsgId = oMessage.nMessageId;\r
-       if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)\r
-               return true;\r
-       var wStartPage = getStubPage();\r
-       if (wStartPage && wStartPage != this && wStartPage.SendMessage) \r
-       {\r
-               return wStartPage.SendMessage(oMessage);\r
-       }\r
-       else \r
-               return false;\r
-}\r
+//     WebHelp 5.10.001
+// this value should be identical to the value used in whproxy.js
+window.whname = "wh_stub";
+
+// this file will be used by Topic and NavBar and NavPane and other components
+// and this file is used in child frame html.
+// and the whstub.js will be used in the start page.
+// see reference in whstub.js.
+// Internal Area
+var gbInited = false;
+var gWndStubPage = null;
+function getStubPage()
+{
+       if (!gbInited)
+       {
+               gWndStubPage = getStubPage_inter(window);
+               gbInited = true;
+       }
+       return gWndStubPage;
+}
+
+function getStubPage_inter(wCurrent) {
+       if (null == wCurrent.parent || wCurrent.parent == wCurrent)
+               return null;
+
+       if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname) 
+               return wCurrent.parent;
+       else
+               if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)
+                       return getStubPage_inter(wCurrent.parent);
+               else 
+                       return null;
+}
+
+// Public interface begin here................
+function RegisterListener(framename, nMessageId)
+{
+       var wStartPage = getStubPage();
+       if (wStartPage && wStartPage != this) {
+               return wStartPage.RegisterListener(framename, nMessageId);
+       }
+       else 
+               return false;
+}
+
+function RegisterListener2(oframe, nMessageId)
+{
+       var wStartPage = getStubPage();
+       if (wStartPage && wStartPage != this) {
+               return wStartPage.RegisterListener2(oframe, nMessageId);
+       }
+       else 
+               return false;
+}
+
+function UnRegisterListener2(oframe, nMessageId)
+{
+       var wStartPage = getStubPage();
+       if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {
+               return wStartPage.UnRegisterListener2(oframe, nMessageId);
+       }
+       else 
+               return false;
+}
+
+function SendMessage(oMessage)
+{
+       var nMsgId = oMessage.nMessageId;
+       if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)
+               return true;
+       var wStartPage = getStubPage();
+       if (wStartPage && wStartPage != this && wStartPage.SendMessage) 
+       {
+               return wStartPage.SendMessage(oMessage);
+       }
+       else 
+               return false;
+}
 var gbWhProxy=true;
\ No newline at end of file
index 476ec2d66c9b55b8d99db7a9a3aeb08ee0351b91..34d782d2d89ae39394b4a07916911d357dc613df 100755 (executable)
@@ -1,35 +1,35 @@
-<html>\r
-<head>\r
-<title>Glossary Term</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whlang.js"></script>\r
-<script language="javascript1.2" src="whhost.js"></script>\r
-<script language="javascript1.2" src="whghost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if(window.gbWhGHost)\r
-{\r
-       setBackgroundcolor("White"); \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       GloWriteClassStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>Glossary Term</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whlang.js"></script>
+<script language="javascript1.2" src="whhost.js"></script>
+<script language="javascript1.2" src="whghost.js"></script>
+<script language="javascript1.2">
+<!--
+if(window.gbWhGHost)
+{
+       
+       
+       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
+       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
+       setActiveBgColor("#cccccc");
+       setMargin("0pt");
+       setIndent("9pt");
+       GloWriteClassStyle();
+}
+else
+       document.location.reload();
+//-->
+</script>
+</head>
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">
+</body>
+</html>
index aa2e343b1768c2bd71168aa4ade7b2c936e4da16..08501c59032a6d3b887d6315b21f4df89362db4b 100755 (executable)
@@ -1,44 +1,44 @@
-<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" >\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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" >
+
+
+<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/constructing_meshes.htm"><b>8</b></a> <a href="../files/arithmetic_1d.htm"><b>9</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>10</b></a> <a href="../quality_controls.htm"><b>11</b></a> <a href="../mesh.htm"><b>12</b></a> <a href="../revolution.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="../files/length_of_edges.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="../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="../mesh.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/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/aspect_ratio.htm"><b>19</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>20</b></a> <a href="../files/smoothing.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/max._element_volume_hypothsis.htm"><b>25</b></a> <a href="../quality_controls.htm"><b>26</b></a> <a href="../mesh.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>
+<br><br>
+<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/length_of_edges.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/minimum_angle.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/cutting_quadrangles.htm"><b>1</b></a> <a href="../modifying_meshes.htm"><b>2</b></a> <a href="../mesh.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/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="../mesh.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/cutting_quadrangles.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/changing_orientation_of_elements.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/translation.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="../mesh.htm"><b>16</b></a> <a href="../merge_elements.htm"><b>17</b></a> <a href="../files/vtk_3d_viewer.htm"><b>18</b></a> <a href="../files/using_operations_on_groups.htm"><b>19</b></a> <a href="../files/uniting_a_set_of_triangles.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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> <a href="../files/rotation.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="../mesh.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/translation.htm"><b>12</b></a> <a href="../files/symmetry.htm"><b>13</b></a> <a href="../files/rotation.htm"><b>14</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>15</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>16</b></a> <a href="../files/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="../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/length_of_edges.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/arithmetic_1d.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/smoothing.htm"><b>9</b></a> <a href="../files/skew.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/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/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/length_of_edges.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="../pattern_mapping.htm"><b>29</b></a> <a href="../modifying_meshes.htm"><b>30</b></a> <a href="../mesh.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>
+
+</body>
+
+</html>
+
index 517741c6e172bd0cbbbf0aafed1a7c4c16e3c07b..935c39087d86c662b86681c4450c81bc6ae249cb 100755 (executable)
@@ -1,45 +1,45 @@
-<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="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
-<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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf0.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/area_of_elements.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../quality_controls.htm"><b>8</b></a> <a href="../mesh.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/arithmetic_1d.htm"><b>4</b></a> <a href="../mesh.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/aspect_ratio.htm"><b>3</b></a> <a href="../files/smoothing.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../mesh.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/constructing_meshes.htm"><b>2</b></a> <a href="../files/arithmetic_1d.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../mesh.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/arithmetic_1d.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="../mesh.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>
+<br><br>
+<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="../mesh.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/sewing_meshes.htm"><b>4</b></a> <a href="../quality_controls.htm"><b>5</b></a> <a href="../mesh.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/translation.htm"><b>17</b></a> <a href="../files/symmetry.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/running_smesh_module.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/merging_nodes.htm"><b>25</b></a> <a href="../quality_controls.htm"><b>26</b></a> <a href="../pattern_mapping.htm"><b>27</b></a> <a href="../merge_elements.htm"><b>28</b></a> <a href="../grouping_elements.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="../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/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/adding_nodes_and_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/minimum_angle.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>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>
+<br><br>
+<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/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="../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/length_of_edges.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.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_groups_of_specific_elements.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/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/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/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/minimum_angle.htm"><b>28</b></a> <a href="../files/merging_nodes.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> <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>
+
+</body>
+
+</html>
+
index 4da6489cc26a68d251c7125aea4c2529a29f2b97..8963e8a2722c491d155ca324f0f54cd21016ccd5 100755 (executable)
@@ -1,43 +1,43 @@
-<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="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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf9.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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>
+<br><br>
+<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/creating_groups.htm"><b>3</b></a> <a href="../files/running_smesh_module.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="../mesh.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/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/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/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="../pattern_mapping.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../length.htm"><b>38</b></a> <a href="../free_edges.htm"><b>39</b></a> <a href="../free_borders.htm"><b>40</b></a> <a href="../files/warp.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="../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/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/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="../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="../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/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/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/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="../pattern_mapping.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../length.htm"><b>38</b></a> <a href="../free_edges.htm"><b>39</b></a> <a href="../free_borders.htm"><b>40</b></a> <a href="../files/warp.htm"><b>41</b></a> <a href="../files/vtk_3d_viewer.htm"><b>42</b></a> <a href="../files/using_operations_on_groups.htm"><b>43</b></a> <a href="../files/uniting_two_triangles.htm"><b>44</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>45</b></a> <a href="../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/arithmetic_1d.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../mesh.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/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/sewing_meshes.htm"><b>22</b></a> <a href="../files/running_smesh_module.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/non_conform_mesh_allowed_hypothesis.htm"><b>27</b></a> <a href="../files/merging_nodes.htm"><b>28</b></a> <a href="../pattern_mapping.htm"><b>29</b></a> <a href="../files/vtk_3d_viewer.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="../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/displacing_nodes.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/arithmetic_1d.htm"><b>10</b></a> <a href="../files/adding_nodes_and_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="../presentation.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="../mesh.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/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="../files/merging_nodes.htm"><b>7</b></a> <a href="../pattern_mapping.htm"><b>8</b></a> <a href="../files/uniting_two_triangles.htm"><b>9</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>10</b></a> <a href="../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>
+
+</body>
+
+</html>
+
index 4b436debfdb0ed32d36e8bddbbef469abef02e33..76c55a2ebcb9b124b141c4b32b4226825b3e83f0 100755 (executable)
@@ -1,51 +1,43 @@
-<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="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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf10.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/cutting_quadrangles.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../mesh.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="../mesh.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/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="../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/translation.htm"><b>1</b></a> <a href="../files/symmetry.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/arithmetic_1d.htm"><b>5</b></a> <a href="../files/running_smesh_module.htm"><b>6</b></a> <a href="../mesh.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/translation.htm"><b>2</b></a> <a href="../files/sewing_meshes.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/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> <a href="../modifying_meshes.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/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="../files/viewing_mesh_info.htm"><b>13</b></a> <a href="../files/uniting_a_set_of_triangles.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>
+<br><br>
+<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/creating_groups.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> <a href="../quality_controls.htm"><b>4</b></a> <a href="../mesh.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/length_of_edges.htm"><b>4</b></a> <a href="../files/editing_groups.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>11</b></a> <a href="../files/aspect_ratio.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/running_smesh_module.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../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>
+
+</body>
+
+</html>
+
index eba1f809af6c4537ab1b0f08c52a072ddbaf1a60..33daac7087ae6d945b839c4cfd7b6092c7d772f5 100755 (executable)
@@ -1,42 +1,47 @@
-<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="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
-<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
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf11.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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><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/length_of_edges.htm"><b>4</b></a> <a href="../files/diagonal_iversion_of_elements.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/adding_nodes_and_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/max._element_area_hypothesis.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/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/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/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="../pattern_mapping.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../length.htm"><b>38</b></a> <a href="../free_edges.htm"><b>39</b></a> <a href="../free_borders.htm"><b>40</b></a> <a href="../files/warp.htm"><b>41</b></a> <a href="../files/viewing_mesh_info.htm"><b>42</b></a> <a href="../files/using_operations_on_groups.htm"><b>43</b></a> <a href="../files/uniting_two_triangles.htm"><b>44</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>45</b></a> <a href="../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/translation.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/sewing_meshes.htm"><b>11</b></a> <a href="../files/minimum_angle.htm"><b>12</b></a> <a href="../pattern_mapping.htm"><b>13</b></a> <a href="../modifying_meshes.htm"><b>14</b></a> <a href="../grouping_elements.htm"><b>15</b></a> <a href="../files/viewing_mesh_info.htm"><b>16</b></a> <a href="../files/using_operations_on_groups.htm"><b>17</b></a> <a href="../files/uniting_two_triangles.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>
+<br><br>
+<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>
+<br><br>
+<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/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="../modifying_meshes.htm"><b>7</b></a> <a href="../files/warp.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/length_of_edges.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/changing_orientation_of_elements.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/adding_nodes_and_elements.htm"><b>16</b></a> <a href="../files/taper.htm"><b>17</b></a> <a href="../files/smoothing.htm"><b>18</b></a> <a href="../files/skew.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/minimum_angle.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/max._element_volume_hypothsis.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="../mesh.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>
+<br><br>
+<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/cutting_quadrangles.htm"><b>2</b></a> <a href="../quality_controls.htm"><b>3</b></a> <a href="../mesh.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/translation.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../modifying_meshes.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>
+
+</body>
+
+</html>
+
index 8275a922cb1b2dd04ef249a7a2e34e79344a11fc..591da7bac4ff9d370546c9be33bfb972a77ec1db 100755 (executable)
@@ -1,46 +1,46 @@
-<html>\r
-<head>\r
-<title>Search Words List</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<base target="bsscright">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } \r
-\r
-.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } \r
-p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } \r
-A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } \r
-A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:#cccccc; } \r
-A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
-<p class="ftsbody" >\r
-<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/arithmetic_1d.htm"><b>21</b></a> <a href="../files/area_of_elements.htm"><b>22</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>23</b></a> <a href="../files/taper.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../files/skew.htm"><b>26</b></a> <a href="../files/sewing_meshes.htm"><b>27</b></a> <a href="../files/running_smesh_module.htm"><b>28</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>29</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../modifying_meshes.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> <a href="../files/viewing_mesh_info.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../volume.htm"><b>42</b></a> <a href="../transparency.htm"><b>43</b></a> <a href="../selection_filter_library.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>wire_discretisation</b></a> <br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>without <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>work</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><a href="../files/aspect_ratio.htm"><b>worst</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>x0</b></a> <br>\r
-<br><br>\r
-<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>y0</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/symmetry.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../files/skew.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/minimum_angle.htm"><b>31</b></a> <a href="../files/merging_nodes.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../presentation.htm"><b>35</b></a> <a href="../pattern_mapping.htm"><b>36</b></a> <a href="../files/warp.htm"><b>37</b></a> <a href="../files/viewing_mesh_info.htm"><b>38</b></a> <a href="../volume.htm"><b>39</b></a> <a href="../selection_filter_library.htm"><b>40</b></a> </nobr><br>\r
-<br><br>\r
-<nobr><a name="bm_Z"></a><a name="subkey_Z{"></a>z <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>z0</b></a> <br><a name="bms_ZE"></a><a name="subkey_ZE"></a><a href="../pattern_mapping.htm"><b>zero</b></a> <br><a name="bms_ZO"></a><a name="subkey_ZO"></a><a href="../files/vtk_3d_viewer.htm"><b>zoom</b></a> <br><br><br></p>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf12.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../extrusion_along_a_path.htm"><b>3</b></a> <a href="../extrusion.htm"><b>4</b></a> <a href="../deleting_groups.htm"><b>5</b></a> <a href="../aspect_ratio_3d.htm"><b>6</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>7</b></a> <a href="../about_viewing_meshes.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>10</b></a> <a href="../files/editing_groups.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displacing_nodes.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.htm"><b>20</b></a> <a href="../files/arithmetic_1d.htm"><b>21</b></a> <a href="../files/area_of_elements.htm"><b>22</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>23</b></a> <a href="../files/taper.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../files/skew.htm"><b>26</b></a> <a href="../files/sewing_meshes.htm"><b>27</b></a> <a href="../files/running_smesh_module.htm"><b>28</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>29</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>30</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>31</b></a> <a href="../files/minimum_angle.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../pattern_mapping.htm"><b>35</b></a> <a href="../modifying_meshes.htm"><b>36</b></a> <a href="../merge_elements.htm"><b>37</b></a> <a href="../files/warp.htm"><b>38</b></a> <a href="../files/viewing_mesh_info.htm"><b>39</b></a> <a href="../files/using_operations_on_groups.htm"><b>40</b></a> <a href="../files/uniting_a_set_of_triangles.htm"><b>41</b></a> <a href="../volume.htm"><b>42</b></a> <a href="../transparency.htm"><b>43</b></a> <a href="../selection_filter_library.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><a href="../clipping.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../extrusion_along_a_path.htm"><b>2</b></a> <a href="../defining_hypotheses_tui.htm"><b>3</b></a> <a href="../constructing_meshes.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../transforming_meshes.htm"><b>7</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>wire_discretisation</b></a> <br><nobr>wireframe <a href="../extrusion_along_a_path.htm"><b>1</b></a> <a href="../about_viewing_meshes.htm"><b>2</b></a> <a href="../presentation.htm"><b>3</b></a> </nobr><br><a href="../defining_hypotheses_tui.htm"><b>wires</b></a> <br><nobr>wish <a href="../deleting_groups.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../files/constructing_meshes.htm"><b>3</b></a> <a href="../files/vtk_3d_viewer.htm"><b>4</b></a> </nobr><br><nobr>within <a href="../files/arithmetic_1d.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> </nobr><br><nobr>without <a href="../adding_quadratic_nodes_and_elements.htm"><b>1</b></a> <a href="../quality_controls.htm"><b>2</b></a> </nobr><br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/arithmetic_1d.htm"><b>words</b></a> <br><a href="../adding_quadratic_nodes_and_elements.htm"><b>work</b></a> <br><a href="../extrusion_along_a_path.htm"><b>works</b></a> <br><a href="../files/aspect_ratio.htm"><b>worst</b></a> <br><nobr>would <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../files/sewing_meshes.htm"><b>2</b></a> </nobr><br><a name="bms_WW"></a><a name="subkey_WW"></a><a href="../defining_hypotheses_tui.htm"><b>ww</b></a> <br>
+<br><br>
+<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>
+<br><br>
+<nobr><a name="bm_Y"></a><a name="subkey_Y{"></a>y <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../clipping.htm"><b>2</b></a> </nobr><br><a href="../modifying_meshes.htm"><b>y0</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../clipping.htm"><b>4</b></a> <a href="../aspect_ratio_3d.htm"><b>5</b></a> <a href="../adding_quadratic_nodes_and_elements.htm"><b>6</b></a> <a href="../about_viewing_meshes.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/creating_groups.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/constructing_meshes.htm"><b>15</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>16</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>17</b></a> <a href="../files/aspect_ratio.htm"><b>18</b></a> <a href="../files/arithmetic_1d.htm"><b>19</b></a> <a href="../files/area_of_elements.htm"><b>20</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>21</b></a> <a href="../files/translation.htm"><b>22</b></a> <a href="../files/taper.htm"><b>23</b></a> <a href="../files/symmetry.htm"><b>24</b></a> <a href="../files/smoothing.htm"><b>25</b></a> <a href="../files/skew.htm"><b>26</b></a> <a href="../files/rotation.htm"><b>27</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>28</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>29</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>30</b></a> <a href="../files/minimum_angle.htm"><b>31</b></a> <a href="../files/merging_nodes.htm"><b>32</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>33</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>34</b></a> <a href="../presentation.htm"><b>35</b></a> <a href="../pattern_mapping.htm"><b>36</b></a> <a href="../files/warp.htm"><b>37</b></a> <a href="../files/viewing_mesh_info.htm"><b>38</b></a> <a href="../volume.htm"><b>39</b></a> <a href="../selection_filter_library.htm"><b>40</b></a> </nobr><br>
+<br><br>
+<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>
+</body>
+
+</html>
+
index 72a955e1f486b352e37adcccfd1a8c3b88c48888..04d1e8ba82f320b4064e80129412b6cd0253269a 100755 (executable)
@@ -1,43 +1,41 @@
-<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="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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/length_of_edges.htm"><b>8</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>9</b></a> <a href="../files/editing_groups.htm"><b>10</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>11</b></a> <a href="../files/displacing_nodes.htm"><b>12</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>13</b></a> <a href="../files/cutting_quadrangles.htm"><b>14</b></a> <a href="../files/creating_groups.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/constructing_meshes.htm"><b>17</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>18</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>19</b></a> <a href="../files/aspect_ratio.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/minimum_angle.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/length_of_edges.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/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/running_smesh_module.htm"><b>1</b></a> <a href="../mesh.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="../quality_controls.htm"><b>4</b></a> <a href="../mesh.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/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/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/length_of_edges.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="../mesh.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/length_of_edges.htm"><b>4</b></a> <a href="../files/cutting_quadrangles.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="../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/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><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/translation.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="../pattern_mapping.htm"><b>7</b></a> <a href="../modifying_meshes.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/translation.htm"><b>12</b></a> <a href="../files/symmetry.htm"><b>13</b></a> <a href="../files/rotation.htm"><b>14</b></a> <a href="../files/non_conform_mesh_allowed_hypothesis.htm"><b>15</b></a> <a href="../files/merging_nodes.htm"><b>16</b></a> <a href="../quality_controls.htm"><b>17</b></a> <a href="../modifying_meshes.htm"><b>18</b></a> <a href="../grouping_elements.htm"><b>19</b></a> <a href="../files/using_operations_on_groups.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/creating_groups.htm"><b>1</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>2</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../mesh.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="../mesh.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="../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>
+
+</body>
+
+</html>
+
index 1fbec6fd104ececc720368f919394376ff259d1f..ae08318987d4fc95e84bffce22df6a50d3f3f970 100755 (executable)
@@ -1,43 +1,45 @@
-<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="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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf2.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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>
+<br><br>
+<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/cutting_quadrangles.htm"><b>3</b></a> <a href="../files/creating_groups.htm"><b>4</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>5</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>6</b></a> <a href="../files/arithmetic_1d.htm"><b>7</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>8</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>9</b></a> <a href="../mesh.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/arithmetic_1d.htm"><b>3</b></a> <a href="../mesh.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="../mesh.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/translation.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="../merge_elements.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="../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/length_of_edges.htm"><b>5</b></a> <a href="../files/displaying_nodes_numbers.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/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/aspect_ratio.htm"><b>10</b></a> <a href="../files/area_of_elements.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/minimum_angle.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/length_of_edges.htm"><b>6</b></a> <a href="../files/displacing_nodes.htm"><b>7</b></a> <a href="../files/cutting_quadrangles.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/constructing_meshes.htm"><b>10</b></a> <a href="../files/changing_orientation_of_elements.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/taper.htm"><b>14</b></a> <a href="../files/skew.htm"><b>15</b></a> <a href="../files/minimum_angle.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>
+<br><br>
+<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/length_of_edges.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="../quality_controls.htm"><b>24</b></a> <a href="../pattern_mapping.htm"><b>25</b></a> <a href="../mesh.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>
+
+</body>
+
+</html>
+
index 17d2c171edafa00c5b176bf2843d215afb8bfef2..ed628ead152e21b36d8bada28c76f13afe19ba7e 100755 (executable)
@@ -1,47 +1,43 @@
-<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="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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf3.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/cutting_quadrangles.htm"><b>7</b></a> <a href="../files/creating_groups.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/adding_nodes_and_elements.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="../pattern_mapping.htm"><b>19</b></a> <a href="../modifying_meshes.htm"><b>20</b></a> <a href="../mesh.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/length_of_edges.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/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="../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="../mesh.htm"><b>40</b></a> <a href="../merge_elements.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> <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/arithmetic_1d.htm"><b>3</b></a> <a href="../files/sewing_meshes.htm"><b>4</b></a> <a href="../mesh.htm"><b>5</b></a> <a href="../selection_filter_library.htm"><b>6</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/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/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../mesh.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>
+<br><br>
+<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/creating_groups.htm"><b>10</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>11</b></a> <a href="../files/arithmetic_1d.htm"><b>12</b></a> <a href="../files/adding_nodes_and_elements.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="../quality_controls.htm"><b>16</b></a> <a href="../pattern_mapping.htm"><b>17</b></a> <a href="../modifying_meshes.htm"><b>18</b></a> <a href="../mesh.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/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="../pattern_mapping.htm"><b>24</b></a> <a href="../files/viewing_mesh_info.htm"><b>25</b></a> <a href="../files/using_operations_on_groups.htm"><b>26</b></a> <a href="../files/uniting_two_triangles.htm"><b>27</b></a> <a href="../files/uniting_a_set_of_triangles.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/importing_and_exporting_meshes.htm"><b>2</b></a> <a href="../mesh.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>
+
+</body>
+
+</html>
+
index 062e145bc0c3f60096976dd6c7aa914b82a42571..04a0271e8329e0a2bd0742dbac1cdc7b1bbdadb8 100755 (executable)
@@ -1,49 +1,47 @@
-<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="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
-<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
-<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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf4.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/smoothing.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="../mesh.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>
+<br><br>
+<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/arithmetic_1d.htm"><b>3</b></a> <a href="../pattern_mapping.htm"><b>4</b></a> <a href="../mesh.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="../modifying_meshes.htm"><b>3</b></a> <a href="../mesh.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/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/arithmetic_1d.htm"><b>7</b></a> <a href="../files/translation.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="../mesh.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/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/translation.htm"><b>8</b></a> <a href="../files/smoothing.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> <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="../mesh.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/editing_groups.htm"><b>2</b></a> <a href="../files/creating_groups.htm"><b>3</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>4</b></a> <a href="../files/merging_nodes.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../mesh.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>
+<br><br>
+<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/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> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../mesh.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>
+<br><br>
+<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>
+
+</body>
+
+</html>
+
index 50564f77333b348bb7d0d10e0fa23f370263d810..1ed1a07e28dc6b3d3b574edf2a177245853334e5 100755 (executable)
@@ -1,45 +1,49 @@
-<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="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
-<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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf5.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/importing_and_exporting_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="../mesh.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="../mesh.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="../mesh.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/translation.htm"><b>12</b></a> <a href="../files/symmetry.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/rotation.htm"><b>16</b></a> <a href="../files/renumbering_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/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> <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>
+<br><br>
+<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>
+<br><br>
+<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>
+<br><br>
+<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/length_of_edges.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="../quality_controls.htm"><b>10</b></a> <a href="../mesh.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/non_conform_mesh_allowed_hypothesis.htm"><b>1</b></a> <a href="../mesh.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>
+<br><br>
+<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/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> <a href="../mesh.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>
+
+</body>
+
+</html>
+
index fd6f6ffcf294cce24fc79b4eff820fed21fb8f54..b4c8920502820a98fb768997ad7d6917176cf4cc 100755 (executable)
@@ -1,45 +1,43 @@
-<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="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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf6.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/translation.htm"><b>19</b></a> <a href="../files/symmetry.htm"><b>20</b></a> <a href="../files/smoothing.htm"><b>21</b></a> <a href="../files/sewing_meshes.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/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="../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/length_of_edges.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/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="../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="../mesh.htm"><b>52</b></a> <a href="../merge_elements.htm"><b>53</b></a> <a href="../grouping_elements.htm"><b>54</b></a> <a href="../free_edges.htm"><b>55</b></a> <a href="../free_borders.htm"><b>56</b></a> <a href="../files/warp.htm"><b>57</b></a> <a href="../files/vtk_3d_viewer.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="../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/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/constructing_meshes.htm"><b>6</b></a> <a href="../files/area_of_elements.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/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/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../modifying_meshes.htm"><b>13</b></a> <a href="../mesh.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/length_of_edges.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="../mesh.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/cutting_quadrangles.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/minimum_angle.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../mesh.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="../mesh.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/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/changing_orientation_of_elements.htm"><b>9</b></a> <a href="../files/adding_nodes_and_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="../pattern_mapping.htm"><b>19</b></a> <a href="../mesh.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> <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/creating_groups.htm"><b>3</b></a> <a href="../files/arithmetic_1d.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> <a href="../modifying_meshes.htm"><b>6</b></a> <a href="../mesh.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="../quality_controls.htm"><b>4</b></a> <a href="../mesh.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>
+<br><br>
+<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/displaying_nodes_numbers.htm"><b>4</b></a> <a href="../files/displacing_nodes.htm"><b>5</b></a> <a href="../files/creating_groups.htm"><b>6</b></a> <a href="../files/constructing_groups_of_specific_elements.htm"><b>7</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>8</b></a> <a href="../files/aspect_ratio.htm"><b>9</b></a> <a href="../files/arithmetic_1d.htm"><b>10</b></a> <a href="../files/area_of_elements.htm"><b>11</b></a> <a href="../files/adding_nodes_and_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="../files/max._element_area_hypothesis.htm"><b>20</b></a> <a href="../quality_controls.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="../mesh.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>
+
+</body>
+
+</html>
+
index 84e5db9240d08ab529766f5c5bc6280d499a5987..536f7e16611a3aa42b0a81b49531eb7625e495a7 100755 (executable)
@@ -1,45 +1,45 @@
-<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="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
-<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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf7.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/creating_groups.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/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../pattern_mapping.htm"><b>12</b></a> <a href="../mesh.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>
+<br><br>
+<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/translation.htm"><b>15</b></a> <a href="../files/rotation.htm"><b>16</b></a> <a href="../files/renumbering_nodes_and_elements.htm"><b>17</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>18</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>19</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>20</b></a> <a href="../files/max._element_area_hypothesis.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/vtk_3d_viewer.htm"><b>25</b></a> <a href="../files/viewing_mesh_info.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> </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/translation.htm"><b>10</b></a> <a href="../files/symmetry.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/removing_nodes_and_elements.htm"><b>14</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>15</b></a> <a href="../files/non_conform_mesh_allowed_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="../merge_elements.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> <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/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/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/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="../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="../volume.htm"><b>44</b></a> <a href="../revolution.htm"><b>45</b></a> </nobr><br><nobr>operations <a href="../files/adding_nodes_and_elements.htm"><b>1</b></a> <a href="../mesh.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/translation.htm"><b>3</b></a> <a href="../files/symmetry.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>
+<br><br>
+<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="../mesh.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/translation.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="../pattern_mapping.htm"><b>8</b></a> <a href="../files/vtk_3d_viewer.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>
+
+</body>
+
+</html>
+
index 5287461a808ebbc0ca06af07dfee92f6bb2aab0a..8b8cc4f2200878d3b4901b641ab9d4944ec451ad 100755 (executable)
@@ -1,43 +1,45 @@
-<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="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
-<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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words List</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsbody" align="center"><a href="whlstf8.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>
+<p class="ftsbody" >
+<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/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../mesh.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/creating_groups.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> <a href="../pattern_mapping.htm"><b>3</b></a> <a href="../mesh.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>
+<br><br>
+<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/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/adding_nodes_and_elements.htm"><b>9</b></a> <a href="../files/minimum_angle.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../modifying_meshes.htm"><b>12</b></a> <a href="../mesh.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/length_of_edges.htm"><b>3</b></a> <a href="../files/cutting_quadrangles.htm"><b>4</b></a> <a href="../files/area_of_elements.htm"><b>5</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.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/length_of_edges.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="../quality_controls.htm"><b>14</b></a> <a href="../mesh.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>
+<br><br>
+<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/aspect_ratio.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> <a href="../files/smoothing.htm"><b>5</b></a> <a href="../quality_controls.htm"><b>6</b></a> <a href="../mesh.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="../mesh.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>
+
+</body>
+
+</html>
+
index 96e9afaabaaf4fadb603157a3a3ac30f8a4dd5a2..db38e612394ba7481a5721cb0ffa6daddbe55e07 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 5887b7f2dfa821b572b6578e35ffc46b302f5fa6..c2a4482fcc9b6de7b6d122d99b06694eccee20ef 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index dfd413347bebe36323fa30d213ffcc8dd1c32702..c098d325e46e0fb1fb44fb4fee7f7dd00bff4ada 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index d3df6cf0dd61b74f7a598db5e118e44f136b2285..a4b61af403fa2eb7f841bad0641acd1f02373a4c 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index e21d26ebeabc4a2a20d0c0097184726563c28a6a..3030e6e2fefd94d7dde7861bb56a0b7a6702b467 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 0dc3c66ecaacbbebd095b744726705c917a4177e..7a88bdbfd66f492b37cc750721f96724d3dd7aed 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index e350d8d85493d7e08508b41dbd5d596b6db3405e..a95f81ad009b6633b15cef0c4a80f62b9c90bce6 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 0e43816be77ba5191ee8552f4246d874979c74f8..22c113ba52081b68113523ea057a4c878323c762 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 5548d75208a544ce34ee2436304556ad4fba2572..104e966245694dda1e35a31e07e91a1cbe35ff8a 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index c1f802da9cd75587f0d1739b116e169a78086fb3..4b829d95e4c66852a985fecfc6cf4337f360defe 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index d421e5f990999bf4e4128292f321122b98aabf4a..d88f026251f32e57e7aa718ab95ef93fb7d3a894 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 9a900084a9df6db10235e4fcf0dc22241e5424f8..0f9a644560e06065e02defb3ecc1cc3f1d2e4f6f 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 3f1ebc933840f8c4e3c51f7c02e9790da24e0b1e..a3520eb6d183093ececebacb260375bc26dc51b7 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index db8d0f9c2c700f8720ff82d58b65248bae46d1ea..9ecb3e66a98d0d03c4e135860d6ac985a08cd76f 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 0115e00c78aee1ad1dcfef723c866f9a5a1ae835..1d1f4d32b0183a2966210ffae061a967b0fcef81 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index deb26cc72f5850e1e9ab1c80991524b81b4d080b..64fda2b254bd6877a91fc9935ae710849c5a0034 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 404291137eda527cab3adce4d50deb8f667ecdbe..e471bd527bc4d714888a4ef032e80bda1b941c12 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 2bee610ae755d4d140f915b5996c46928be14376..4b43a080de0485eb56749a543aa3ab2a78ae3c22 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index c486f0eb578cf9107b85cfff8b5f53b3a9e7fc0e..772d69debb0afda30b3c54a0b9945cc60b5f3cd7 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index e397aa250efe979b03b5308051ab12e8a8627235..e8b36271e86637f165be0ea92fc8832db2a5b1c3 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 77d8cf42d58b4226d0aa5b0bb35abf9d75a7545e..f30ab155ca0ea5c329f10f20d571d36ca309db97 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 36c77c99217a8438fd3173247cb3c7c8d7ebdabb..00bfc5ad6223d4eb8a01ab886db3077c8d5316d4 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index f6c4e882227ac909187bede42569bdbdcd7317d3..f3ca3ef9a671f552208e4746ac6b9599e9abbcbe 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 8e905ec462f954d4f3addcb2f1e79672fb054d72..8f2fe56a33e8b9dcc8f0dbce82b138b23fa1f380 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 3fa0c5689602abcf852844d2d96a18bd04764a5c..d21d3591637a23bec97c69519a0261e315d97e03 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index 0cd296c340ef1deafadd569cc486de809491a74f..1885c47bd8cd57dc842e4b63d0fd275c897ac085 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<title>Search Words letter</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
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Search Words letter</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<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>
+
+</body>
+
+</html>
+
index a9d3f26ba068e08ee72680a3b019bbb615337c8a..193fb7c670c730f9a436e39b5028e3a5a23ae1fe 100755 (executable)
@@ -1,75 +1,75 @@
-<html>\r
-<head>\r
-<title>Glossary 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
-.glsheader {margin-left:10pt; margin-top:0pt;}\r
-.glsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.glsheader {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="glsbody" style="margin-bottom:1pt;"><a name="bm_C"></a><nobr><b>Cell</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Component</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">One integer or real value can correspond to each component of a field and to each entity of a mesh<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_D"></a><nobr><b>Descendant connectivity</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_E"></a><nobr><b>Edge</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Entity of a mesh</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Equivalence</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_F"></a><nobr><b>Face</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Face of a volumetrical cell (triangle, quadrangle).<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Family</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Entities of a mesh are described by a certain number&nbsp;  of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Field</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Field profile</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Fields can be defined only on one part of the mesh. Profile&nbsp;  of the field or profile of the component of a field indicates which entities of the mesh contain values.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_G"></a><nobr><b>Group</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Unordered set of entities of a mesh. One entity can belong to&nbsp;  several groups.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_M"></a><nobr><b>Mesh</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_N"></a><nobr><b>Nodal connectivity</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Node</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_P"></a><nobr><b>Point</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Geometrical entity determined by its coordinates in the space.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_R"></a><nobr><b>Reference connectivity</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">For each type of entity of a mesh, reference connectivity define the topology of an entity.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Result</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">List of fields referring to one mesh.<p>\r
-<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_S"></a><nobr><b>Study</b></nobr></p>\r
-<p class="glsbody" style="margin-top:1pt;">Study represents a chain of sequences of calculations.<p>\r
-<p class="glsbody"><br><br></p>\r
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<title>Glossary words list</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.glsheader {margin-left:10pt; margin-top:0pt;}
+.glsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.glsheader {margin-top:0pt; } .glsheader {margin-bottom:0pt; } .glsheader {margin-left:9pt; } 
+
+.glsbody {margin-top:0pt; } .glsbody {margin-bottom:0pt; } .glsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; }A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_C"></a><nobr><b>Cell</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Component</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">One integer or real value can correspond to each component of a field and to each entity of a mesh<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_D"></a><nobr><b>Descendant connectivity</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_E"></a><nobr><b>Edge</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Entity of a mesh</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Equivalence</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_F"></a><nobr><b>Face</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Face of a volumetrical cell (triangle, quadrangle).<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Family</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Entities of a mesh are described by a certain number&nbsp;  of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Field</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Field profile</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Fields can be defined only on one part of the mesh. Profile&nbsp;  of the field or profile of the component of a field indicates which entities of the mesh contain values.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_G"></a><nobr><b>Group</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Unordered set of entities of a mesh. One entity can belong to&nbsp;  several groups.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_M"></a><nobr><b>Mesh</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_N"></a><nobr><b>Nodal connectivity</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Node</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_P"></a><nobr><b>Point</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Geometrical entity determined by its coordinates in the space.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_R"></a><nobr><b>Reference connectivity</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">For each type of entity of a mesh, reference connectivity define the topology of an entity.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><nobr><b>Result</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">List of fields referring to one mesh.<p>
+<p class="glsbody" style="margin-bottom:1pt;"><a name="bm_S"></a><nobr><b>Study</b></nobr></p>
+<p class="glsbody" style="margin-top:1pt;">Study represents a chain of sequences of calculations.<p>
+<p class="glsbody"><br><br></p>
+
+</body>
+
+</html>
+
index a3aec907a691fe8e4f8a24bdd3e2ed6081f04e08..32e2c7fd9d32b07f7ba112b3a23ed09a0ac7145a 100755 (executable)
@@ -1,39 +1,39 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Index words list</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\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
-.ndxheader {margin-left:10pt; margin-top:0pt;}\r
-.ndxbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-\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
-\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Index words list</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ndxheader {margin-left:10pt; margin-top:0pt;}
+.ndxbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ndxheader {margin-top:0pt; } .ndxheader {margin-bottom:0pt; } .ndxheader {margin-left:9pt; } 
+
+.ndxbody {margin-top:0pt; } .ndxbody {margin-bottom:0pt; } .ndxbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+</body>
+
+</html>
+
index d2f734bdd09e5c260d17d1a3b1964a0768f37699..cd467da7c3e2435d86427db1d4863a723f860beb 100755 (executable)
@@ -1,51 +1,51 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index fe922823ed93a8b599bd27ad3deac5d309b2335e..5d6bc46f4b452d4510b6e776df34a4bb6a8ca344 100755 (executable)
@@ -1,59 +1,59 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index e0efee9afd40b0859d52183241a168b724b62a85..b7afcda573c3aac1e8139f43554cdfe821da1159 100755 (executable)
@@ -1,66 +1,66 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining 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
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing Meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt3.htm#3" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Editing Meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index 86348a194b81ecbfab01787d75ba2637f2d15157..ac6e4b465af615e6ea7554bd510bd120ed7ef19c 100755 (executable)
@@ -1,71 +1,71 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
-&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_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
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing Meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt1.htm#2" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> About meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/importing_and_exporting_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Importing and exporting meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="3"></a><a href="whlstt2.htm#3" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Defining hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_hypotheses.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> About Hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/arithmetic_1d.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> 1D Meshing Hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> 2D Meshing Hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_volume_hypothsis.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Max Element Volume hypothesis</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/non_conform_mesh_allowed_hypothesis.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Additional Hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Editing Meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index d1c22f43b54c1a97024a61359c98c96f4c016a79..4f265b6292524943df17b1c59df040fbc9e30de4 100755 (executable)
@@ -1,66 +1,67 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="../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
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../display_entity.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Display Entity</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../transparency.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Transparency</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../clipping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Clipping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt1.htm#4" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../about_viewing_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/vtk_3d_viewer.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> VTK 3D Viewer</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/viewing_mesh_info.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Mesh infos</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Numbering</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../presentation.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Display Mode</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../display_entity.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Display Entity</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../transparency.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Transparency</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../clipping.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Clipping</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index cd1933f020fa7d2e910270834ee3440a74264be1..52771a655e4c3ad37373c8f5dc4c2e811174422e 100755 (executable)
@@ -1,73 +1,74 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt1.htm#5" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_quality_controls.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../free_borders.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Free borders</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../borders_at_multi-connection.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Borders at multi-connection</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../length.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Length</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../free_edges.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Free edges</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/length_of_edges.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Length 2D</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../borders_at_multiconnection_2d.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Borders at multi-connection 2D</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/area_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Area</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/taper.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Taper</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/aspect_ratio.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Aspect ratio</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/minimum_angle.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Minimum angle</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/warp.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Warping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/skew.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Skew</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;<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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt1.htm#5" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_quality_controls.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> About quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../free_borders.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Free borders</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../borders_at_multi-connection.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Borders at multi-connection</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../length.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Length</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../free_edges.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Free edges</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/length_of_edges.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Length 2D</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../borders_at_multiconnection_2d.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Borders at multi-connection 2D</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/area_of_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Area</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/taper.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Taper</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/aspect_ratio.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Aspect ratio</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/minimum_angle.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Minimum angle</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/warp.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Warping</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/skew.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Skew</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../aspect_ratio_3d.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Aspect ratio 3D</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../volume.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Volume</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index ec775d82f59f7b93b784b8d69268cf5dbd3c63ba..4fc97717ff12f694970a4bbd67c8db56c7fa8ba7 100755 (executable)
@@ -1,65 +1,65 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt1.htm#6" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/creating_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Creating groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/using_operations_on_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Using operations on groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_groups_of_specific_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing groups of specific elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../deleting_groups.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Deleting Groups</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../selection_filter_library.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Selection filter library</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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt1.htm#6" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/creating_groups.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Creating groups</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_groups.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Editing groups</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/using_operations_on_groups.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Using operations on groups</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_groups_of_specific_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Constructing groups of specific elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../deleting_groups.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Deleting Groups</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../selection_filter_library.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Selection filter library</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index ed5f4bbd743a591407a009f0f7d9b20534e4286d..fd900d80121254b1bbf75fff2b6d2a457e12b7d9 100755 (executable)
@@ -1,74 +1,76 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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="../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
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion_along_a_path.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion along a path</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt1.htm#7" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../adding_quadratic_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Adding quadratic elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion_along_a_path.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Extrusion along a path</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../smeshpy_doc/namespacesmesh.html"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Access to Mesh module functionality from Python (using smesh.py)</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index b7eb512ddc29a96b13a99711c7bf9edb23d2df34..9817ab956ba07e07f328176786034c94aae7e06a 100755 (executable)
@@ -1,79 +1,81 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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="../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
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/translation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Translation</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/rotation.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Rotation</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/symmetry.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Symmetry</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/sewing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Sewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/merging_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Merging nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion_along_a_path.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Extrusion along a path</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt1.htm#7" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../adding_quadratic_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Adding quadratic elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/renumbering_nodes_and_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Renumbering nodes and elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt7.htm#8" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> Transforming meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/translation.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Translation</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/rotation.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Rotation</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/symmetry.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Symmetry</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/sewing_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Sewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/merging_nodes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Merging nodes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../merge_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Merging Elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Moving nodes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_two_triangles.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Uniting two triangles</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/uniting_a_set_of_triangles.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Uniting a set of triangles</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/cutting_quadrangles.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Cutting quadrangles</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/smoothing.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Smoothing</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Extrusion</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../extrusion_along_a_path.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Extrusion along a path</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../revolution.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Revolution</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../pattern_mapping.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Pattern mapping</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index 0167d9f7b423a278e09e8f16bd5b06347f99be1f..eb0cc3d363f335660097b12e11a6519be6c21fb0 100755 (executable)
@@ -1,66 +1,66 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table border=0>\r
-<tr><td>\r
-<p class="tocbody">\r
-<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to MESH</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running 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="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;<nobr><a name="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="whlstt1.htm#9" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Creating Meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../defining_hypotheses_tui.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Defining Hypotheses</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../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="../quality_controls.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Quality Controls</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../grouping_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Grouping Elements</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../modifying_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Modifying Meshes</a></nobr><br>\r
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../transforming_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Transforming Meshes</a></nobr><br>\r
-</p>\r
-\r
-</td></tr>\r
-<tr><td>\r
-<p><img src="whexpbar.gif" > <p>\r
-</td></tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table border=0>
+<tr><td>
+<p class="tocbody">
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../mesh.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Introduction to Mesh</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Running MESH module</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Viewing meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt5.htm#5" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt6.htm#6" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Grouping elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt7.htm#7" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt1.htm#9" target="_self"><img src="../whd_toc2.gif" border="0" align="absmiddle"> TUI Scripts</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../constructing_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Creating Meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../defining_hypotheses_tui.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Defining Hypotheses</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../viewing_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Viewing Meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../quality_controls.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Quality Controls</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../grouping_elements.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Grouping Elements</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../modifying_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Modifying Meshes</a></nobr><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../transforming_meshes.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Transforming Meshes</a></nobr><br>
+</p>
+
+</td></tr>
+<tr><td>
+<p><img src="whexpbar.gif" > <p>
+</td></tr>
+</table>
+</body>
+
+</html>
+
index 33dae3be22f99e0fe9ed184ccfd8f23981f968ea..7cff7ce5442a270daf5ebb6d34de2a50b895fa92 100755 (executable)
@@ -1,13 +1,13 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>toc frame</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<frameset rows="100%, *" border="0" frameborder="0">\r
-       <frame name="toctree" title="toc tree frame" src="whlstt0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>toc frame</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<frameset rows="100%, *" border="0" frameborder="0">
+       <frame name="toctree" title="toc tree frame" src="whlstt0.htm"></frame>
+</frameset>
+</html>
+
index a9128b80377d99e39434a8c741fc58ab13171109..91a985f9fe7b7a33e4974b542219f2baefb5d9fc 100755 (executable)
@@ -1,15 +1,15 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Index frame</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<frameset rows="40, *" border="0" frameborder="0">\r
-       <frame name="ndxletter" title="index letter frame" src="whnvl31.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ndxlist" title="index list frame" src="whlsti0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Index frame</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<frameset rows="40, *" border="0" frameborder="0">
+       <frame name="ndxletter" title="index letter frame" src="whnvl31.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="ndxlist" title="index list frame" src="whlsti0.htm"></frame>
+</frameset>
+</html>
+
index ae872731a298380203cede175c09e86b660899fb..bc2231fbf72a982fb5df67f302098f6a375b5dec 100755 (executable)
@@ -1,15 +1,15 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>search frame</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<frameset rows="40, *" border="0" frameborder="0">\r
-       <frame name="ftsletter" title="search letter frame" src="whnvl32.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ftslist" title="seach word frame" src="whlstf0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>search frame</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<frameset rows="40, *" border="0" frameborder="0">
+       <frame name="ftsletter" title="search letter frame" src="whnvl32.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="ftslist" title="seach word frame" src="whlstf0.htm"></frame>
+</frameset>
+</html>
+
index 9af2824d153bb52a9102d4041a7f273e7b92bc38..6c091d828516ad76308d3279691c8d07a4bf5153 100755 (executable)
@@ -1,15 +1,15 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Glossary frame</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<frameset rows="40, *" border="0" frameborder="0">\r
-       <frame name="glsletter" title="glossary letter frame" src="whnvl33.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="glslist" title="glossary defination frame" src="whlstg0.htm"></frame>\r
-</frameset>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Glossary frame</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<frameset rows="40, *" border="0" frameborder="0">
+       <frame name="glsletter" title="glossary letter frame" src="whnvl33.htm" noresize frameborder="1" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="glslist" title="glossary defination frame" src="whlstg0.htm"></frame>
+</frameset>
+</html>
+
index 870e98ef4c9e2541d99d0063f96c0ab19464c980..e29abc01c124426866783b3dd60fb2a9ad43a844 100755 (executable)
@@ -1,43 +1,43 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Index Letters</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\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
-.ndxheader {margin-left:10pt; margin-top:0pt;}\r
-.ndxbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-\r
-<body>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Index Letters</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ndxheader {margin-left:10pt; margin-top:0pt;}
+.ndxbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ndxheader {margin-top:0pt; } .ndxheader {margin-bottom:0pt; } .ndxheader {margin-left:9pt; } 
+
+.ndxbody {margin-top:0pt; } .ndxbody {margin-bottom:0pt; } .ndxbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+
+<body>
+</html>
+
index 3b103a8b6ad0d8d873acc425a2ebed559f2bf07e..1f7176c6dbbda1f1a68f3880cca67758fae8acc7 100755 (executable)
@@ -1,72 +1,72 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Search Letters</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.ftsheader {margin-left:10pt; margin-top:0pt;}\r
-.ftsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.ftsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<p class="ftsheader">\r
-<a name="home"></a> <a href="whlstfl0.htm#subkey_{" target="_self"title="search non-alphabet letter"><b>#</b></a> \r
- <a href="whlstfl1.htm#subkey_A" target="_self"title="search letter A"><b>A</b></a> \r
- <a href="whlstfl2.htm#subkey_B" target="_self"title="search letter B"><b>B</b></a> \r
- <a href="whlstfl3.htm#subkey_C" target="_self"title="search letter C"><b>C</b></a> \r
- <a href="whlstfl4.htm#subkey_D" target="_self"title="search letter D"><b>D</b></a> \r
- <a href="whlstfl5.htm#subkey_E" target="_self"title="search letter E"><b>E</b></a> \r
- <a href="whlstfl6.htm#subkey_F" target="_self"title="search letter F"><b>F</b></a> \r
- <a href="whlstfl7.htm#subkey_G" target="_self"title="search letter G"><b>G</b></a> \r
- <a href="whlstfl8.htm#subkey_H" target="_self"title="search letter H"><b>H</b></a> \r
- <a href="whlstfl9.htm#subkey_I" target="_self"title="search letter I"><b>I</b></a> \r
- <a href="whlstfl10.htm#subkey_J" target="_self"title="search letter J"><b>J</b></a> \r
- <a href="whlstfl11.htm#subkey_K" target="_self"title="search letter K"><b>K</b></a> \r
- <a href="whlstfl12.htm#subkey_L" target="_self"title="search letter L"><b>L</b></a> \r
- <a href="whlstfl13.htm#subkey_M" target="_self"title="search letter M"><b>M</b></a> \r
- <a href="whlstfl14.htm#subkey_N" target="_self"title="search letter N"><b>N</b></a> \r
- <a href="whlstfl15.htm#subkey_O" target="_self"title="search letter O"><b>O</b></a> \r
- <a href="whlstfl16.htm#subkey_P" target="_self"title="search letter P"><b>P</b></a> \r
- <a href="whlstfl17.htm#subkey_Q" target="_self"title="search letter Q"><b>Q</b></a> \r
- <a href="whlstfl18.htm#subkey_R" target="_self"title="search letter R"><b>R</b></a> \r
- <a href="whlstfl19.htm#subkey_S" target="_self"title="search letter S"><b>S</b></a> \r
- <a href="whlstfl20.htm#subkey_T" target="_self"title="search letter T"><b>T</b></a> \r
- <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="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
-\r
-<body>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Search Letters</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="ftsheader">
+<a name="home"></a> <a href="whlstfl0.htm#subkey_{" target="_self"title="search non-alphabet letter"><b>#</b></a> 
+ <a href="whlstfl1.htm#subkey_A" target="_self"title="search letter A"><b>A</b></a> 
+ <a href="whlstfl2.htm#subkey_B" target="_self"title="search letter B"><b>B</b></a> 
+ <a href="whlstfl3.htm#subkey_C" target="_self"title="search letter C"><b>C</b></a> 
+ <a href="whlstfl4.htm#subkey_D" target="_self"title="search letter D"><b>D</b></a> 
+ <a href="whlstfl5.htm#subkey_E" target="_self"title="search letter E"><b>E</b></a> 
+ <a href="whlstfl6.htm#subkey_F" target="_self"title="search letter F"><b>F</b></a> 
+ <a href="whlstfl7.htm#subkey_G" target="_self"title="search letter G"><b>G</b></a> 
+ <a href="whlstfl8.htm#subkey_H" target="_self"title="search letter H"><b>H</b></a> 
+ <a href="whlstfl9.htm#subkey_I" target="_self"title="search letter I"><b>I</b></a> 
+ <a href="whlstfl10.htm#subkey_J" target="_self"title="search letter J"><b>J</b></a> 
+ <a href="whlstfl11.htm#subkey_K" target="_self"title="search letter K"><b>K</b></a> 
+ <a href="whlstfl12.htm#subkey_L" target="_self"title="search letter L"><b>L</b></a> 
+ <a href="whlstfl13.htm#subkey_M" target="_self"title="search letter M"><b>M</b></a> 
+ <a href="whlstfl14.htm#subkey_N" target="_self"title="search letter N"><b>N</b></a> 
+ <a href="whlstfl15.htm#subkey_O" target="_self"title="search letter O"><b>O</b></a> 
+ <a href="whlstfl16.htm#subkey_P" target="_self"title="search letter P"><b>P</b></a> 
+ <a href="whlstfl17.htm#subkey_Q" target="_self"title="search letter Q"><b>Q</b></a> 
+ <a href="whlstfl18.htm#subkey_R" target="_self"title="search letter R"><b>R</b></a> 
+ <a href="whlstfl19.htm#subkey_S" target="_self"title="search letter S"><b>S</b></a> 
+ <a href="whlstfl20.htm#subkey_T" target="_self"title="search letter T"><b>T</b></a> 
+ <a href="whlstfl21.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> 
+ <a href="whlstfl22.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> 
+ <a href="whlstfl23.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> 
+ <a href="whlstf13.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> 
+ <a href="whlstfl24.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> 
+ <a href="whlstfl25.htm#subkey_Z" target="_self"title="search letter Z"><b>Z</b></a> 
+</p>
+
+<body>
+</html>
+
index f3659d1c468aff997ac90394282fbc20fafa5249..d6f20c33cdb1f49f171da9e201ecb0acfb9c0fbf 100755 (executable)
@@ -1,72 +1,72 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Glossary Letters</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\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
-.glsheader {margin-left:10pt; margin-top:0pt;}\r
-.glsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.glsheader {background-color:White; } \r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; }A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-\r
--->\r
-</style>\r
-<style>\r
-<!--\r
-body {background-color:White; } \r
--->\r
-</style>\r
-</head>\r
-<body marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<p class="glsheader">\r
- <font class="inactive">#</font> \r
- <font class="inactive">A</font> \r
- <font class="inactive">B</font> \r
- <a href="whlstg0.htm#bm_C" target="glslist"title="glossary letter C"><b>C</b></a> \r
- <a href="whlstg0.htm#bm_D" target="glslist"title="glossary letter D"><b>D</b></a> \r
- <a href="whlstg0.htm#bm_E" target="glslist"title="glossary letter E"><b>E</b></a> \r
- <a href="whlstg0.htm#bm_F" target="glslist"title="glossary letter F"><b>F</b></a> \r
- <a href="whlstg0.htm#bm_G" target="glslist"title="glossary letter G"><b>G</b></a> \r
- <font class="inactive">H</font> \r
- <font class="inactive">I</font> \r
- <font class="inactive">J</font> \r
- <font class="inactive">K</font> \r
- <font class="inactive">L</font> \r
- <a href="whlstg0.htm#bm_M" target="glslist"title="glossary letter M"><b>M</b></a> \r
- <a href="whlstg0.htm#bm_N" target="glslist"title="glossary letter N"><b>N</b></a> \r
- <font class="inactive">O</font> \r
- <a href="whlstg0.htm#bm_P" target="glslist"title="glossary letter P"><b>P</b></a> \r
- <font class="inactive">Q</font> \r
- <a href="whlstg0.htm#bm_R" target="glslist"title="glossary letter R"><b>R</b></a> \r
- <a href="whlstg0.htm#bm_S" target="glslist"title="glossary letter S"><b>S</b></a> \r
- <font class="inactive">T</font> \r
- <font class="inactive">U</font> \r
- <font class="inactive">V</font> \r
- <font class="inactive">W</font> \r
- <font class="inactive">X</font> \r
- <font class="inactive">Y</font> \r
- <font class="inactive">Z</font> \r
-</p>\r
-\r
-<body>\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Glossary Letters</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.glsheader {margin-left:10pt; margin-top:0pt;}
+.glsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.glsheader {margin-top:0pt; } .glsheader {margin-bottom:0pt; } .glsheader {margin-left:9pt; } 
+
+.glsbody {margin-top:0pt; } .glsbody {margin-bottom:0pt; } .glsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; }A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+<style>
+<!--
+
+-->
+</style>
+</head>
+<body marginheight="0"  marginwidth="0" bgproperties="fixed">
+<p class="glsheader">
+ <font class="inactive">#</font> 
+ <font class="inactive">A</font> 
+ <font class="inactive">B</font> 
+ <a href="whlstg0.htm#bm_C" target="glslist"title="glossary letter C"><b>C</b></a> 
+ <a href="whlstg0.htm#bm_D" target="glslist"title="glossary letter D"><b>D</b></a> 
+ <a href="whlstg0.htm#bm_E" target="glslist"title="glossary letter E"><b>E</b></a> 
+ <a href="whlstg0.htm#bm_F" target="glslist"title="glossary letter F"><b>F</b></a> 
+ <a href="whlstg0.htm#bm_G" target="glslist"title="glossary letter G"><b>G</b></a> 
+ <font class="inactive">H</font> 
+ <font class="inactive">I</font> 
+ <font class="inactive">J</font> 
+ <font class="inactive">K</font> 
+ <font class="inactive">L</font> 
+ <a href="whlstg0.htm#bm_M" target="glslist"title="glossary letter M"><b>M</b></a> 
+ <a href="whlstg0.htm#bm_N" target="glslist"title="glossary letter N"><b>N</b></a> 
+ <font class="inactive">O</font> 
+ <a href="whlstg0.htm#bm_P" target="glslist"title="glossary letter P"><b>P</b></a> 
+ <font class="inactive">Q</font> 
+ <a href="whlstg0.htm#bm_R" target="glslist"title="glossary letter R"><b>R</b></a> 
+ <a href="whlstg0.htm#bm_S" target="glslist"title="glossary letter S"><b>S</b></a> 
+ <font class="inactive">T</font> 
+ <font class="inactive">U</font> 
+ <font class="inactive">V</font> 
+ <font class="inactive">W</font> 
+ <font class="inactive">X</font> 
+ <font class="inactive">Y</font> 
+ <font class="inactive">Z</font> 
+</p>
+
+<body>
+</html>
+
index 1a8036de8a20cee4a0f4b8c9842f8bb6cd220565..0c9cb814be7f57b526e6e9c385947539696453fe 100755 (executable)
@@ -1,16 +1,16 @@
-<!-- WebHelp version 5.10 -->\r
-<html>\r
-<head>\r
-<title> Content Navigation Pane </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="toctabs" title="tab selection frame" src="whnvt30.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="toclist" title="content frame" src="whlstt0.htm"></frame>\r
-</frameset>\r
+<!-- WebHelp version 5.10 -->
+<html>
+<head>
+<title> Content Navigation Pane </title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+
+</style>
+</head>
+<frameset rows="36, *" border="0" frameborder="0">
+       <frame name="toctabs" title="tab selection frame" src="whnvt30.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="toclist" title="content frame" src="whlstt0.htm"></frame>
+</frameset>
 </html>
\ No newline at end of file
index fa146f1f842aebfaa27c92a826017424b9f7eeeb..87921c0b7b46e2d09fc976b641728afe5237b1b8 100755 (executable)
@@ -1,16 +1,16 @@
-<!-- WebHelp version 5.10 -->\r
-<html>\r
-<head>\r
-<title> Index Navigation Pane </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="ndxtabs" title="tab selection frame" src="whnvt31.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ndxdata" title="index frame" src="whnvf31.htm"></frame>\r
-</frameset>\r
+<!-- WebHelp version 5.10 -->
+<html>
+<head>
+<title> Index Navigation Pane </title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+
+</style>
+</head>
+<frameset rows="36, *" border="0" frameborder="0">
+       <frame name="ndxtabs" title="tab selection frame" src="whnvt31.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="ndxdata" title="index frame" src="whnvf31.htm"></frame>
+</frameset>
 </html>
\ No newline at end of file
index c334807b14131f47a1eed7c944afa6b1d6a2f5e4..90697b01fe9c1a07976627878091746af63adc9c 100755 (executable)
@@ -1,16 +1,16 @@
-<!-- WebHelp version 5.10 -->\r
-<html>\r
-<head>\r
-<title> Search Navigation Pane </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="ftstabs" title="tab selection frame" src="whnvt32.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="ftsdata" title="search frame" src="whnvf32.htm"></frame>\r
-</frameset>\r
+<!-- WebHelp version 5.10 -->
+<html>
+<head>
+<title> Search Navigation Pane </title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+
+</style>
+</head>
+<frameset rows="36, *" border="0" frameborder="0">
+       <frame name="ftstabs" title="tab selection frame" src="whnvt32.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="ftsdata" title="search frame" src="whnvf32.htm"></frame>
+</frameset>
 </html>
\ No newline at end of file
index 8fb4636f0d25b1a03dcf1042cc6c8854ee12ceb6..8351bcbeaf915ae64cd78e5ff46a89b13c1aaf3d 100755 (executable)
@@ -1,16 +1,16 @@
-<!-- WebHelp version 5.10 -->\r
-<html>\r
-<head>\r
-<title> Glossary Navigation Pane </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-\r
-</style>\r
-</head>\r
-<frameset rows="36, *" border="0" frameborder="0">\r
-       <frame name="glstabs" title="tab selection frame" src="whnvt33.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>\r
-       <frame name="glsdata" title="glossary frame" src="whnvf33.htm"></frame>\r
-</frameset>\r
+<!-- WebHelp version 5.10 -->
+<html>
+<head>
+<title> Glossary Navigation Pane </title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+
+</style>
+</head>
+<frameset rows="36, *" border="0" frameborder="0">
+       <frame name="glstabs" title="tab selection frame" src="whnvt33.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
+       <frame name="glsdata" title="glossary frame" src="whnvf33.htm"></frame>
+</frameset>
 </html>
\ No newline at end of file
index 35e6ef5b8af6ea051be4bde1b345d04a661e3c92..ec1bb840ffbe27b036367c10a7c4fd03b0e01604 100755 (executable)
@@ -1,47 +1,47 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Content Navigation Tab</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<style>\r
-<!--\r
-body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
-\r
-A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
-A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
-A:active {background-color:#cccccc;}\r
-A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
-\r
-\r
-.tabs {background-color:#c0c0c0;}\r
-.tocbody {margin-left:10pt; margin-top:0pt;}\r
-.bo {}\r
-.bc {}\r
-.pn {}\r
-.pr {}\r
-\r
-body {background-color:White; } \r
-p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
-A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
-A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
-A:active {background-color:Silver; } \r
-A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
-img {vertial-align:middle;}\r
--->\r
-</style>\r
-</head>\r
-<body class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="javascript:void(0)" title="Contents"><img src="../wht_tab1.gif" border="0"></a><a href="whnvp32.htm" target="_parent" title="Search"><img src="../wht_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent" title="Glossary"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Content Navigation Tab</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+
+.tabs {background-color:#c0c0c0;}
+.tocbody {margin-left:10pt; margin-top:0pt;}
+.bo {}
+.bc {}
+.pn {}
+.pr {}
+
+.tocbody {margin-top:0pt; } .tocbody {margin-bottom:0pt; } .tocbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+img {vertial-align:middle;}
+-->
+</style>
+</head>
+<body class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table class="tabs" width="100%">
+ <tr> 
+   <td class="tabs">
+   <nobr><a href="javascript:void(0)" title="Contents"><img src="../whd_tab1.gif" border="0"></a><a href="whnvp32.htm" target="_parent" title="Search"><img src="../whd_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent" title="Glossary"><img src="../whd_tab8.gif" border="0"></a></nobr>
+   </td>
+ </tr>
+</table>
+</body>
+
+</html>
+
index 53dd7e91cb685ac0a66fd68830e2a0138703dba8..e17d82548ec6e433bb59fdf262f830a972fc0694 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Index Navigation Tab</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\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
-.ndxheader {margin-left:10pt; margin-top:0pt;}\r
-.ndxbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-\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 class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="whnvp30.htm" target="_parent" title="Contents"><img src="../wht_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent" title="Search"><img src="../wht_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent" title="Glossary"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Index Navigation Tab</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ndxheader {margin-left:10pt; margin-top:0pt;}
+.ndxbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ndxheader {margin-top:0pt; } .ndxheader {margin-bottom:0pt; } .ndxheader {margin-left:9pt; } 
+
+.ndxbody {margin-top:0pt; } .ndxbody {margin-bottom:0pt; } .ndxbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table class="tabs" width="100%">
+ <tr> 
+   <td class="tabs">
+   <nobr><a href="whnvp30.htm" target="_parent" title="Contents"><img src="../whd_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent" title="Search"><img src="../whd_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent" title="Glossary"><img src="../whd_tab8.gif" border="0"></a></nobr>
+   </td>
+ </tr>
+</table>
+</body>
+
+</html>
+
index 464a4cc4adc3c394852bba7a1f63e84205e6bf83..d63892533fdf1352231a61955bf4844b15b252ad 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Search Navigation Tab</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\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 class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="whnvp30.htm" target="_parent" title="Contents"><img src="../wht_tab2.gif" border="0"></a><a href="javascript:void(0)" title="Search"><img src="../wht_tab5.gif" border="0"></a><a href="whnvp33.htm" target="_parent" title="Glossary"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Search Navigation Tab</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.ftsheader {margin-left:10pt; margin-top:0pt;}
+.ftsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.ftsheader {margin-top:0pt; } .ftsheader {margin-bottom:0pt; } .ftsheader {margin-left:9pt; } 
+
+.ftsbody {margin-top:0pt; } .ftsbody {margin-bottom:0pt; } .ftsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; } A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table class="tabs" width="100%">
+ <tr> 
+   <td class="tabs">
+   <nobr><a href="whnvp30.htm" target="_parent" title="Contents"><img src="../whd_tab2.gif" border="0"></a><a href="javascript:void(0)" title="Search"><img src="../whd_tab5.gif" border="0"></a><a href="whnvp33.htm" target="_parent" title="Glossary"><img src="../whd_tab8.gif" border="0"></a></nobr>
+   </td>
+ </tr>
+</table>
+</body>
+
+</html>
+
index eb46f192b44a955650c435c913e498972f643697..af63a0257e0ee2faf7417a75c54a5e431790580b 100755 (executable)
@@ -1,45 +1,45 @@
-<html>\r
-<head>\r
-<!-- WebHelp version 5.10 -->\r
-<title>Glossary Navigation Tab</title>\r
-<base target="bsscright">\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\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
-.glsheader {margin-left:10pt; margin-top:0pt;}\r
-.glsbody {margin-left:10pt; margin-top:0pt;}\r
-.inactive {color:#666666;}\r
-.glsheader {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 class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">\r
-<table class="tabs" width="100%">\r
- <tr> \r
-   <td class="tabs">\r
-   <nobr><a href="whnvp30.htm" target="_parent" title="Contents"><img src="../wht_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent" title="Search"><img src="../wht_tab6.gif" border="0"></a><a href="javascript:void(0)" title="Glossary"><img src="../wht_tab7.gif" border="0"></a></nobr>\r
-   </td>\r
- </tr>\r
-</table>\r
-</body>\r
-\r
-</html>\r
-\r
+<html>
+<head>
+<!-- WebHelp version 5.10 -->
+<title>Glossary Navigation Tab</title>
+<base target="bsscright">
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<style>
+<!--
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}
+
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }
+A:active {background-color:#cccccc;}
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }
+
+.tabs {background-color:#c0c0c0;}
+.glsheader {margin-left:10pt; margin-top:0pt;}
+.glsbody {margin-left:10pt; margin-top:0pt;}
+.inactive {color:#666666;}
+.glsheader {margin-top:0pt; } .glsheader {margin-bottom:0pt; } .glsheader {margin-left:9pt; } 
+
+.glsbody {margin-top:0pt; } .glsbody {margin-bottom:0pt; } .glsbody {margin-left:9pt; } 
+p {color:#000000; } p {font-family:Arial; } p {font-size:9pt; } p {font-style:normal; } p {text-decoration:none; } 
+A:link {color:#000000; } A:link {font-family:Arial; } A:link {font-size:9pt; } A:link {font-style:normal; } A:link {text-decoration:none; } 
+A:visited {color:#000000; } A:visited {font-family:Arial; }A:visited {font-size:9pt; } A:visited {font-style:normal; } A:visited {text-decoration:none; } 
+A:active {background-color:#cccccc; } 
+A:hover {color:#007f00; } A:hover {font-family:Arial; } A:hover {font-size:9pt; } A:hover {font-style:normal; } A:hover {text-decoration:underline; } 
+
+-->
+</style>
+</head>
+<body class="tabs" marginheight="0"  marginwidth="0" bgproperties="fixed">
+<table class="tabs" width="100%">
+ <tr> 
+   <td class="tabs">
+   <nobr><a href="whnvp30.htm" target="_parent" title="Contents"><img src="../whd_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent" title="Search"><img src="../whd_tab6.gif" border="0"></a><a href="javascript:void(0)" title="Glossary"><img src="../whd_tab7.gif" border="0"></a></nobr>
+   </td>
+ </tr>
+</table>
+</body>
+
+</html>
+
index ae435749c2b2a7646f0d644214e9b791fb623cd3..5ff0f6781d9f474c0727119ab2e3e75c5ae85549 100755 (executable)
@@ -1,98 +1,98 @@
-<html>\r
-<head>\r
-<title>Glossary Definition</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goGloFont=null;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLODEF);\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-               document.body.background=gsBgImage;\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-               document.body.bgColor=gsBgColor;\r
-}\r
-\r
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)\r
-{\r
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);\r
-       if (sType == "Normal")\r
-               goGloFont = vFont;\r
-}\r
-\r
-function textToHtml_nbsp_specialcare(sText)\r
-{\r
-       if (sText == null) return null;\r
-       var sHTML= sText;\r
-       var re = new RegExp("  ","g");\r
-       sHTML=  sHTML.replace(re, "&nbsp; ");\r
-       return  sHTML;\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId = oMsg.nMessageId;\r
-       if (nMsgId == WH_MSG_SHOWGLODEF)\r
-       {\r
-               document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;\r
-               return true;\r
-       }\r
-}\r
-\r
-function GDefWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)\r
-{\r
-       window.onload=window_OnLoad;\r
-       window.onunload = window_Unload;\r
-       goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");\r
-       setBackgroundcolor("White"); \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       GDefWriteClassStyle();\r
-       RegisterListener2(this, WH_MSG_SHOWGLODEF);\r
-       var sDefHead = "<p class=\"definition\">";\r
-       var sDefTail = "</p>";\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body bgproperties="fixed" bgcolor="white">\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>Glossary Definition</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2">
+<!--
+var gsBgColor="#ffffff";
+var gsBgImage="";
+var goGloFont=null;
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function window_Unload()
+{
+       UnRegisterListener2(this, WH_MSG_SHOWGLODEF);
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+               document.body.background=gsBgImage;
+       if(gsBgColor&&gsBgColor.length>0)
+               document.body.bgColor=gsBgColor;
+}
+
+function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
+{
+       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
+       if (sType == "Normal")
+               goGloFont = vFont;
+}
+
+function textToHtml_nbsp_specialcare(sText)
+{
+       if (sText == null) return null;
+       var sHTML= sText;
+       var re = new RegExp("  ","g");
+       sHTML=  sHTML.replace(re, "&nbsp; ");
+       return  sHTML;
+}
+
+function onSendMessage(oMsg)
+{
+       var nMsgId = oMsg.nMessageId;
+       if (nMsgId == WH_MSG_SHOWGLODEF)
+       {
+               document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;
+               return true;
+       }
+}
+
+function GDefWriteClassStyle()
+{
+       var sStyle="<STYLE TYPE='text/css'>\n";
+       if (gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";
+       sStyle+="</STYLE>";
+       document.write(sStyle);
+}
+
+if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)
+{
+       window.onload=window_OnLoad;
+       window.onunload = window_Unload;
+       goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");
+       
+       
+       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
+       GDefWriteClassStyle();
+       RegisterListener2(this, WH_MSG_SHOWGLODEF);
+       var sDefHead = "<p class=\"definition\">";
+       var sDefTail = "</p>";
+}
+else
+       document.location.reload();
+//-->
+</script>
+</head>
+<body bgproperties="fixed" bgcolor="white">
+</body>
+</html>
index 6ffb2947a30f9e4b6907ca0dd6153f66b963a502..d02a99feb2f10a057b0ce89e110d96400fb296f6 100755 (executable)
-<html>\r
-<head>\r
-<title>Glossary</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsBgImage="";\r
-var    gsBgColor="";\r
-var goTitleFont=null;\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Title")\r
-               goTitleFont=vFont;\r
-}\r
-\r
-function getTermText()\r
-{\r
-       var strString="Term:";\r
-strString = "Term:";\r
-       return strString;\r
-}\r
-\r
-function getDefinitionText()\r
-{\r
-       var strString="Definition for:";\r
-strString = "Definition:";\r
-       return strString;\r
-}\r
-\r
-function getHTML()\r
-{\r
-       var sHTML="";\r
-       sHTML+="<P class=title><nobr>&nbsp;" + getTermText() + "</nobr></p>";\r
-       sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";\r
-       sHTML+="<P class=title><nobr>&nbsp;" + getDefinitionText() + "&nbsp;<b id=Name></b></nobr></p>";\r
-       sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";\r
-       return sHTML;\r
-}\r
-\r
-function writeStyle()\r
-{\r
-       var sStyle="<style type='text/css'>";\r
-       sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="</style>";\r
-       document.write(sStyle);\r
-}\r
-\r
-\r
-function window_OnResize()\r
-{\r
-       setIFrameHeight();\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-               document.body.background=gsBgImage;\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-               document.body.bgColor=gsBgColor;\r
-       setIFrameHeight();\r
-}\r
-\r
-function setIFrameHeight()\r
-{\r
-       var tH=0;\r
-       if(gbNav6)\r
-       {\r
-               tH=parseInt(window.innerHeight)-30;\r
-       }\r
-       else\r
-       {\r
-               tH=parseInt(document.body.clientHeight)-4;\r
-       }\r
-               \r
-       var oEle=getElement("glossaryIFrame");\r
-       if(oEle)\r
-       {\r
-               tH=tH-2*parseInt(oEle.offsetTop);\r
-               if(tH>0)\r
-               {\r
-                       oEle.style.height=Math.floor(tH*.6);\r
-                       var oEleDef=getElement("defIFrame");\r
-                       if(oEleDef)\r
-                       {\r
-                               oEleDef.style.height=tH-parseInt(oEle.style.height);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLODEF);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_SHOWGLODEF)\r
-       {\r
-               if(getElement("Name"))\r
-                       getElement("Name").innerHTML=oMsg.oParam.sName;\r
-               return true;\r
-       }\r
-}\r
-\r
-if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)\r
-{\r
-       goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");\r
-       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-       \r
-       setBackgroundcolor("White");\r
-       window.onresize=window_OnResize;\r
-       window.onload=window_OnLoad;\r
-       window.onunload=window_Unload;\r
-       RegisterListener2(this,WH_MSG_SHOWGLODEF);\r
-       writeStyle();\r
-       document.write(getHTML());\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>Glossary</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2">
+<!--
+var gsBgImage="";
+var    gsBgColor="";
+var goTitleFont=null;
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Title")
+               goTitleFont=vFont;
+}
+
+function getTermText()
+{
+       var strString="Term:";
+strString = "Term:";
+       return strString;
+}
+
+function getDefinitionText()
+{
+       var strString="Definition for:";
+strString = "Definition:";
+       return strString;
+}
+
+function getHTML()
+{
+       var sHTML="";
+       sHTML+="<P class=title><nobr>&nbsp;" + getTermText() + "</nobr></p>";
+       sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
+       sHTML+="<P class=title><nobr>&nbsp;" + getDefinitionText() + "&nbsp;<b id=Name></b></nobr></p>";
+       sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
+       return sHTML;
+}
+
+function writeStyle()
+{
+       var sStyle="<style type='text/css'>";
+       sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";
+       if (gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       sStyle+="</style>";
+       document.write(sStyle);
+}
+
+
+function window_OnResize()
+{
+       setIFrameHeight();
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+               document.body.background=gsBgImage;
+       if(gsBgColor&&gsBgColor.length>0)
+               document.body.bgColor=gsBgColor;
+       setIFrameHeight();
+}
+
+function setIFrameHeight()
+{
+       var tH=0;
+       if(gbNav6)
+       {
+               tH=parseInt(window.innerHeight)-30;
+       }
+       else
+       {
+               tH=parseInt(document.body.clientHeight)-4;
+       }
+               
+       var oEle=getElement("glossaryIFrame");
+       if(oEle)
+       {
+               tH=tH-2*parseInt(oEle.offsetTop);
+               if(tH>0)
+               {
+                       oEle.style.height=Math.floor(tH*.6);
+                       var oEleDef=getElement("defIFrame");
+                       if(oEleDef)
+                       {
+                               oEleDef.style.height=tH-parseInt(oEle.style.height);
+                       }
+               }
+       }
+}
+
+function window_Unload()
+{
+       UnRegisterListener2(this,WH_MSG_SHOWGLODEF);
+}
+
+function onSendMessage(oMsg)
+{
+       var nMsgId=oMsg.nMessageId;
+       if(nMsgId==WH_MSG_SHOWGLODEF)
+       {
+               if(getElement("Name"))
+                       getElement("Name").innerHTML=oMsg.oParam.sName;
+               return true;
+       }
+}
+
+if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)
+{
+       goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");
+       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
+       
+       
+       window.onresize=window_OnResize;
+       window.onload=window_OnLoad;
+       window.onunload=window_Unload;
+       RegisterListener2(this,WH_MSG_SHOWGLODEF);
+       writeStyle();
+       document.write(getHTML());
+}
+else
+       document.location.reload();
+//-->
+</script>
+</body>
+</html>
index 56e1d5659d8dd675977ab9353d0dfaec0d76add6..9ebcf24dd030e2432ca894878bec967584e84155 100755 (executable)
-//     WebHelp 5.10.004\r
-var gbXML=false;\r
-var gaDef=new Array();\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goFont=null;\r
-var goHoverFont=null;\r
-var gsMargin="2pt";\r
-var gsIndent="2pt";\r
-var gsActiveBgColor="#cccccc";\r
-var gbWhGHost=false;\r
-var gbShowDef=true;\r
-var gsGloId="Glo_"\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal")\r
-               goFont=vFont;\r
-       else if(sType=="Hover")\r
-               goHoverFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsActiveBgColor=sBgColor;\r
-}\r
-\r
-function setMargin(sMargin)\r
-{\r
-       gsMargin=sMargin;\r
-}\r
-\r
-function setIndent(sIndent)\r
-{\r
-       gsIndent=sIndent;\r
-}\r
-\r
-function insertDef(sKName,sDef)\r
-{\r
-       var nLength=gaDef.length\r
-       var oGlo=new nameDefPair(sKName,sDef);\r
-       gaDef[nLength]=oGlo;\r
-       return nLength;\r
-}\r
-\r
-function showDef(nDef)\r
-{\r
-       if(nDef<gaDef.length)\r
-       {       \r
-               HighLight(nDef);\r
-               var oParam=gaDef[nDef];\r
-               var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function nameDefPair(sName,sDef)\r
-{\r
-       this.sName=sName;\r
-       this.sDef=sDef;\r
-}\r
-\r
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
-{\r
-       var sHTML="";\r
-       var nIdxSet=aCurIdxSet[0];\r
-       var nIIdx=aPos[nIdxSet];\r
-       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);\r
-       var sKName=_textToHtml(sRawKName);\r
-       var sDText=_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx));\r
-       var sDef=sDText;\r
-       for(var i=1;i<nLength;i++)\r
-       {\r
-               var nIdxSeti=aCurIdxSet[i];\r
-               var nIIdxi=aPos[nIdxSeti];\r
-               var sRawKNamei = getItemName(aDataCon,nIdxSeti,nIIdxi);\r
-               var sKNamei=_textToHtml(sRawKNamei);\r
-               var sDTexti=_textToHtml_nonbsp(getDef(aDataCon,nIdxSeti,nIIdxi));\r
-               if (compare(sKNamei,sKName)==0)\r
-               {\r
-                       if (sDText!=sDTexti)\r
-                               sDef+="<br>"+sDTexti;\r
-               }\r
-       }\r
-       var nIndex=insertDef(sKName,sDef);\r
-       if(nLevel==1)\r
-       {\r
-               sHTML+="<p><nobr id=\""+getGloId(nIndex)+"\">";\r
-               sHTML+="<a alt=\""+sKName+"\" href=\"javascript:void(0);\" onfocus=\"HighLight("+nIndex+");\" onclick=\"showDef("+nIndex+");return false;\">"+sKName+"</a></nobr></p>";\r
-               oHTML.addHTML(sHTML,nLength,bDown,true,sRawKName);\r
-               if(gbShowDef)\r
-               {\r
-                       setTimeout("showDef(0);",100);\r
-                       gbShowDef = false;\r
-               }\r
-       }\r
-}\r
-\r
-function HighLight(nIndex)\r
-{\r
-       var oObj=getElement(getGloId(nIndex));\r
-       if(oObj)\r
-               HighLightElement(oObj,gsActiveBgColor,"transparent");\r
-}\r
-\r
-function getGloId(nIndex)\r
-{\r
-       return gsGloId+nIndex;\r
-}\r
-\r
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
-{\r
-       if(bDown)\r
-       {\r
-               for(var i=0;i<nLength;i++)\r
-                       aPos[aCurIdxSet[i]]++;\r
-       }\r
-       else{\r
-               for(var i=0;i<nLength;i++)\r
-                       aPos[aCurIdxSet[i]]--;\r
-       }\r
-}\r
-\r
-function getDef(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].sDef;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemName(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-               document.body.background=gsBgImage;\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-               document.body.bgColor=gsBgColor;\r
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
-       loadGlo();\r
-       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadGlo()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbReady=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       var aProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       if(aProj.length>0)\r
-                       {\r
-                               var sLangId=aProj[0].sLangId;\r
-                               for(var i=0;i<aProj.length;i++)\r
-                               {\r
-                                       if(aProj[i].sGlo&&aProj[i].sLangId==sLangId)\r
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);\r
-                               }\r
-                       }\r
-                       writeDataIFrame();\r
-                       enEvt();\r
-               }               \r
-       }\r
-}\r
-\r
-function findCKInDom()\r
-{\r
-       return true;\r
-}\r
-\r
-function GloWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+="</STYLE>";     \r
-       document.write(sStyle);\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       if(!gbNav6)\r
-                               document.body.focus();\r
-               }\r
-               else if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadGlo();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SHOWGLO);\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_Unload;\r
-       gbWhGHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
+//     WebHelp 5.10.004
+var gbXML=false;
+var gaDef=new Array();
+var gsBgColor="#ffffff";
+var gsBgImage="";
+var goFont=null;
+var goHoverFont=null;
+var gsMargin="2pt";
+var gsIndent="2pt";
+var gsActiveBgColor="#cccccc";
+var gbWhGHost=false;
+var gbShowDef=true;
+var gsGloId="Glo_"
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Normal")
+               goFont=vFont;
+       else if(sType=="Hover")
+               goHoverFont=vFont;
+}
+
+function setActiveBgColor(sBgColor)
+{
+       gsActiveBgColor=sBgColor;
+}
+
+function setMargin(sMargin)
+{
+       gsMargin=sMargin;
+}
+
+function setIndent(sIndent)
+{
+       gsIndent=sIndent;
+}
+
+function insertDef(sKName,sDef)
+{
+       var nLength=gaDef.length
+       var oGlo=new nameDefPair(sKName,sDef);
+       gaDef[nLength]=oGlo;
+       return nLength;
+}
+
+function showDef(nDef)
+{
+       if(nDef<gaDef.length)
+       {       
+               HighLight(nDef);
+               var oParam=gaDef[nDef];
+               var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);
+               SendMessage(oMsg);
+       }
+}
+
+function nameDefPair(sName,sDef)
+{
+       this.sName=sName;
+       this.sDef=sDef;
+}
+
+function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
+{
+       var sHTML="";
+       var nIdxSet=aCurIdxSet[0];
+       var nIIdx=aPos[nIdxSet];
+       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);
+       var sKName=_textToHtml(sRawKName);
+       var sDText=_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx));
+       var sDef=sDText;
+       for(var i=1;i<nLength;i++)
+       {
+               var nIdxSeti=aCurIdxSet[i];
+               var nIIdxi=aPos[nIdxSeti];
+               var sRawKNamei = getItemName(aDataCon,nIdxSeti,nIIdxi);
+               var sKNamei=_textToHtml(sRawKNamei);
+               var sDTexti=_textToHtml_nonbsp(getDef(aDataCon,nIdxSeti,nIIdxi));
+               if (compare(sKNamei,sKName)==0)
+               {
+                       if (sDText!=sDTexti)
+                               sDef+="<br>"+sDTexti;
+               }
+       }
+       var nIndex=insertDef(sKName,sDef);
+       if(nLevel==1)
+       {
+               sHTML+="<p><nobr id=\""+getGloId(nIndex)+"\">";
+               sHTML+="<a alt=\""+sKName+"\" href=\"javascript:void(0);\" onfocus=\"HighLight("+nIndex+");\" onclick=\"showDef("+nIndex+");return false;\">"+sKName+"</a></nobr></p>";
+               oHTML.addHTML(sHTML,nLength,bDown,true,sRawKName);
+               if(gbShowDef)
+               {
+                       setTimeout("showDef(0);",100);
+                       gbShowDef = false;
+               }
+       }
+}
+
+function HighLight(nIndex)
+{
+       var oObj=getElement(getGloId(nIndex));
+       if(oObj)
+               HighLightElement(oObj,gsActiveBgColor,"transparent");
+}
+
+function getGloId(nIndex)
+{
+       return gsGloId+nIndex;
+}
+
+function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
+{
+       if(bDown)
+       {
+               for(var i=0;i<nLength;i++)
+                       aPos[aCurIdxSet[i]]++;
+       }
+       else{
+               for(var i=0;i<nLength;i++)
+                       aPos[aCurIdxSet[i]]--;
+       }
+}
+
+function getDef(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               return aDataCon[nIdxSet].aKs[nIIdx].sDef;
+       else
+               return null;
+}
+
+function getItemName(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               return aDataCon[nIdxSet].aKs[nIIdx].sName;
+       else
+               return null;
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+               document.body.background=gsBgImage;
+       if(gsBgColor&&gsBgColor.length>0)
+               document.body.bgColor=gsBgColor;
+       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
+       loadGlo();
+       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
+       SendMessage(oMsg);
+}
+
+function loadGlo()
+{
+       if(!gbReady)
+       {
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
+               if(SendMessage(oResMsg)&&oResMsg.oParam)
+               {
+                       gbReady=true;
+                       var oProj=oResMsg.oParam;
+                       var aProj=oProj.aProj;
+                       gbXML=oProj.bXML;
+                       if(aProj.length>0)
+                       {
+                               var sLangId=aProj[0].sLangId;
+                               for(var i=0;i<aProj.length;i++)
+                               {
+                                       if(aProj[i].sGlo&&aProj[i].sLangId==sLangId)
+                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);
+                               }
+                       }
+                       writeDataIFrame();
+                       enEvt();
+               }               
+       }
+}
+
+function findCKInDom()
+{
+       return true;
+}
+
+function GloWriteClassStyle()
+{
+       var sStyle="<STYLE TYPE='text/css'>\n";
+       if (gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";
+       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
+       sStyle+="</STYLE>";     
+       document.write(sStyle);
+}
+
+function window_Unload()
+{
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);
+}
+
+function onSendMessage(oMsg)
+{
+       if(oMsg)
+       {
+               var nMsgId=oMsg.nMessageId;
+               if(nMsgId==WH_MSG_SHOWGLO)
+               {
+                       if(!gbNav6)
+                               document.body.focus();
+               }
+               else if(nMsgId==WH_MSG_PROJECTREADY)
+               {
+                       loadGlo();
+               }
+       }
+       return true;
+}
+
+if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)
+{
+       RegisterListener2(this,WH_MSG_PROJECTREADY);
+       RegisterListener2(this,WH_MSG_SHOWGLO);
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
+       window.onload=window_OnLoad;
+       window.onbeforeunload=window_BUnload;
+       window.onunload=window_Unload;
+       gbWhGHost=true;
+}
+else
+       document.location.reload();
+
index 5a02374adbb8824deb56dc11d9cd8163f09fda19..a32225a1aa1a19ed5df04b58ceddb9108c2792c8 100755 (executable)
-//     WebHelp 5.10.002\r
-var gaChunks=new Array();\r
-var gaFakes=new Array();\r
-var gaDataCon=null;\r
-var gaData=new Array();\r
-\r
-var gbFindCK=false;;\r
-var gbNeedCalc=false;\r
-var gbScrl=false;\r
-var gbProcess=false;\r
-var gbReady=false;\r
-\r
-var gnCheck=0;\r
-var gnNum=0;\r
-var gnIns=-1;\r
-var gnLoad=0;\r
-var gnRef=-1;\r
-var gnMaxItems=0;\r
-var gnMaxMargin=32000;\r
-var gnNeeded=0;\r
-var gnNKI=-1;\r
-var gnRE=0;\r
-var gnScrlMgn=30;\r
-var gnSE=0;\r
-var gnVisible=0;\r
-var gnItems=0;\r
-var gnUHeight=1;\r
-\r
-var gsBCK=null;\r
-var gsChK=null;\r
-var gsCK=null;\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading data, please wait...";\r
-var gsSKA=null;\r
-var gsSKB=null;\r
-\r
-var gbLoadInfo=false;\r
-\r
-function onLoadXMLError()\r
-{\r
-       if(gbLoadInfo)\r
-       {\r
-               var aChunk=new Array();\r
-               projReady(aChunk);\r
-       }\r
-       else\r
-       {\r
-               var aData=new Array();\r
-               putData(aData);\r
-       }\r
-}\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gbLoadInfo)\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var nTotal=0\r
-                       var aChunk=new Array();\r
-                       var oC=node.firstChild;\r
-                       while(oC)\r
-                       {\r
-                               if(oC.nodeName=="chunkinfo")\r
-                               {\r
-                                       var item=new Object();\r
-                                       item.sBK=oC.getAttribute("first");\r
-                                       item.sEK=oC.getAttribute("last");\r
-                                       item.sFileName=oC.getAttribute("url");\r
-                                       item.nNum=parseInt(oC.getAttribute("num"));\r
-                                       nTotal+=item.nNum;\r
-                                       item.nTotal=nTotal;\r
-                                       aChunk[aChunk.length]=item;\r
-                               }\r
-                               oC=oC.nextSibling;\r
-                       }\r
-                       projReady(aChunk);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var node=xmlDoc.lastChild;\r
-               if(node)\r
-               {\r
-                       var aData=new Array();\r
-                       var nPrev=0;\r
-                       var nNext=0;\r
-                       var oC=node.firstChild;\r
-                       while(oC)\r
-                       {\r
-                               nPrev=nNext;\r
-                               if(oC.nodeName=="key")\r
-                               {\r
-                                       var sName=oC.getAttribute("name");\r
-                                       if(sName&&sName.length>0)\r
-                                       {\r
-                                               var sTarget=oC.getAttribute("target");\r
-                                               var item=new Object();\r
-                                               item.nType=2;\r
-                                               item.sName=sName;\r
-                                               if(sTarget)\r
-                                                       item.sTarget=sTarget;\r
-                                               item.nPKOff=nPrev;\r
-                                               aData[aData.length]=item;\r
-                                               var nCurIndex=aData.length;\r
-                                               processKey(oC,aData,item);\r
-                                               nNext=aData.length-nCurIndex;\r
-                                               item.nNKOff=nNext;\r
-                                       }\r
-                               }\r
-                               else if(oC.nodeName=="letter")\r
-                               {\r
-                                       var name=oC.getAttribute("name");\r
-                                       if(name&&name.length>0)\r
-                                       {\r
-                                               var item=new Object();\r
-                                               item.nType=1;\r
-                                               item.sName=name;\r
-                                               item.nPKOff=nPrev;\r
-                                               nNext=0;\r
-                                               item.nNKOff=nNext;\r
-                                               aData[aData.length]=item;\r
-                                       }\r
-                               }\r
-                               else if(oC.nodeName=="entry")\r
-                               {\r
-                                       var name=oC.getAttribute("name");\r
-                                       var def=oC.getAttribute("value");\r
-                                       if(name&&name.length>0)\r
-                                       {\r
-                                               var item=new Object();\r
-                                               item.sName=name;\r
-                                               item.sDef=def;\r
-                                               item.nPKOff=nPrev;\r
-                                               nNext=0;\r
-                                               item.nNKOff=nNext;\r
-                                               aData[aData.length]=item;\r
-                                       }\r
-                               }\r
-                               oC=oC.nextSibling;\r
-                       }\r
-                       putData(aData);\r
-               }\r
-       }\r
-}\r
-\r
-function processKey(element,aData,item)\r
-{\r
-       var i=0;\r
-       var nPrev=0;\r
-       var nNext=0;\r
-       var oC=element.firstChild;\r
-       while(oC)\r
-       {\r
-               if(oC.nodeName=="topic")\r
-               {\r
-                       var name=oC.getAttribute("name");\r
-                       var url=oC.getAttribute("url");\r
-                       if(url&&url.length!=0)\r
-                       {\r
-                               if(!name||name.length==0)\r
-                                       name=url;\r
-                               var topic=new Object();\r
-                               topic.sName=name;\r
-                               topic.sURL=url;\r
-                               if(!item.aTopics)\r
-                                       item.aTopics=new Array();\r
-                               item.aTopics[item.aTopics.length]=topic;\r
-                       }\r
-               }\r
-               else if(oC.nodeName=="key")\r
-               {\r
-                       nPrev=nNext;\r
-                       var name=oC.getAttribute("name");\r
-                       if(name&&name.length!=0)\r
-                       {\r
-                               var subItem=new Object();\r
-                               subItem.sName=name;\r
-                               subItem.nType=3;\r
-                               subItem.nPKOff=nPrev;\r
-                               aData[aData.length]=subItem;\r
-                               var nCurIndex=aData.length;\r
-                               processKey(oC,aData,subItem);\r
-                               nNext=aData.length-nCurIndex;\r
-                               subItem.nNKOff=nNext;\r
-                       }\r
-               }\r
-               oC=oC.nextSibling;\r
-       }\r
-}\r
-\r
-function putData(aData)\r
-{\r
-       endLoading();\r
-       var oCData=goCData;\r
-       if(oCData)\r
-       {\r
-               oCData.aKs=aData;\r
-               if(gnNKI==-1)\r
-                       setTimeout("checkReady();",1);\r
-               else\r
-               {\r
-                       gsSKA=getKByIdx(oCData,gnNKI);\r
-                       gbNeedCalc=true;\r
-                       gbScrl=true;\r
-                       gnNKI=-1;\r
-                       if(gsSKA)\r
-                               setTimeout("checkReady();",1);\r
-                       else\r
-                       {\r
-                               markEnd();\r
-                               setTimeout("checkAgain();",50);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function markEnd()\r
-{\r
-       if(gbProcess)\r
-               gbProcess=false;\r
-}\r
-\r
-function endLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(oDiv)\r
-               oDiv.style.visibility="hidden";\r
-}\r
-\r
-function markBegin()\r
-{\r
-       gbProcess=true;\r
-}\r
-\r
-function beginLoading()\r
-{\r
-       var oDiv=getElement(gsLoadingDivID);\r
-       if(oDiv)\r
-       {\r
-               oDiv.style.top=document.body.scrollTop;\r
-               oDiv.style.visibility="visible";\r
-       }\r
-}\r
-\r
-function indexHTMLPart()\r
-{\r
-       this.sHTML="";\r
-       this.nNeeded=0;\r
-       this.nCurrent=0;\r
-       this.nConsumed=0;\r
-       this.sFK=null;\r
-       this.sLK=null;\r
-       this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){\r
-               if(bDown)\r
-                       this.sHTML+=sHTML;\r
-               else\r
-                       this.sHTML=sHTML+this.sHTML;\r
-               this.nCurrent++;                        \r
-               this.nConsumed+=nConsumed;\r
-               if(bK)\r
-               {\r
-                       if(!this.sFK)\r
-                               this.sFK=sK;\r
-                       if(!this.sLK)\r
-                               this.sLK=sK;\r
-                       if(bDown)\r
-                               this.sLK=sK;\r
-                       else\r
-                               this.sFK=sK;\r
-               }\r
-       }\r
-       this.appendHTML=function(oHTML,bDown){\r
-               this.addSubHTML(oHTML,bDown);\r
-               if(!this.sFK)\r
-                       this.sFK=oHTML.sFK;\r
-               if(!this.sLK)\r
-                       this.sLK=oHTML.sLK;\r
-               if(bDown)\r
-                       this.sLK=oHTML.sLK;\r
-               else\r
-                       this.sFK=oHTML.sFK;\r
-       }       \r
-       \r
-       this.addSubHTML=function(oHTML,bDown){\r
-               if(bDown)\r
-                       this.sHTML+=oHTML.sHTML;\r
-               else\r
-                       this.sHTML=oHTML.sHTML+this.sHTML;\r
-               this.nCurrent+=oHTML.nCurrent;\r
-               this.nConsumed+=oHTML.nConsumed;                        \r
-       }\r
-}\r
-\r
-function getMaxUnits()\r
-{\r
-       return Math.floor(gnMaxMargin/gnUHeight)+1;\r
-}\r
-\r
-function getFakeItemsHTMLbyCount(nB,nCount)\r
-{\r
-       var nMU=getMaxUnits();\r
-       var nNum=Math.floor(nCount/nMU);\r
-       var sHTML="";\r
-       for(var i=0;i<nNum;i++)\r
-               sHTML+=getFakeItemHTML(nB,nMU-1);\r
-               \r
-       var nRest=nCount%nMU;\r
-       sHTML+=getFakeItemHTML(nB,nRest-1);\r
-       return sHTML;\r
-}\r
-\r
-function getFakeItemHTML(nB,nNum)\r
-{\r
-       return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\">&nbsp;</h6>";\r
-}\r
-\r
-function fakeItemsArea(nB,n,sKA,sKB,obj)\r
-{\r
-       this.nB=nB;\r
-       this.nNum=n;\r
-       this.sKA=sKA;\r
-       this.sKB=sKB;\r
-       this.obj=obj;\r
-       this.nMargin=(n-1)*gnUHeight;\r
-\r
-       this.setNum=function(n)\r
-       {\r
-               var nLastobj=-1;\r
-               var nDelta=this.nMargin;\r
-               this.nMargin=(n-1)*gnUHeight;\r
-               nDelta=nDelta-this.nMargin;\r
-               if(n>0)\r
-               {\r
-                       this.nNum=n;\r
-                       var nMU=getMaxUnits();\r
-                       nLastobj=Math.floor((n-1)/nMU);\r
-                       if(this.obj.length)\r
-                               this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;\r
-                       else\r
-                               this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;\r
-               }\r
-               if(this.obj.length)\r
-               {\r
-                       for(var i=this.obj.length-1;i>nLastobj;i--)\r
-                               removeThis(this.obj[i]);\r
-               }\r
-               else\r
-               {\r
-                       if(nLastobj==-1)\r
-                               removeThis(this.obj);\r
-               }\r
-               return nDelta;\r
-       }\r
-       this.insertAdjacentHTML=function(sWhere,sHTML)\r
-       {\r
-               if(sWhere=="beforeBegin")\r
-               {\r
-                       if(this.obj.length)\r
-                               this.obj[0].insertAdjacentHTML(sWhere,sHTML);\r
-                       else\r
-                               this.obj.insertAdjacentHTML(sWhere,sHTML);\r
-               }\r
-               else if(sWhere=="afterEnd")\r
-               {\r
-                       if(this.obj.length)\r
-                       {\r
-                               if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)\r
-                                       this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);\r
-                               else\r
-                                       this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);\r
-                       }\r
-                       else\r
-                       {\r
-                               if(gbMac&&gbIE5&&this.obj.nextSibling)\r
-                                       this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);\r
-                               else\r
-                                       this.obj.insertAdjacentHTML(sWhere,sHTML);\r
-                       }\r
-               }\r
-       }\r
-       this.getBtm=function()\r
-       {\r
-               if(this.obj.length)\r
-                       return this.obj[this.obj.length-1].offsetTop;\r
-               else\r
-                       return this.obj.offsetTop;\r
-       }\r
-       this.getTop=function()\r
-       {\r
-               return this.getBtm()-this.nMargin;\r
-       }\r
-}\r
-\r
-function usedItems(nB,nE)\r
-{\r
-       this.nB=nB;\r
-       this.nE=nE;\r
-       this.oN=null;\r
-}\r
-\r
-function checkReady()\r
-{\r
-       var len=gaChunks.length;\r
-       var bNeedLoad=false;\r
-       var aDataCon;\r
-       var s=0;\r
-       var bDown=(gsSKB==null);\r
-       var sK=bDown?gsSKA:gsSKB;\r
-       if(sK==null)\r
-       {\r
-               markEnd();\r
-               setTimeout("checkAgain();",50);\r
-               return;\r
-       }\r
-       if(!gsChK||sK!=gsChK||gnNum==0)\r
-       {\r
-               gnCheck=0;\r
-               gsChK=sK;\r
-               aDataCon=new Array();\r
-       }\r
-       else{\r
-               s=gnNum;\r
-               aDataCon=gaDataCon;\r
-       }\r
-       for(var i=gnCheck;i<len;i++)\r
-       {\r
-               var oCData=getChunkedData(i,bDown,sK);\r
-               if(oCData)\r
-               {\r
-                       if(!oCData.aKs&&oCData.sFileName!=null)\r
-                       {\r
-                               bNeedLoad=true;\r
-                               goCData=oCData;\r
-                               gnNum=s;\r
-                               gnCheck=i;\r
-                               gaDataCon=aDataCon;\r
-                               oCData.nProjId=i;\r
-                               gbLoadInfo=false;\r
-                               beginLoading();\r
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);\r
-                               return;\r
-                       }\r
-                       else{\r
-                               aDataCon[s++]=oCData;\r
-                       }\r
-               }\r
-       }\r
-       if(!bNeedLoad)\r
-       {\r
-               gnNum=0;\r
-               gsSKA=gsSKB=gsShowK=null;\r
-               \r
-               var oHTML=new indexHTMLPart();\r
-               var aPos=new Array();\r
-               var aOriPos=new Array();\r
-               var aMaxPos=new Array();\r
-               var aMinPos=new Array();\r
-               \r
-               if(gbNeedCalc||gbFindCK) gnIns=0;\r
-               for(i=0;i<aDataCon.length;i++)\r
-               {\r
-                       aPos[i]=getIdxPos(aDataCon[i],bDown,sK);\r
-                       if(gbNeedCalc||gbFindCK)\r
-                       {\r
-                               gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;\r
-                               if(!bDown)\r
-                               {\r
-                                       if(aPos[i]!=-1)\r
-                                       {\r
-                                               if(aDataCon[i].aKs)\r
-                                                       gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;\r
-                                               else\r
-                                               {\r
-                                                       var n=aPos[i]+1;\r
-                                                       while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])\r
-                                                               n++;\r
-                                                       n=n-aPos[i]-1;\r
-                                                       gnIns+=n;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       aOriPos[i]=aPos[i];\r
-                       getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);\r
-               }\r
-               if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)\r
-               {\r
-                       gnIns+=(aDataCon.length-1)\r
-               }\r
-               if(gnIns!=-1||gbFindCK)\r
-               {\r
-                       oHTML.nNeeded=gnNeeded;\r
-                       var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);\r
-                       if(oHTML.nConsumed!=0)\r
-                       {\r
-                               var nB;\r
-                               if(!bDown)\r
-                                       nB=gnIns-oHTML.nConsumed+1;\r
-                               else\r
-                                       nB=gnIns;\r
-                                       \r
-                               var oldScrollPos=document.body.scrollTop;\r
-                               if(insertIdxKs(nB,oHTML,gbScrl))\r
-                               {\r
-                                       updateUsedK(aDataCon,aOriPos,aPos,bDown);\r
-                                       if(!gbScrl&&gbMac)\r
-                                       {\r
-                                               while(document.body.scrollTop!=oldScrollPos)\r
-                                                       document.body.scrollTop=oldScrollPos;\r
-                                       }\r
-                                       gbScrl=false;\r
-                               }\r
-                               if(gbFindCK)\r
-                               {\r
-                                       gbFindCK=false;\r
-                                       gbNeedCalc=true;\r
-                                       gsSKB=oHTML.sFK;\r
-                                       gnIns=-1;\r
-                                       setTimeout("checkReady();",50);\r
-                                       return;\r
-                               }\r
-                       }\r
-                       else if(gbFindCK)\r
-                       {\r
-                               gbFindCK=false;\r
-                               gbNeedCalc=true;\r
-                               gsSKB=getFirstKeyFromPos(aDataCon,aPos);\r
-                               gnIns=-1;\r
-                               setTimeout("checkReady();",50);\r
-                               return;\r
-                       }\r
-                       if(!findCKInDom()) return;\r
-\r
-                       gnNeeded=gnNeeded-oHTML.nCurrent;\r
-                       gnIns=-1;\r
-                       markEnd();\r
-                       setTimeout("checkAgain();",50);\r
-                       gbNeedCalc=false;\r
-               }\r
-               else\r
-               {\r
-                       if(!findCKInDom()) return;\r
-                       markEnd();\r
-                       setTimeout("checkAgain();",50);\r
-               }\r
-       }\r
-}\r
-\r
-function getFirstKeyFromPos(aDataCon,aPos)\r
-{\r
-       var sCurrentK=getBiggestChar();\r
-       for(var i=0;i<aPos.length;i++)\r
-       {\r
-               if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)\r
-               {\r
-                       if(sCurrentK==""||\r
-                               compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)\r
-                       {\r
-                               sCurrentK=aDataCon[i].aKs[aPos[i]].sName;\r
-                       }\r
-               }\r
-       }\r
-       return sCurrentK;\r
-}\r
-\r
-function checkAgain()\r
-{\r
-       if(!gbProcess)\r
-       {\r
-               if(gsBCK!=null)\r
-               {\r
-                       gsCK=gsBCK;\r
-                       gsBCK=null;\r
-                       findCK();\r
-               }\r
-               else\r
-               {\r
-                       markBegin();\r
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
-               }\r
-       }\r
-       else\r
-               setTimeout("checkAgain()",50);\r
-}\r
-\r
-function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)\r
-{\r
-       aMaxPos[i]=aDataCon[i].nNum;\r
-       aMinPos[i]=-1;\r
-       var oPNode=null;\r
-       if(aDataCon[i].oUsedItems)\r
-       {\r
-               var oUsedItems=aDataCon[i].oUsedItems;\r
-               do{\r
-                       if(oUsedItems.nB>aPos[i])\r
-                       {\r
-                               aMaxPos[i]=oUsedItems.nB;\r
-                               break;\r
-                       }\r
-                       oPNode=oUsedItems;\r
-                       oUsedItems=oUsedItems.oN;\r
-               }while(oUsedItems!=null);\r
-               if(oPNode)\r
-                       aMinPos[i]=oPNode.nE;\r
-       }\r
-       else if(aDataCon[i].aKs==null)\r
-       {\r
-               aMaxPos[i]=aMinPos[i]=aPos[i];\r
-       }\r
-       if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])\r
-       {\r
-               aMaxPos[i]=aMinPos[i]=aPos[i];\r
-       }\r
-}\r
-\r
-function getIdxPos(oIdx,bDown,sK)\r
-{\r
-       var aKs=oIdx.aKs;\r
-       var nIdx;\r
-       if(bDown)\r
-               nIdx=oIdx.nNum;\r
-       else\r
-               nIdx=-1;\r
-       if(aKs!=null)\r
-       {\r
-               for(var i=0;i<aKs.length;i++)\r
-               {       \r
-                       if(bDown)\r
-                       {\r
-                               if(compare(aKs[i].sName,sK)>0)\r
-                               {\r
-                                       nIdx=i;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               if(compare(aKs[i].sName,sK)<0)\r
-                                       nIdx=i;\r
-                               else\r
-                                       break;\r
-                       }\r
-                       i+=aKs[i].nNKOff;\r
-               }\r
-       }\r
-       else if(oIdx.aKsOnly)\r
-       {\r
-               var aKsOnly=oIdx.aKsOnly;\r
-               for(var i=0;i<aKsOnly.length;i++)\r
-               {       \r
-                       if(aKsOnly[i])\r
-                       {\r
-                               if(bDown)\r
-                               {\r
-                                       if(compare(aKsOnly[i],sK)>0)\r
-                                       {\r
-                                               nIdx=i;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(compare(aKsOnly[i],sK)<0)\r
-                                               nIdx=i;\r
-                                       else\r
-                                               break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return nIdx;\r
-}\r
-\r
-function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)\r
-{\r
-       var aOldPos=new Array();\r
-       for(var i=0;i<aPos.length;i++)\r
-       {\r
-               aOldPos[i]=aPos[i];\r
-       }\r
-       var p;\r
-       do{\r
-               var sCurrentK="";\r
-               var aCurIdxSet=new Array();\r
-               p=0;\r
-               for(i=0;i<aDataCon.length;i++)\r
-               {\r
-                       if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&\r
-                               (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))\r
-                       {\r
-                               if(sCurrentK==""||\r
-                                       (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||\r
-                                       (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))\r
-                               {\r
-                                       sCurrentK=aDataCon[i].aKs[aPos[i]].sName;\r
-                                       p=0;\r
-                                       aCurIdxSet[p++]=i;\r
-                               }\r
-                               else if(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){\r
-                                       aCurIdxSet[p++]=i;\r
-                               }\r
-                       }\r
-                       else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){\r
-                               if(bDown&&aPos[i]==aMaxPos[i])\r
-                               {\r
-                                       if(aDataCon[i].aKs)\r
-                                       {\r
-                                               gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;\r
-                                               return false;\r
-                                       }\r
-                               }\r
-                               else if(!bDown&&aPos[i]==aMinPos[i])\r
-                               {\r
-                                       if(aDataCon[i].aKs)\r
-                                       {\r
-                                               gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;\r
-                                               return false;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               if(p>=1){\r
-                       for(var s=0;s<p;s++)\r
-                       {\r
-                               aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];\r
-                       }\r
-                       mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);\r
-                       adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);\r
-                       \r
-                       if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){\r
-                               return true;\r
-                       }\r
-               }\r
-       }while(p>0);\r
-       return true;\r
-}\r
-\r
-function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)\r
-{\r
-       for(var i=0;i<aDataCon.length;i++)\r
-       {\r
-               if (aOldPos[i]!=aOriPos[i])\r
-               {\r
-                       var nBP=0;\r
-                       var nEP=0;\r
-                       if(bDown)\r
-                       {\r
-                               nBP=aOriPos[i];\r
-                               nEP=aOldPos[i]-1;\r
-                       }\r
-                       else\r
-                       {\r
-                               if (aOldPos[i]!=-1)\r
-                                       nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;\r
-                               else\r
-                                       nBP=0;\r
-                               nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;\r
-                       }\r
-                       if(nBP<=nEP)\r
-                       {\r
-                               setContentsUsed(aDataCon[i],nBP,nEP);\r
-                               \r
-                               var oFirstPair=aDataCon[i].oUsedItems;\r
-                               if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)\r
-                               {\r
-                                       storeKeysOnly(aDataCon[i]);\r
-                                       aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function storeKeysOnly(oCData)\r
-{\r
-       oCData.aKsOnly=new Array();\r
-       for(var i=0;i<oCData.aKs.length;i++)\r
-       {\r
-               oCData.aKsOnly[i]=oCData.aKs[i].sName;\r
-               i+=oCData.aKs[i].nNKOff;\r
-       }\r
-}\r
-\r
-function setContentsUsed(oIdx,nB,nE)\r
-{\r
-       if(!oIdx.oUsedItems)\r
-               oIdx.oUsedItems=new usedItems(nB,nE);\r
-       else\r
-       {\r
-               var oUsedItems=oIdx.oUsedItems;\r
-               var oPNode=null;\r
-               do{\r
-                       if(oUsedItems.nB>nB)\r
-                       {\r
-                               if(oUsedItems.nB==nE+1)\r
-                               {\r
-                                       oUsedItems.nB=nB;\r
-                               }\r
-                               else{\r
-                                       var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);\r
-                                       oNewNode.oN=oUsedItems.oN;\r
-                                       oUsedItems.nB=nB;\r
-                                       oUsedItems.nE=nE;\r
-                                       oUsedItems.oN=oNewNode;\r
-                               }\r
-                               break;\r
-                       }\r
-                       oPNode=oUsedItems;\r
-                       oUsedItems=oUsedItems.oN;\r
-               }while(oUsedItems);\r
-               if(!oUsedItems)\r
-               {\r
-                       if(oPNode!=null)\r
-                               oPNode.oN=new usedItems(nB,nE);\r
-               }\r
-               if(oPNode!=null){\r
-                       if(oPNode.nE==oPNode.oN.nB-1)\r
-                       {\r
-                               oPNode.nE=oPNode.oN.nE;\r
-                               oPNode.oN=oPNode.oN.oN;\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function projInfo(sPPath,sDPath,sFile)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.sFile=sFile;\r
-}\r
-\r
-function addProjInfo(sPPath,sDPath,sFile)\r
-{\r
-       var oIdxInfo=new projInfo(sPPath,sDPath,sFile);\r
-       gaData[gaData.length]=oIdxInfo;\r
-       return oIdxInfo;\r
-}\r
-\r
-function writeDataIFrame()\r
-{\r
-       if(gnLoad<gaData.length)\r
-       {\r
-               gbLoadInfo=true;\r
-               loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);\r
-       }\r
-       else{\r
-               if(gnItems!=0)\r
-               {\r
-                       markBegin();\r
-                       writeFakeItems();\r
-                       gsSKA="";\r
-                       gnNeeded=gnVisible;\r
-                       gnIns=0;\r
-                       checkReady();\r
-               }\r
-       }\r
-}\r
-\r
-function getH6ById(nPos)\r
-{\r
-       if(document.all)\r
-               return document.all("fk"+nPos);\r
-       else if(document.getElementsByName)\r
-               return document.getElementsByName("fk"+nPos);\r
-       return null;            \r
-}\r
-\r
-function showItemsInEvaluation(nBP)\r
-{\r
-       var bRtn=true;\r
-       var fPer=nBP/gnItems;\r
-       var nB=Math.floor(fPer*gnMaxItems);\r
-       var oCData=getChunkByIdx(gnRef,nB);\r
-       if(oCData)\r
-       {\r
-               if(!oCData.aKs&&oCData.sFileName!=null)\r
-               {\r
-                       gnNKI=nB;\r
-                       goCData=oCData;\r
-                       oCData.nProjId=gnRef;\r
-                       gbLoadInfo=false;\r
-                       beginLoading();\r
-                       loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);\r
-               }\r
-               else{\r
-                       gsSKA=getKByIdx(oCData,nB);\r
-                       if(gsSKA)\r
-                       {\r
-                               gsSKB=null;\r
-                               gbNeedCalc=true;\r
-                               gbScrl=true;\r
-                               checkReady()\r
-                       }\r
-                       else\r
-                       {\r
-                               markEnd();\r
-                               bRtn=false;\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               markEnd();\r
-               bRtn=false;\r
-       }\r
-       return bRtn;\r
-}\r
-\r
-function isUsed(oCData,nPos)\r
-{\r
-       var oUsed=oCData.oUsedItems;\r
-       while(oUsed&&oUsed.nB<=nPos)\r
-       {\r
-               if(oUsed.nE>=nPos) return true;\r
-               oUsed=oUsed.oN;\r
-       }\r
-       return false;\r
-}\r
-\r
-function getKByIdx(oCData,nB)\r
-{\r
-       var nRelPos=nB-(oCData.nTotal-oCData.nNum);\r
-       var aIKs=oCData.aKs;\r
-       if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)\r
-       {\r
-               var oK=null;\r
-               do{\r
-                       oK=aIKs[nRelPos++];\r
-               }       \r
-               while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);\r
-               if(oK.nType!=3)\r
-               {\r
-                       return oK.sName;\r
-               }\r
-               else{\r
-                       nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;\r
-                       if(nRelPos>=0)\r
-                       {\r
-                               do{\r
-                                       oK=aIKs[nRelPos--];\r
-                               }\r
-                               while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);\r
-                       }\r
-                       if(oK.nType!=3)\r
-                       {\r
-                               return oK.sName;\r
-                       }\r
-               }\r
-       }\r
-       return null;\r
-}\r
-\r
-function loadData2(sFileName)\r
-{\r
-       disEvt();\r
-       if(gbXML)\r
-               loadDataXML(sFileName);\r
-       else\r
-               loadData(sFileName);\r
-       enEvt();\r
-}\r
-\r
-function projReady(aChunk)\r
-{\r
-       gaChunks[gnLoad++]=aChunk;\r
-       var len=aChunk.length;\r
-       var nTotal=0;\r
-       if(len>0)\r
-               nTotal=aChunk[len-1].nTotal;\r
-       gnItems+=nTotal;\r
-       if(nTotal>gnMaxItems)\r
-       {\r
-               gnMaxItems=nTotal;\r
-               gnRef=gnLoad-1;\r
-       }\r
-       setTimeout("writeDataIFrame();",1);\r
-}\r
-\r
-function writeFakeItems()\r
-{\r
-       disEvt();\r
-       gnUHeight=15;\r
-       var sHTML=getFakeItemsHTMLbyCount(0,gnItems);\r
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-       var obj=getH6ById(0);\r
-       if (document.body != null)\r
-       {\r
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);\r
-       }\r
-       gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);\r
-       enEvt();\r
-}\r
-\r
-function getEndString()\r
-{\r
-       var sBC=getBiggestChar();\r
-       return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;\r
-}\r
-\r
-function getUnitIdx(nScrl,nHeight)\r
-{\r
-       if(gaFakes.length==0)\r
-       {\r
-               markEnd();\r
-               return;\r
-       }\r
-       var nB=0;\r
-       var nE=gaFakes.length-1;\r
-       var nM=-1;\r
-       var nTop=0;\r
-       var nBtm=0;\r
-       var bF=false;\r
-       do{\r
-               nM=(nB+nE)>>1;\r
-               nBtm=gaFakes[nM].getBtm();\r
-               nTop=gaFakes[nM].getTop();\r
-                       \r
-               if(nTop>=nScrl+nHeight)\r
-                       nE=nM-1;\r
-               else if(nBtm<nScrl)\r
-                       nB=nM+1;\r
-               else{\r
-                       bF=true;\r
-                       break;\r
-               }\r
-       }while(nE>=nB);\r
-       if(bF)\r
-       {\r
-               if(nTop>=nScrl){\r
-                       gsSKA=gaFakes[nM].sKA;\r
-                       gsSKB=null;\r
-                       gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);\r
-                       gnIns=gaFakes[nM].nB;\r
-                       checkReady();\r
-               }\r
-               else if(nBtm<=nScrl+nHeight){\r
-                       gsSKB=gaFakes[nM].sKB;\r
-                       gsSKA=null;\r
-                       gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);\r
-                       gbNeedCalc=true;\r
-                       checkReady();\r
-               }\r
-               else{\r
-                       gnNeeded=gnVisible;\r
-                       var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);\r
-                       if (!showItemsInEvaluation(nUnitIdx))\r
-                       {\r
-                               gsSKA=gaFakes[nM].sKA;\r
-                               gsSKB=null;\r
-                               gnNeeded=Math.ceil(nHeight/gnUHeight);\r
-                               gnIns=gaFakes[nM].nB;\r
-                               checkReady();\r
-                       }\r
-               }\r
-       }\r
-       else\r
-               markEnd();\r
-}\r
-\r
-function disEvt()\r
-{\r
-       window.onscroll=null;\r
-       window.onresize=null;\r
-}\r
-\r
-function enEvt()\r
-{\r
-       window.onscroll=window_OnScroll;\r
-       window.onresize=window_OnResize;\r
-}\r
-\r
-function insertIdxKs(nIns,oHTML,bScrl)\r
-{\r
-       var bRtn=true;\r
-       disEvt();\r
-       var nCount=oHTML.nConsumed;\r
-       var nB=0;\r
-       var nE=gaFakes.length-1;\r
-       var nM=-1;\r
-       var bF=false;\r
-       do{\r
-               nM=(nB+nE)>>1;\r
-               if(gaFakes[nM].nB>nIns)\r
-                       nE=nM-1;\r
-               else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)\r
-                       nB=nM+1;\r
-               else{\r
-                       bF=true;\r
-                       break;\r
-               }\r
-       }while(nE>=nB);\r
-       if(bF)\r
-       {\r
-               var oFIA=gaFakes[nM];\r
-               var nOffsetTop=oFIA.getTop();\r
-               var nOffsetBottom=oFIA.getBtm();\r
-               var nDelta=0;\r
-               var nHDiff=nIns-oFIA.nB;\r
-               var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);\r
-               if(nHDiff>0)\r
-               {\r
-                       nDelta=oFIA.setNum(nHDiff);\r
-                       var sOldKBefore=oFIA.sKB;\r
-                       oFIA.sKB=oHTML.sFK;\r
-                       if(nTDiff>0)\r
-                       {\r
-                               var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);\r
-                               oFIA.insertAdjacentHTML("afterEnd",sHTML);\r
-                               var obj=getH6ById(nIns);\r
-                               insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));\r
-                       }\r
-                       oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);        \r
-                       if(bScrl)\r
-                       {\r
-                               if(gbMac&&gbIE4)\r
-                               {\r
-                                       var nScrollPos=nOffsetBottom-nDelta;\r
-                                       while(document.body.scrollTop!=nScrollPos)\r
-                                               document.body.scrollTop=nScrollPos;\r
-                               }\r
-                               else\r
-                                       window.scrollTo(0,nOffsetBottom-nDelta);\r
-                       }\r
-               }\r
-               else{\r
-                       oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);\r
-                       if(bScrl){\r
-                               if(gbMac&&gbIE4)\r
-                               {\r
-                                       var nScrollPos=nOffsetTop;\r
-                                       while(document.body.scrollTop!=nScrollPos)\r
-                                               document.body.scrollTop=nScrollPos;\r
-                               }\r
-                               else\r
-                                       window.scrollTo(0,nOffsetTop);\r
-                       }\r
-                                       \r
-                       if(nTDiff>0)\r
-                       {\r
-                               oFIA.nB=nIns+nCount;\r
-                               nDelta=oFIA.setNum(nTDiff);\r
-                               oFIA.sKA=oHTML.sLK;\r
-                       }       \r
-                       else{\r
-                               gaFakes[nM].setNum(0);\r
-                               removeItemFromArray(gaFakes,nM);\r
-                       }\r
-               }\r
-       }\r
-       else\r
-               bRtn=false;\r
-       enEvt();\r
-       return bRtn;\r
-}\r
-\r
-function window_OnScroll()\r
-{\r
-       gnSE++;\r
-       setTimeout("procScroll();",50); \r
-}\r
-\r
-function procScroll()\r
-{\r
-       if(gnSE==1&&!gbProcess)\r
-       {\r
-               markBegin();\r
-               getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
-       }\r
-       gnSE--;\r
-}\r
-\r
-function window_OnResize()\r
-{\r
-       gnRE++;\r
-       setTimeout("procResize();",50);\r
-}\r
-\r
-function procResize()\r
-{\r
-       if(gnRE==1&&!gbProcess)\r
-       {\r
-               markBegin();\r
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);\r
-               if(gnIns==-1)\r
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);\r
-       }\r
-       gnRE--;\r
-}\r
-\r
-function getChunkByIdx(nIdx,nPosition)\r
-{\r
-       var oCData=null;\r
-       if(nIdx<gaChunks.length)\r
-       {\r
-               var len=gaChunks[nIdx].length;\r
-               if(len>0)\r
-               {\r
-                       var nB=0;\r
-                       var nE=len-1;\r
-                       var bF=false;\r
-                       do{\r
-                               var nM=(nB+nE)>>1;\r
-                               if(nPosition<gaChunks[nIdx][nM].nTotal)\r
-                               {\r
-                                       bF=true;\r
-                                       nE=nM;\r
-                               }\r
-                               else\r
-                                       nB=nM+1;\r
-                       }while(nE>nB);\r
-                       if(bF)\r
-                               oCData=gaChunks[nIdx][nE];\r
-                       else if(nPosition<gaChunks[nIdx][nB].nTotal)\r
-                               oCData=gaChunks[nIdx][nB];\r
-               }\r
-       }\r
-       return oCData;\r
-}\r
-\r
-function getChunkedData(nIdx,bDown,sK)\r
-{\r
-       var oCData=null;\r
-       var nCandId=-1;\r
-       if(nIdx<gaChunks.length)\r
-       {\r
-               var len=gaChunks[nIdx].length;\r
-               if(len>0)\r
-               {\r
-                       var nB=0;\r
-                       var nE=len-1;\r
-                       var bF=false;\r
-                       do{\r
-                               var nM=(nB+nE+(bDown?0:1))>>1;\r
-                               if(bDown)\r
-                               {\r
-                                       if(compare(sK,gaChunks[nIdx][nM].sEK)<0)\r
-                                       {\r
-                                               bF=true;\r
-                                               nE=nM;\r
-                                       }\r
-                                       else\r
-                                               nB=nM+1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(compare(sK,gaChunks[nIdx][nM].sBK)>0)\r
-                                       {\r
-                                               bF=true;\r
-                                               nB=nM;\r
-                                       }\r
-                                       else\r
-                                               nE=nM-1;\r
-                               }\r
-                       }while(nE>nB);\r
-                       if(bF)\r
-                       {\r
-                               if(bDown)\r
-                                       nCandId=nE;\r
-                               else\r
-                                       nCandId=nB;\r
-                       }\r
-                       else\r
-                       {\r
-                               if(bDown)\r
-                               {\r
-                                       if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)\r
-                                               nCandId=nB;\r
-                                       else\r
-                                               nCandId=gaChunks[nIdx].length-1;\r
-                               }\r
-                               else\r
-                               {\r
-                                       if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)\r
-                                               nCandId=nE;\r
-                                       else\r
-                                               nCandId=0;\r
-                               }\r
-                       }\r
-                       return gaChunks[nIdx][nCandId];\r
-               }\r
-       }\r
-       return null;\r
-}\r
-\r
-function findCK()\r
-{\r
-       if(gsCK!=null)\r
-       {\r
-               gsSKA=gsCK;\r
-               gbFindCK=true;\r
-               gnNeeded=1;\r
-               markBegin();\r
-               checkReady();\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIIdx)\r
-{\r
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
-}\r
-\r
+//     WebHelp 5.10.002
+var gaChunks=new Array();
+var gaFakes=new Array();
+var gaDataCon=null;
+var gaData=new Array();
+
+var gbFindCK=false;;
+var gbNeedCalc=false;
+var gbScrl=false;
+var gbProcess=false;
+var gbReady=false;
+
+var gnCheck=0;
+var gnNum=0;
+var gnIns=-1;
+var gnLoad=0;
+var gnRef=-1;
+var gnMaxItems=0;
+var gnMaxMargin=32000;
+var gnNeeded=0;
+var gnNKI=-1;
+var gnRE=0;
+var gnScrlMgn=30;
+var gnSE=0;
+var gnVisible=0;
+var gnItems=0;
+var gnUHeight=1;
+
+var gsBCK=null;
+var gsChK=null;
+var gsCK=null;
+var gsLoadingDivID="LoadingDiv";
+var gsLoadingMsg="Loading data, please wait...";
+var gsSKA=null;
+var gsSKB=null;
+
+var gbLoadInfo=false;
+
+function onLoadXMLError()
+{
+       if(gbLoadInfo)
+       {
+               var aChunk=new Array();
+               projReady(aChunk);
+       }
+       else
+       {
+               var aData=new Array();
+               putData(aData);
+       }
+}
+
+function putDataXML(xmlDoc,sDocPath)
+{
+       if(gbLoadInfo)
+       {
+               var node=xmlDoc.lastChild;
+               if(node)
+               {
+                       var nTotal=0
+                       var aChunk=new Array();
+                       var oC=node.firstChild;
+                       while(oC)
+                       {
+                               if(oC.nodeName=="chunkinfo")
+                               {
+                                       var item=new Object();
+                                       item.sBK=oC.getAttribute("first");
+                                       item.sEK=oC.getAttribute("last");
+                                       item.sFileName=oC.getAttribute("url");
+                                       item.nNum=parseInt(oC.getAttribute("num"));
+                                       nTotal+=item.nNum;
+                                       item.nTotal=nTotal;
+                                       aChunk[aChunk.length]=item;
+                               }
+                               oC=oC.nextSibling;
+                       }
+                       projReady(aChunk);
+               }
+       }
+       else
+       {
+               var node=xmlDoc.lastChild;
+               if(node)
+               {
+                       var aData=new Array();
+                       var nPrev=0;
+                       var nNext=0;
+                       var oC=node.firstChild;
+                       while(oC)
+                       {
+                               nPrev=nNext;
+                               if(oC.nodeName=="key")
+                               {
+                                       var sName=oC.getAttribute("name");
+                                       if(sName&&sName.length>0)
+                                       {
+                                               var sTarget=oC.getAttribute("target");
+                                               var item=new Object();
+                                               item.nType=2;
+                                               item.sName=sName;
+                                               if(sTarget)
+                                                       item.sTarget=sTarget;
+                                               item.nPKOff=nPrev;
+                                               aData[aData.length]=item;
+                                               var nCurIndex=aData.length;
+                                               processKey(oC,aData,item);
+                                               nNext=aData.length-nCurIndex;
+                                               item.nNKOff=nNext;
+                                       }
+                               }
+                               else if(oC.nodeName=="letter")
+                               {
+                                       var name=oC.getAttribute("name");
+                                       if(name&&name.length>0)
+                                       {
+                                               var item=new Object();
+                                               item.nType=1;
+                                               item.sName=name;
+                                               item.nPKOff=nPrev;
+                                               nNext=0;
+                                               item.nNKOff=nNext;
+                                               aData[aData.length]=item;
+                                       }
+                               }
+                               else if(oC.nodeName=="entry")
+                               {
+                                       var name=oC.getAttribute("name");
+                                       var def=oC.getAttribute("value");
+                                       if(name&&name.length>0)
+                                       {
+                                               var item=new Object();
+                                               item.sName=name;
+                                               item.sDef=def;
+                                               item.nPKOff=nPrev;
+                                               nNext=0;
+                                               item.nNKOff=nNext;
+                                               aData[aData.length]=item;
+                                       }
+                               }
+                               oC=oC.nextSibling;
+                       }
+                       putData(aData);
+               }
+       }
+}
+
+function processKey(element,aData,item)
+{
+       var i=0;
+       var nPrev=0;
+       var nNext=0;
+       var oC=element.firstChild;
+       while(oC)
+       {
+               if(oC.nodeName=="topic")
+               {
+                       var name=oC.getAttribute("name");
+                       var url=oC.getAttribute("url");
+                       if(url&&url.length!=0)
+                       {
+                               if(!name||name.length==0)
+                                       name=url;
+                               var topic=new Object();
+                               topic.sName=name;
+                               topic.sURL=url;
+                               if(!item.aTopics)
+                                       item.aTopics=new Array();
+                               item.aTopics[item.aTopics.length]=topic;
+                       }
+               }
+               else if(oC.nodeName=="key")
+               {
+                       nPrev=nNext;
+                       var name=oC.getAttribute("name");
+                       if(name&&name.length!=0)
+                       {
+                               var subItem=new Object();
+                               subItem.sName=name;
+                               subItem.nType=3;
+                               subItem.nPKOff=nPrev;
+                               aData[aData.length]=subItem;
+                               var nCurIndex=aData.length;
+                               processKey(oC,aData,subItem);
+                               nNext=aData.length-nCurIndex;
+                               subItem.nNKOff=nNext;
+                       }
+               }
+               oC=oC.nextSibling;
+       }
+}
+
+function putData(aData)
+{
+       endLoading();
+       var oCData=goCData;
+       if(oCData)
+       {
+               oCData.aKs=aData;
+               if(gnNKI==-1)
+                       setTimeout("checkReady();",1);
+               else
+               {
+                       gsSKA=getKByIdx(oCData,gnNKI);
+                       gbNeedCalc=true;
+                       gbScrl=true;
+                       gnNKI=-1;
+                       if(gsSKA)
+                               setTimeout("checkReady();",1);
+                       else
+                       {
+                               markEnd();
+                               setTimeout("checkAgain();",50);
+                       }
+               }
+       }
+}
+
+function markEnd()
+{
+       if(gbProcess)
+               gbProcess=false;
+}
+
+function endLoading()
+{
+       var oDiv=getElement(gsLoadingDivID);
+       if(oDiv)
+               oDiv.style.visibility="hidden";
+}
+
+function markBegin()
+{
+       gbProcess=true;
+}
+
+function beginLoading()
+{
+       var oDiv=getElement(gsLoadingDivID);
+       if(oDiv)
+       {
+               oDiv.style.top=document.body.scrollTop;
+               oDiv.style.visibility="visible";
+       }
+}
+
+function indexHTMLPart()
+{
+       this.sHTML="";
+       this.nNeeded=0;
+       this.nCurrent=0;
+       this.nConsumed=0;
+       this.sFK=null;
+       this.sLK=null;
+       this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){
+               if(bDown)
+                       this.sHTML+=sHTML;
+               else
+                       this.sHTML=sHTML+this.sHTML;
+               this.nCurrent++;                        
+               this.nConsumed+=nConsumed;
+               if(bK)
+               {
+                       if(!this.sFK)
+                               this.sFK=sK;
+                       if(!this.sLK)
+                               this.sLK=sK;
+                       if(bDown)
+                               this.sLK=sK;
+                       else
+                               this.sFK=sK;
+               }
+       }
+       this.appendHTML=function(oHTML,bDown){
+               this.addSubHTML(oHTML,bDown);
+               if(!this.sFK)
+                       this.sFK=oHTML.sFK;
+               if(!this.sLK)
+                       this.sLK=oHTML.sLK;
+               if(bDown)
+                       this.sLK=oHTML.sLK;
+               else
+                       this.sFK=oHTML.sFK;
+       }       
+       
+       this.addSubHTML=function(oHTML,bDown){
+               if(bDown)
+                       this.sHTML+=oHTML.sHTML;
+               else
+                       this.sHTML=oHTML.sHTML+this.sHTML;
+               this.nCurrent+=oHTML.nCurrent;
+               this.nConsumed+=oHTML.nConsumed;                        
+       }
+}
+
+function getMaxUnits()
+{
+       return Math.floor(gnMaxMargin/gnUHeight)+1;
+}
+
+function getFakeItemsHTMLbyCount(nB,nCount)
+{
+       var nMU=getMaxUnits();
+       var nNum=Math.floor(nCount/nMU);
+       var sHTML="";
+       for(var i=0;i<nNum;i++)
+               sHTML+=getFakeItemHTML(nB,nMU-1);
+               
+       var nRest=nCount%nMU;
+       sHTML+=getFakeItemHTML(nB,nRest-1);
+       return sHTML;
+}
+
+function getFakeItemHTML(nB,nNum)
+{
+       return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\">&nbsp;</h6>";
+}
+
+function fakeItemsArea(nB,n,sKA,sKB,obj)
+{
+       this.nB=nB;
+       this.nNum=n;
+       this.sKA=sKA;
+       this.sKB=sKB;
+       this.obj=obj;
+       this.nMargin=(n-1)*gnUHeight;
+
+       this.setNum=function(n)
+       {
+               var nLastobj=-1;
+               var nDelta=this.nMargin;
+               this.nMargin=(n-1)*gnUHeight;
+               nDelta=nDelta-this.nMargin;
+               if(n>0)
+               {
+                       this.nNum=n;
+                       var nMU=getMaxUnits();
+                       nLastobj=Math.floor((n-1)/nMU);
+                       if(this.obj.length)
+                               this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;
+                       else
+                               this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;
+               }
+               if(this.obj.length)
+               {
+                       for(var i=this.obj.length-1;i>nLastobj;i--)
+                               removeThis(this.obj[i]);
+               }
+               else
+               {
+                       if(nLastobj==-1)
+                               removeThis(this.obj);
+               }
+               return nDelta;
+       }
+       this.insertAdjacentHTML=function(sWhere,sHTML)
+       {
+               if(sWhere=="beforeBegin")
+               {
+                       if(this.obj.length)
+                               this.obj[0].insertAdjacentHTML(sWhere,sHTML);
+                       else
+                               this.obj.insertAdjacentHTML(sWhere,sHTML);
+               }
+               else if(sWhere=="afterEnd")
+               {
+                       if(this.obj.length)
+                       {
+                               if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)
+                                       this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
+                               else
+                                       this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);
+                       }
+                       else
+                       {
+                               if(gbMac&&gbIE5&&this.obj.nextSibling)
+                                       this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
+                               else
+                                       this.obj.insertAdjacentHTML(sWhere,sHTML);
+                       }
+               }
+       }
+       this.getBtm=function()
+       {
+               if(this.obj.length)
+                       return this.obj[this.obj.length-1].offsetTop;
+               else
+                       return this.obj.offsetTop;
+       }
+       this.getTop=function()
+       {
+               return this.getBtm()-this.nMargin;
+       }
+}
+
+function usedItems(nB,nE)
+{
+       this.nB=nB;
+       this.nE=nE;
+       this.oN=null;
+}
+
+function checkReady()
+{
+       var len=gaChunks.length;
+       var bNeedLoad=false;
+       var aDataCon;
+       var s=0;
+       var bDown=(gsSKB==null);
+       var sK=bDown?gsSKA:gsSKB;
+       if(sK==null)
+       {
+               markEnd();
+               setTimeout("checkAgain();",50);
+               return;
+       }
+       if(!gsChK||sK!=gsChK||gnNum==0)
+       {
+               gnCheck=0;
+               gsChK=sK;
+               aDataCon=new Array();
+       }
+       else{
+               s=gnNum;
+               aDataCon=gaDataCon;
+       }
+       for(var i=gnCheck;i<len;i++)
+       {
+               var oCData=getChunkedData(i,bDown,sK);
+               if(oCData)
+               {
+                       if(!oCData.aKs&&oCData.sFileName!=null)
+                       {
+                               bNeedLoad=true;
+                               goCData=oCData;
+                               gnNum=s;
+                               gnCheck=i;
+                               gaDataCon=aDataCon;
+                               oCData.nProjId=i;
+                               gbLoadInfo=false;
+                               beginLoading();
+                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);
+                               return;
+                       }
+                       else{
+                               aDataCon[s++]=oCData;
+                       }
+               }
+       }
+       if(!bNeedLoad)
+       {
+               gnNum=0;
+               gsSKA=gsSKB=gsShowK=null;
+               
+               var oHTML=new indexHTMLPart();
+               var aPos=new Array();
+               var aOriPos=new Array();
+               var aMaxPos=new Array();
+               var aMinPos=new Array();
+               
+               if(gbNeedCalc||gbFindCK) gnIns=0;
+               for(i=0;i<aDataCon.length;i++)
+               {
+                       aPos[i]=getIdxPos(aDataCon[i],bDown,sK);
+                       if(gbNeedCalc||gbFindCK)
+                       {
+                               gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;
+                               if(!bDown)
+                               {
+                                       if(aPos[i]!=-1)
+                                       {
+                                               if(aDataCon[i].aKs)
+                                                       gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;
+                                               else
+                                               {
+                                                       var n=aPos[i]+1;
+                                                       while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])
+                                                               n++;
+                                                       n=n-aPos[i]-1;
+                                                       gnIns+=n;
+                                               }
+                                       }
+                               }
+                       }
+                       aOriPos[i]=aPos[i];
+                       getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);
+               }
+               if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)
+               {
+                       gnIns+=(aDataCon.length-1)
+               }
+               if(gnIns!=-1||gbFindCK)
+               {
+                       oHTML.nNeeded=gnNeeded;
+                       var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);
+                       if(oHTML.nConsumed!=0)
+                       {
+                               var nB;
+                               if(!bDown)
+                                       nB=gnIns-oHTML.nConsumed+1;
+                               else
+                                       nB=gnIns;
+                                       
+                               var oldScrollPos=document.body.scrollTop;
+                               if(insertIdxKs(nB,oHTML,gbScrl))
+                               {
+                                       updateUsedK(aDataCon,aOriPos,aPos,bDown);
+                                       if(!gbScrl&&gbMac)
+                                       {
+                                               while(document.body.scrollTop!=oldScrollPos)
+                                                       document.body.scrollTop=oldScrollPos;
+                                       }
+                                       gbScrl=false;
+                               }
+                               if(gbFindCK)
+                               {
+                                       gbFindCK=false;
+                                       gbNeedCalc=true;
+                                       gsSKB=oHTML.sFK;
+                                       gnIns=-1;
+                                       setTimeout("checkReady();",50);
+                                       return;
+                               }
+                       }
+                       else if(gbFindCK)
+                       {
+                               gbFindCK=false;
+                               gbNeedCalc=true;
+                               gsSKB=getFirstKeyFromPos(aDataCon,aPos);
+                               gnIns=-1;
+                               setTimeout("checkReady();",50);
+                               return;
+                       }
+                       if(!findCKInDom()) return;
+
+                       gnNeeded=gnNeeded-oHTML.nCurrent;
+                       gnIns=-1;
+                       markEnd();
+                       setTimeout("checkAgain();",50);
+                       gbNeedCalc=false;
+               }
+               else
+               {
+                       if(!findCKInDom()) return;
+                       markEnd();
+                       setTimeout("checkAgain();",50);
+               }
+       }
+}
+
+function getFirstKeyFromPos(aDataCon,aPos)
+{
+       var sCurrentK=getBiggestChar();
+       for(var i=0;i<aPos.length;i++)
+       {
+               if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)
+               {
+                       if(sCurrentK==""||
+                               compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)
+                       {
+                               sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
+                       }
+               }
+       }
+       return sCurrentK;
+}
+
+function checkAgain()
+{
+       if(!gbProcess)
+       {
+               if(gsBCK!=null)
+               {
+                       gsCK=gsBCK;
+                       gsBCK=null;
+                       findCK();
+               }
+               else
+               {
+                       markBegin();
+                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);
+               }
+       }
+       else
+               setTimeout("checkAgain()",50);
+}
+
+function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)
+{
+       aMaxPos[i]=aDataCon[i].nNum;
+       aMinPos[i]=-1;
+       var oPNode=null;
+       if(aDataCon[i].oUsedItems)
+       {
+               var oUsedItems=aDataCon[i].oUsedItems;
+               do{
+                       if(oUsedItems.nB>aPos[i])
+                       {
+                               aMaxPos[i]=oUsedItems.nB;
+                               break;
+                       }
+                       oPNode=oUsedItems;
+                       oUsedItems=oUsedItems.oN;
+               }while(oUsedItems!=null);
+               if(oPNode)
+                       aMinPos[i]=oPNode.nE;
+       }
+       else if(aDataCon[i].aKs==null)
+       {
+               aMaxPos[i]=aMinPos[i]=aPos[i];
+       }
+       if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])
+       {
+               aMaxPos[i]=aMinPos[i]=aPos[i];
+       }
+}
+
+function getIdxPos(oIdx,bDown,sK)
+{
+       var aKs=oIdx.aKs;
+       var nIdx;
+       if(bDown)
+               nIdx=oIdx.nNum;
+       else
+               nIdx=-1;
+       if(aKs!=null)
+       {
+               for(var i=0;i<aKs.length;i++)
+               {       
+                       if(bDown)
+                       {
+                               if(compare(aKs[i].sName,sK)>0)
+                               {
+                                       nIdx=i;
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               if(compare(aKs[i].sName,sK)<0)
+                                       nIdx=i;
+                               else
+                                       break;
+                       }
+                       i+=aKs[i].nNKOff;
+               }
+       }
+       else if(oIdx.aKsOnly)
+       {
+               var aKsOnly=oIdx.aKsOnly;
+               for(var i=0;i<aKsOnly.length;i++)
+               {       
+                       if(aKsOnly[i])
+                       {
+                               if(bDown)
+                               {
+                                       if(compare(aKsOnly[i],sK)>0)
+                                       {
+                                               nIdx=i;
+                                               break;
+                                       }
+                               }
+                               else
+                               {
+                                       if(compare(aKsOnly[i],sK)<0)
+                                               nIdx=i;
+                                       else
+                                               break;
+                               }
+                       }
+               }
+       }
+       return nIdx;
+}
+
+function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)
+{
+       var aOldPos=new Array();
+       for(var i=0;i<aPos.length;i++)
+       {
+               aOldPos[i]=aPos[i];
+       }
+       var p;
+       do{
+               var sCurrentK="";
+               var aCurIdxSet=new Array();
+               p=0;
+               for(i=0;i<aDataCon.length;i++)
+               {
+                       if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&
+                               (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))
+                       {
+                               if(sCurrentK==""||
+                                       (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||
+                                       (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))
+                               {
+                                       sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
+                                       p=0;
+                                       aCurIdxSet[p++]=i;
+                               }
+                               else if(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){
+                                       aCurIdxSet[p++]=i;
+                               }
+                       }
+                       else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){
+                               if(bDown&&aPos[i]==aMaxPos[i])
+                               {
+                                       if(aDataCon[i].aKs)
+                                       {
+                                               gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;
+                                               return false;
+                                       }
+                               }
+                               else if(!bDown&&aPos[i]==aMinPos[i])
+                               {
+                                       if(aDataCon[i].aKs)
+                                       {
+                                               gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;
+                                               return false;
+                                       }
+                               }
+                       }
+               }
+               if(p>=1){
+                       for(var s=0;s<p;s++)
+                       {
+                               aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];
+                       }
+                       mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);
+                       adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);
+                       
+                       if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){
+                               return true;
+                       }
+               }
+       }while(p>0);
+       return true;
+}
+
+function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)
+{
+       for(var i=0;i<aDataCon.length;i++)
+       {
+               if (aOldPos[i]!=aOriPos[i])
+               {
+                       var nBP=0;
+                       var nEP=0;
+                       if(bDown)
+                       {
+                               nBP=aOriPos[i];
+                               nEP=aOldPos[i]-1;
+                       }
+                       else
+                       {
+                               if (aOldPos[i]!=-1)
+                                       nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;
+                               else
+                                       nBP=0;
+                               nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;
+                       }
+                       if(nBP<=nEP)
+                       {
+                               setContentsUsed(aDataCon[i],nBP,nEP);
+                               
+                               var oFirstPair=aDataCon[i].oUsedItems;
+                               if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)
+                               {
+                                       storeKeysOnly(aDataCon[i]);
+                                       aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;
+                               }
+                       }
+               }
+       }
+}
+
+function storeKeysOnly(oCData)
+{
+       oCData.aKsOnly=new Array();
+       for(var i=0;i<oCData.aKs.length;i++)
+       {
+               oCData.aKsOnly[i]=oCData.aKs[i].sName;
+               i+=oCData.aKs[i].nNKOff;
+       }
+}
+
+function setContentsUsed(oIdx,nB,nE)
+{
+       if(!oIdx.oUsedItems)
+               oIdx.oUsedItems=new usedItems(nB,nE);
+       else
+       {
+               var oUsedItems=oIdx.oUsedItems;
+               var oPNode=null;
+               do{
+                       if(oUsedItems.nB>nB)
+                       {
+                               if(oUsedItems.nB==nE+1)
+                               {
+                                       oUsedItems.nB=nB;
+                               }
+                               else{
+                                       var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);
+                                       oNewNode.oN=oUsedItems.oN;
+                                       oUsedItems.nB=nB;
+                                       oUsedItems.nE=nE;
+                                       oUsedItems.oN=oNewNode;
+                               }
+                               break;
+                       }
+                       oPNode=oUsedItems;
+                       oUsedItems=oUsedItems.oN;
+               }while(oUsedItems);
+               if(!oUsedItems)
+               {
+                       if(oPNode!=null)
+                               oPNode.oN=new usedItems(nB,nE);
+               }
+               if(oPNode!=null){
+                       if(oPNode.nE==oPNode.oN.nB-1)
+                       {
+                               oPNode.nE=oPNode.oN.nE;
+                               oPNode.oN=oPNode.oN.oN;
+                       }
+               }
+       }
+}
+
+function projInfo(sPPath,sDPath,sFile)
+{
+       this.sPPath=sPPath;
+       this.sDPath=sDPath;
+       this.sFile=sFile;
+}
+
+function addProjInfo(sPPath,sDPath,sFile)
+{
+       var oIdxInfo=new projInfo(sPPath,sDPath,sFile);
+       gaData[gaData.length]=oIdxInfo;
+       return oIdxInfo;
+}
+
+function writeDataIFrame()
+{
+       if(gnLoad<gaData.length)
+       {
+               gbLoadInfo=true;
+               loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);
+       }
+       else{
+               if(gnItems!=0)
+               {
+                       markBegin();
+                       writeFakeItems();
+                       gsSKA="";
+                       gnNeeded=gnVisible;
+                       gnIns=0;
+                       checkReady();
+               }
+       }
+}
+
+function getH6ById(nPos)
+{
+       if(document.all)
+               return document.all("fk"+nPos);
+       else if(document.getElementsByName)
+               return document.getElementsByName("fk"+nPos);
+       return null;            
+}
+
+function showItemsInEvaluation(nBP)
+{
+       var bRtn=true;
+       var fPer=nBP/gnItems;
+       var nB=Math.floor(fPer*gnMaxItems);
+       var oCData=getChunkByIdx(gnRef,nB);
+       if(oCData)
+       {
+               if(!oCData.aKs&&oCData.sFileName!=null)
+               {
+                       gnNKI=nB;
+                       goCData=oCData;
+                       oCData.nProjId=gnRef;
+                       gbLoadInfo=false;
+                       beginLoading();
+                       loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);
+               }
+               else{
+                       gsSKA=getKByIdx(oCData,nB);
+                       if(gsSKA)
+                       {
+                               gsSKB=null;
+                               gbNeedCalc=true;
+                               gbScrl=true;
+                               checkReady()
+                       }
+                       else
+                       {
+                               markEnd();
+                               bRtn=false;
+                       }
+               }
+       }
+       else
+       {
+               markEnd();
+               bRtn=false;
+       }
+       return bRtn;
+}
+
+function isUsed(oCData,nPos)
+{
+       var oUsed=oCData.oUsedItems;
+       while(oUsed&&oUsed.nB<=nPos)
+       {
+               if(oUsed.nE>=nPos) return true;
+               oUsed=oUsed.oN;
+       }
+       return false;
+}
+
+function getKByIdx(oCData,nB)
+{
+       var nRelPos=nB-(oCData.nTotal-oCData.nNum);
+       var aIKs=oCData.aKs;
+       if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)
+       {
+               var oK=null;
+               do{
+                       oK=aIKs[nRelPos++];
+               }       
+               while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);
+               if(oK.nType!=3)
+               {
+                       return oK.sName;
+               }
+               else{
+                       nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;
+                       if(nRelPos>=0)
+                       {
+                               do{
+                                       oK=aIKs[nRelPos--];
+                               }
+                               while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);
+                       }
+                       if(oK.nType!=3)
+                       {
+                               return oK.sName;
+                       }
+               }
+       }
+       return null;
+}
+
+function loadData2(sFileName)
+{
+       disEvt();
+       if(gbXML)
+               loadDataXML(sFileName);
+       else
+               loadData(sFileName);
+       enEvt();
+}
+
+function projReady(aChunk)
+{
+       gaChunks[gnLoad++]=aChunk;
+       var len=aChunk.length;
+       var nTotal=0;
+       if(len>0)
+               nTotal=aChunk[len-1].nTotal;
+       gnItems+=nTotal;
+       if(nTotal>gnMaxItems)
+       {
+               gnMaxItems=nTotal;
+               gnRef=gnLoad-1;
+       }
+       setTimeout("writeDataIFrame();",1);
+}
+
+function writeFakeItems()
+{
+       disEvt();
+       gnUHeight=15;
+       var sHTML=getFakeItemsHTMLbyCount(0,gnItems);
+       document.body.insertAdjacentHTML("beforeEnd",sHTML);
+       var obj=getH6ById(0);
+       if (document.body != null)
+       {
+               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
+       }
+       gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);
+       enEvt();
+}
+
+function getEndString()
+{
+       var sBC=getBiggestChar();
+       return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;
+}
+
+function getUnitIdx(nScrl,nHeight)
+{
+       if(gaFakes.length==0)
+       {
+               markEnd();
+               return;
+       }
+       var nB=0;
+       var nE=gaFakes.length-1;
+       var nM=-1;
+       var nTop=0;
+       var nBtm=0;
+       var bF=false;
+       do{
+               nM=(nB+nE)>>1;
+               nBtm=gaFakes[nM].getBtm();
+               nTop=gaFakes[nM].getTop();
+                       
+               if(nTop>=nScrl+nHeight)
+                       nE=nM-1;
+               else if(nBtm<nScrl)
+                       nB=nM+1;
+               else{
+                       bF=true;
+                       break;
+               }
+       }while(nE>=nB);
+       if(bF)
+       {
+               if(nTop>=nScrl){
+                       gsSKA=gaFakes[nM].sKA;
+                       gsSKB=null;
+                       gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);
+                       gnIns=gaFakes[nM].nB;
+                       checkReady();
+               }
+               else if(nBtm<=nScrl+nHeight){
+                       gsSKB=gaFakes[nM].sKB;
+                       gsSKA=null;
+                       gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);
+                       gbNeedCalc=true;
+                       checkReady();
+               }
+               else{
+                       gnNeeded=gnVisible;
+                       var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);
+                       if (!showItemsInEvaluation(nUnitIdx))
+                       {
+                               gsSKA=gaFakes[nM].sKA;
+                               gsSKB=null;
+                               gnNeeded=Math.ceil(nHeight/gnUHeight);
+                               gnIns=gaFakes[nM].nB;
+                               checkReady();
+                       }
+               }
+       }
+       else
+               markEnd();
+}
+
+function disEvt()
+{
+       window.onscroll=null;
+       window.onresize=null;
+}
+
+function enEvt()
+{
+       window.onscroll=window_OnScroll;
+       window.onresize=window_OnResize;
+}
+
+function insertIdxKs(nIns,oHTML,bScrl)
+{
+       var bRtn=true;
+       disEvt();
+       var nCount=oHTML.nConsumed;
+       var nB=0;
+       var nE=gaFakes.length-1;
+       var nM=-1;
+       var bF=false;
+       do{
+               nM=(nB+nE)>>1;
+               if(gaFakes[nM].nB>nIns)
+                       nE=nM-1;
+               else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)
+                       nB=nM+1;
+               else{
+                       bF=true;
+                       break;
+               }
+       }while(nE>=nB);
+       if(bF)
+       {
+               var oFIA=gaFakes[nM];
+               var nOffsetTop=oFIA.getTop();
+               var nOffsetBottom=oFIA.getBtm();
+               var nDelta=0;
+               var nHDiff=nIns-oFIA.nB;
+               var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);
+               if(nHDiff>0)
+               {
+                       nDelta=oFIA.setNum(nHDiff);
+                       var sOldKBefore=oFIA.sKB;
+                       oFIA.sKB=oHTML.sFK;
+                       if(nTDiff>0)
+                       {
+                               var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);
+                               oFIA.insertAdjacentHTML("afterEnd",sHTML);
+                               var obj=getH6ById(nIns);
+                               insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));
+                       }
+                       oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);        
+                       if(bScrl)
+                       {
+                               if(gbMac&&gbIE4)
+                               {
+                                       var nScrollPos=nOffsetBottom-nDelta;
+                                       while(document.body.scrollTop!=nScrollPos)
+                                               document.body.scrollTop=nScrollPos;
+                               }
+                               else
+                                       window.scrollTo(0,nOffsetBottom-nDelta);
+                       }
+               }
+               else{
+                       oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);
+                       if(bScrl){
+                               if(gbMac&&gbIE4)
+                               {
+                                       var nScrollPos=nOffsetTop;
+                                       while(document.body.scrollTop!=nScrollPos)
+                                               document.body.scrollTop=nScrollPos;
+                               }
+                               else
+                                       window.scrollTo(0,nOffsetTop);
+                       }
+                                       
+                       if(nTDiff>0)
+                       {
+                               oFIA.nB=nIns+nCount;
+                               nDelta=oFIA.setNum(nTDiff);
+                               oFIA.sKA=oHTML.sLK;
+                       }       
+                       else{
+                               gaFakes[nM].setNum(0);
+                               removeItemFromArray(gaFakes,nM);
+                       }
+               }
+       }
+       else
+               bRtn=false;
+       enEvt();
+       return bRtn;
+}
+
+function window_OnScroll()
+{
+       gnSE++;
+       setTimeout("procScroll();",50); 
+}
+
+function procScroll()
+{
+       if(gnSE==1&&!gbProcess)
+       {
+               markBegin();
+               getUnitIdx(document.body.scrollTop,document.body.clientHeight);
+       }
+       gnSE--;
+}
+
+function window_OnResize()
+{
+       gnRE++;
+       setTimeout("procResize();",50);
+}
+
+function procResize()
+{
+       if(gnRE==1&&!gbProcess)
+       {
+               markBegin();
+               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
+               if(gnIns==-1)
+                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);
+       }
+       gnRE--;
+}
+
+function getChunkByIdx(nIdx,nPosition)
+{
+       var oCData=null;
+       if(nIdx<gaChunks.length)
+       {
+               var len=gaChunks[nIdx].length;
+               if(len>0)
+               {
+                       var nB=0;
+                       var nE=len-1;
+                       var bF=false;
+                       do{
+                               var nM=(nB+nE)>>1;
+                               if(nPosition<gaChunks[nIdx][nM].nTotal)
+                               {
+                                       bF=true;
+                                       nE=nM;
+                               }
+                               else
+                                       nB=nM+1;
+                       }while(nE>nB);
+                       if(bF)
+                               oCData=gaChunks[nIdx][nE];
+                       else if(nPosition<gaChunks[nIdx][nB].nTotal)
+                               oCData=gaChunks[nIdx][nB];
+               }
+       }
+       return oCData;
+}
+
+function getChunkedData(nIdx,bDown,sK)
+{
+       var oCData=null;
+       var nCandId=-1;
+       if(nIdx<gaChunks.length)
+       {
+               var len=gaChunks[nIdx].length;
+               if(len>0)
+               {
+                       var nB=0;
+                       var nE=len-1;
+                       var bF=false;
+                       do{
+                               var nM=(nB+nE+(bDown?0:1))>>1;
+                               if(bDown)
+                               {
+                                       if(compare(sK,gaChunks[nIdx][nM].sEK)<0)
+                                       {
+                                               bF=true;
+                                               nE=nM;
+                                       }
+                                       else
+                                               nB=nM+1;
+                               }
+                               else
+                               {
+                                       if(compare(sK,gaChunks[nIdx][nM].sBK)>0)
+                                       {
+                                               bF=true;
+                                               nB=nM;
+                                       }
+                                       else
+                                               nE=nM-1;
+                               }
+                       }while(nE>nB);
+                       if(bF)
+                       {
+                               if(bDown)
+                                       nCandId=nE;
+                               else
+                                       nCandId=nB;
+                       }
+                       else
+                       {
+                               if(bDown)
+                               {
+                                       if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)
+                                               nCandId=nB;
+                                       else
+                                               nCandId=gaChunks[nIdx].length-1;
+                               }
+                               else
+                               {
+                                       if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)
+                                               nCandId=nE;
+                                       else
+                                               nCandId=0;
+                               }
+                       }
+                       return gaChunks[nIdx][nCandId];
+               }
+       }
+       return null;
+}
+
+function findCK()
+{
+       if(gsCK!=null)
+       {
+               gsSKA=gsCK;
+               gbFindCK=true;
+               gnNeeded=1;
+               markBegin();
+               checkReady();
+       }
+}
+
+function writeLoadingDiv(nIIdx)
+{
+       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
+}
+
 var gbWhHost=true;
\ No newline at end of file
index a279fa88835a79199e37fa2cabb66d3a31a163d1..46aeaa20c56faa0ea8e4776491e42ba94500c742 100755 (executable)
-<html>\r
-<head>\r
-<title>Index content</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
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whlang.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whhost.js"></script>\r
-<script language="javascript1.2" src="whihost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var goPopup = null;\r
-var gbPopupMenuTimeoutExpired=false;\r
-var gBsClientWidth=640;\r
-var gBsClientHeight=480;\r
-var g_bIsPopupMenuInit=false;\r
-\r
-function WritePopupMenuLayer()\r
-{\r
-       if (!g_bIsPopupMenuInit)\r
-       {\r
-               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
-               document.write("<STYLE TYPE='text/css'>");\r
-               if (gbMac && gbIE4) {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");\r
-               } else {\r
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");\r
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");\r
-               }\r
-               document.write("</STYLE>");\r
-       }\r
-       g_bIsPopupMenuInit = true;\r
-}\r
-\r
-function PopupMenu_Invoke()\r
-{\r
-       if (gbNav6)\r
-               resetHighLight();\r
-       \r
-       if (!gbNav6  && document.readyState != "complete")\r
-               return false;\r
-       var fn_arguments = PopupMenu_Invoke.arguments; \r
-       // Make sure we have reasonable arguments\r
-       var argLen = fn_arguments.length;\r
-       if (argLen < 3) {\r
-               return false;\r
-       }\r
-\r
-       // Check to see if we only have one target\r
-       var strTarget = "";\r
-       \r
-       strTarget = "TARGET='" + fn_arguments[1] + "'";\r
-       \r
-       if (argLen < 5) {\r
-               // Get the place that we will be putting the topic into\r
-               var strURL = fn_arguments[3];\r
-\r
-               if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")\r
-                       window.open(strURL, fn_arguments[1]);\r
-               else\r
-                       window.open(strURL);\r
-                       \r
-               return false;\r
-       }\r
-       \r
-       var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';\r
-       if (gbMac && gbIE4) {\r
-               strMenu += ' CELLPADDING=4';\r
-       } else {\r
-               strMenu += ' CELLPADDING=2';\r
-       }       \r
-       strMenu += ' BGCOLOR=#c0c0c0>';\r
-\r
-       // Add each of the items\r
-       if (gbIE55)\r
-       {\r
-               var i = 2;\r
-               while (i <= argLen - 1) {\r
-                       strMenu += '<TR><TD><NOBR>'\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';\r
-                       strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + excapeSingleQuotandSlash(fn_arguments[i + 1]) + '\', \'' + fn_arguments[1] + '\');"';\r
-                       strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';\r
-                       strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';\r
-                       strMenu += '>';\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';\r
-                       strMenu += '</A></DIV></NOBR></TD></TR>';\r
-                       i += 2;\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var i = 2;\r
-               while (i <= argLen - 1) {\r
-                       strMenu += '<TR><TD><NOBR>'\r
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;\r
-                       strMenu += ' onclick="PopupMenu_HandleClick(event);"';\r
-                       strMenu += ' onmouseover="PopupMenu_Over(event);"';\r
-                       strMenu += ' onmouseout="PopupMenu_Out(event);"';\r
-                       strMenu += '>';\r
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + excapeSingleQuotandSlash(fn_arguments[i]) + '</SPAN>';\r
-                       strMenu += '</A></DIV></NOBR></TD></TR>';\r
-                       i += 2;\r
-               }\r
-       }\r
-       strMenu += "</TABLE>";\r
-\r
-       if (gbMac && gbIE4) {\r
-       // ie5 in mac need something. </TABLE> is one of them.\r
-               strMenu +="<TABLE></TABLE>";\r
-       }\r
-\r
-       var layerPopup = null;\r
-       var stylePopup = null;\r
-       var nEventX = 0;\r
-       var nEventY = 0;\r
-       var nWindowWidth = 0;\r
-       if (gbIE4||gbOpera7)\r
-       {\r
-               layerPopup = document.all["PopupMenu"];\r
-               layerPopup.innerHTML = strMenu;\r
-               stylePopup = layerPopup.style;\r
-\r
-               _BSPSGetClientSize();\r
-\r
-               // Get the position of the item causing the event (relative to its parent)\r
-               nEventX = window.event.clientX;\r
-               nEventY = window.event.clientY;\r
-               \r
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {\r
-                       nEventY += document.body.scrollTop + 10;\r
-               } else {\r
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;\r
-               }\r
-               stylePopup.top = nEventY;\r
-\r
-               if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {\r
-                       if (gBsClientWidth - layerPopup.scrollWidth < 5) {\r
-                               stylePopup.left = 5;\r
-                       } else {\r
-                               stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;\r
-                       }\r
-               } else {\r
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;\r
-               }\r
-\r
-               if (gbIE55) {\r
-                       var nPosX = window.event.clientX;\r
-                       var nPosY = window.event.clientY;\r
-                       if (window.event.srcElement)\r
-                       {\r
-                               nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;\r
-                               nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;\r
-                       }\r
-                       goPopup = window.createPopup();\r
-                       var oPopupBody = goPopup.document.body;\r
-                       goPopup.document.createStyleSheet();\r
-                       goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");\r
-                       goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");\r
-                       oPopupBody.insertAdjacentHTML("afterBegin", strMenu);\r
-                       goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);\r
-               }\r
-               else \r
-               {\r
-                       stylePopup.visibility = "visible";\r
-                       document.onclick = PopupMenu_HandleClick;\r
-               }\r
-       } else if (gbNav6) {\r
-               layerPopup = document.getElementById("PopupMenu");\r
-               layerPopup.style.visibility = "hidden";\r
-       \r
-               var e = fn_arguments[0];\r
-               nEventX = e.pageX;\r
-               nEventY = e.pageY;\r
-               _BSPSGetClientSize();\r
-               layerPopup.innerHTML = strMenu;\r
-\r
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {\r
-                       nEventY += 20;\r
-               } else {\r
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;\r
-               }\r
-\r
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {\r
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {\r
-                               nEventX = 5;\r
-                       } else {\r
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;\r
-                       }\r
-               } else {\r
-                       nEventX += 20;\r
-               }\r
-               layerPopup.style.top = nEventY;\r
-               layerPopup.style.left = nEventX;\r
-\r
-               // set again to avoid the frash in netscape 6.\r
-               layerPopup.innerHTML = strMenu;\r
-               layerPopup.style.visibility = "visible";\r
-               window.onclick = PopupMenu_HandleClick;\r
-       } \r
-\r
-       window.gbPopupMenuTimeoutExpired = false;\r
-       setTimeout("PopupMenu_Timeout();", 100);\r
-       return false;\r
-}\r
-\r
-function PopupMenu_Timeout()\r
-{\r
-       window.gbPopupMenuTimeoutExpired = true;\r
-}\r
-\r
-function PopupMenu_Over(e)\r
-{\r
-       if (gbIE4||gbOpera7)\r
-               e.srcElement.className = "PopupOver";\r
-       else if (gbNav6)\r
-               e.target.parentNode.className = "PopupOver";\r
-}\r
-\r
-function PopupMenu_Out(e)\r
-{\r
-       if (gbIE4||gbOpera7)\r
-               e.srcElement.className = "PopupNotOver";\r
-       else if (gbNav6)\r
-               e.target.parentNode.className = "PopupNotOver";\r
-}\r
-\r
-function PopupMenu_2HandleClick(surl, starget)\r
-{\r
-       window.open(surl, starget);\r
-       goPopup.hide();\r
-}\r
-\r
-function PopupMenu_HandleClick(e)\r
-{\r
-       if (!window.gbPopupMenuTimeoutExpired) {\r
-               return;\r
-       }\r
-\r
-       var layerPopup = getElement("PopupMenu");\r
-       layerPopup.style.visibility = "hidden";\r
-\r
-       return;\r
-}\r
-\r
-//Get client size info\r
-function _BSPSGetClientSize()\r
-{\r
-       gBsClientWidth  = document.body.clientWidth;\r
-       gBsClientHeight = document.body.clientHeight;\r
-}\r
-\r
-if (window.gbWhIHost)\r
-{\r
-       setBackgroundcolor("White");\r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Empty", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       IndexWriteClassStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">\r
-<script languageE="JavaScript">\r
-<!--\r
-WritePopupMenuLayer();\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
-\r
+<html>
+<head>
+<title>Index content</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whlang.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whhost.js"></script>
+<script language="javascript1.2" src="whihost.js"></script>
+<script language="javascript1.2">
+<!--
+var goPopup = null;
+var gbPopupMenuTimeoutExpired=false;
+var gBsClientWidth=640;
+var gBsClientHeight=480;
+var g_bIsPopupMenuInit=false;
+
+function WritePopupMenuLayer()
+{
+       if (!g_bIsPopupMenuInit)
+       {
+               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
+               document.write("<STYLE TYPE='text/css'>");
+               if (gbMac && gbIE4) {
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");
+               } else {
+                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");
+                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
+               }
+               document.write("</STYLE>");
+       }
+       g_bIsPopupMenuInit = true;
+}
+
+function PopupMenu_Invoke()
+{
+       if (gbNav6)
+               resetHighLight();
+       
+       if (!gbNav6  && document.readyState != "complete")
+               return false;
+       var fn_arguments = PopupMenu_Invoke.arguments; 
+       // Make sure we have reasonable arguments
+       var argLen = fn_arguments.length;
+       if (argLen < 3) {
+               return false;
+       }
+
+       // Check to see if we only have one target
+       var strTarget = "";
+       
+       strTarget = "TARGET='" + fn_arguments[1] + "'";
+       
+       if (argLen < 5) {
+               // Get the place that we will be putting the topic into
+               var strURL = fn_arguments[3];
+
+               if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
+                       window.open(strURL, fn_arguments[1]);
+               else
+                       window.open(strURL);
+                       
+               return false;
+       }
+       
+       var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
+       if (gbMac && gbIE4) {
+               strMenu += ' CELLPADDING=4';
+       } else {
+               strMenu += ' CELLPADDING=2';
+       }       
+       strMenu += ' BGCOLOR=#c0c0c0>';
+
+       // Add each of the items
+       if (gbIE55)
+       {
+               var i = 2;
+               while (i <= argLen - 1) {
+                       strMenu += '<TR><TD><NOBR>'
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';
+                       strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + excapeSingleQuotandSlash(fn_arguments[i + 1]) + '\', \'' + fn_arguments[1] + '\');"';
+                       strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';
+                       strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';
+                       strMenu += '>';
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
+                       strMenu += '</A></DIV></NOBR></TD></TR>';
+                       i += 2;
+               }
+       }
+       else
+       {
+               var i = 2;
+               while (i <= argLen - 1) {
+                       strMenu += '<TR><TD><NOBR>'
+                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;
+                       strMenu += ' onclick="PopupMenu_HandleClick(event);"';
+                       strMenu += ' onmouseover="PopupMenu_Over(event);"';
+                       strMenu += ' onmouseout="PopupMenu_Out(event);"';
+                       strMenu += '>';
+                       strMenu += '<SPAN CLASS="PopupNotOver">' + excapeSingleQuotandSlash(fn_arguments[i]) + '</SPAN>';
+                       strMenu += '</A></DIV></NOBR></TD></TR>';
+                       i += 2;
+               }
+       }
+       strMenu += "</TABLE>";
+
+       if (gbMac && gbIE4) {
+       // ie5 in mac need something. </TABLE> is one of them.
+               strMenu +="<TABLE></TABLE>";
+       }
+
+       var layerPopup = null;
+       var stylePopup = null;
+       var nEventX = 0;
+       var nEventY = 0;
+       var nWindowWidth = 0;
+       if (gbIE4||gbOpera7)
+       {
+               layerPopup = document.all["PopupMenu"];
+               layerPopup.innerHTML = strMenu;
+               stylePopup = layerPopup.style;
+
+               _BSPSGetClientSize();
+
+               // Get the position of the item causing the event (relative to its parent)
+               nEventX = window.event.clientX;
+               nEventY = window.event.clientY;
+               
+               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
+                       nEventY += document.body.scrollTop + 10;
+               } else {
+                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
+               }
+               stylePopup.top = nEventY;
+
+               if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {
+                       if (gBsClientWidth - layerPopup.scrollWidth < 5) {
+                               stylePopup.left = 5;
+                       } else {
+                               stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;
+                       }
+               } else {
+                       stylePopup.left = nEventX + document.body.scrollLeft + 20;
+               }
+
+               if (gbIE55) {
+                       var nPosX = window.event.clientX;
+                       var nPosY = window.event.clientY;
+                       if (window.event.srcElement)
+                       {
+                               nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;
+                               nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;
+                       }
+                       goPopup = window.createPopup();
+                       var oPopupBody = goPopup.document.body;
+                       goPopup.document.createStyleSheet();
+                       goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");
+                       goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
+                       oPopupBody.insertAdjacentHTML("afterBegin", strMenu);
+                       goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);
+               }
+               else 
+               {
+                       stylePopup.visibility = "visible";
+                       document.onclick = PopupMenu_HandleClick;
+               }
+       } else if (gbNav6) {
+               layerPopup = document.getElementById("PopupMenu");
+               layerPopup.style.visibility = "hidden";
+       
+               var e = fn_arguments[0];
+               nEventX = e.pageX;
+               nEventY = e.pageY;
+               _BSPSGetClientSize();
+               layerPopup.innerHTML = strMenu;
+
+               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {
+                       nEventY += 20;
+               } else {
+                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
+               }
+
+               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
+                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
+                               nEventX = 5;
+                       } else {
+                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
+                       }
+               } else {
+                       nEventX += 20;
+               }
+               layerPopup.style.top = nEventY;
+               layerPopup.style.left = nEventX;
+
+               // set again to avoid the frash in netscape 6.
+               layerPopup.innerHTML = strMenu;
+               layerPopup.style.visibility = "visible";
+               window.onclick = PopupMenu_HandleClick;
+       } 
+
+       window.gbPopupMenuTimeoutExpired = false;
+       setTimeout("PopupMenu_Timeout();", 100);
+       return false;
+}
+
+function PopupMenu_Timeout()
+{
+       window.gbPopupMenuTimeoutExpired = true;
+}
+
+function PopupMenu_Over(e)
+{
+       if (gbIE4||gbOpera7)
+               e.srcElement.className = "PopupOver";
+       else if (gbNav6)
+               e.target.parentNode.className = "PopupOver";
+}
+
+function PopupMenu_Out(e)
+{
+       if (gbIE4||gbOpera7)
+               e.srcElement.className = "PopupNotOver";
+       else if (gbNav6)
+               e.target.parentNode.className = "PopupNotOver";
+}
+
+function PopupMenu_2HandleClick(surl, starget)
+{
+       window.open(surl, starget);
+       goPopup.hide();
+}
+
+function PopupMenu_HandleClick(e)
+{
+       if (!window.gbPopupMenuTimeoutExpired) {
+               return;
+       }
+
+       var layerPopup = getElement("PopupMenu");
+       layerPopup.style.visibility = "hidden";
+
+       return;
+}
+
+//Get client size info
+function _BSPSGetClientSize()
+{
+       gBsClientWidth  = document.body.clientWidth;
+       gBsClientHeight = document.body.clientHeight;
+}
+
+if (window.gbWhIHost)
+{
+       
+       
+       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
+       setFont("Empty", "Arial","9pt","#000000","normal","normal","none");
+       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
+       setActiveBgColor("#cccccc");
+       setMargin("0pt");
+       setIndent("9pt");
+       IndexWriteClassStyle();
+}
+else
+       document.location.reload();
+//-->
+</script>
+</head>
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
+<script languageE="JavaScript">
+<!--
+WritePopupMenuLayer();
+//-->
+</script>
+</body>
+</html>
+
index 945fdc8f00900237175dfa0d4574e1cfbdf1ae25..feb7b2b218053cae4fe30fb2ff0c84fdf1af55d4 100755 (executable)
@@ -1,30 +1,30 @@
-<html>\r
-<head>\r
-<title>Index</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gbIndexLayerInit = false;\r
-if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)\r
-{\r
-       var strWrite;\r
-       if (gbMac)\r
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=0>";\r
-       else\r
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=0>";\r
-       strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";\r
-       strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";\r
-       strWrite +="</FRAMESET>";\r
-       document.write(strWrite);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</html>\r
+<html>
+<head>
+<title>Index</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2">
+<!--
+var gbIndexLayerInit = false;
+if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)
+{
+       var strWrite;
+       if (gbMac)
+               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=1>";
+       else
+               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=1>";
+       strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";
+       strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";
+       strWrite +="</FRAMESET>";
+       document.write(strWrite);
+}
+else
+       document.location.reload();
+//-->
+</script>
+</html>
index 76674d78dcf73bdabddd977e5f2dca0fab9eddae..ad8862182ecdbbc4fb8da13bd70e5546ad612c65 100755 (executable)
@@ -1,91 +1,91 @@
-<html>\r
-<head>\r
-<title>Index form</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<body bgcolor="#c0c0c0">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whform.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-function indexLookup(bCR)\r
-{\r
-       var strInput = document.IndexInputForm.keywordField.value.toUpperCase();\r
-       if (strInput != "") {\r
-               var oParam = new Object();\r
-               oParam.sInput = strInput;\r
-               oParam.bCR = bCR;\r
-               var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);\r
-               SendMessage(oMessage);\r
-       }\r
-       if (gbMac) {\r
-               document.IndexInputForm.keywordField.focus();\r
-       }\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-}\r
-\r
-function onSendMessage(oMessage)\r
-{\r
-       if (oMessage.nMessageId == WH_MSG_SHOWIDX)\r
-       {\r
-               document.IndexInputForm.keywordField.focus();\r
-       }\r
-       else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||\r
-               oMessage.nMessageId == WH_MSG_SHOWTOC || \r
-               oMessage.nMessageId == WH_MSG_SHOWGLO)\r
-       {\r
-               document.IndexInputForm.keywordField.blur();\r
-       }\r
-       return true;\r
-}\r
-\r
-if (window.gbWhForm)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       window.onunload=window_Unload;\r
-       window.onload = init;\r
-       gfunLookUp = indexLookup;\r
-       gfunInit = null;\r
-       gstrFormName = "IndexInputForm"\r
-       gsTitle = "Type in the keyword to find:";\r
-       gsTitle = "Type in the keyword to find:";\r
-\r
-       setBackgroundcolor("White");\r
-       \r
-       setBtnType("none");\r
-       \r
-       \r
-       \r
-       setGoText("Go");\r
-       setFont("Title", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-       \r
-       \r
-       document.write(getFormHTML());\r
-       writeFormStyle();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+<title>Index form</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<style>
+<!--
+body {margin:0;}
+-->
+</style>
+<body bgcolor="#c0c0c0">
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whform.js"></script>
+<script language="javascript1.2">
+<!--
+function indexLookup(bCR)
+{
+       var strInput = document.IndexInputForm.keywordField.value.toUpperCase();
+       if (strInput != "") {
+               var oParam = new Object();
+               oParam.sInput = strInput;
+               oParam.bCR = bCR;
+               var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);
+               SendMessage(oMessage);
+       }
+       if (gbMac) {
+               document.IndexInputForm.keywordField.focus();
+       }
+}
+
+function window_Unload()
+{
+       UnRegisterListener2(this, WH_MSG_SHOWTOC);
+       UnRegisterListener2(this, WH_MSG_SHOWIDX);
+       UnRegisterListener2(this, WH_MSG_SHOWFTS);
+       UnRegisterListener2(this, WH_MSG_SHOWGLO);
+}
+
+function onSendMessage(oMessage)
+{
+       if (oMessage.nMessageId == WH_MSG_SHOWIDX)
+       {
+               document.IndexInputForm.keywordField.focus();
+       }
+       else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||
+               oMessage.nMessageId == WH_MSG_SHOWTOC || 
+               oMessage.nMessageId == WH_MSG_SHOWGLO)
+       {
+               document.IndexInputForm.keywordField.blur();
+       }
+       return true;
+}
+
+if (window.gbWhForm)
+{
+       RegisterListener2(this, WH_MSG_SHOWTOC);
+       RegisterListener2(this, WH_MSG_SHOWIDX);
+       RegisterListener2(this, WH_MSG_SHOWFTS);
+       RegisterListener2(this, WH_MSG_SHOWGLO);
+       window.onunload=window_Unload;
+       window.onload = init;
+       gfunLookUp = indexLookup;
+       gfunInit = null;
+       gstrFormName = "IndexInputForm"
+       gsTitle = "Type in the keyword to find:";
+       gsTitle = "Type in the keyword to find:";
+
+       
+       
+       
+       
+       
+       
+       setGoText("Go");
+       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
+       
+       
+       document.write(getFormHTML());
+       writeFormStyle();
+}
+else
+       document.location.reload();
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index 9aaf13a6a58483b1e15effca8b7f79775caccbba..d48c493ee68f60b4c5a8da21c1ddf39ab51874ce 100755 (executable)
-//     WebHelp 5.10.002\r
-var gsDefaultTarget="bsscright";\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goIdxFont=null;\r
-var goIdxEmptyFont=null;\r
-var goIdxHoverFont=null;\r
-var gsIdxMargin="0pt";\r
-var gsIdxIndent="8pt";\r
-var gsIdxActiveBgColor="#cccccc";\r
-var gsCK = null;\r
-var gsBCK = null;\r
-var gbCR = false;\r
-var gbBCR = false;\r
-var gbWhIHost=true;\r
-\r
-function myEvent()\r
-{\r
-       this.pageX = 0;\r
-       this.pageY = 0;\r
-}\r
-var _event=new myEvent();\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal")\r
-               goIdxFont=vFont;\r
-       else if(sType=="Empty")\r
-               goIdxEmptyFont=vFont;\r
-       else if(sType=="Hover")\r
-               goIdxHoverFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsIdxActiveBgColor=sBgColor;\r
-}\r
-\r
-function setMargin(sMargin)\r
-{\r
-       gsIdxMargin=sMargin;\r
-}\r
-\r
-function setIndent(sIndent)\r
-{\r
-       gsIdxIndent=sIndent;\r
-}\r
-\r
-function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
-{\r
-       var sHTML="";\r
-       var nIdxSet=aCurIdxSet[0];\r
-       var nIIdx=aPos[nIdxSet];\r
-       var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);\r
-       var sKName=_textToHtml(sKOriName);\r
-\r
-       var nIdxIndent=parseInt(gsIdxIndent);\r
-       var sTopics="";\r
-       if(nLevel==1){\r
-               if(getItemType(aDataCon,nIdxSet,nIIdx)==1)\r
-               {\r
-                       sHTML+="<H6><nobr>";\r
-                       sHTML+="<b>"+sKName+"</b></nobr></H6>";\r
-               }\r
-               else{\r
-                       for(var i=0;i<nLength;i++)\r
-                               sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-                       sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";\r
-                       sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";\r
-                       if(sTopics.length>0)\r
-                               sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";\r
-                       else\r
-                               sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";\r
-               }\r
-       }\r
-       else if(nLevel>=2){\r
-               var nIndent=nIdxIndent*nLevel;\r
-               for(var i=0;i<nLength;i++)\r
-                       sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-               if (nLevel==2)\r
-                       sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
-               else\r
-                       sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";\r
-               sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";\r
-               if(sTopics.length>0)\r
-                       sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";\r
-               else\r
-                       sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";\r
-       }\r
-       oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);\r
-}\r
-\r
-function getTargetName(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)\r
-                       return aDataCon[nIdxSet].aKs[nIIdx].sTarget;\r
-       return gsDefaultTarget;\r
-}\r
-\r
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)\r
-{\r
-       var oLocalHTML=new indexHTMLPart();\r
-       writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);\r
-       \r
-       var aLocalPos=new Array();\r
-       var aMaxPos=new Array();\r
-       for(var i=0;i<aPos.length;i++)\r
-       {\r
-               aLocalPos[i]=aPos[i];\r
-               aMaxPos[i]=-1;\r
-       }\r
-       \r
-       for(i=0;i<nLength;i++)\r
-       {\r
-               var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);\r
-               aLocalPos[aCurIdxSet[i]]++;\r
-               if(nNKOff>0)\r
-                       aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;\r
-       }\r
-       var oSubHTML=new indexHTMLPart();\r
-       writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);\r
-       oLocalHTML.addSubHTML(oSubHTML,true);\r
-       oHTML.appendHTML(oLocalHTML,bDown);\r
-}\r
-\r
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)\r
-{\r
-       if(bDown)\r
-       {\r
-               for(var i=0;i<nLength;i++)\r
-               {\r
-                       var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-                       aPos[aCurIdxSet[i]]+=(1+nNKOff);\r
-               }\r
-       }\r
-       else{\r
-               for(var i=0;i<nLength;i++)\r
-               {\r
-                       var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);\r
-                       aPos[aCurIdxSet[i]]-=(1+nPKOff);\r
-               }\r
-       }\r
-}\r
-\r
-function getItemName(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemType(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].nType;\r
-       else\r
-               return 0;\r
-}\r
-\r
-function getNKOff(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getPKOff(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-               return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;\r
-       else\r
-               return null;\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());\r
-       loadIdx();\r
-       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadIdx()\r
-{\r
-       if(!gbReady)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbReady=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       var aProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       if(aProj.length>0)\r
-                       {\r
-                               var sLangId=aProj[0].sLangId;\r
-                               for(var i=0;i<aProj.length;i++)\r
-                               {\r
-                                       if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)\r
-                                       {\r
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);\r
-                                       }\r
-                               }\r
-                       }\r
-                       writeDataIFrame();\r
-                       enEvt();\r
-               }               \r
-       }\r
-}\r
-\r
-function getIdxTopics(aDataCon,nIdxSet,nIIdx)\r
-{\r
-       var sTopics="";\r
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)\r
-       {\r
-               if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)\r
-               {\r
-                       var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;\r
-                       var nProj=aDataCon[nIdxSet].nProjId;\r
-                       var sPath=gaData[nProj].sPPath;\r
-                       for(var i=0;i<nLen;i++)\r
-                       {\r
-                               var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;\r
-                               var sFullPath=_getFullPath(sPath,sURL);\r
-                               sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";\r
-                       }\r
-               }\r
-       }\r
-       return sTopics;         \r
-}\r
-\r
-function findCKInDom()\r
-{\r
-       if(gsCK!=null)\r
-       {\r
-               var sK=gsCK;\r
-               var oP=getElementsByTag(document,"P");\r
-               if(!oP) return false;\r
-               var len=oP.length;\r
-               var nB=0;\r
-               var nE=len-1;\r
-               var nM=0;\r
-               var sItem="";\r
-               var bF=false;\r
-               while(nB<nE){\r
-                       nM=(nB+nE+1)>>1;\r
-                       sItem=getInnerText(oP[nM]);\r
-                       \r
-                       if(compare(sItem,sK)==0)\r
-                       {\r
-                               bF=true;\r
-                               break;\r
-                       }\r
-                       else if(compare(sItem,sK)>0)\r
-                               nE=nM-1;\r
-                       else if(compare(sItem,sK)<0)\r
-                               nB=nM;\r
-               }\r
-               if(!bF)\r
-               {\r
-                       if(nB==nE) nM=nB;\r
-               \r
-                       if(nM+1<len)\r
-                       {\r
-                               sItem=getInnerText(oP[nM+1]);\r
-                               if(compare(sItem,sK)<=0) nM++;\r
-                       }                       \r
-                       if(nM+1<len)\r
-                       {\r
-                               sItem=getInnerText(oP[nM+1]);\r
-                               if(compare(sItem.substring(0,sK.length),sK)==0) nM++;\r
-                       }                       \r
-               }\r
-       \r
-               var oMatch=oP[nM];\r
-               if(oMatch)\r
-               {\r
-                       window.scrollTo(0,oMatch.offsetTop);\r
-                       var tempColl=getElementsByTag(oMatch,"A");\r
-                       if(tempColl&&tempColl.length>0){\r
-                               var nbTag=getElementsByTag(oMatch,"NOBR");\r
-                               if(nbTag&&nbTag.length>0)\r
-                                       HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");\r
-                               if (gbCR)\r
-                               {\r
-                                       if (gbIE4)\r
-                                               tempColl(0).click();\r
-                                       else\r
-                                       {\r
-                                               var strCommand = tempColl[0].getAttribute("onClick");\r
-                                               var nstrCommand = strCommand.indexOf(";");\r
-                                               strCommand = strCommand.substring(0, nstrCommand);\r
-                                               strCommand = strCommand.replace("event", "_event");\r
-                                               window._event.pageX = oMatch.offsetLeft ;\r
-                                               window._event.pageY = oMatch.offsetTop + 20;\r
-                                               window.setTimeout(strCommand, 100);\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-               gsCK=gsBCK;\r
-               gbCR=gbBCR;\r
-               if(gsBCK!=null)\r
-               {\r
-                       gsBCK=null;\r
-                       gbBCR=false;\r
-                       findCK();\r
-                       return false;\r
-               }\r
-               \r
-       }\r
-       return true;\r
-}\r
-\r
-function clearHighLight()\r
-{\r
-       resetHighLight(gsBgColor);\r
-}\r
-\r
-function IndexWriteClassStyle()\r
-{\r
-       var sStyle="";\r
-       sStyle+="<STYLE TYPE='text/css'>";\r
-       if (gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       if(gbIE4&&gbMac&&!gbIE5)\r
-       {\r
-               var nMargin=parseInt(gsIdxMargin);\r
-               nMargin-=10;\r
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-               sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";\r
-       }\r
-       else\r
-       {\r
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-       }\r
-       sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";\r
-       sStyle+="</STYLE>";     \r
-       document.write(sStyle);\r
-       return;\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_SEARCHINDEXKEY)\r
-               {\r
-                       if(oMsg.oParam && oMsg.oParam.sInput)\r
-                       {\r
-                               if(gsCK==null)\r
-                               {\r
-                                       gsCK=oMsg.oParam.sInput;\r
-                                       gbCR = oMsg.oParam.bCR;\r
-                                       findCK();\r
-                               }\r
-                               else\r
-                               {\r
-                                       gsBCK=oMsg.oParam.sInput;\r
-                                       gbBCR = oMsg.oParam.bCR;\r
-                               }\r
-                       }\r
-               }\r
-               else if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadIdx();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);\r
-       goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");\r
-       goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_Unload;\r
-       gbWhIHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
+//     WebHelp 5.10.002
+var gsDefaultTarget="bsscright";
+var gsBgColor="#ffffff";
+var gsBgImage="";
+var goIdxFont=null;
+var goIdxEmptyFont=null;
+var goIdxHoverFont=null;
+var gsIdxMargin="0pt";
+var gsIdxIndent="8pt";
+var gsIdxActiveBgColor="#cccccc";
+var gsCK = null;
+var gsBCK = null;
+var gbCR = false;
+var gbBCR = false;
+var gbWhIHost=true;
+
+function myEvent()
+{
+       this.pageX = 0;
+       this.pageY = 0;
+}
+var _event=new myEvent();
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Normal")
+               goIdxFont=vFont;
+       else if(sType=="Empty")
+               goIdxEmptyFont=vFont;
+       else if(sType=="Hover")
+               goIdxHoverFont=vFont;
+}
+
+function setActiveBgColor(sBgColor)
+{
+       gsIdxActiveBgColor=sBgColor;
+}
+
+function setMargin(sMargin)
+{
+       gsIdxMargin=sMargin;
+}
+
+function setIndent(sIndent)
+{
+       gsIdxIndent=sIndent;
+}
+
+function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
+{
+       var sHTML="";
+       var nIdxSet=aCurIdxSet[0];
+       var nIIdx=aPos[nIdxSet];
+       var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);
+       var sKName=_textToHtml(sKOriName);
+
+       var nIdxIndent=parseInt(gsIdxIndent);
+       var sTopics="";
+       if(nLevel==1){
+               if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
+               {
+                       sHTML+="<H6><nobr>";
+                       sHTML+="<b>"+sKName+"</b></nobr></H6>";
+               }
+               else{
+                       for(var i=0;i<nLength;i++)
+                               sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
+                       sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";
+                       sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
+                       if(sTopics.length>0)
+                               sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";
+                       else
+                               sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
+               }
+       }
+       else if(nLevel>=2){
+               var nIndent=nIdxIndent*nLevel;
+               for(var i=0;i<nLength;i++)
+                       sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
+               if (nLevel==2)
+                       sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
+               else
+                       sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";
+               sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
+               if(sTopics.length>0)
+                       sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";
+               else
+                       sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
+       }
+       oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
+}
+
+function getTargetName(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)
+                       return aDataCon[nIdxSet].aKs[nIIdx].sTarget;
+       return gsDefaultTarget;
+}
+
+function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
+{
+       var oLocalHTML=new indexHTMLPart();
+       writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
+       
+       var aLocalPos=new Array();
+       var aMaxPos=new Array();
+       for(var i=0;i<aPos.length;i++)
+       {
+               aLocalPos[i]=aPos[i];
+               aMaxPos[i]=-1;
+       }
+       
+       for(i=0;i<nLength;i++)
+       {
+               var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
+               aLocalPos[aCurIdxSet[i]]++;
+               if(nNKOff>0)
+                       aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
+       }
+       var oSubHTML=new indexHTMLPart();
+       writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);
+       oLocalHTML.addSubHTML(oSubHTML,true);
+       oHTML.appendHTML(oLocalHTML,bDown);
+}
+
+function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
+{
+       if(bDown)
+       {
+               for(var i=0;i<nLength;i++)
+               {
+                       var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
+                       aPos[aCurIdxSet[i]]+=(1+nNKOff);
+               }
+       }
+       else{
+               for(var i=0;i<nLength;i++)
+               {
+                       var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
+                       aPos[aCurIdxSet[i]]-=(1+nPKOff);
+               }
+       }
+}
+
+function getItemName(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               return aDataCon[nIdxSet].aKs[nIIdx].sName;
+       else
+               return null;
+}
+
+function getItemType(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               return aDataCon[nIdxSet].aKs[nIIdx].nType;
+       else
+               return 0;
+}
+
+function getNKOff(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
+       else
+               return null;
+}
+
+function getPKOff(aDataCon,nIdxSet,nIIdx)
+{
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+               return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
+       else
+               return null;
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+       {
+               document.body.background=gsBgImage;
+       }
+       if(gsBgColor&&gsBgColor.length>0)
+       {
+               document.body.bgColor=gsBgColor;
+       }
+       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
+       loadIdx();
+       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
+       SendMessage(oMsg);
+}
+
+function loadIdx()
+{
+       if(!gbReady)
+       {
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
+               if(SendMessage(oResMsg)&&oResMsg.oParam)
+               {
+                       gbReady=true;
+                       var oProj=oResMsg.oParam;
+                       var aProj=oProj.aProj;
+                       gbXML=oProj.bXML;
+                       if(aProj.length>0)
+                       {
+                               var sLangId=aProj[0].sLangId;
+                               for(var i=0;i<aProj.length;i++)
+                               {
+                                       if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)
+                                       {
+                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
+                                       }
+                               }
+                       }
+                       writeDataIFrame();
+                       enEvt();
+               }               
+       }
+}
+
+function getIdxTopics(aDataCon,nIdxSet,nIIdx)
+{
+       var sTopics="";
+       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
+       {
+               if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
+               {
+                       var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;
+                       var nProj=aDataCon[nIdxSet].nProjId;
+                       var sPath=gaData[nProj].sPPath;
+                       for(var i=0;i<nLen;i++)
+                       {
+                               var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;
+                               var sFullPath=_getFullPath(sPath,sURL);
+                               sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";
+                       }
+               }
+       }
+       return sTopics;         
+}
+
+function findCKInDom()
+{
+       if(gsCK!=null)
+       {
+               var sK=gsCK;
+               var oP=getElementsByTag(document,"P");
+               if(!oP) return false;
+               var len=oP.length;
+               var nB=0;
+               var nE=len-1;
+               var nM=0;
+               var sItem="";
+               var bF=false;
+               while(nB<nE){
+                       nM=(nB+nE+1)>>1;
+                       sItem=getInnerText(oP[nM]);
+                       
+                       if(compare(sItem,sK)==0)
+                       {
+                               bF=true;
+                               break;
+                       }
+                       else if(compare(sItem,sK)>0)
+                               nE=nM-1;
+                       else if(compare(sItem,sK)<0)
+                               nB=nM;
+               }
+               if(!bF)
+               {
+                       if(nB==nE) nM=nB;
+               
+                       if(nM+1<len)
+                       {
+                               sItem=getInnerText(oP[nM+1]);
+                               if(compare(sItem,sK)<=0) nM++;
+                       }                       
+                       if(nM+1<len)
+                       {
+                               sItem=getInnerText(oP[nM+1]);
+                               if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
+                       }                       
+               }
+       
+               var oMatch=oP[nM];
+               if(oMatch)
+               {
+                       window.scrollTo(0,oMatch.offsetTop);
+                       var tempColl=getElementsByTag(oMatch,"A");
+                       if(tempColl&&tempColl.length>0){
+                               var nbTag=getElementsByTag(oMatch,"NOBR");
+                               if(nbTag&&nbTag.length>0)
+                                       HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");
+                               if (gbCR)
+                               {
+                                       if (gbIE4)
+                                               tempColl(0).click();
+                                       else
+                                       {
+                                               var strCommand = tempColl[0].getAttribute("onClick");
+                                               var nstrCommand = strCommand.indexOf(";");
+                                               strCommand = strCommand.substring(0, nstrCommand);
+                                               strCommand = strCommand.replace("event", "_event");
+                                               window._event.pageX = oMatch.offsetLeft ;
+                                               window._event.pageY = oMatch.offsetTop + 20;
+                                               window.setTimeout(strCommand, 100);
+                                       }
+                               }
+                       }
+               }
+               gsCK=gsBCK;
+               gbCR=gbBCR;
+               if(gsBCK!=null)
+               {
+                       gsBCK=null;
+                       gbBCR=false;
+                       findCK();
+                       return false;
+               }
+               
+       }
+       return true;
+}
+
+function clearHighLight()
+{
+       resetHighLight(gsBgColor);
+}
+
+function IndexWriteClassStyle()
+{
+       var sStyle="";
+       sStyle+="<STYLE TYPE='text/css'>";
+       if (gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       if(gbIE4&&gbMac&&!gbIE5)
+       {
+               var nMargin=parseInt(gsIdxMargin);
+               nMargin-=10;
+               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
+               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
+               sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";
+       }
+       else
+       {
+               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
+               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
+       }
+       sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
+       sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";
+       sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";
+       sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";
+       sStyle+="</STYLE>";     
+       document.write(sStyle);
+       return;
+}
+
+function window_Unload()
+{
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
+       UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
+}
+
+function onSendMessage(oMsg)
+{
+       if(oMsg)
+       {
+               var nMsgId=oMsg.nMessageId;
+               if(nMsgId==WH_MSG_SEARCHINDEXKEY)
+               {
+                       if(oMsg.oParam && oMsg.oParam.sInput)
+                       {
+                               if(gsCK==null)
+                               {
+                                       gsCK=oMsg.oParam.sInput;
+                                       gbCR = oMsg.oParam.bCR;
+                                       findCK();
+                               }
+                               else
+                               {
+                                       gsBCK=oMsg.oParam.sInput;
+                                       gbBCR = oMsg.oParam.bCR;
+                               }
+                       }
+               }
+               else if(nMsgId==WH_MSG_PROJECTREADY)
+               {
+                       loadIdx();
+               }
+       }
+       return true;
+}
+
+if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
+{
+       RegisterListener2(this,WH_MSG_PROJECTREADY);
+       RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
+       goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+       goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
+       goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
+
+       window.onload=window_OnLoad;
+       window.onbeforeunload=window_BUnload;
+       window.onunload=window_Unload;
+       gbWhIHost=true;
+}
+else
+       document.location.reload();
+
index 870be0e1797d103cd99157099909f76c3e6ce6ef..fb848c513274e8a876c506cb98aca023a8b9cd27 100755 (executable)
-//     WebHelp 5.10.001\r
-var garrSortChar=new Array();\r
-var gaFtsStop=new Array();\r
-var gaFtsStem=new Array();\r
-var gbWhLang=false;\r
-\r
-garrSortChar[0] = 0;\r
-garrSortChar[1] = 1;\r
-garrSortChar[2] = 2;\r
-garrSortChar[3] = 3;\r
-garrSortChar[4] = 4;\r
-garrSortChar[5] = 5;\r
-garrSortChar[6] = 6;\r
-garrSortChar[7] = 7;\r
-garrSortChar[8] = 8;\r
-garrSortChar[9] = 40;\r
-garrSortChar[10] = 41;\r
-garrSortChar[11] = 42;\r
-garrSortChar[12] = 43;\r
-garrSortChar[13] = 44;\r
-garrSortChar[14] = 9;\r
-garrSortChar[15] = 10;\r
-garrSortChar[16] = 11;\r
-garrSortChar[17] = 12;\r
-garrSortChar[18] = 13;\r
-garrSortChar[19] = 14;\r
-garrSortChar[20] = 15;\r
-garrSortChar[21] = 16;\r
-garrSortChar[22] = 17;\r
-garrSortChar[23] = 18;\r
-garrSortChar[24] = 19;\r
-garrSortChar[25] = 20;\r
-garrSortChar[26] = 21;\r
-garrSortChar[27] = 22;\r
-garrSortChar[28] = 23;\r
-garrSortChar[29] = 24;\r
-garrSortChar[30] = 25;\r
-garrSortChar[31] = 26;\r
-garrSortChar[32] = 38;\r
-garrSortChar[33] = 45;\r
-garrSortChar[34] = 46;\r
-garrSortChar[35] = 47;\r
-garrSortChar[36] = 48;\r
-garrSortChar[37] = 49;\r
-garrSortChar[38] = 50;\r
-garrSortChar[39] = 33;\r
-garrSortChar[40] = 51;\r
-garrSortChar[41] = 52;\r
-garrSortChar[42] = 53;\r
-garrSortChar[43] = 88;\r
-garrSortChar[44] = 54;\r
-garrSortChar[45] = 34;\r
-garrSortChar[46] = 55;\r
-garrSortChar[47] = 56;\r
-garrSortChar[48] = 115;\r
-garrSortChar[49] = 119;\r
-garrSortChar[50] = 121;\r
-garrSortChar[51] = 123;\r
-garrSortChar[52] = 125;\r
-garrSortChar[53] = 126;\r
-garrSortChar[54] = 127;\r
-garrSortChar[55] = 128;\r
-garrSortChar[56] = 129;\r
-garrSortChar[57] = 130;\r
-garrSortChar[58] = 57;\r
-garrSortChar[59] = 58;\r
-garrSortChar[60] = 89;\r
-garrSortChar[61] = 90;\r
-garrSortChar[62] = 91;\r
-garrSortChar[63] = 59;\r
-garrSortChar[64] = 60;\r
-garrSortChar[65] = 131;\r
-garrSortChar[66] = 148;\r
-garrSortChar[67] = 150;\r
-garrSortChar[68] = 154;\r
-garrSortChar[69] = 158;\r
-garrSortChar[70] = 168;\r
-garrSortChar[71] = 171;\r
-garrSortChar[72] = 173;\r
-garrSortChar[73] = 175;\r
-garrSortChar[74] = 185;\r
-garrSortChar[75] = 187;\r
-garrSortChar[76] = 189;\r
-garrSortChar[77] = 191;\r
-garrSortChar[78] = 193;\r
-garrSortChar[79] = 197;\r
-garrSortChar[80] = 214;\r
-garrSortChar[81] = 216;\r
-garrSortChar[82] = 218;\r
-garrSortChar[83] = 220;\r
-garrSortChar[84] = 225;\r
-garrSortChar[85] = 230;\r
-garrSortChar[86] = 240;\r
-garrSortChar[87] = 242;\r
-garrSortChar[88] = 244;\r
-garrSortChar[89] = 246;\r
-garrSortChar[90] = 252;\r
-garrSortChar[91] = 61;\r
-garrSortChar[92] = 62;\r
-garrSortChar[93] = 63;\r
-garrSortChar[94] = 64;\r
-garrSortChar[95] = 66;\r
-garrSortChar[96] = 67;\r
-garrSortChar[97] = 131;\r
-garrSortChar[98] = 148;\r
-garrSortChar[99] = 150;\r
-garrSortChar[100] = 154;\r
-garrSortChar[101] = 158;\r
-garrSortChar[102] = 168;\r
-garrSortChar[103] = 171;\r
-garrSortChar[104] = 173;\r
-garrSortChar[105] = 175;\r
-garrSortChar[106] = 185;\r
-garrSortChar[107] = 187;\r
-garrSortChar[108] = 189;\r
-garrSortChar[109] = 191;\r
-garrSortChar[110] = 193;\r
-garrSortChar[111] = 197;\r
-garrSortChar[112] = 214;\r
-garrSortChar[113] = 216;\r
-garrSortChar[114] = 218;\r
-garrSortChar[115] = 220;\r
-garrSortChar[116] = 225;\r
-garrSortChar[117] = 230;\r
-garrSortChar[118] = 240;\r
-garrSortChar[119] = 242;\r
-garrSortChar[120] = 244;\r
-garrSortChar[121] = 246;\r
-garrSortChar[122] = 252;\r
-garrSortChar[123] = 68;\r
-garrSortChar[124] = 69;\r
-garrSortChar[125] = 70;\r
-garrSortChar[126] = 71;\r
-garrSortChar[127] = 27;\r
-garrSortChar[128] = 114;\r
-garrSortChar[129] = 28;\r
-garrSortChar[130] = 82;\r
-garrSortChar[131] = 170;\r
-garrSortChar[132] = 85;\r
-garrSortChar[133] = 112;\r
-garrSortChar[134] = 109;\r
-garrSortChar[135] = 110;\r
-garrSortChar[136] = 65;\r
-garrSortChar[137] = 113;\r
-garrSortChar[138] = 223;\r
-garrSortChar[139] = 86;\r
-garrSortChar[140] = 213;\r
-garrSortChar[141] = 29;\r
-garrSortChar[142] = 255;\r
-garrSortChar[143] = 30;\r
-garrSortChar[144] = 31;\r
-garrSortChar[145] = 80;\r
-garrSortChar[146] = 81;\r
-garrSortChar[147] = 83;\r
-garrSortChar[148] = 84;\r
-garrSortChar[149] = 111;\r
-garrSortChar[150] = 36;\r
-garrSortChar[151] = 37;\r
-garrSortChar[152] = 79;\r
-garrSortChar[153] = 229;\r
-garrSortChar[154] = 222;\r
-garrSortChar[155] = 87;\r
-garrSortChar[156] = 212;\r
-garrSortChar[157] = 32;\r
-garrSortChar[158] = 254;\r
-garrSortChar[159] = 251;\r
-garrSortChar[160] = 39;\r
-garrSortChar[161] = 72;\r
-garrSortChar[162] = 97;\r
-garrSortChar[163] = 98;\r
-garrSortChar[164] = 99;\r
-garrSortChar[165] = 100;\r
-garrSortChar[166] = 73;\r
-garrSortChar[167] = 101;\r
-garrSortChar[168] = 74;\r
-garrSortChar[169] = 102;\r
-garrSortChar[170] = 133;\r
-garrSortChar[171] = 93;\r
-garrSortChar[172] = 103;\r
-garrSortChar[173] = 35;\r
-garrSortChar[174] = 104;\r
-garrSortChar[175] = 75;\r
-garrSortChar[176] = 105;\r
-garrSortChar[177] = 92;\r
-garrSortChar[178] = 122;\r
-garrSortChar[179] = 124;\r
-garrSortChar[180] = 76;\r
-garrSortChar[181] = 106;\r
-garrSortChar[182] = 107;\r
-garrSortChar[183] = 108;\r
-garrSortChar[184] = 77;\r
-garrSortChar[185] = 120;\r
-garrSortChar[186] = 199;\r
-garrSortChar[187] = 94;\r
-garrSortChar[188] = 116;\r
-garrSortChar[189] = 117;\r
-garrSortChar[190] = 118;\r
-garrSortChar[191] = 78;\r
-garrSortChar[192] = 131;\r
-garrSortChar[193] = 131;\r
-garrSortChar[194] = 131;\r
-garrSortChar[195] = 131;\r
-garrSortChar[196] = 131;\r
-garrSortChar[197] = 131;\r
-garrSortChar[198] = 131;\r
-garrSortChar[199] = 150;\r
-garrSortChar[200] = 158;\r
-garrSortChar[201] = 158;\r
-garrSortChar[202] = 158;\r
-garrSortChar[203] = 158;\r
-garrSortChar[204] = 175;\r
-garrSortChar[205] = 175;\r
-garrSortChar[206] = 175;\r
-garrSortChar[207] = 175;\r
-garrSortChar[208] = 154;\r
-garrSortChar[209] = 193;\r
-garrSortChar[210] = 197;\r
-garrSortChar[211] = 197;\r
-garrSortChar[212] = 197;\r
-garrSortChar[213] = 197;\r
-garrSortChar[214] = 197;\r
-garrSortChar[215] = 95;\r
-garrSortChar[216] = 197;\r
-garrSortChar[217] = 230;\r
-garrSortChar[218] = 230;\r
-garrSortChar[219] = 230;\r
-garrSortChar[220] = 230;\r
-garrSortChar[221] = 246;\r
-garrSortChar[222] = 227;\r
-garrSortChar[223] = 224;\r
-garrSortChar[224] = 131;\r
-garrSortChar[225] = 131;\r
-garrSortChar[226] = 131;\r
-garrSortChar[227] = 131;\r
-garrSortChar[228] = 131;\r
-garrSortChar[229] = 131;\r
-garrSortChar[230] = 131;\r
-garrSortChar[231] = 150;\r
-garrSortChar[232] = 158;\r
-garrSortChar[233] = 158;\r
-garrSortChar[234] = 158;\r
-garrSortChar[235] = 158;\r
-garrSortChar[236] = 175;\r
-garrSortChar[237] = 175;\r
-garrSortChar[238] = 175;\r
-garrSortChar[239] = 175;\r
-garrSortChar[240] = 154;\r
-garrSortChar[241] = 193;\r
-garrSortChar[242] = 197;\r
-garrSortChar[243] = 197;\r
-garrSortChar[244] = 197;\r
-garrSortChar[245] = 197;\r
-garrSortChar[246] = 197;\r
-garrSortChar[247] = 96;\r
-garrSortChar[248] = 197;\r
-garrSortChar[249] = 230;\r
-garrSortChar[250] = 230;\r
-garrSortChar[251] = 230;\r
-garrSortChar[252] = 230;\r
-garrSortChar[253] = 246;\r
-garrSortChar[254] = 227;\r
-garrSortChar[255] = 250;\r
-\r
-gaFtsStop[0] = "a";\r
-gaFtsStop[1] = "about";\r
-gaFtsStop[2] = "after";\r
-gaFtsStop[3] = "against";\r
-gaFtsStop[4] = "all";\r
-gaFtsStop[5] = "also";\r
-gaFtsStop[6] = "among";\r
-gaFtsStop[7] = "an";\r
-gaFtsStop[8] = "and";\r
-gaFtsStop[9] = "are";\r
-gaFtsStop[10] = "as";\r
-gaFtsStop[11] = "at";\r
-gaFtsStop[12] = "be";\r
-gaFtsStop[13] = "became";\r
-gaFtsStop[14] = "because";\r
-gaFtsStop[15] = "been";\r
-gaFtsStop[16] = "between";\r
-gaFtsStop[17] = "but";\r
-gaFtsStop[18] = "by";\r
-gaFtsStop[19] = "can";\r
-gaFtsStop[20] = "come";\r
-gaFtsStop[21] = "do";\r
-gaFtsStop[22] = "during";\r
-gaFtsStop[23] = "each";\r
-gaFtsStop[24] = "early";\r
-gaFtsStop[25] = "for";\r
-gaFtsStop[26] = "form";\r
-gaFtsStop[27] = "found";\r
-gaFtsStop[28] = "from";\r
-gaFtsStop[29] = "had";\r
-gaFtsStop[30] = "has";\r
-gaFtsStop[31] = "have";\r
-gaFtsStop[32] = "he";\r
-gaFtsStop[33] = "her";\r
-gaFtsStop[34] = "his";\r
-gaFtsStop[35] = "however";\r
-gaFtsStop[36] = "in";\r
-gaFtsStop[37] = "include";\r
-gaFtsStop[38] = "into";\r
-gaFtsStop[39] = "is";\r
-gaFtsStop[40] = "it";\r
-gaFtsStop[41] = "its";\r
-gaFtsStop[42] = "late";\r
-gaFtsStop[43] = "later";\r
-gaFtsStop[44] = "made";\r
-gaFtsStop[45] = "many";\r
-gaFtsStop[46] = "may";\r
-gaFtsStop[47] = "me";\r
-gaFtsStop[48] = "med";\r
-gaFtsStop[49] = "more";\r
-gaFtsStop[50] = "most";\r
-gaFtsStop[51] = "near";\r
-gaFtsStop[52] = "no";\r
-gaFtsStop[53] = "non";\r
-gaFtsStop[54] = "not";\r
-gaFtsStop[55] = "of";\r
-gaFtsStop[56] = "on";\r
-gaFtsStop[57] = "only";\r
-gaFtsStop[58] = "or";\r
-gaFtsStop[59] = "other";\r
-gaFtsStop[60] = "over";\r
-gaFtsStop[61] = "several";\r
-gaFtsStop[62] = "she";\r
-gaFtsStop[63] = "some";\r
-gaFtsStop[64] = "such";\r
-gaFtsStop[65] = "than";\r
-gaFtsStop[66] = "that";\r
-gaFtsStop[67] = "the";\r
-gaFtsStop[68] = "their";\r
-gaFtsStop[69] = "then";\r
-gaFtsStop[70] = "there";\r
-gaFtsStop[71] = "these";\r
-gaFtsStop[72] = "they";\r
-gaFtsStop[73] = "this";\r
-gaFtsStop[74] = "through";\r
-gaFtsStop[75] = "to";\r
-gaFtsStop[76] = "under";\r
-gaFtsStop[77] = "until";\r
-gaFtsStop[78] = "use";\r
-gaFtsStop[79] = "was";\r
-gaFtsStop[80] = "we";\r
-gaFtsStop[81] = "were";\r
-gaFtsStop[82] = "when";\r
-gaFtsStop[83] = "where";\r
-gaFtsStop[84] = "which";\r
-gaFtsStop[85] = "who";\r
-gaFtsStop[86] = "with";\r
-gaFtsStop[87] = "you";\r
-\r
-gaFtsStem[0] = "ed";\r
-gaFtsStem[1] = "es";\r
-gaFtsStem[2] = "er";\r
-gaFtsStem[3] = "e";\r
-gaFtsStem[4] = "s";\r
-gaFtsStem[5] = "ingly";\r
-gaFtsStem[6] = "ing";\r
-gaFtsStem[7] = "ly";\r
-\r
-\r
-// as javascript 1.3 support unicode instead of ISO-Latin-1\r
-// need to transfer come code back to ISO-Latin-1 for compare purpose\r
-// Note: Different Language(Code page) maybe need different array:\r
-var gaUToC=new Array();\r
-gaUToC[8364]=128;\r
-gaUToC[8218]=130;\r
-gaUToC[402]=131;\r
-gaUToC[8222]=132;\r
-gaUToC[8230]=133;\r
-gaUToC[8224]=134;\r
-gaUToC[8225]=135;\r
-gaUToC[710]=136;\r
-gaUToC[8240]=137;\r
-gaUToC[352]=138;\r
-gaUToC[8249]=139;\r
-gaUToC[338]=140;\r
-gaUToC[381]=142;\r
-gaUToC[8216]=145;\r
-gaUToC[8217]=146;\r
-gaUToC[8220]=147;\r
-gaUToC[8221]=148;\r
-gaUToC[8226]=149;\r
-gaUToC[8211]=150;\r
-gaUToC[8212]=151;\r
-gaUToC[732]=152;\r
-gaUToC[8482]=153;\r
-gaUToC[353]=154;\r
-gaUToC[8250]=155;\r
-gaUToC[339]=156;\r
-gaUToC[382]=158;\r
-gaUToC[376]=159;\r
-\r
-var gsBiggestChar="";\r
-function getBiggestChar()\r
-{\r
-       if(gsBiggestChar.length==0)\r
-       {\r
-               if(garrSortChar.length<256)\r
-                       gsBiggestChar=String.fromCharCode(255);\r
-               else\r
-               {\r
-                       var nBiggest=0;\r
-                       var nBigChar=0;\r
-                       for(var i=0;i<=255;i++)\r
-                       {\r
-                               if(garrSortChar[i]>nBiggest)\r
-                               {\r
-                                       nBiggest=garrSortChar[i];\r
-                                       nBigChar=i;\r
-                               }\r
-                       }\r
-                       gsBiggestChar=String.fromCharCode(nBigChar);\r
-               }\r
-\r
-       }       \r
-       return gsBiggestChar;\r
-}\r
-\r
-function getCharCode(str,i)\r
-{\r
-       var code=str.charCodeAt(i)\r
-       if(code>256)\r
-       {\r
-               code=gaUToC[code];\r
-       }\r
-       return code;\r
-}\r
-\r
-function compare(strText1,strText2)\r
-{\r
-       if(garrSortChar.length<256)\r
-       {\r
-               var strt1=strText1.toLowerCase();\r
-               var strt2=strText2.toLowerCase();\r
-               if(strt1<strt2) return -1;\r
-               if(strt1>strt2) return 1;\r
-               return 0;\r
-       }\r
-       else\r
-       {\r
-               for(var i=0;i<strText1.length&&i<strText2.length;i++)\r
-               {\r
-                       if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;\r
-                       if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;\r
-               }\r
-               if(strText1.length<strText2.length) return -1;\r
-               if(strText1.length>strText2.length) return 1;\r
-               return 0;\r
-       }\r
-}\r
+//     WebHelp 5.10.001
+var garrSortChar=new Array();
+var gaFtsStop=new Array();
+var gaFtsStem=new Array();
+var gbWhLang=false;
+
+garrSortChar[0] = 0;
+garrSortChar[1] = 1;
+garrSortChar[2] = 2;
+garrSortChar[3] = 3;
+garrSortChar[4] = 4;
+garrSortChar[5] = 5;
+garrSortChar[6] = 6;
+garrSortChar[7] = 7;
+garrSortChar[8] = 8;
+garrSortChar[9] = 40;
+garrSortChar[10] = 41;
+garrSortChar[11] = 42;
+garrSortChar[12] = 43;
+garrSortChar[13] = 44;
+garrSortChar[14] = 9;
+garrSortChar[15] = 10;
+garrSortChar[16] = 11;
+garrSortChar[17] = 12;
+garrSortChar[18] = 13;
+garrSortChar[19] = 14;
+garrSortChar[20] = 15;
+garrSortChar[21] = 16;
+garrSortChar[22] = 17;
+garrSortChar[23] = 18;
+garrSortChar[24] = 19;
+garrSortChar[25] = 20;
+garrSortChar[26] = 21;
+garrSortChar[27] = 22;
+garrSortChar[28] = 23;
+garrSortChar[29] = 24;
+garrSortChar[30] = 25;
+garrSortChar[31] = 26;
+garrSortChar[32] = 38;
+garrSortChar[33] = 45;
+garrSortChar[34] = 46;
+garrSortChar[35] = 47;
+garrSortChar[36] = 48;
+garrSortChar[37] = 49;
+garrSortChar[38] = 50;
+garrSortChar[39] = 33;
+garrSortChar[40] = 51;
+garrSortChar[41] = 52;
+garrSortChar[42] = 53;
+garrSortChar[43] = 88;
+garrSortChar[44] = 54;
+garrSortChar[45] = 34;
+garrSortChar[46] = 55;
+garrSortChar[47] = 56;
+garrSortChar[48] = 115;
+garrSortChar[49] = 119;
+garrSortChar[50] = 121;
+garrSortChar[51] = 123;
+garrSortChar[52] = 125;
+garrSortChar[53] = 126;
+garrSortChar[54] = 127;
+garrSortChar[55] = 128;
+garrSortChar[56] = 129;
+garrSortChar[57] = 130;
+garrSortChar[58] = 57;
+garrSortChar[59] = 58;
+garrSortChar[60] = 89;
+garrSortChar[61] = 90;
+garrSortChar[62] = 91;
+garrSortChar[63] = 59;
+garrSortChar[64] = 60;
+garrSortChar[65] = 131;
+garrSortChar[66] = 148;
+garrSortChar[67] = 150;
+garrSortChar[68] = 154;
+garrSortChar[69] = 158;
+garrSortChar[70] = 168;
+garrSortChar[71] = 171;
+garrSortChar[72] = 173;
+garrSortChar[73] = 175;
+garrSortChar[74] = 185;
+garrSortChar[75] = 187;
+garrSortChar[76] = 189;
+garrSortChar[77] = 191;
+garrSortChar[78] = 193;
+garrSortChar[79] = 197;
+garrSortChar[80] = 214;
+garrSortChar[81] = 216;
+garrSortChar[82] = 218;
+garrSortChar[83] = 220;
+garrSortChar[84] = 225;
+garrSortChar[85] = 230;
+garrSortChar[86] = 240;
+garrSortChar[87] = 242;
+garrSortChar[88] = 244;
+garrSortChar[89] = 246;
+garrSortChar[90] = 252;
+garrSortChar[91] = 61;
+garrSortChar[92] = 62;
+garrSortChar[93] = 63;
+garrSortChar[94] = 64;
+garrSortChar[95] = 66;
+garrSortChar[96] = 67;
+garrSortChar[97] = 131;
+garrSortChar[98] = 148;
+garrSortChar[99] = 150;
+garrSortChar[100] = 154;
+garrSortChar[101] = 158;
+garrSortChar[102] = 168;
+garrSortChar[103] = 171;
+garrSortChar[104] = 173;
+garrSortChar[105] = 175;
+garrSortChar[106] = 185;
+garrSortChar[107] = 187;
+garrSortChar[108] = 189;
+garrSortChar[109] = 191;
+garrSortChar[110] = 193;
+garrSortChar[111] = 197;
+garrSortChar[112] = 214;
+garrSortChar[113] = 216;
+garrSortChar[114] = 218;
+garrSortChar[115] = 220;
+garrSortChar[116] = 225;
+garrSortChar[117] = 230;
+garrSortChar[118] = 240;
+garrSortChar[119] = 242;
+garrSortChar[120] = 244;
+garrSortChar[121] = 246;
+garrSortChar[122] = 252;
+garrSortChar[123] = 68;
+garrSortChar[124] = 69;
+garrSortChar[125] = 70;
+garrSortChar[126] = 71;
+garrSortChar[127] = 27;
+garrSortChar[128] = 114;
+garrSortChar[129] = 28;
+garrSortChar[130] = 82;
+garrSortChar[131] = 170;
+garrSortChar[132] = 85;
+garrSortChar[133] = 112;
+garrSortChar[134] = 109;
+garrSortChar[135] = 110;
+garrSortChar[136] = 65;
+garrSortChar[137] = 113;
+garrSortChar[138] = 223;
+garrSortChar[139] = 86;
+garrSortChar[140] = 213;
+garrSortChar[141] = 29;
+garrSortChar[142] = 255;
+garrSortChar[143] = 30;
+garrSortChar[144] = 31;
+garrSortChar[145] = 80;
+garrSortChar[146] = 81;
+garrSortChar[147] = 83;
+garrSortChar[148] = 84;
+garrSortChar[149] = 111;
+garrSortChar[150] = 36;
+garrSortChar[151] = 37;
+garrSortChar[152] = 79;
+garrSortChar[153] = 229;
+garrSortChar[154] = 222;
+garrSortChar[155] = 87;
+garrSortChar[156] = 212;
+garrSortChar[157] = 32;
+garrSortChar[158] = 254;
+garrSortChar[159] = 251;
+garrSortChar[160] = 39;
+garrSortChar[161] = 72;
+garrSortChar[162] = 97;
+garrSortChar[163] = 98;
+garrSortChar[164] = 99;
+garrSortChar[165] = 100;
+garrSortChar[166] = 73;
+garrSortChar[167] = 101;
+garrSortChar[168] = 74;
+garrSortChar[169] = 102;
+garrSortChar[170] = 133;
+garrSortChar[171] = 93;
+garrSortChar[172] = 103;
+garrSortChar[173] = 35;
+garrSortChar[174] = 104;
+garrSortChar[175] = 75;
+garrSortChar[176] = 105;
+garrSortChar[177] = 92;
+garrSortChar[178] = 122;
+garrSortChar[179] = 124;
+garrSortChar[180] = 76;
+garrSortChar[181] = 106;
+garrSortChar[182] = 107;
+garrSortChar[183] = 108;
+garrSortChar[184] = 77;
+garrSortChar[185] = 120;
+garrSortChar[186] = 199;
+garrSortChar[187] = 94;
+garrSortChar[188] = 116;
+garrSortChar[189] = 117;
+garrSortChar[190] = 118;
+garrSortChar[191] = 78;
+garrSortChar[192] = 131;
+garrSortChar[193] = 131;
+garrSortChar[194] = 131;
+garrSortChar[195] = 131;
+garrSortChar[196] = 131;
+garrSortChar[197] = 131;
+garrSortChar[198] = 131;
+garrSortChar[199] = 150;
+garrSortChar[200] = 158;
+garrSortChar[201] = 158;
+garrSortChar[202] = 158;
+garrSortChar[203] = 158;
+garrSortChar[204] = 175;
+garrSortChar[205] = 175;
+garrSortChar[206] = 175;
+garrSortChar[207] = 175;
+garrSortChar[208] = 154;
+garrSortChar[209] = 193;
+garrSortChar[210] = 197;
+garrSortChar[211] = 197;
+garrSortChar[212] = 197;
+garrSortChar[213] = 197;
+garrSortChar[214] = 197;
+garrSortChar[215] = 95;
+garrSortChar[216] = 197;
+garrSortChar[217] = 230;
+garrSortChar[218] = 230;
+garrSortChar[219] = 230;
+garrSortChar[220] = 230;
+garrSortChar[221] = 246;
+garrSortChar[222] = 227;
+garrSortChar[223] = 224;
+garrSortChar[224] = 131;
+garrSortChar[225] = 131;
+garrSortChar[226] = 131;
+garrSortChar[227] = 131;
+garrSortChar[228] = 131;
+garrSortChar[229] = 131;
+garrSortChar[230] = 131;
+garrSortChar[231] = 150;
+garrSortChar[232] = 158;
+garrSortChar[233] = 158;
+garrSortChar[234] = 158;
+garrSortChar[235] = 158;
+garrSortChar[236] = 175;
+garrSortChar[237] = 175;
+garrSortChar[238] = 175;
+garrSortChar[239] = 175;
+garrSortChar[240] = 154;
+garrSortChar[241] = 193;
+garrSortChar[242] = 197;
+garrSortChar[243] = 197;
+garrSortChar[244] = 197;
+garrSortChar[245] = 197;
+garrSortChar[246] = 197;
+garrSortChar[247] = 96;
+garrSortChar[248] = 197;
+garrSortChar[249] = 230;
+garrSortChar[250] = 230;
+garrSortChar[251] = 230;
+garrSortChar[252] = 230;
+garrSortChar[253] = 246;
+garrSortChar[254] = 227;
+garrSortChar[255] = 250;
+
+gaFtsStop[0] = "a";
+gaFtsStop[1] = "about";
+gaFtsStop[2] = "after";
+gaFtsStop[3] = "against";
+gaFtsStop[4] = "all";
+gaFtsStop[5] = "also";
+gaFtsStop[6] = "among";
+gaFtsStop[7] = "an";
+gaFtsStop[8] = "and";
+gaFtsStop[9] = "are";
+gaFtsStop[10] = "as";
+gaFtsStop[11] = "at";
+gaFtsStop[12] = "be";
+gaFtsStop[13] = "became";
+gaFtsStop[14] = "because";
+gaFtsStop[15] = "been";
+gaFtsStop[16] = "between";
+gaFtsStop[17] = "but";
+gaFtsStop[18] = "by";
+gaFtsStop[19] = "can";
+gaFtsStop[20] = "come";
+gaFtsStop[21] = "do";
+gaFtsStop[22] = "during";
+gaFtsStop[23] = "each";
+gaFtsStop[24] = "early";
+gaFtsStop[25] = "for";
+gaFtsStop[26] = "form";
+gaFtsStop[27] = "found";
+gaFtsStop[28] = "from";
+gaFtsStop[29] = "had";
+gaFtsStop[30] = "has";
+gaFtsStop[31] = "have";
+gaFtsStop[32] = "he";
+gaFtsStop[33] = "her";
+gaFtsStop[34] = "his";
+gaFtsStop[35] = "however";
+gaFtsStop[36] = "in";
+gaFtsStop[37] = "include";
+gaFtsStop[38] = "into";
+gaFtsStop[39] = "is";
+gaFtsStop[40] = "it";
+gaFtsStop[41] = "its";
+gaFtsStop[42] = "late";
+gaFtsStop[43] = "later";
+gaFtsStop[44] = "made";
+gaFtsStop[45] = "many";
+gaFtsStop[46] = "may";
+gaFtsStop[47] = "me";
+gaFtsStop[48] = "med";
+gaFtsStop[49] = "more";
+gaFtsStop[50] = "most";
+gaFtsStop[51] = "near";
+gaFtsStop[52] = "no";
+gaFtsStop[53] = "non";
+gaFtsStop[54] = "not";
+gaFtsStop[55] = "of";
+gaFtsStop[56] = "on";
+gaFtsStop[57] = "only";
+gaFtsStop[58] = "or";
+gaFtsStop[59] = "other";
+gaFtsStop[60] = "over";
+gaFtsStop[61] = "several";
+gaFtsStop[62] = "she";
+gaFtsStop[63] = "some";
+gaFtsStop[64] = "such";
+gaFtsStop[65] = "than";
+gaFtsStop[66] = "that";
+gaFtsStop[67] = "the";
+gaFtsStop[68] = "their";
+gaFtsStop[69] = "then";
+gaFtsStop[70] = "there";
+gaFtsStop[71] = "these";
+gaFtsStop[72] = "they";
+gaFtsStop[73] = "this";
+gaFtsStop[74] = "through";
+gaFtsStop[75] = "to";
+gaFtsStop[76] = "under";
+gaFtsStop[77] = "until";
+gaFtsStop[78] = "use";
+gaFtsStop[79] = "was";
+gaFtsStop[80] = "we";
+gaFtsStop[81] = "were";
+gaFtsStop[82] = "when";
+gaFtsStop[83] = "where";
+gaFtsStop[84] = "which";
+gaFtsStop[85] = "who";
+gaFtsStop[86] = "with";
+gaFtsStop[87] = "you";
+
+gaFtsStem[0] = "ed";
+gaFtsStem[1] = "es";
+gaFtsStem[2] = "er";
+gaFtsStem[3] = "e";
+gaFtsStem[4] = "s";
+gaFtsStem[5] = "ingly";
+gaFtsStem[6] = "ing";
+gaFtsStem[7] = "ly";
+
+
+// as javascript 1.3 support unicode instead of ISO-Latin-1
+// need to transfer come code back to ISO-Latin-1 for compare purpose
+// Note: Different Language(Code page) maybe need different array:
+var gaUToC=new Array();
+gaUToC[8364]=128;
+gaUToC[8218]=130;
+gaUToC[402]=131;
+gaUToC[8222]=132;
+gaUToC[8230]=133;
+gaUToC[8224]=134;
+gaUToC[8225]=135;
+gaUToC[710]=136;
+gaUToC[8240]=137;
+gaUToC[352]=138;
+gaUToC[8249]=139;
+gaUToC[338]=140;
+gaUToC[381]=142;
+gaUToC[8216]=145;
+gaUToC[8217]=146;
+gaUToC[8220]=147;
+gaUToC[8221]=148;
+gaUToC[8226]=149;
+gaUToC[8211]=150;
+gaUToC[8212]=151;
+gaUToC[732]=152;
+gaUToC[8482]=153;
+gaUToC[353]=154;
+gaUToC[8250]=155;
+gaUToC[339]=156;
+gaUToC[382]=158;
+gaUToC[376]=159;
+
+var gsBiggestChar="";
+function getBiggestChar()
+{
+       if(gsBiggestChar.length==0)
+       {
+               if(garrSortChar.length<256)
+                       gsBiggestChar=String.fromCharCode(255);
+               else
+               {
+                       var nBiggest=0;
+                       var nBigChar=0;
+                       for(var i=0;i<=255;i++)
+                       {
+                               if(garrSortChar[i]>nBiggest)
+                               {
+                                       nBiggest=garrSortChar[i];
+                                       nBigChar=i;
+                               }
+                       }
+                       gsBiggestChar=String.fromCharCode(nBigChar);
+               }
+
+       }       
+       return gsBiggestChar;
+}
+
+function getCharCode(str,i)
+{
+       var code=str.charCodeAt(i)
+       if(code>256)
+       {
+               code=gaUToC[code];
+       }
+       return code;
+}
+
+function compare(strText1,strText2)
+{
+       if(garrSortChar.length<256)
+       {
+               var strt1=strText1.toLowerCase();
+               var strt2=strText2.toLowerCase();
+               if(strt1<strt2) return -1;
+               if(strt1>strt2) return 1;
+               return 0;
+       }
+       else
+       {
+               for(var i=0;i<strText1.length&&i<strText2.length;i++)
+               {
+                       if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;
+                       if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;
+               }
+               if(strText1.length<strText2.length) return -1;
+               if(strText1.length>strText2.length) return 1;
+               return 0;
+       }
+}
 gbWhLang=true;
\ No newline at end of file
index 84c6de1ed099d2dd70ad4d305042e2d12071cf96..8fd89b275adc5dea855441dd2f34ccfcf5dd798e 100755 (executable)
@@ -1,67 +1,67 @@
-//     WebHelp 5.10.002\r
-if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){\r
-\r
-HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)\r
-{\r
-       switch (where){\r
-       case 'beforeBegin':\r
-               this.parentNode.insertBefore(parsedNode,this);\r
-               break;\r
-       case 'afterBegin':\r
-               this.insertBefore(parsedNode,this.firstChild);\r
-               break;\r
-       case 'beforeEnd':\r
-               this.appendChild(parsedNode);\r
-               break;\r
-       case 'afterEnd':\r
-               if (this.nextSibling){\r
-               this.parentNode.insertBefore(parsedNode,this.nextSibling);\r
-               } else {\r
-               this.parentNode.appendChild(parsedNode);\r
-               }\r
-               break;\r
-       }\r
-}\r
-\r
-HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){\r
-\r
-       var r = this.ownerDocument.createRange();\r
-       r.setStartBefore(this);\r
-       var parsedHTML = r.createContextualFragment(htmlStr);\r
-       this.insertAdjacentElement(where,parsedHTML);\r
-}\r
-\r
-\r
-HTMLElement.prototype.insertAdjacentText = function(where,txtStr){\r
-\r
-       var parsedText = document.createTextNode(txtStr);\r
-       this.insertAdjacentElement(where,parsedText);\r
-}\r
-}\r
-\r
-function testScroll() {\r
-       // Initialize scrollbar cache if necessary\r
-       if (window._pageXOffset==null) {\r
-               window._pageXOffset = window.pageXOffset;\r
-               window._pageYOffset = window.pageYOffset;\r
-       }\r
-       // Expose Internet Explorer compatible object model\r
-       document.scrollTop = window.pageYOffset;\r
-       document.scrollLeft = window.pageXOffset;\r
-       window.document.scrollHeight = document.height;\r
-       window.document.scrollWidth = document.width;\r
-       window.document.clientWidth = window.innerWidth;\r
-       window.document.clientHeight = window.innerHeight;\r
-\r
-       // If cache!=current values, call the onscroll event\r
-       if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) \r
-               window.onscroll();\r
-       // Cache new values\r
-       window._pageXOffset = window.pageXOffset;\r
-       window._pageYOffset = window.pageYOffset;\r
-       }\r
-\r
-// Create compatibility layer for Netscape\r
-if (window.gbNav6 && !window.gbNav7) {\r
-       setInterval("testScroll()",50)\r
+//     WebHelp 5.10.002
+if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){
+
+HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
+{
+       switch (where){
+       case 'beforeBegin':
+               this.parentNode.insertBefore(parsedNode,this);
+               break;
+       case 'afterBegin':
+               this.insertBefore(parsedNode,this.firstChild);
+               break;
+       case 'beforeEnd':
+               this.appendChild(parsedNode);
+               break;
+       case 'afterEnd':
+               if (this.nextSibling){
+               this.parentNode.insertBefore(parsedNode,this.nextSibling);
+               } else {
+               this.parentNode.appendChild(parsedNode);
+               }
+               break;
+       }
+}
+
+HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
+
+       var r = this.ownerDocument.createRange();
+       r.setStartBefore(this);
+       var parsedHTML = r.createContextualFragment(htmlStr);
+       this.insertAdjacentElement(where,parsedHTML);
+}
+
+
+HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
+
+       var parsedText = document.createTextNode(txtStr);
+       this.insertAdjacentElement(where,parsedText);
+}
+}
+
+function testScroll() {
+       // Initialize scrollbar cache if necessary
+       if (window._pageXOffset==null) {
+               window._pageXOffset = window.pageXOffset;
+               window._pageYOffset = window.pageYOffset;
+       }
+       // Expose Internet Explorer compatible object model
+       document.scrollTop = window.pageYOffset;
+       document.scrollLeft = window.pageXOffset;
+       window.document.scrollHeight = document.height;
+       window.document.scrollWidth = document.width;
+       window.document.clientWidth = window.innerWidth;
+       window.document.clientHeight = window.innerHeight;
+
+       // If cache!=current values, call the onscroll event
+       if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) 
+               window.onscroll();
+       // Cache new values
+       window._pageXOffset = window.pageXOffset;
+       window._pageYOffset = window.pageYOffset;
+       }
+
+// Create compatibility layer for Netscape
+if (window.gbNav6 && !window.gbNav7) {
+       setInterval("testScroll()",50)
 }
\ No newline at end of file
index 52ffcd2434bf2df36d626d1ff365e71655d0a330..492114be77ad30b6523a70d327da0c6cee1eb403 100755 (executable)
@@ -1,69 +1,69 @@
-//     WebHelp 5.10.002\r
-var WH_MSG_RESIZEPANE          =0x0100;\r
-var WH_MSG_SHOWPANE                    =0x0101;\r
-var WH_MSG_HIDEPANE                    =0x0102;\r
-var WH_MSG_SYNCTOC                     =0x0103;\r
-var WH_MSG_NEXT                                =0x0104;\r
-var WH_MSG_PREV                                =0x0105;\r
-var WH_MSG_NOSEARCHINPUT       =0x0106;\r
-var WH_MSG_NOSYNC                      =0x0107;\r
-var WH_MSG_ENABLEWEBSEARCH     =0x0108;\r
-\r
-var WH_MSG_ISPANEVISIBLE       =0x0109;\r
-var WH_MSG_PANESTATUE          =0x010a;\r
-\r
-var    WH_MSG_SYNCINFO                 =0x010b;\r
-var WH_MSG_PANEINFO                    =0x010c;\r
-var WH_MSG_WEBSEARCH           =0x010d;\r
-\r
-var WH_MSG_SEARCHINDEXKEY      =0x0201;\r
-\r
-var WH_MSG_SEARCHFTSKEY        =0x020a;\r
-\r
-var WH_MSG_PROJECTREADY                =0x0301;\r
-var WH_MSG_GETPROJINFO                 =0x0302;\r
-\r
-var WH_MSG_SHOWTOC                     =0x0401;\r
-var WH_MSG_SHOWIDX                     =0x0402;\r
-var WH_MSG_SHOWFTS                     =0x0403;\r
-var WH_MSG_SHOWGLO                     =0x0404;\r
-\r
-var WH_MSG_SHOWGLODEF          =0x0500;\r
-\r
-var WH_MSG_GETTOCPATHS                 =0x0600;\r
-var WH_MSG_GETAVIAVENUES       =0x0601;\r
-var WH_MSG_GETCURRENTAVENUE =0x0602;\r
-var WH_MSG_GETPANEINFO         =0x0603;\r
-var WH_MSG_AVENUEINFO          =0x0604;\r
-\r
-var WH_MSG_GETSTARTFRAME       =0x0701;\r
-var WH_MSG_GETDEFAULTTOPIC     =0x0702;\r
-\r
-var WH_MSG_SEARCHTHIS          =0x0801;\r
-var WH_MSG_GETSEARCHS          =0x0802;\r
-\r
-var WH_MSG_ISINFRAMESET                =0x0900;\r
-\r
-var WH_MSG_TOOLBARORDER                =0x0a00;\r
-var WH_MSG_MINIBARORDER                =0x0a01;\r
-var WH_MSG_ISSYNCSSUPPORT      =0x0a02;\r
-var WH_MSG_ISSEARCHSUPPORT     =0x0a03;\r
-var WH_MSG_GETPANETYPE         =0x0a04;\r
-var WH_MSG_BACKUPSEARCH                =0x0a05;\r
-var WH_MSG_GETPANES                    =0x0a06;\r
-var WH_MSG_INITSEARCHSTRING =0x0a07;\r
-var WH_MSG_RELOADNS6           =0x0a08;\r
-var WH_MSG_ISAVENUESUPPORT     =0x0a09;\r
-\r
-var WH_MSG_GETCMD                      =0x0b00;\r
-var    WH_MSG_GETPANE                  =0x0b01;\r
-var WH_MSG_GETDEFPANE          =0x0b02;\r
-\r
-function whMessage(nMessageId,wSender,nVersion,oParam)\r
-{\r
-       this.nMessageId=nMessageId;\r
-       this.wSender=wSender;\r
-       this.nVersion=nVersion;\r
-       this.oParam=oParam;\r
-}\r
+//     WebHelp 5.10.002
+var WH_MSG_RESIZEPANE          =0x0100;
+var WH_MSG_SHOWPANE                    =0x0101;
+var WH_MSG_HIDEPANE                    =0x0102;
+var WH_MSG_SYNCTOC                     =0x0103;
+var WH_MSG_NEXT                                =0x0104;
+var WH_MSG_PREV                                =0x0105;
+var WH_MSG_NOSEARCHINPUT       =0x0106;
+var WH_MSG_NOSYNC                      =0x0107;
+var WH_MSG_ENABLEWEBSEARCH     =0x0108;
+
+var WH_MSG_ISPANEVISIBLE       =0x0109;
+var WH_MSG_PANESTATUE          =0x010a;
+
+var    WH_MSG_SYNCINFO                 =0x010b;
+var WH_MSG_PANEINFO                    =0x010c;
+var WH_MSG_WEBSEARCH           =0x010d;
+
+var WH_MSG_SEARCHINDEXKEY      =0x0201;
+
+var WH_MSG_SEARCHFTSKEY        =0x020a;
+
+var WH_MSG_PROJECTREADY                =0x0301;
+var WH_MSG_GETPROJINFO                 =0x0302;
+
+var WH_MSG_SHOWTOC                     =0x0401;
+var WH_MSG_SHOWIDX                     =0x0402;
+var WH_MSG_SHOWFTS                     =0x0403;
+var WH_MSG_SHOWGLO                     =0x0404;
+
+var WH_MSG_SHOWGLODEF          =0x0500;
+
+var WH_MSG_GETTOCPATHS                 =0x0600;
+var WH_MSG_GETAVIAVENUES       =0x0601;
+var WH_MSG_GETCURRENTAVENUE =0x0602;
+var WH_MSG_GETPANEINFO         =0x0603;
+var WH_MSG_AVENUEINFO          =0x0604;
+
+var WH_MSG_GETSTARTFRAME       =0x0701;
+var WH_MSG_GETDEFAULTTOPIC     =0x0702;
+
+var WH_MSG_SEARCHTHIS          =0x0801;
+var WH_MSG_GETSEARCHS          =0x0802;
+
+var WH_MSG_ISINFRAMESET                =0x0900;
+
+var WH_MSG_TOOLBARORDER                =0x0a00;
+var WH_MSG_MINIBARORDER                =0x0a01;
+var WH_MSG_ISSYNCSSUPPORT      =0x0a02;
+var WH_MSG_ISSEARCHSUPPORT     =0x0a03;
+var WH_MSG_GETPANETYPE         =0x0a04;
+var WH_MSG_BACKUPSEARCH                =0x0a05;
+var WH_MSG_GETPANES                    =0x0a06;
+var WH_MSG_INITSEARCHSTRING =0x0a07;
+var WH_MSG_RELOADNS6           =0x0a08;
+var WH_MSG_ISAVENUESUPPORT     =0x0a09;
+
+var WH_MSG_GETCMD                      =0x0b00;
+var    WH_MSG_GETPANE                  =0x0b01;
+var WH_MSG_GETDEFPANE          =0x0b02;
+
+function whMessage(nMessageId,wSender,nVersion,oParam)
+{
+       this.nMessageId=nMessageId;
+       this.wSender=wSender;
+       this.nVersion=nVersion;
+       this.oParam=oParam;
+}
 var gbWhMsg=true;
\ No newline at end of file
index 33eec3535638445e5b3bc875dcabc51132a9efaa..d7da2cabcb304b1779c87d75c2deefbd79e97af5 100755 (executable)
@@ -1,25 +1,25 @@
-<html>\r
-<head>\r
-<title>SMESH reference manual</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whstub.js"></script>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whstart.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-function window_Onload()\r
-{\r
-       if (window.gsTopic)\r
-               frames["bsscright"].document.location = window.gsTopic;\r
-}\r
-window.onload=window_Onload;\r
-//-->\r
-</script>\r
-</head>\r
-\r
-<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="files/introduction_to_smesh.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>\r
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whstub.js"></script>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whstart.js"></script>
+<script language="javascript1.2">
+<!--
+function window_Onload()
+{
+       if (window.gsTopic)
+               frames["bsscright"].document.location = window.gsTopic;
+}
+window.onload=window_Onload;
+//-->
+</script>
+</head>
+
+<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="mesh.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>
 </html>
\ No newline at end of file
index 9c91b49c89d9256b8a7f9800e800f12ebf0435df..b8f74f46fa24c370ec4e5ace7645f692c3313a2a 100755 (executable)
-//     WebHelp 5.10.005\r
-var gaProj=new Array();\r
-var gnChecked=0;\r
-var gsProjName="";\r
-var gbReady=false;\r
-var goMan=null;\r
-var gbXML=false;\r
-var gsFirstPane="";\r
-var gServerEnabled=false;\r
-var gsPath="";\r
-var gbWhPHost=false;\r
-var goDiv = null;\r
-var gsHTML = "";\r
-\r
-if (navigator.currentNavPen)\r
-       gsFirstPane = navigator.currentNavPen;\r
-\r
-\r
-function delayLoad()\r
-{\r
-       if (goDiv&&gsHTML)\r
-       {\r
-               goDiv.innerHTML=gsHTML;\r
-               goDiv=null;\r
-               gsHTML="";\r
-       }\r
-}\r
-\r
-function whCom(sName,sComFile)\r
-{\r
-       this.msName=sName;\r
-       this.msDivId=sName+"Div";\r
-       this.msIFrameId=sName+"IFrame";\r
-       this.msComFile=sComFile;\r
-       this.mbloaded=false;\r
-       this.mbShow=false;\r
-       this.show=function(bShow)\r
-       {\r
-               if(this.mbShow!=bShow)\r
-               {\r
-                       if(bShow&&!this.mbloaded)\r
-                       {\r
-                               this.load();\r
-                       }\r
-\r
-                       var oDiv=getElement(this.msDivId);\r
-                       if(oDiv)\r
-                       {\r
-                               if(gbIE55||(gbIE5&&gbMac))\r
-                               {\r
-                                       var oIframe=getElement(this.msIFrameId);\r
-                                       if(oIframe)\r
-                                       {\r
-                                               if(bShow)\r
-                                               {\r
-                                                       oDiv.style.zIndex=3;\r
-                                                       if(oIframe!=null)\r
-                                                       {\r
-                                                               oIframe.style.zIndex=3;\r
-                                                               if (!gbIE55)\r
-                                                                       oIframe.style.visibility="visible";\r
-                                                       }\r
-                                               }\r
-                                               else\r
-                                               {\r
-                                                       oDiv.style.zIndex=2;\r
-                                                       if(oIframe!=null)\r
-                                                       {\r
-                                                               oIframe.style.zIndex=2;\r
-                                                               if (!gbIE55)\r
-                                                                       oIframe.style.visibility="hidden";\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (!gbIE55)\r
-                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';\r
-                               this.mbShow=bShow;\r
-                       }\r
-\r
-               }\r
-       }\r
-       this.load=function()\r
-       {\r
-               if(!this.mbloaded)\r
-               {\r
-                       if(this.msComFile.length>0){\r
-                               var strFile= _getFullPath(getPath(), this.msComFile);\r
-                               var oDiv=getElement(this.msDivId);\r
-                               if(oDiv){\r
-                                       if(gbIE4||gbOpera7){\r
-                                               var nIFrameHeight=oDiv.style.pixelHeight;\r
-                                               var nIFrameWidth=oDiv.style.pixelWidth;\r
-                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";\r
-                                               if(gbMac){\r
-                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";\r
-                                               }else{\r
-                                                       sHTML+="100%; height:100%;\"></IFRAME>";\r
-                                               }\r
-                                               oDiv.innerHTML=sHTML;\r
-                                       }else if(gbNav6){\r
-                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:100%;\"></IFRAME>";\r
-                                               goDiv = oDiv;\r
-                                               setTimeout("delayLoad()", 100);\r
-                                       }\r
-                                       this.mbloaded=true;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       this.unload=function()\r
-       {\r
-               var oDiv=getElement(this.msDivId);\r
-               if(oDiv)\r
-                       oDiv.innerHTML="";\r
-       }\r
-       this.getDivHTML=function()\r
-       {\r
-               var sHTML="";\r
-               if(gbMac&&gbIE4)\r
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";\r
-               else if(gbIE5)\r
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";\r
-               else if(gbIE4||gbWindows)\r
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";\r
-               else\r
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:"+parent.height+";visibility:hidden\">";\r
-               sHTML+="</DIV>";\r
-               return sHTML;\r
-       }\r
-}  \r
-\r
-function whComMan()\r
-{\r
-       this.sName="";\r
-       this.maCom=new Array();\r
-       this.addCom=function(sName,sComFile)\r
-       {\r
-               var owhCom=new whCom(sName,sComFile);\r
-               this.maCom[this.maCom.length]=owhCom;\r
-       }\r
-       this.init=function()\r
-       {\r
-               var sHTML="";\r
-               for(var i=0;i<this.maCom.length;i++)\r
-               {\r
-                       sHTML+=this.maCom[i].getDivHTML();\r
-               }\r
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-\r
-       }\r
-       this.showById=function(nId)\r
-       {\r
-               for(var s=0;s<this.maCom.length;s++)\r
-               {\r
-                       if(s!==nId)\r
-                               this.maCom[s].show(false);\r
-               }\r
-               this.maCom[nId].show(true);\r
-       }\r
-       this.show=function(sName)\r
-       {\r
-               navigator.currentNavPen = sName;\r
-               var bFound=false;\r
-               for(var i=0;i<this.maCom.length;i++)\r
-               {\r
-                       if(sName==this.maCom[i].msName)\r
-                       {\r
-                               bFound=true;\r
-                               break;\r
-                       }\r
-               }\r
-               if(bFound)\r
-               {\r
-                       this.showById(i);\r
-                       this.sName=sName;\r
-               }\r
-       }\r
-       this.unload=function()\r
-       {\r
-               for(var i=0;i<this.maCom.length;i++)\r
-               {\r
-                       this.maCom[i].unload();\r
-               }               \r
-       }\r
-       this.getCurrent=function()\r
-       {\r
-               return this.sName;\r
-       }\r
-}\r
-\r
-function getPath()\r
-{\r
-       if(gsPath=="")\r
-       {\r
-               gsPath=location.href;\r
-               gsPath=_replaceSlash(gsPath);\r
-               var nPosFile=gsPath.lastIndexOf("/");\r
-               gsPath=gsPath.substring(0,nPosFile+1);\r
-       }\r
-       return gsPath;\r
-}\r
-\r
-goMan=new whComMan();\r
-function addPane(sName,sFileName)\r
-{\r
-       var oParam=new Object();\r
-       oParam.sName=sName;\r
-       var oMsg=new whMessage(WH_MSG_GETPANE, this, 1, oParam);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if (oMsg.oParam.bEnable)\r
-                       goMan.addCom(sName,sFileName);\r
-       }\r
-       else\r
-               goMan.addCom(sName,sFileName);  \r
-}\r
-\r
-function setShowPane(sName, bForce)\r
-{\r
-       if ((gsFirstPane == "") || bForce)\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_GETDEFPANE, this, 1, null);\r
-               if (SendMessage(oMsg))\r
-               {\r
-                       if (oMsg.oParam)\r
-                               gsFirstPane = oMsg.oParam;\r
-                       else\r
-                               gsFirstPane=sName;\r
-               }\r
-               else\r
-                       gsFirstPane=sName;\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);\r
-       var bHidePane=false;\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if(oMsg.oParam>0)\r
-               {\r
-                       if(oMsg.oParam==1)\r
-                               gsFirstPane="toc";\r
-                       else if(oMsg.oParam==2)\r
-                               gsFirstPane="idx";\r
-                       else if(oMsg.oParam==3)\r
-                               gsFirstPane="fts";\r
-                       else if(oMsg.oParam==4)\r
-                               gsFirstPane="glo";\r
-               }\r
-               else if(oMsg.oParam==0)\r
-               {\r
-                       bHidePane=true;\r
-               }\r
-       }\r
-       goMan.init();\r
-       if(gsProjName!="")                      \r
-               loadData2(gsProjName);  \r
-       if (bHidePane)\r
-       {\r
-               gsFirstPane="";\r
-               var oMsg1=new whMessage(WH_MSG_HIDEPANE, this, 1, null)\r
-               SendMessage(oMsg1);\r
-       }\r
-       else\r
-       {\r
-               if(gsFirstPane!="")\r
-                       goMan.show(gsFirstPane);\r
-               else\r
-                       goMan.showById(0);\r
-       }\r
-}\r
-\r
-function setServerEnabled()\r
-{\r
-       gServerEnabled = true;\r
-}\r
-\r
-function loadData2(strFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(strFile);\r
-       else\r
-               loadData(strFile);\r
-}\r
-\r
-function addProject(bPreferXML,sXMLName,sHTMLName)\r
-{\r
-       var bLoadXML=bPreferXML;\r
-       if(!gbIE4&&!gbNav6&&!gbOpera7)\r
-               return;\r
-       if(gbIE4&&!gbIE5)\r
-               bLoadXML=false;\r
-       if (gbIE5&&!gbMac)\r
-               bLoadXML=true;\r
-       if(gbIE55||gbNav6)\r
-               bLoadXML=true;\r
-       if(gbOpera7)\r
-               bLoadXML=false;         \r
-       if(bLoadXML)\r
-               addProjectXML(sXMLName);\r
-       else\r
-               addProjectHTML(sHTMLName);\r
-}\r
-\r
-function addProjectHTML(sName)\r
-{\r
-       gbXML=false;\r
-       gsProjName=sName;\r
-}\r
-\r
-function addProjectXML(sName)\r
-{\r
-       gbXML=true;\r
-       gsProjName=sName;\r
-}\r
-\r
-function window_MyBunload()\r
-{\r
-       goMan.unload();\r
-       window_BUnload();\r
-}\r
-\r
-function putDataXML(xmlDoc,sdocPath)\r
-{\r
-       if(xmlDoc!=null)\r
-       {\r
-               var projectNode=xmlDoc.getElementsByTagName("project")[0];\r
-               if(projectNode)\r
-               {\r
-                       var aRProj=new Array();\r
-                       aRProj[0]=new Object();\r
-                       aRProj[0].sPPath=_getPath(sdocPath);\r
-                       var sLangId=projectNode.getAttribute("langid");\r
-                       if(sLangId)\r
-                       {\r
-                               aRProj[0].sLangId=sLangId;\r
-                       }\r
-                       var sDPath=projectNode.getAttribute("datapath");\r
-                       if(sDPath)\r
-                       {\r
-                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)\r
-                                       sDPath+="/";\r
-                               aRProj[0].sDPath=sDPath;\r
-                       }\r
-                       else\r
-                               aRProj[0].sDPath="";\r
-                       aRProj[0].sToc=projectNode.getAttribute("toc");\r
-                       aRProj[0].sIdx=projectNode.getAttribute("index");\r
-                       aRProj[0].sFts=projectNode.getAttribute("fts");\r
-                       aRProj[0].sGlo=projectNode.getAttribute("glossary");\r
-                       var RmtProject=projectNode.getElementsByTagName("remote");\r
-                       var nCount=1;\r
-                       for (var i=0;i<RmtProject.length;i++)\r
-                       {\r
-                               var sURL=RmtProject[i].getAttribute("url");\r
-                               if(sURL)\r
-                               {\r
-                                       if(sURL.lastIndexOf("/")!=sURL.length-1)\r
-                                               sURL+="/";\r
-                                       aRProj[nCount]=new Object();\r
-                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);\r
-                               }\r
-                       }\r
-                       putProjectInfo(aRProj);\r
-               }\r
-               else\r
-               {\r
-                       // on Netscape 6.0 under some situation the xml file cannot be loaded.\r
-                       // so we use pure html instead.\r
-                       if (gnChecked == 0)\r
-                               setTimeout("redirectToList();",100);\r
-                       else\r
-                       {\r
-                               gnChecked++;\r
-                               setTimeout("checkRemoteProject();", 1);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function onLoadXMLError()\r
-{\r
-       gnChecked++;\r
-       setTimeout("checkRemoteProject();", 1);\r
-}\r
-\r
-function redirectToList()\r
-{\r
-       if(gbReDirectThis)\r
-               document.location=gsNavReDirect;\r
-       else\r
-               parent.document.location=gsNavReDirect;\r
-}\r
-\r
-function putProjectInfo(aRProj)\r
-{\r
-       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))\r
-       {\r
-               if(gnChecked!=0)\r
-               {\r
-                       if(aRProj[0].sLangId!=gaProj[0].sLangId)\r
-                               alert("The merged Help system "+aRProj[0].sPPath+" is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system.");\r
-               }\r
-               gaProj[gnChecked]=aRProj[0];\r
-               for(var i=1;i<aRProj.length;i++)\r
-               {\r
-                       var bFound=false;\r
-                       for(var j=0;j<gaProj.length;j++)\r
-                       {\r
-                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))\r
-                               {\r
-                                       bFound=true;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       if(!bFound)\r
-                       {\r
-                               gaProj[gaProj.length]=aRProj[i];\r
-                       }\r
-               }\r
-               gnChecked++;\r
-               setTimeout("checkRemoteProject();", 1);\r
-       }\r
-       else\r
-               alert("Could not load correctly, please click Refresh.");\r
-}\r
-\r
-function isSamePath(sPath1,sPath2)\r
-{\r
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
-}\r
-\r
-function checkRemoteProject()\r
-{\r
-       if(gaProj.length!=gnChecked)\r
-       {\r
-               setTimeout("cancelProj("+gnChecked+");",10000);\r
-               loadData2(gaProj[gnChecked].sPPath+gsProjName);\r
-       }\r
-       else{\r
-               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);\r
-               gbReady=true;\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function cancelProj(i)\r
-{\r
-       if(i==gnChecked)\r
-       {\r
-               gnChecked++;\r
-               setTimeout("checkRemoteProject();", 1);\r
-       }       \r
-}\r
-\r
-function window_resize()\r
-{\r
-       for(var i=0;i<goMan.maCom.length;i++)\r
-       {\r
-               var oFrame=getElement(goMan.maCom[i].msIFrameId);\r
-               if(oFrame)\r
-               {\r
-                       oFrame.style.height=document.body.clientHeight;\r
-                       oFrame.style.width=document.body.clientWidth;\r
-               }\r
-       }\r
-       window_resize2();\r
-}\r
-\r
-function window_resize2()\r
-{\r
-       if(document.body)\r
-       {\r
-               if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
-               {\r
-                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_GETPROJINFO);\r
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-       UnRegisterListener2(this,WH_MSG_GETPANEINFO);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_GETPROJINFO)\r
-               {\r
-                       if(gbReady)\r
-                       {\r
-                               var oProj=new Object();\r
-                               oProj.aProj=gaProj;\r
-                               oProj.bXML=gbXML;\r
-                               oMsg.oParam=oProj;\r
-                       }\r
-                       else\r
-                               return false;\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("toc");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWIDX)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("idx");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWFTS)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("fts");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       if(goMan)\r
-                               goMan.show("glo");\r
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");\r
-                       SendMessage(onMsg);\r
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam=goMan.getCurrent();\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_GETPROJINFO);\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWIDX);\r
-       RegisterListener2(this,WH_MSG_SHOWFTS);\r
-       RegisterListener2(this,WH_MSG_SHOWGLO);\r
-       RegisterListener2(this,WH_MSG_GETPANEINFO);\r
-\r
-       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)||gbOpera7)\r
-       {\r
-               window.onresize=window_resize;\r
-       }\r
-       else if(gbIE4)\r
-       {\r
-               window.onresize=window_resize2;\r
-       }\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_MyBunload;\r
-       window.onunload=window_unload;\r
-       gbWhPHost=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
+//     WebHelp 5.10.005
+var gaProj=new Array();
+var gnChecked=0;
+var gsProjName="";
+var gbReady=false;
+var goMan=null;
+var gbXML=false;
+var gsFirstPane="";
+var gServerEnabled=false;
+var gsPath="";
+var gbWhPHost=false;
+var goDiv = null;
+var gsHTML = "";
+
+if (navigator.currentNavPen)
+       gsFirstPane = navigator.currentNavPen;
+
+
+function delayLoad()
+{
+       if (goDiv&&gsHTML)
+       {
+               goDiv.innerHTML=gsHTML;
+               goDiv=null;
+               gsHTML="";
+       }
+}
+
+function whCom(sName,sComFile)
+{
+       this.msName=sName;
+       this.msDivId=sName+"Div";
+       this.msIFrameId=sName+"IFrame";
+       this.msComFile=sComFile;
+       this.mbloaded=false;
+       this.mbShow=false;
+       this.show=function(bShow)
+       {
+               if(this.mbShow!=bShow)
+               {
+                       if(bShow&&!this.mbloaded)
+                       {
+                               this.load();
+                       }
+
+                       var oDiv=getElement(this.msDivId);
+                       if(oDiv)
+                       {
+                               if(gbIE55||(gbIE5&&gbMac))
+                               {
+                                       var oIframe=getElement(this.msIFrameId);
+                                       if(oIframe)
+                                       {
+                                               if(bShow)
+                                               {
+                                                       oDiv.style.zIndex=3;
+                                                       if(oIframe!=null)
+                                                       {
+                                                               oIframe.style.zIndex=3;
+                                                               if (!gbIE55)
+                                                                       oIframe.style.visibility="visible";
+                                                       }
+                                               }
+                                               else
+                                               {
+                                                       oDiv.style.zIndex=2;
+                                                       if(oIframe!=null)
+                                                       {
+                                                               oIframe.style.zIndex=2;
+                                                               if (!gbIE55)
+                                                                       oIframe.style.visibility="hidden";
+                                                       }
+                                               }
+                                       }
+                               }
+                               if (!gbIE55)
+                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';
+                               this.mbShow=bShow;
+                       }
+
+               }
+       }
+       this.load=function()
+       {
+               if(!this.mbloaded)
+               {
+                       if(this.msComFile.length>0){
+                               var strFile= _getFullPath(getPath(), this.msComFile);
+                               var oDiv=getElement(this.msDivId);
+                               if(oDiv){
+                                       if(gbIE4||gbOpera7){
+                                               var nIFrameHeight=oDiv.style.pixelHeight;
+                                               var nIFrameWidth=oDiv.style.pixelWidth;
+                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";
+                                               if(gbMac){
+                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";
+                                               }else{
+                                                       sHTML+="100%; height:100%;\"></IFRAME>";
+                                               }
+                                               oDiv.innerHTML=sHTML;
+                                       }else if(gbNav6){
+                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:100%;\"></IFRAME>";
+                                               goDiv = oDiv;
+                                               setTimeout("delayLoad()", 100);
+                                       }
+                                       this.mbloaded=true;
+                               }
+                       }
+               }
+       }
+       this.unload=function()
+       {
+               var oDiv=getElement(this.msDivId);
+               if(oDiv)
+                       oDiv.innerHTML="";
+       }
+       this.getDivHTML=function()
+       {
+               var sHTML="";
+               if(gbMac&&gbIE4)
+                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";
+               else if(gbIE5)
+                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";
+               else if(gbIE4||gbWindows)
+                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
+               else
+                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
+               sHTML+="</DIV>";
+               return sHTML;
+       }
+}  
+
+function whComMan()
+{
+       this.sName="";
+       this.maCom=new Array();
+       this.addCom=function(sName,sComFile)
+       {
+               var owhCom=new whCom(sName,sComFile);
+               this.maCom[this.maCom.length]=owhCom;
+       }
+       this.init=function()
+       {
+               var sHTML="";
+               for(var i=0;i<this.maCom.length;i++)
+               {
+                       sHTML+=this.maCom[i].getDivHTML();
+               }
+               document.body.insertAdjacentHTML("beforeEnd",sHTML);
+
+       }
+       this.showById=function(nId)
+       {
+               for(var s=0;s<this.maCom.length;s++)
+               {
+                       if(s!==nId)
+                               this.maCom[s].show(false);
+               }
+               this.maCom[nId].show(true);
+       }
+       this.show=function(sName)
+       {
+               navigator.currentNavPen = sName;
+               var bFound=false;
+               for(var i=0;i<this.maCom.length;i++)
+               {
+                       if(sName==this.maCom[i].msName)
+                       {
+                               bFound=true;
+                               break;
+                       }
+               }
+               if(bFound)
+               {
+                       this.showById(i);
+                       this.sName=sName;
+               }
+       }
+       this.unload=function()
+       {
+               for(var i=0;i<this.maCom.length;i++)
+               {
+                       this.maCom[i].unload();
+               }               
+       }
+       this.getCurrent=function()
+       {
+               return this.sName;
+       }
+}
+
+function getPath()
+{
+       if(gsPath=="")
+       {
+               gsPath=location.href;
+               gsPath=_replaceSlash(gsPath);
+               var nPosFile=gsPath.lastIndexOf("/");
+               gsPath=gsPath.substring(0,nPosFile+1);
+       }
+       return gsPath;
+}
+
+goMan=new whComMan();
+function addPane(sName,sFileName)
+{
+       var oParam=new Object();
+       oParam.sName=sName;
+       var oMsg=new whMessage(WH_MSG_GETPANE, this, 1, oParam);
+       if (SendMessage(oMsg))
+       {
+               if (oMsg.oParam.bEnable)
+                       goMan.addCom(sName,sFileName);
+       }
+       else
+               goMan.addCom(sName,sFileName);  
+}
+
+function setShowPane(sName, bForce)
+{
+       if ((gsFirstPane == "") || bForce)
+       {
+               var oMsg=new whMessage(WH_MSG_GETDEFPANE, this, 1, null);
+               if (SendMessage(oMsg))
+               {
+                       if (oMsg.oParam)
+                               gsFirstPane = oMsg.oParam;
+                       else
+                               gsFirstPane=sName;
+               }
+               else
+                       gsFirstPane=sName;
+       }
+}
+
+function window_OnLoad()
+{
+       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
+       var bHidePane=false;
+       if (SendMessage(oMsg))
+       {
+               if(oMsg.oParam>0)
+               {
+                       if(oMsg.oParam==1)
+                               gsFirstPane="toc";
+                       else if(oMsg.oParam==2)
+                               gsFirstPane="idx";
+                       else if(oMsg.oParam==3)
+                               gsFirstPane="fts";
+                       else if(oMsg.oParam==4)
+                               gsFirstPane="glo";
+               }
+               else if(oMsg.oParam==0)
+               {
+                       bHidePane=true;
+               }
+       }
+       goMan.init();
+       if(gsProjName!="")                      
+               loadData2(gsProjName);  
+       if (bHidePane)
+       {
+               gsFirstPane="";
+               var oMsg1=new whMessage(WH_MSG_HIDEPANE, this, 1, null)
+               SendMessage(oMsg1);
+       }
+       else
+       {
+               if(gsFirstPane!="")
+                       goMan.show(gsFirstPane);
+               else
+                       goMan.showById(0);
+       }
+}
+
+function setServerEnabled()
+{
+       gServerEnabled = true;
+}
+
+function loadData2(strFile)
+{
+       if(gbXML)
+               loadDataXML(strFile);
+       else
+               loadData(strFile);
+}
+
+function addProject(bPreferXML,sXMLName,sHTMLName)
+{
+       var bLoadXML=bPreferXML;
+       if(!gbIE4&&!gbNav6&&!gbOpera7)
+               return;
+       if(gbIE4&&!gbIE5)
+               bLoadXML=false;
+       if (gbIE5&&!gbMac)
+               bLoadXML=true;
+       if(gbIE55||gbNav6)
+               bLoadXML=true;
+       if(gbOpera7)
+               bLoadXML=false;         
+       if(bLoadXML)
+               addProjectXML(sXMLName);
+       else
+               addProjectHTML(sHTMLName);
+}
+
+function addProjectHTML(sName)
+{
+       gbXML=false;
+       gsProjName=sName;
+}
+
+function addProjectXML(sName)
+{
+       gbXML=true;
+       gsProjName=sName;
+}
+
+function window_MyBunload()
+{
+       goMan.unload();
+       window_BUnload();
+}
+
+function putDataXML(xmlDoc,sdocPath)
+{
+       if(xmlDoc!=null)
+       {
+               var projectNode=xmlDoc.getElementsByTagName("project")[0];
+               if(projectNode)
+               {
+                       var aRProj=new Array();
+                       aRProj[0]=new Object();
+                       aRProj[0].sPPath=_getPath(sdocPath);
+                       var sLangId=projectNode.getAttribute("langid");
+                       if(sLangId)
+                       {
+                               aRProj[0].sLangId=sLangId;
+                       }
+                       var sDPath=projectNode.getAttribute("datapath");
+                       if(sDPath)
+                       {
+                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)
+                                       sDPath+="/";
+                               aRProj[0].sDPath=sDPath;
+                       }
+                       else
+                               aRProj[0].sDPath="";
+                       aRProj[0].sToc=projectNode.getAttribute("toc");
+                       aRProj[0].sIdx=projectNode.getAttribute("index");
+                       aRProj[0].sFts=projectNode.getAttribute("fts");
+                       aRProj[0].sGlo=projectNode.getAttribute("glossary");
+                       var RmtProject=projectNode.getElementsByTagName("remote");
+                       var nCount=1;
+                       for (var i=0;i<RmtProject.length;i++)
+                       {
+                               var sURL=RmtProject[i].getAttribute("url");
+                               if(sURL)
+                               {
+                                       if(sURL.lastIndexOf("/")!=sURL.length-1)
+                                               sURL+="/";
+                                       aRProj[nCount]=new Object();
+                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);
+                               }
+                       }
+                       putProjectInfo(aRProj);
+               }
+               else
+               {
+                       // on Netscape 6.0 under some situation the xml file cannot be loaded.
+                       // so we use pure html instead.
+                       if (gnChecked == 0)
+                               setTimeout("redirectToList();",100);
+                       else
+                       {
+                               gnChecked++;
+                               setTimeout("checkRemoteProject();", 1);
+                       }
+               }
+       }
+}
+
+function onLoadXMLError()
+{
+       gnChecked++;
+       setTimeout("checkRemoteProject();", 1);
+}
+
+function redirectToList()
+{
+       if(gbReDirectThis)
+               document.location=gsNavReDirect;
+       else
+               parent.document.location=gsNavReDirect;
+}
+
+function putProjectInfo(aRProj)
+{
+       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))
+       {
+               if(gnChecked!=0)
+               {
+                       if(aRProj[0].sLangId!=gaProj[0].sLangId)
+                               alert("The merged Help system "+aRProj[0].sPPath+" is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system.");
+               }
+               gaProj[gnChecked]=aRProj[0];
+               for(var i=1;i<aRProj.length;i++)
+               {
+                       var bFound=false;
+                       for(var j=0;j<gaProj.length;j++)
+                       {
+                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))
+                               {
+                                       bFound=true;
+                                       break;
+                               }
+                       }
+                       if(!bFound)
+                       {
+                               gaProj[gaProj.length]=aRProj[i];
+                       }
+               }
+               gnChecked++;
+               setTimeout("checkRemoteProject();", 1);
+       }
+       else
+               alert("Could not load correctly, please click Refresh.");
+}
+
+function isSamePath(sPath1,sPath2)
+{
+       return (sPath1.toLowerCase()==sPath2.toLowerCase());
+}
+
+function checkRemoteProject()
+{
+       if(gaProj.length!=gnChecked)
+       {
+               setTimeout("cancelProj("+gnChecked+");",10000);
+               loadData2(gaProj[gnChecked].sPPath+gsProjName);
+       }
+       else{
+               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);
+               gbReady=true;
+               SendMessage(oMsg);
+       }
+}
+
+function cancelProj(i)
+{
+       if(i==gnChecked)
+       {
+               gnChecked++;
+               setTimeout("checkRemoteProject();", 1);
+       }       
+}
+
+function window_resize()
+{
+       for(var i=0;i<goMan.maCom.length;i++)
+       {
+               var oFrame=getElement(goMan.maCom[i].msIFrameId);
+               if(oFrame)
+               {
+                       oFrame.style.height=document.body.clientHeight;
+                       oFrame.style.width=document.body.clientWidth;
+               }
+       }
+       window_resize2();
+}
+
+function window_resize2()
+{
+       if(document.body)
+       {
+               if(document.body.clientWidth > 1 && document.body.clientHeight>1)
+               {
+                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);
+                       SendMessage(oMsg);
+               }
+       }
+}
+
+function window_unload()
+{
+       UnRegisterListener2(this,WH_MSG_GETPROJINFO);
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);
+       UnRegisterListener2(this,WH_MSG_SHOWIDX);
+       UnRegisterListener2(this,WH_MSG_SHOWFTS);
+       UnRegisterListener2(this,WH_MSG_SHOWGLO);
+       UnRegisterListener2(this,WH_MSG_GETPANEINFO);
+}
+
+function onSendMessage(oMsg)
+{
+       if(oMsg)
+       {
+               var nMsgId=oMsg.nMessageId;
+               if(nMsgId==WH_MSG_GETPROJINFO)
+               {
+                       if(gbReady)
+                       {
+                               var oProj=new Object();
+                               oProj.aProj=gaProj;
+                               oProj.bXML=gbXML;
+                               oMsg.oParam=oProj;
+                       }
+                       else
+                               return false;
+               }
+               else if(nMsgId==WH_MSG_SHOWTOC)
+               {
+                       if(goMan)
+                               goMan.show("toc");
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
+                       SendMessage(onMsg);
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                       SendMessage(onMsg);
+               }
+               else if(nMsgId==WH_MSG_SHOWIDX)
+               {
+                       if(goMan)
+                               goMan.show("idx");
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
+                       SendMessage(onMsg);
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                       SendMessage(onMsg);
+               }
+               else if(nMsgId==WH_MSG_SHOWFTS)
+               {
+                       if(goMan)
+                               goMan.show("fts");
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
+                       SendMessage(onMsg);
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                       SendMessage(onMsg);
+               }
+               else if(nMsgId==WH_MSG_SHOWGLO)
+               {
+                       if(goMan)
+                               goMan.show("glo");
+                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
+                       SendMessage(onMsg);
+                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
+                       SendMessage(onMsg);
+               }
+               else if(nMsgId==WH_MSG_GETPANEINFO)
+               {
+                       oMsg.oParam=goMan.getCurrent();
+                       return false;
+               }
+       }
+       return true;
+}
+
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
+{
+       RegisterListener2(this,WH_MSG_GETPROJINFO);
+       RegisterListener2(this,WH_MSG_SHOWTOC);
+       RegisterListener2(this,WH_MSG_SHOWIDX);
+       RegisterListener2(this,WH_MSG_SHOWFTS);
+       RegisterListener2(this,WH_MSG_SHOWGLO);
+       RegisterListener2(this,WH_MSG_GETPANEINFO);
+
+       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)||gbOpera7)
+       {
+               window.onresize=window_resize;
+       }
+       else if(gbIE4)
+       {
+               window.onresize=window_resize2;
+       }
+       window.onload=window_OnLoad;
+       window.onbeforeunload=window_MyBunload;
+       window.onunload=window_unload;
+       gbWhPHost=true;
+}
+else
+       document.location.reload();
+
index 821daea24a7554f5eea4995753952abc6cb74270..2549c9a7cdf2c5ae2494624c8c3ed8c485494ab5 100755 (executable)
@@ -1,24 +1,24 @@
-<html>\r
-<head>\r
-<title>project description</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whproj.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-  setLangId("1033");\r
-  setDataPath("whdata");\r
-  addToc("whtoc.htm");\r
-\r
-  addFts("whfts.htm");\r
-  addGlo("whglo.htm");\r
-\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+<title>project description</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whproj.js"></script>
+<script language="javascript1.2">
+<!--
+  setLangId("1033");
+  setDataPath("whdata");
+  addToc("whtoc.htm");
+
+  addFts("whfts.htm");
+  addGlo("whglo.htm");
+
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index ae38fa9947f526527404eab3f5c59744078dfd13..7f607a4462766e5fc676c9dc40e138abd59105ac 100755 (executable)
@@ -1,85 +1,85 @@
-//     WebHelp 5.10.001\r
-var gaProj=new Array();\r
-\r
-gaProj[0]=new project("");\r
-\r
-function setLangId(sLangId)\r
-{\r
-       gaProj[0].sLangId=sLangId;\r
-}\r
-\r
-function setDataPath(sPath)\r
-{\r
-       if(sPath.length!=0)\r
-       {\r
-               if(sPath.lastIndexOf("/")!=sPath.length-1)\r
-                       sPath+="/";\r
-               gaProj[0].sDPath=sPath; \r
-       }\r
-       else\r
-               gaProj[0].sDPath="";\r
-}\r
-\r
-function addToc(sFile)\r
-{\r
-       gaProj[0].sToc=sFile;\r
-}\r
-\r
-function addIdx(sFile)\r
-{\r
-       gaProj[0].sIdx=sFile;\r
-}\r
-\r
-function addFts(sFile)\r
-{\r
-       gaProj[0].sFts=sFile;\r
-}\r
-\r
-function addGlo(sFile)\r
-{\r
-       gaProj[0].sGlo=sFile;\r
-}\r
-\r
-function addRemoteProject(sProjRelPath)\r
-{\r
-       if(sProjRelPath.lastIndexOf("/")!=sProjRelPath.length-1)\r
-               sProjRelPath+="/";\r
-       gaProj[gaProj.length]=new project(sProjRelPath);\r
-}\r
-\r
-function project(sPPath)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sLangId="";\r
-       this.sDPath="";\r
-       this.sToc="";\r
-       this.sIdx="";\r
-       this.sFts="";\r
-       this.sGlo="";\r
-}\r
-\r
-window.onload=window_OnLoad;\r
-\r
-function window_OnLoad()\r
-{\r
-       gsName=document.location.href;\r
-       gsName=_replaceSlash(gsName);\r
-       var nPos=gsName.lastIndexOf("/");\r
-       if(nPos!=-1)\r
-               gaProj[0].sPPath=gsName.substring(0,nPos+1);\r
-       else\r
-               alert("Error in Loading navigation component. Please regenerate WebHelp.");\r
-       patchPath(gaProj);\r
-       if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")\r
-       {\r
-               parent.putProjectInfo(gaProj);\r
-       }\r
-}\r
-\r
-function patchPath(aProj)\r
-{\r
-       for(var i=1;i<aProj.length;i++)\r
-       {\r
-               aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);\r
-       }\r
+//     WebHelp 5.10.001
+var gaProj=new Array();
+
+gaProj[0]=new project("");
+
+function setLangId(sLangId)
+{
+       gaProj[0].sLangId=sLangId;
+}
+
+function setDataPath(sPath)
+{
+       if(sPath.length!=0)
+       {
+               if(sPath.lastIndexOf("/")!=sPath.length-1)
+                       sPath+="/";
+               gaProj[0].sDPath=sPath; 
+       }
+       else
+               gaProj[0].sDPath="";
+}
+
+function addToc(sFile)
+{
+       gaProj[0].sToc=sFile;
+}
+
+function addIdx(sFile)
+{
+       gaProj[0].sIdx=sFile;
+}
+
+function addFts(sFile)
+{
+       gaProj[0].sFts=sFile;
+}
+
+function addGlo(sFile)
+{
+       gaProj[0].sGlo=sFile;
+}
+
+function addRemoteProject(sProjRelPath)
+{
+       if(sProjRelPath.lastIndexOf("/")!=sProjRelPath.length-1)
+               sProjRelPath+="/";
+       gaProj[gaProj.length]=new project(sProjRelPath);
+}
+
+function project(sPPath)
+{
+       this.sPPath=sPPath;
+       this.sLangId="";
+       this.sDPath="";
+       this.sToc="";
+       this.sIdx="";
+       this.sFts="";
+       this.sGlo="";
+}
+
+window.onload=window_OnLoad;
+
+function window_OnLoad()
+{
+       gsName=document.location.href;
+       gsName=_replaceSlash(gsName);
+       var nPos=gsName.lastIndexOf("/");
+       if(nPos!=-1)
+               gaProj[0].sPPath=gsName.substring(0,nPos+1);
+       else
+               alert("Error in Loading navigation component. Please regenerate WebHelp.");
+       patchPath(gaProj);
+       if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")
+       {
+               parent.putProjectInfo(gaProj);
+       }
+}
+
+function patchPath(aProj)
+{
+       for(var i=1;i<aProj.length;i++)
+       {
+               aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);
+       }
 }
\ No newline at end of file
index 4bd4a8de71ff01411c1c7bc32c798c1009003317..10e2571f600a74526d9ef81a5997fffa849734bc 100755 (executable)
@@ -1,3 +1,3 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<project langid="1033" datapath="whxdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >\r
-</project>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<project langid="1033" datapath="whxdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >
+</project>
index d0ee29813dc5e31f7f977f7ac1e69f025cde9657..8ea8b6819abd1177fd89bb3264bb8bc4f501222c 100755 (executable)
@@ -1,74 +1,74 @@
-//     WebHelp 5.10.001\r
-var gbInited=false;\r
-var gWndStubPage=null;\r
-function getStubPage()\r
-{\r
-       if(!gbInited)\r
-       {\r
-               gWndStubPage=getStubPage_inter(window);\r
-               gbInited=true;\r
-       }\r
-       return gWndStubPage;\r
-}\r
-\r
-function getStubPage_inter(wCurrent)\r
-{\r
-       if(null==wCurrent.parent||wCurrent.parent==wCurrent)\r
-               return null;\r
-\r
-       if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)\r
-               return wCurrent.parent;\r
-       else\r
-               if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)\r
-                       return getStubPage_inter(wCurrent.parent);\r
-               else\r
-                       return null;\r
-}\r
-\r
-function RegisterListener(framename,nMessageId)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this)\r
-               return wSP.RegisterListener(framename,nMessageId);\r
-       else\r
-               return false;\r
-}\r
-\r
-function RegisterListener2(oframe,nMessageId)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this)\r
-               return wSP.RegisterListener2(oframe,nMessageId);\r
-       else\r
-               return false;\r
-}\r
-\r
-function UnRegisterListener2(oframe,nMessageId)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this&&wSP.UnRegisterListener2)\r
-               return wSP.UnRegisterListener2(oframe,nMessageId);\r
-       else\r
-               return false;\r
-}\r
-\r
-function SendMessage(oMessage)\r
-{\r
-       var wSP=getStubPage();\r
-       if(wSP&&wSP!=this&&wSP.SendMessage)\r
-               return wSP.SendMessage(oMessage);\r
-       else\r
-               return false;\r
-}\r
-\r
-var gbWhProxy=true;\r
-\r
-var gbPreview=false;\r
-gbPreview=false; \r
-if (gbPreview)\r
-       document.oncontextmenu=contextMenu;\r
-\r
-function contextMenu()\r
-{\r
-       return false;\r
-}\r
+//     WebHelp 5.10.001
+var gbInited=false;
+var gWndStubPage=null;
+function getStubPage()
+{
+       if(!gbInited)
+       {
+               gWndStubPage=getStubPage_inter(window);
+               gbInited=true;
+       }
+       return gWndStubPage;
+}
+
+function getStubPage_inter(wCurrent)
+{
+       if(null==wCurrent.parent||wCurrent.parent==wCurrent)
+               return null;
+
+       if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)
+               return wCurrent.parent;
+       else
+               if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)
+                       return getStubPage_inter(wCurrent.parent);
+               else
+                       return null;
+}
+
+function RegisterListener(framename,nMessageId)
+{
+       var wSP=getStubPage();
+       if(wSP&&wSP!=this)
+               return wSP.RegisterListener(framename,nMessageId);
+       else
+               return false;
+}
+
+function RegisterListener2(oframe,nMessageId)
+{
+       var wSP=getStubPage();
+       if(wSP&&wSP!=this)
+               return wSP.RegisterListener2(oframe,nMessageId);
+       else
+               return false;
+}
+
+function UnRegisterListener2(oframe,nMessageId)
+{
+       var wSP=getStubPage();
+       if(wSP&&wSP!=this&&wSP.UnRegisterListener2)
+               return wSP.UnRegisterListener2(oframe,nMessageId);
+       else
+               return false;
+}
+
+function SendMessage(oMessage)
+{
+       var wSP=getStubPage();
+       if(wSP&&wSP!=this&&wSP.SendMessage)
+               return wSP.SendMessage(oMessage);
+       else
+               return false;
+}
+
+var gbWhProxy=true;
+
+var gbPreview=false;
+gbPreview=false; 
+if (gbPreview)
+       document.oncontextmenu=contextMenu;
+
+function contextMenu()
+{
+       return false;
+}
index f3f010a3f6c823d1a7403791d26e248df4d8043d..b79fae0147f3f4568eb85b357d585dc79a3bebfb 100755 (executable)
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<resource>\r
-<item name="Prev" value="&lt;&lt;" />\r
-<item name="Hide" value="Hide" />\r
-<item name="SyncTocTooltip" value="Sync TOC" />\r
-<item name="InTopicSearchBtnText" value="Go" />\r
-<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />\r
-<item name="Done" value="Done" />\r
-<item name="Logo/Author" value="Powered By" />\r
-<item name="MergeError1" value="The merged Help system" />\r
-<item name="JS_alert_cantLoadProject" value="Can't load project:" />\r
-<item name="Next" value="&gt;&gt;" />\r
-<item name="SyncToc" value="SyncToc" />\r
-<item name="MergeError2" value="is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system." />\r
-<item name="nls_body_instruction" value="Enter your question in the text box above, then click GO." />\r
-<item name="ToolBarSearchBtnText" value="Go" />\r
-<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />\r
-<item name="Hide_Navigation_Component" value="Hide Navigation Component" />\r
-<item name="FtsBtnText" value="Go" />\r
-<item name="TopicsFound" value="Topics Found" />\r
-<item name="LoadingContentsData" value="Loading, click here to cancel..." />\r
-<item name="Definition" value="Definition:" />\r
-<item name="CompletingContents" value="Completing Contents..." />\r
-<item name="Seperate" value="|" />\r
-<item name="GeneratedBy" value="Generated by" />\r
-<item name="PoweredBy" value="Powered by" />\r
-<item name="IndexAlphabetBookmarks" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ" />\r
-<item name="Contents" value="Contents" />\r
-<item name="IndexSelectTopicLabel" value="Select a topic, then click Display" />\r
-<item name="Disabled Prev" value="&lt;&lt;" />\r
-<item name="Glossary" value="Glossary" />\r
-<item name="Search" value="Search" />\r
-<item name="CantSearch" value="Cannot search for that phrase." />\r
-<item name="LoadingIndex" value="Loading Index..." />\r
-<item name="LoadingData" value="Loading data, please wait..." />\r
-<item name="Show_Navigation_Component" value="Show Navigation Component" />\r
-<item name="Book" value="Book" />\r
-<item name="Disabled Next" value="&gt;&gt;" />\r
-<item name="nls_body_empty" value="Sorry, we were unable to find a good answer for your question." />\r
-<item name="nls_button_go_hint" value="Go Search" />\r
-<item name="Find" value="Find" />\r
-<item name="CantOpenURLorFile" value="Can't open URL or file" />\r
-<item name="Print" value="Print" />\r
-<item name="About" value="About" />\r
-<item name="Author" value="Author" />\r
-<item name="IndexSelectTopicTitle" value="Select a Topic" />\r
-<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />\r
-<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />\r
-<item name="LoadingTOCItem" value="Loading Table of Contents:" />\r
-<item name="Display" value="Display" />\r
-<item name="Cancel" value="Cancel" />\r
-<item name="IndexSelectTopicError" value="Please select a topic." />\r
-<item name="nls_edit_label" value="Type in your question:" />\r
-<item name="SearchLabel" value="Search" />\r
-<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />\r
-<item name="NextTooltip" value="Next Topic" />\r
-<item name="JS_alert_colorlimitation" value="WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors." />\r
-<item name="TopicsNotFound" value="No Topics Found." />\r
-<item name="Show" value="Show" />\r
-<item name="PreTooltip" value="Previous Topic" />\r
-<item name="SearchPrompt" value="- Search -" />\r
-<item name="IndexBtnText" value="Go" />\r
-<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />\r
-<item name="LoadingContents" value="Loading contents, please wait..." />\r
-<item name="Term" value="Term:" />\r
-<item name="WebSearchButton" value="WebSearch" />\r
-<item name="Remote_Page" value="Remote Page" />\r
-<item name="WebSearch" value="WebSearch" />\r
-<item name="LoadingFTS" value="Reading Search Data..." />\r
-<item name="Index" value="Index" />\r
-<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />\r
-<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />\r
-<item name="IndexInputPrompt" value="Type in the keyword to find:" />\r
-<item name="Page" value="Page" />\r
-<item name="SuggestViewNoFrameMsg2" value="hyperlink." />\r
-<item name="nls_button_go_text" value="Go" />\r
-<item name="Searching" value="Searching..." />\r
-\r
-  <item name="English"   value="" />\r
-  <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />\r
-\r
-  <panes show="0">\r
-    <toc />\r
-    <fts />\r
-    <glossary />\r
-  </panes>\r
-\r
-  <stopwords>\r
-    <word name="a" />\r
-    <word name="about" />\r
-    <word name="after" />\r
-    <word name="against" />\r
-    <word name="all" />\r
-    <word name="also" />\r
-    <word name="among" />\r
-    <word name="an" />\r
-    <word name="and" />\r
-    <word name="are" />\r
-    <word name="as" />\r
-    <word name="at" />\r
-    <word name="be" />\r
-    <word name="became" />\r
-    <word name="because" />\r
-    <word name="been" />\r
-    <word name="between" />\r
-    <word name="but" />\r
-    <word name="by" />\r
-    <word name="can" />\r
-    <word name="come" />\r
-    <word name="do" />\r
-    <word name="during" />\r
-    <word name="each" />\r
-    <word name="early" />\r
-    <word name="for" />\r
-    <word name="form" />\r
-    <word name="found" />\r
-    <word name="from" />\r
-    <word name="had" />\r
-    <word name="has" />\r
-    <word name="have" />\r
-    <word name="he" />\r
-    <word name="her" />\r
-    <word name="his" />\r
-    <word name="however" />\r
-    <word name="in" />\r
-    <word name="include" />\r
-    <word name="into" />\r
-    <word name="is" />\r
-    <word name="it" />\r
-    <word name="its" />\r
-    <word name="late" />\r
-    <word name="later" />\r
-    <word name="made" />\r
-    <word name="many" />\r
-    <word name="may" />\r
-    <word name="me" />\r
-    <word name="med" />\r
-    <word name="more" />\r
-    <word name="most" />\r
-    <word name="near" />\r
-    <word name="no" />\r
-    <word name="non" />\r
-    <word name="not" />\r
-    <word name="of" />\r
-    <word name="on" />\r
-    <word name="only" />\r
-    <word name="or" />\r
-    <word name="other" />\r
-    <word name="over" />\r
-    <word name="several" />\r
-    <word name="she" />\r
-    <word name="some" />\r
-    <word name="such" />\r
-    <word name="than" />\r
-    <word name="that" />\r
-    <word name="the" />\r
-    <word name="their" />\r
-    <word name="then" />\r
-    <word name="there" />\r
-    <word name="these" />\r
-    <word name="they" />\r
-    <word name="this" />\r
-    <word name="through" />\r
-    <word name="to" />\r
-    <word name="under" />\r
-    <word name="until" />\r
-    <word name="use" />\r
-    <word name="was" />\r
-    <word name="we" />\r
-    <word name="were" />\r
-    <word name="when" />\r
-    <word name="where" />\r
-    <word name="which" />\r
-    <word name="who" />\r
-    <word name="with" />\r
-    <word name="you" />\r
-  </stopwords>\r
-\r
-  <stems>\r
-    <stem name="ed" />\r
-    <stem name="es" />\r
-    <stem name="er" />\r
-    <stem name="e" />\r
-    <stem name="s" />\r
-    <stem name="ingly" />\r
-    <stem name="ing" />\r
-    <stem name="ly" />\r
-  </stems>\r
-\r
-       <paneskin>\r
-               <background color="#ffffff" img="" />\r
-               <font name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
-               <toc>\r
-                       <background color="#ffffff" img="" />\r
-                       <icons>\r
-                               <book open="wht_toc2.gif" close="wht_toc1.gif" />\r
-                               <item  local="wht_toc3.gif" remote="wht_toc4.gif" />\r
-                               <newbook open="" close="" />\r
-                               <newitem  local="" remote="" />\r
-                       </icons>\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </toc>\r
-               <index>\r
-                       <form>\r
-                               <fonts>\r
-                                       <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
-                               </fonts>\r
-                               <button normal="" hover="" />\r
-                               <editwith value="20" />\r
-                       </form>\r
-                       <background color="#ffffff" img="" />\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                               <empty name="" size="8pt" color="" style="" weight="" decoration="" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </index>\r
-               <fts>\r
-                       <form>\r
-                               <fonts>\r
-                                       <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" />\r
-                               </fonts>\r
-                               <button normal="" hover="" />\r
-                               <editwith value="20" />\r
-                       </form>\r
-                       <background color="#ffffff" img="" />\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                               <error name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </fts>\r
-               <glossary>\r
-                       <background color="#ffffff" img="" />\r
-                       <fonts>\r
-                               <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" />\r
-                               <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" />\r
-                       </fonts>\r
-                       <activebackgroundcolor attr="#c0c0c0" />\r
-                       <margin attr="" />\r
-                       <indent attr="" />\r
-               </glossary>\r
-       </paneskin>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<resource>
+<item name="Prev" value="&lt;&lt;" />
+<item name="Hide" value="Hide" />
+<item name="SyncTocTooltip" value="Sync TOC" />
+<item name="InTopicSearchBtnText" value="Go" />
+<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />
+<item name="Done" value="Done" />
+<item name="Logo/Author" value="Powered By" />
+<item name="MergeError1" value="The merged Help system" />
+<item name="JS_alert_cantLoadProject" value="Can't load project:" />
+<item name="Next" value="&gt;&gt;" />
+<item name="SyncToc" value="SyncToc" />
+<item name="MergeError2" value="is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system." />
+<item name="nls_body_instruction" value="Enter your question in the text box above, then click GO." />
+<item name="ToolBarSearchBtnText" value="Go" />
+<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />
+<item name="Hide_Navigation_Component" value="Hide Navigation Component" />
+<item name="FtsBtnText" value="Go" />
+<item name="TopicsFound" value="Topics Found" />
+<item name="LoadingContentsData" value="Loading, click here to cancel..." />
+<item name="Definition" value="Definition:" />
+<item name="CompletingContents" value="Completing Contents..." />
+<item name="Seperate" value="|" />
+<item name="GeneratedBy" value="Generated by" />
+<item name="PoweredBy" value="Powered by" />
+<item name="IndexAlphabetBookmarks" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ" />
+<item name="Contents" value="Contents" />
+<item name="IndexSelectTopicLabel" value="Select a topic, then click Display" />
+<item name="Disabled Prev" value="&lt;&lt;" />
+<item name="Glossary" value="Glossary" />
+<item name="Search" value="Search" />
+<item name="CantSearch" value="Cannot search for that phrase." />
+<item name="LoadingIndex" value="Loading Index..." />
+<item name="LoadingData" value="Loading data, please wait..." />
+<item name="Show_Navigation_Component" value="Show Navigation Component" />
+<item name="Book" value="Book" />
+<item name="Disabled Next" value="&gt;&gt;" />
+<item name="nls_body_empty" value="Sorry, we were unable to find a good answer for your question." />
+<item name="nls_button_go_hint" value="Go Search" />
+<item name="Find" value="Find" />
+<item name="CantOpenURLorFile" value="Can't open URL or file" />
+<item name="Print" value="Print" />
+<item name="About" value="About" />
+<item name="Author" value="Author" />
+<item name="IndexSelectTopicTitle" value="Select a Topic" />
+<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />
+<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />
+<item name="LoadingTOCItem" value="Loading Table of Contents:" />
+<item name="Display" value="Display" />
+<item name="Cancel" value="Cancel" />
+<item name="IndexSelectTopicError" value="Please select a topic." />
+<item name="nls_edit_label" value="Type in your question:" />
+<item name="SearchLabel" value="Search" />
+<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />
+<item name="NextTooltip" value="Next Topic" />
+<item name="JS_alert_colorlimitation" value="WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors." />
+<item name="TopicsNotFound" value="No Topics Found." />
+<item name="Show" value="Show" />
+<item name="PreTooltip" value="Previous Topic" />
+<item name="SearchPrompt" value="- Search -" />
+<item name="IndexBtnText" value="Go" />
+<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />
+<item name="LoadingContents" value="Loading contents, please wait..." />
+<item name="Term" value="Term:" />
+<item name="WebSearchButton" value="WebSearch" />
+<item name="Remote_Page" value="Remote Page" />
+<item name="WebSearch" value="WebSearch" />
+<item name="LoadingFTS" value="Reading Search Data..." />
+<item name="Index" value="Index" />
+<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />
+<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />
+<item name="IndexInputPrompt" value="Type in the keyword to find:" />
+<item name="Page" value="Page" />
+<item name="SuggestViewNoFrameMsg2" value="hyperlink." />
+<item name="nls_button_go_text" value="Go" />
+<item name="Searching" value="Searching..." />
+
+  <item name="English"   value="" />
+  <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />
+
+  <panes show="0">
+    <toc />
+    <fts />
+    <glossary />
+  </panes>
+
+  <stopwords>
+    <word name="a" />
+    <word name="about" />
+    <word name="after" />
+    <word name="against" />
+    <word name="all" />
+    <word name="also" />
+    <word name="among" />
+    <word name="an" />
+    <word name="and" />
+    <word name="are" />
+    <word name="as" />
+    <word name="at" />
+    <word name="be" />
+    <word name="became" />
+    <word name="because" />
+    <word name="been" />
+    <word name="between" />
+    <word name="but" />
+    <word name="by" />
+    <word name="can" />
+    <word name="come" />
+    <word name="do" />
+    <word name="during" />
+    <word name="each" />
+    <word name="early" />
+    <word name="for" />
+    <word name="form" />
+    <word name="found" />
+    <word name="from" />
+    <word name="had" />
+    <word name="has" />
+    <word name="have" />
+    <word name="he" />
+    <word name="her" />
+    <word name="his" />
+    <word name="however" />
+    <word name="in" />
+    <word name="include" />
+    <word name="into" />
+    <word name="is" />
+    <word name="it" />
+    <word name="its" />
+    <word name="late" />
+    <word name="later" />
+    <word name="made" />
+    <word name="many" />
+    <word name="may" />
+    <word name="me" />
+    <word name="med" />
+    <word name="more" />
+    <word name="most" />
+    <word name="near" />
+    <word name="no" />
+    <word name="non" />
+    <word name="not" />
+    <word name="of" />
+    <word name="on" />
+    <word name="only" />
+    <word name="or" />
+    <word name="other" />
+    <word name="over" />
+    <word name="several" />
+    <word name="she" />
+    <word name="some" />
+    <word name="such" />
+    <word name="than" />
+    <word name="that" />
+    <word name="the" />
+    <word name="their" />
+    <word name="then" />
+    <word name="there" />
+    <word name="these" />
+    <word name="they" />
+    <word name="this" />
+    <word name="through" />
+    <word name="to" />
+    <word name="under" />
+    <word name="until" />
+    <word name="use" />
+    <word name="was" />
+    <word name="we" />
+    <word name="were" />
+    <word name="when" />
+    <word name="where" />
+    <word name="which" />
+    <word name="who" />
+    <word name="with" />
+    <word name="you" />
+  </stopwords>
+
+  <stems>
+    <stem name="ed" />
+    <stem name="es" />
+    <stem name="er" />
+    <stem name="e" />
+    <stem name="s" />
+    <stem name="ingly" />
+    <stem name="ing" />
+    <stem name="ly" />
+  </stems>
+
+       <paneskin>
+               <background color="" img="" />
+               <font name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+               <toc>
+                       <background color="" img="" />
+                       <icons>
+                               <book open="whd_toc2.gif" close="whd_toc1.gif" />
+                               <item  local="whd_toc3.gif" remote="whd_toc4.gif" />
+                               <newbook open="whd_toc2.gif" close="whd_toc1.gif" />
+                               <newitem  local="whd_toc3.gif" remote="whd_toc4.gif" />
+                       </icons>
+                       <fonts>
+                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
+                       </fonts>
+                       <activebackgroundcolor attr="#cccccc" />
+                       <margin attr="0pt" />
+                       <indent attr="9pt" />
+               </toc>
+               <index>
+                       <form>
+                               <fonts>
+                                       <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                               </fonts>
+                               <button normal="" hover="" />
+                               <editwith value="28" />
+                       </form>
+                       <background color="" img="" />
+                       <fonts>
+                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
+                               <empty name="Arial" size="9pt" color="#666666" style="normal" weight="normal" decoration="none" />
+                       </fonts>
+                       <activebackgroundcolor attr="#cccccc" />
+                       <margin attr="0pt" />
+                       <indent attr="9pt" />
+               </index>
+               <fts>
+                       <form>
+                               <fonts>
+                                       <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                               </fonts>
+                               <button normal="" hover="" />
+                               <editwith value="28" />
+                       </form>
+                       <background color="" img="" />
+                       <fonts>
+                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
+                               <error name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                       </fonts>
+                       <activebackgroundcolor attr="#cccccc" />
+                       <margin attr="0pt" />
+                       <indent attr="9pt" />
+               </fts>
+               <glossary>
+                       <background color="" img="" />
+                       <fonts>
+                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
+                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
+                       </fonts>
+                       <activebackgroundcolor attr="#cccccc" />
+                       <margin attr="0pt" />
+                       <indent attr="9pt" />
+               </glossary>
+       </paneskin>
 </resource>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whrstart.ico b/doc/salome/gui/SMESH/whrstart.ico
deleted file mode 100755 (executable)
index bffcd6e..0000000
Binary files a/doc/salome/gui/SMESH/whrstart.ico and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whskin_banner.htm b/doc/salome/gui/SMESH/whskin_banner.htm
deleted file mode 100755 (executable)
index 39ed797..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>\r
-<head>\r
-<title>About WebHelp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<style type="text/css">\r
-<!--\r
-P {margin-left:5pt;margin-top:2pt;margin-bottom:2pt;font-size:8pt;font-family:Verdana,sans-serif;}\r
-P.disp {margin-left:5pt; margin-top:0pt;margin-bottom:10pt;font-size:7pt;font-family:Verdana,sans-serif;}\r
-//-->\r
-</style>\r
-<script>\r
-<!--\r
-// this block fix: HTML Dialog Ignores Size Parameters Without SCRIPT Block\r
-//-->\r
-</script> \r
-<body bgcolor="white" scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>\r
-<table border="0" cellpadding="0" cellspacing="0" width="350">\r
-  <tr>\r
-   <td><img src="wht_spac.gif" width="99" height="1" border="0"></td>\r
-   <td><img src="wht_spac.gif" width="251" height="1" border="0"></td>\r
-   <td><img src="wht_spac.gif" width="1" height="1" border="0"></td>\r
-  </tr>\r
-  <tr>\r
-   <td width="99" height="190" rowspan="3" valign="top"><img src="wht_abgw.jpg" border="0"></td>\r
-   <td width="211" height="60" valign="top"><img src="wht_abtw.jpg" border="0"></td>\r
-   <td><img src="wht_spac.gif" width="1" height="65" border="0"></td>\r
-  </tr>\r
-  <tr>\r
-   <td valign="top">\r
-               <p><a href="http://www.ehelp.com" target="_blank">Macromedia</a></p>\r
-               <p><nobr>Copyright Â© 1992 - 2004, eHelp Corporation</nobr></p>\r
-               <p>Author:&nbsp;eHelp Corporation</p>\r
-   </td>\r
-   <td><img src="wht_spac.gif" width="1" height="50" border="0"></td>\r
-  </tr>\r
-  <tr>\r
-   <td valign="top">\r
-               <p>Powered by:&nbsp;WebHelp 5.50\r
-               <br>Generated by:&nbsp;RoboHelp X5\r
-               <br><a class="tail" href="http://www.ehelp.com/webhelp1" target="_blank">www.ehelp.com</a></p>\r
-   </td>\r
-   <td><img src="wht_spac.gif" width="1" height="50" border="0"></td>\r
-  </tr>\r
-</table>\r
-</body>\r
-</html>
\ No newline at end of file
index 43439a8c7ffd2fea7964a4a6d475dd92d67e2d5f..a61ddecbea46a28dfdc92fafb26aa3d113f3618c 100755 (executable)
@@ -1,10 +1,10 @@
-<html>\r
-<head>\r
-<title>Blank Page</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body>\r
-</body>\r
-</html>\r
+<html>
+<head>
+<title>Blank Page</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<body>
+</body>
+</html>
diff --git a/doc/salome/gui/SMESH/whskin_frmset01.htm b/doc/salome/gui/SMESH/whskin_frmset01.htm
deleted file mode 100755 (executable)
index 3b8d56a..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-\r
-<html>\r
-<head>\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!window.gbWhProxy)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-\r
-<script language="javascript">\r
-<!--\r
-var gsPane="";\r
-var gnType=3;\r
-\r
-var oMsgPane = new whMessage(WH_MSG_GETPANETYPE, this, 1, null);\r
-if (SendMessage(oMsgPane))\r
-{\r
-       gsPane = oMsgPane.oParam.sPaneURL;\r
-       gnType = oMsgPane.oParam.nType;\r
-}\r
-\r
-       var strDefaultTopic = "about:blank";\r
-       var oParam = new Object();\r
-       oParam.sTopic = "";\r
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, this, 1, oParam);\r
-       if (SendMessage(oMsg) && oParam.sTopic != "")\r
-               strDefaultTopic =  oParam.sTopic;\r
-var strHTML = "";\r
-if (gnType == 4)\r
-{\r
-       //no navipane at all\r
-       strHTML += "<frameset border=\"0\" cols=\"100%,*\">";\r
-       strHTML += "<frame src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";\r
-       strHTML += "<frame src=\"whskin_blank.htm\" noresize>";\r
-       strHTML += "</frameset>";\r
-}\r
-else\r
-       strHTML += "<frameset cols=\"220,*\" hostof=\"parent:minibar_navpane|topic!startpage:no\" frameborder=\"1\" id=\"whPfset\"><frame src=\"whskin_frmset010.htm\" id=\"minibar_navpane\" frameborder=\"0\" border=\"0\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame><frame src=\""+strDefaultTopic+"\" id=\"topic\" frameborder=\"1\" border=\"1\" scrolling=\"auto\" title=\"Topic\" name=\"bsscright\"></frame></frameset>";\r
-document.write(strHTML);\r
-// handle show pane, hide pane and query pane status message.\r
-RegisterListener2(this, WH_MSG_RESIZEPANE);\r
-RegisterListener2(this, WH_MSG_SHOWPANE);\r
-RegisterListener2(this, WH_MSG_HIDEPANE);\r
-RegisterListener2(this, WH_MSG_ISPANEVISIBLE);\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this, WH_MSG_RESIZEPANE);\r
-       UnRegisterListener2(this, WH_MSG_SHOWPANE);\r
-       UnRegisterListener2(this, WH_MSG_HIDEPANE);\r
-       UnRegisterListener2(this, WH_MSG_ISPANEVISIBLE);\r
-}\r
-\r
-window.onunload=window_unload;\r
-\r
-var gbShow=false;\r
-var gstrFrameLastSetting="";\r
-function onSendMessage(oMsg)\r
-{\r
-       var oMsgout = null;\r
-       var nMsgId = oMsg.nMessageId;\r
-       var oFrameset = null;\r
-       if (nMsgId == WH_MSG_SHOWPANE)\r
-       {\r
-               if (!gbShow)\r
-               {\r
-                       oFrameset = getElement("whPfset");\r
-                       if (oFrameset)\r
-                       {\r
-                               if (gstrFrameLastSetting)\r
-                                       oFrameset.cols= gstrFrameLastSetting;\r
-                               else\r
-                                       oFrameset.cols= "220,*";\r
-                       }\r
-                       gbShow=true;\r
-                       oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
-                       SendMessage(oMsgout);\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_HIDEPANE)\r
-       {\r
-               oFrameset = getElement("whPfset");\r
-               if (oFrameset)\r
-               {\r
-                       gstrFrameLastSetting=oFrameset.cols; \r
-                       var oWnd=frames[0];\r
-                       if (oWnd && oWnd.document && oWnd.document.body)\r
-                       {\r
-                               var nPos=0;\r
-                               if ("cols"=="cols")\r
-                                       nPos=oWnd.document.body.offsetWidth;\r
-                               else\r
-                                       nPos=oWnd.document.body.offsetHeight;\r
-                               if(0==0)\r
-                                       gstrFrameLastSetting=nPos+",*";\r
-                               else\r
-                                       gstrFrameLastSetting="*,"+nPos;\r
-                       }\r
-                       oFrameset.cols = "0,*";\r
-               }\r
-               gbShow=false;\r
-               oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");\r
-               SendMessage(oMsgout);\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_RESIZEPANE)\r
-       {\r
-               if (!gbShow)\r
-               {\r
-                       gbShow=true;\r
-                       oMsgout = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");\r
-                       SendMessage(oMsgout);\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)\r
-       {\r
-               oMsg.oParam.bVisible = isNavPaneVisible();\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
-function isNavPaneVisible()\r
-{\r
-       var bVisible = false;\r
-       var sSplit = getElement("whPfset").cols;\r
-       var nSplit = sSplit.indexOf(",");\r
-       if (nSplit != -1)\r
-       {\r
-               var sPart1 = sSplit.substring(0, nSplit);\r
-               var sPart2 = sSplit.substring(nSplit + 1);\r
-               if ("minibar_navpane" == "navpane")\r
-               {\r
-                       var sTemp = sPart1;\r
-                       sPart1 = sPart2;\r
-                       sPart2 = sTemp;\r
-               }\r
-\r
-               if (sPart2 != "*")\r
-               {\r
-                       var n = parseInt(sPart2);\r
-                       if (n>0)\r
-                               bVisible = true;\r
-               }\r
-               else\r
-               {\r
-                       if (sPart1 != "100%")\r
-                               bVisible = true;\r
-               }\r
-       }\r
-       return bVisible;\r
-}\r
-//-->\r
-</script>\r
-\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_frmset010.htm b/doc/salome/gui/SMESH/whskin_frmset010.htm
deleted file mode 100755 (executable)
index 8a02235..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-\r
-<html>\r
-<head>\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!window.gbWhProxy)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-\r
-<script language="javascript">\r
-<!--\r
-var gsPane="";\r
-var gnType=3;\r
-\r
-var oMsgPane = new whMessage(WH_MSG_GETPANETYPE, this, 1, null);\r
-if (SendMessage(oMsgPane))\r
-{\r
-       gsPane = oMsgPane.oParam.sPaneURL;\r
-       gnType = oMsgPane.oParam.nType;\r
-}\r
-var strHTML = "";\r
-if (gnType == 4)\r
-{\r
-       //no navipane at all\r
-       strHTML += "<frameset border=\"0\" cols=\"100%,*\">";\r
-       strHTML += "<frame src='whskin_mbars.htm' id='minibar' frameborder='0' border='0' scrolling='no' marginheight='0' title='Mini Toolbar'></frame>";\r
-       strHTML += "<frame src=\"whskin_blank.htm\" noresize>";\r
-       strHTML += "</frameset>";\r
-}\r
-else\r
-       strHTML += "<frameset rows=\"24,*\" hostof=\"parent:minibar|navpane!startpage:no\" frameborder=\"0\" border=\"0\"><frame src=\"whskin_mbars.htm\" id=\"minibar\" frameborder=\"0\" border=\"0\" scrolling=\"no\" marginheight=\"0\" title=\"Mini Toolbar\"></frame><frame src=\""+gsPane+"\" id=\"navpane\" frameborder=\"0\" border=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" title=\"Navigator Pane\"></frame></frameset>";\r
-\r
-document.write(strHTML);\r
-//-->\r
-</script>\r
-</html>
\ No newline at end of file
index 4964c60ea6d4ff4a23cb3b8ec9580a204affd276..3163eee1bf114ea08f2cfd912baabafb8030c04e 100755 (executable)
-\r
-<html>\r
-<head><script language="javascript">\r
-<!--\r
-var sIcon="whstart.ico";\r
-var sPath=document.location.href;\r
-if (sPath.indexOf("http")!= -1)\r
-       document.write("<link REL=\"SHORTCUT ICON\" href=\""+ sIcon +"\">");\r
-//-->\r
-</script>\r
- <title>SMESH reference manual</title>\r
- <meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
- <meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" >\r
-<!--\r
-if (!window.gbWhVer||!window.gbWhUtil||!window.gbWhMsg)\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript" src="whstub.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:NoframeAt all\r
-var strPaneDHTML  = "whskin_pdhtml.htm";               //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.\r
-var strPaneApplet = "whskin_papplet.htm";\r
-var strPaneList   = "whskin_plist.htm";\r
-var bNoApplet  = false;\r
-\r
-var strPane = "";\r
-\r
-var nViewFrameType = -1;\r
-\r
-if (!window.gAgent)\r
-{\r
-       // low end browser, we don't even try to determine it.\r
-       document.location = "whnjs.htm";\r
-}\r
-else\r
-{\r
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)                              \r
-               document.location = "whnjs.htm";\r
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
-               document.location = "whnjs.htm";\r
-       else if (gbMac && gbIE4 && !gbIE5)              \r
-               document.location = "whnjs.htm";\r
-       //figure out which mode is the best\r
-       else\r
-       {\r
-               nViewFrameType=nWebhelpNavPaneMode;\r
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)\r
-               {\r
-                       var gbDHTML=(nWebhelpNavPaneMode==1);\r
-                       if (gbNav4)                                                                             nViewFrameType = 2;\r
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;\r
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;\r
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;\r
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;\r
-                       if (gbNav4&&gbSunOS&&nViewFrameType==2)                 nViewFrameType = 3;\r
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;\r
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;\r
-                       if (gbMac)                                                                                      nViewFrameType = 3;\r
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;\r
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;\r
-               }\r
-       }\r
-}\r
-\r
-if (nViewFrameType!=-1)\r
-{\r
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-       //The colordepth of the 16 color on Windows is 1. \r
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))\r
-       {\r
-          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");\r
-          nViewFrameType = 3;\r
-       }\r
-\r
-       //figure out which one is navpane\r
-       // ReplaceMark:nViewFrameType = 1\r
-       if (nViewFrameType == 1)\r
-       {\r
-               if (gbNav4 && !gbNav6)\r
-                       strPane = strPaneList;\r
-               else\r
-                       strPane = strPaneDHTML;\r
-       }\r
-       else if (nViewFrameType == 2)\r
-               strPane = strPaneApplet;\r
-       else\r
-               strPane = strPaneList;\r
-}\r
-//-->\r
-</script>\r
-<script type="text/javascript" language="javascript" src="whstart.js"></script>\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (!gbIE4&&!gbNav4&&!gbOpera7&&!gbSafari)\r
-       document.location = "whnjs.htm";\r
-\r
-function CMRAgent( strID, strURL, strLabel, strFrameAttr )\r
-{\r
-  this.m_strID = strID;\r
-  this.m_strURL = strURL;\r
-  this.m_strLabel = strLabel;\r
-  this.m_strFrameAttr = strFrameAttr;\r
-}\r
-\r
-function CMRServer()\r
-{\r
-  this.m_cAgents = new Array;\r
-}\r
-var cMRServer = new CMRServer;\r
-// GetServerInfo\r
-// Registry the agent array handled by webhelp\r
-// ReplaceMark:MRServer.strServerData\r
-//-->\r
-</script>\r
-\r
-<script type="text/javascript" language="javascript">\r
-<!--\r
-if (nViewFrameType!=-1)\r
-{\r
-       var strHTML = "<frameset rows=\"32,*\" hostof=\"parent:toolbar!startpage:yes\" frameborder=\"0\" border=\"0\"><frame src=\"whskin_tbars.htm\" id=\"toolbar\" frameborder=\"0\" border=\"0\" scrolling=\"no\" noresize marginheight=\"0\" marginwidth=\"0\" title=\"Toolbar\"></frame><frame src=\"whskin_frmset01.htm\"  frameborder=\"1\" border=\"1\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame></frameset>";\r
-       document.write(strHTML);\r
-}\r
-//-->\r
-</script>\r
-\r
-<frameset cols="100%,*" frameborder=no border=0>\r
-  <frame src="whnjs.htm">\r
-  <frame src="whskin_blank.htm" noresize>\r
-</frameset>\r
-\r
-</html>
\ No newline at end of file
+<html>
+<head>
+<title>Mesh Module Reference Manual</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+</head>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
+<script language="javascript">
+<!--
+var strDefaultTopic = "about:blank";
+var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
+var bNoApplet  = false;
+var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.
+var strPaneApplet = "whd_nvp20.htm";
+var strPaneList   = "whgdata/whnvp30.htm";
+
+var strHTML = "";
+var strPane = "";
+var nViewFrameType = -1;
+
+function CMRServer()
+{
+  this.m_cAgents = new Array;
+}
+var cMRServer = new CMRServer;
+
+//figure out which mode is the best
+if (!window.gAgent)
+{
+       // low end browser, we don't even try to determine it.
+       document.location = "whnjs.htm";
+}
+else
+{
+       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
+               document.location = "whnjs.htm";
+       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
+               document.location = "whnjs.htm";
+       else if (gbMac && gbIE4 && !gbIE5)
+               document.location = "whnjs.htm";
+       //figure out which mode is the best
+       else 
+       {
+               nViewFrameType=nWebhelpNavPaneMode;
+               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
+               {
+                       var gbDHTML=(nWebhelpNavPaneMode==1);
+                       if (gbNav4)                                                                             nViewFrameType = 2;
+                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;
+                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;
+                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;
+                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;
+                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;
+                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;
+                       if (gbMac)                                                                                      nViewFrameType = 3;
+                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;
+                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;
+               }
+       }
+}
+
+if (nViewFrameType!=-1)
+{
+       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
+       //The colordepth of the 16 color on Windows is 1. 
+       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
+       {
+          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");
+          nViewFrameType = 3;
+       }
+
+       //figure out which one is navpane
+       if (nViewFrameType == 1)
+               strPane = strPaneDHTML;
+       else if (nViewFrameType == 2)
+               strPane = strPaneApplet;
+       else 
+               strPane = strPaneList;
+
+       var oParam = new Object();
+       oParam.sTopic = "";
+       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
+       if (SendMessage(oMsg) && oParam.sTopic != "")
+               strDefaultTopic =  oParam.sTopic;
+
+
+       if (nViewFrameType == 1)
+       {
+               //DHTML (iframe or xml based)
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
+               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
+               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
+       }
+       else if (nViewFrameType == 2)
+       {
+               //applet (xml based)
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
+               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
+               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
+       }
+       else if (nViewFrameType == 3)
+       {
+               //generic html (pure html based)
+               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";
+               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";
+               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
+               strHTML += "</frameset>";
+       } 
+       else if (nViewFrameType == 4)
+       {
+               //no navipane at all
+               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
+               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
+               strHTML += "</frameset>";
+       }
+
+       document.write(strHTML);
+
+       RegisterListener2(window, WH_MSG_SHOWPANE);
+       RegisterListener2(window, WH_MSG_HIDEPANE);
+       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
+       window.onunload = window_unload;
+}
+
+function window_unload()
+{
+       UnRegisterListener2(window, WH_MSG_SHOWPANE);
+       UnRegisterListener2(window, WH_MSG_HIDEPANE);
+       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
+}
+
+
+function onSendMessage(oMsg)
+{
+       var nMsgId = oMsg.nMessageId;
+       if (nMsgId == WH_MSG_SHOWPANE)
+       {
+               getElement("whPfset").cols = "260,*";
+               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
+               SendMessage(onMsg);
+               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
+               if (SendMessage(onMsg))
+               {
+                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
+                       SendMessage(onMsg);
+               }
+               return false;
+       }
+       else if (nMsgId == WH_MSG_HIDEPANE)
+       {
+               getElement("whPfset").cols = "0,*";
+               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
+               SendMessage(onMsg);
+               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
+               SendMessage(onMsg);
+               return false;
+       }
+       else if (nMsgId == WH_MSG_ISPANEVISIBLE)
+       {
+               var n = parseInt(getElement("whPfset").cols);
+               if (n > 0)
+               {
+                       oMsg.oParam.bVisible = true;
+               }
+               return false;
+       }
+       return true;
+}
+//-->
+</script>
+<body>
+<noscript>
+       <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>
+</noscript>
+</body>
+</html>
index 5da80d8a0423dd657d54c5d752ae118f0666730a..484f54777f4a38caf54021b7ae9d1282e3dadf18 100755 (executable)
@@ -1,20 +1,20 @@
-<html>\r
-<head>\r
-<title>WebHelp 5.50 </title>\r
-<meta name="description" content="output from robohelp">\r
-<meta name="keywords" content="robohelp,webhelp,webhelp enterprise,roboinfo">\r
-</head>\r
-<body>\r
-<h1> WebHelp 5.50 System  Info </h1>\r
-<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> 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
-<tr><td> Product Name </td><td>WebHelp 5.50</td></tr>\r
-<tr><td> Authoring Tool Name </td><td>RoboHelp X5</td></tr>\r
-<table>\r
-</body>\r
+<html>
+<head>
+<title>WebHelp 5.50 </title>
+<meta name="description" content="output from robohelp">
+<meta name="keywords" content="robohelp,webhelp,webhelp enterprise,roboinfo">
+</head>
+<body>
+<h1> WebHelp 5.50 System  Info </h1>
+<table>
+<tr><td> Start Page </td><td>index.htm</td></tr>
+<tr><td> Skin Name </td><td></td></tr>
+<tr><td> Generating Time </td><td>12:45 05/22/2006</td></tr>
+<tr><td> Language ID </td><td>1033</td></tr>
+<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>
+<tr><td> Compile Build Version </td><td>13.10.606</td></tr>
+<tr><td> Product Name </td><td>WebHelp 5.50</td></tr>
+<tr><td> Authoring Tool Name </td><td>RoboHelp X5</td></tr>
+<table>
+</body>
 </html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_mbars.htm b/doc/salome/gui/SMESH/whskin_mbars.htm
deleted file mode 100755 (executable)
index c4fa48a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<html>\r
-<head>\r
-<title> WebHelp Navigation Mini-bar </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whtbar.js"></script>\r
-<body marginheight="0"  marginwidth="0"  bgcolor="#99ccff"     scroll="no">\r
-<script language="javascript1.2">\r
-<!--\r
-if (window.gbWhTBar)\r
-{\r
-       setButtonFont("avprev","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("avnext","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("synctoc","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("hide2","Tahoma","8pt","Black","Normal","Normal","none");\r
-\r
-       gsIPrev = "wht_prev.gif";\r
-       gsIPrevD = "wht_prev_g.gif";\r
-       gsINext = "wht_next.gif";\r
-       gsINextD = "wht_next_g.gif";\r
-       gsISync = "wht_sync.gif";\r
-       gsIHide = "wht_hide.gif";\r
-       setBackgroundcolor("#99ccff");\r
-       \r
-       \r
-       addButton("avprev",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-addButton("avnext",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-addButton("synctoc",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-addButton("hide2",BTN_TEXT|BTN_IMG,"","","","","",0,0,"","","","","","");\r
-\r
-       addButton("blankblock");\r
-       writeStyle(true);\r
-       ReSortMinibarButtons();\r
-       writeToolBar();\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_papplet.htm b/doc/salome/gui/SMESH/whskin_papplet.htm
deleted file mode 100755 (executable)
index 5f8296a..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-<html>\r
-<head>\r
-<title>Navigation Pane</title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsInitPane="toc";\r
-var gsCurrentPane="";\r
-var gbLoading = "unknown";\r
-var gbTryTime = 0;\r
-var gbMaxTryTime = 6;\r
-var gbPassPhase0 = 0;\r
-var gbretried = 0;\r
-var gbmaxretry = 3;\r
-var gbretrytime = new Array();\r
-\r
-var origWidth = 0;\r
-var origHeight = 0;\r
-\r
-gbretrytime[0]= 5000;\r
-gbretrytime[1]= 30000;\r
-gbretrytime[2]= 60000;\r
-\r
-function addPane(sName, sFile)\r
-{\r
-}\r
-\r
-function setShowPane(sName)\r
-{\r
-       gsInitPane=sName;\r
-}\r
-  addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-\r
-function window_unload()\r
-{\r
-       if (!gbNav4 || gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.\r
-       {\r
-               UnRegisterListener2(this, WH_MSG_SHOWTOC);\r
-               UnRegisterListener2(this, WH_MSG_SHOWIDX);\r
-               UnRegisterListener2(this, WH_MSG_SHOWFTS);\r
-               UnRegisterListener2(this, WH_MSG_SHOWGLO);\r
-               UnRegisterListener2(this, WH_MSG_SYNCTOC);\r
-               UnRegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-               UnRegisterListener2(this, WH_MSG_GETPANEINFO);\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       var bHidePane=false;\r
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if(oMsg.oParam>0)\r
-               {\r
-                       if(oMsg.oParam==1)\r
-                               gsInitPane="toc";\r
-                       else if(oMsg.oParam==2)\r
-                               gsInitPane="idx";\r
-                       else if(oMsg.oParam==3)\r
-                               gsInitPane="fts";\r
-                       else if(oMsg.oParam==4)\r
-                               gsInitPane="glo";\r
-               }\r
-               else if(oMsg.oParam==0)\r
-               {\r
-                       bHidePane=true;\r
-               }\r
-       }\r
-       if (bHidePane)\r
-       {\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)\r
-               SendMessage(oMsg);\r
-       }\r
-       else if (gsInitPane == "toc")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="idx")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="fts")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       else if (gsInitPane=="glo")\r
-       {\r
-               oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-               SendMessage(oMsg);      \r
-       }\r
-       \r
-}\r
-\r
-function onResize()\r
-{\r
-       var oMsg=null;\r
-       if (gbIE4)\r
-       {\r
-               if(document.body)\r
-               {\r
-                       if(document.body.clientWidth > 1 && document.body.clientHeight>1)\r
-                       {\r
-                               oMsg = new whMessage(WH_MSG_RESIZEPANE,this,1,null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-       }\r
-       else \r
-       {\r
-               if (window.innerWidth != 0 && window.innerHeight != 0)\r
-               {\r
-                       oMsg = new whMessage(WH_MSG_RESIZEPANE,this,1,null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase0()\r
-{\r
-       if (!gbPassPhase0) {\r
-               setTimeout("CheckLoadingPhase0()", 1000);\r
-               document.applets[0];\r
-               gbPassPhase0 = 1;\r
-       }\r
-       else {\r
-               CheckLoadingPhase1();\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase1()\r
-{\r
-       if (gbNav4) {\r
-               if ("unknown" == gbLoading && document.readystate < 4) {\r
-                       setTimeout("CheckLoadingPhase1()", 1000);\r
-               }\r
-               else if ("unknown" == gbLoading) {\r
-                       CheckLoadingPhase2();\r
-               }\r
-       }\r
-}\r
-\r
-function CheckLoadingPhase2()\r
-{\r
-       if (gbNav4) {\r
-               gbTryTime ++;\r
-               if ("unknown" == gbLoading) {\r
-                       if (gbTryTime <= gbMaxTryTime )\r
-                               setTimeout("CheckLoadingPhase2()", 1000);\r
-                       else {\r
-                               if (gnVerMinor != 4.60) {\r
-                                       alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");\r
-                               }\r
-                       }       \r
-               }\r
-       }\r
-}\r
-\r
-function CheckAppletLoaded()\r
-{\r
-       if (typeof(document.WebHelp) == "undefined")\r
-       {\r
-               document.location.reload();\r
-               if (gbretried < gbmaxretry)\r
-               {\r
-                       gbretried ++;\r
-                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
-               }\r
-       }\r
-}\r
-\r
-function reDo() \r
-{\r
-       if (innerWidth != origWidth || innerHeight != origHeight)  \r
-       {\r
-               //reloaded applet if nessary\r
-               gbretried = 0;\r
-\r
-               if (gnVerMinor == 4.60) \r
-               {\r
-                       //reload the applet again.\r
-                       document.location.reload();\r
-                       gbretried ++;\r
-               }\r
-               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);\r
-       }\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if (oMsg)\r
-       {       \r
-               var nMsgId = oMsg.nMessageId;\r
-               var WebHelpApplet = null;\r
-               if (gbNav4)\r
-               {\r
-                       WebHelpApplet = document.applets["WebHelp"];\r
-                       if (!WebHelpApplet.Command)\r
-                               document.location="whskin_plist.htm";\r
-               }\r
-               else\r
-                       WebHelpApplet = window.WebHelp;\r
-\r
-               if(nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam=gsCurrentPane;\r
-                       return false;\r
-               }\r
-               else if(gbLoading!="unknown" || gbNav6)\r
-               {\r
-                       if (nMsgId == WH_MSG_SHOWTOC)\r
-                       {\r
-                               gsCurrentPane="toc";\r
-                               WebHelpApplet.Command("Contents",null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"toc");\r
-                               SendMessage(onMsg);\r
-                               onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if(nMsgId==WH_MSG_SHOWIDX)\r
-                       {\r
-                               gsCurrentPane="idx";\r
-                               WebHelpApplet.Command("Index",null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"idx");\r
-                               SendMessage(onMsg);\r
-                               onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if(nMsgId==WH_MSG_SHOWFTS)\r
-                       {\r
-                               gsCurrentPane="fts";\r
-                               WebHelpApplet.Command("Search",null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
-                               SendMessage(onMsg);\r
-                               onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if(nMsgId==WH_MSG_SHOWGLO)\r
-                       {\r
-                               gsCurrentPane="glo";\r
-                               WebHelpApplet.Command("Glossary",null);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"glo");\r
-                               SendMessage(onMsg);\r
-                               onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-                       else if(nMsgId==WH_MSG_SYNCTOC)\r
-                       {\r
-                               gsCurrentPane="toc";\r
-                               var oTopicParam=oMsg.oParam;\r
-                               if(oTopicParam&&oTopicParam.aPaths&&oTopicParam.aPaths.length>0&&oTopicParam.sPPath)\r
-                               {\r
-                                       var sPPath=_browserStringToText(oTopicParam.sPPath);\r
-                                       var sParam="";\r
-                                       for(var i=0;i<oTopicParam.aPaths.length;i++)\r
-                                       {\r
-                                               sParam+=oTopicParam.aPaths[i]+"\r\r";\r
-                                       }\r
-                                       WebHelpApplet.Command("SyncToc",sPPath,sParam);\r
-                               }\r
-                       }\r
-                       else if(nMsgId==WH_MSG_SEARCHTHIS)\r
-                       {\r
-                               gsCurrentPane="fts";\r
-                               WebHelpApplet.Command("Search",oMsg.oParam);\r
-                               var onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
-                               SendMessage(onMsg);\r
-                               onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                               SendMessage(onMsg);\r
-                       }\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function getInitTocInfo()\r
-{\r
-       var oParam=new Object();\r
-       oParam.oTocInfo=null;\r
-       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               var oTopicParam=oMsg.oParam.oTocInfo;\r
-               if(oTopicParam&&oTopicParam.aPaths&&oTopicParam.aPaths.length>0&&oTopicParam.sPPath)\r
-               {\r
-                       var sPPath=_browserStringToText(oTopicParam.sPPath);\r
-                       var sParam="";\r
-                       for(var i=0;i<oTopicParam.aPaths.length;i++)\r
-                       {\r
-                               sParam+=oTopicParam.aPaths[i]+"\r\r";\r
-                       }\r
-                       var WebHelpApplet;\r
-                       if(gbNav4)\r
-                               WebHelpApplet=document.applets["WebHelp"];\r
-                       else\r
-                               WebHelpApplet=WebHelp;\r
-                       WebHelpApplet.Command("SyncToc",sPPath,sParam);\r
-               }\r
-       }\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this, WH_MSG_SHOWTOC);\r
-       RegisterListener2(this, WH_MSG_SHOWIDX);\r
-       RegisterListener2(this, WH_MSG_SHOWFTS);\r
-       RegisterListener2(this, WH_MSG_SHOWGLO);\r
-       RegisterListener2(this, WH_MSG_SYNCTOC);\r
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);\r
-       RegisterListener2(this, WH_MSG_GETPANEINFO);\r
-\r
-       window.onresize=onResize;\r
-       window.onunload = window_unload;\r
-       window.onload=window_OnLoad;\r
-       window.onerror = null;\r
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));\r
-\r
-       if (gbNav4 && !gbNav6 && gbWindows) {\r
-               setTimeout("CheckLoadingPhase0()", 1000);\r
-       }\r
-       if (gbNav4)\r
-       {\r
-               origWidth = innerWidth;\r
-               origHeight = innerHeight;\r
-               onresize = reDo;\r
-       }\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-//-->\r
-</script>\r
-</head>\r
-<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">\r
-<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>\r
-<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>\r
-<PARAM name=HideTabs value=true>\r
-<PARAM name=Frame value=bsscright>\r
-<PARAM name=cabbase value=webhelp.cab>\r
-</applet>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/SMESH/whskin_pdhtml.htm b/doc/salome/gui/SMESH/whskin_pdhtml.htm
deleted file mode 100755 (executable)
index 763aa14..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<html>\r
-<head>\r
-<title> Navigation Pane </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whphost.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-if (window.gbWhPHost)\r
-{\r
-       var gsNavReDirect="whskin_plist.htm";\r
-       var gbReDirectThis=true;\r
-       var oMsg = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
-       if (SendMessage(oMsg))\r
-       {\r
-               if (oMsg.oParam)\r
-               {\r
-                       for (var i=0;i<oMsg.oParam.aPanes.length;i++)\r
-                       {\r
-                               addPane(oMsg.oParam.aPanes[i].sPaneName, oMsg.oParam.aPanes[i].sPaneURL);\r
-                       }\r
-                       setShowPane(oMsg.oParam.sDefault);\r
-                       setServerEnabled();\r
-               }\r
-               else\r
-                       writeWebHelpPane();\r
-       }\r
-       else\r
-               writeWebHelpPane();\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if (window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-\r
-function writeWebHelpPane()\r
-{\r
-  var bPreferXML             = false;\r
-  var strProjectFileXML =  "whproj.xml";\r
-  var strProjectFileHTM =  "whproj.htm";       \r
-  addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);\r
-  addPane("toc","whtdhtml.htm");\r
-  addPane("fts","whfdhtml.htm");\r
-  addPane("glo","whgdhtml.htm");\r
-  setShowPane("toc");\r
-\r
-}\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
index 1f1af7fc4d24cad78c14981e8971c2d87783f855..d06481fca10bc9c5e6b2fffee449a57d94225c4d 100755 (executable)
-<html>\r
-<head>\r
-<title>Select a Topic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript">\r
-<!--\r
-var gsBgColor = "#c0c0c0";\r
-var gsBgImage = "";\r
-var gsListBgColor = "white";\r
-var gsListBgImage = "";\r
-var gsMargin="0pt";\r
-var gsIndent="0pt";\r
-var gSelectedItem = -1;\r
-\r
-\r
-var goFont=null;\r
-var goHoverFont=null;\r
-var goTableFont=null;\r
-var gsABgColor="#cccccc";\r
-\r
-function setListBackground(sBgImage)\r
-{\r
-       if (sBgImage != null && sBgImage.length > 0)\r
-               gsListBgImage = sBgImage;\r
-}\r
-\r
-function setListBackgroundcolor(sBgColor)\r
-{\r
-       if (sBgColor != null && sBgColor.length > 0)\r
-               gsListBgColor = sBgColor;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       if (sBgImage != null && sBgImage.length > 0)\r
-               gsBgImage = sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       if (sBgColor != null && sBgColor.length > 0)\r
-               gsBgColor = sBgColor;\r
-}\r
-\r
-function setActiveBgColor(sBgColor)\r
-{\r
-       gsABgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if (sType == "Normal")\r
-               goFont=vFont;\r
-       if (sType == "Hover")\r
-               goHoverFont=vFont;\r
-       else if (sType == "Table")\r
-               goTableFont=vFont;\r
-}\r
-\r
-function fnOnload()\r
-{\r
-       if( window.dialogArguments != null )\r
-               fnLoadOptions( window.dialogArguments );\r
-       var items = getElementsByTag(document, "a");\r
-       if (items.length > 0)\r
-               items[0].focus();\r
-}\r
-\r
-var gaOpts = new Array();\r
-\r
-function selectOption(index)\r
-{\r
-       gSelectedItem = index;\r
-}\r
-\r
-function displayOption(index)\r
-{\r
-       if (index < gaOpts.length)\r
-       {\r
-               returnValue = new Object();\r
-               returnValue.m_url = gaOpts[index];\r
-       }\r
-       else\r
-               returnValue = null;\r
-\r
-       window.close();\r
-}\r
-\r
-function fnLoadOptions( cList )\r
-{\r
-       var sHTML = "<dl>";\r
-       for( var i=0;i <cList.length; i++)\r
-       {\r
-               sHTML += "<dt><nobr><a href=\"javascript:void(0);\" onclick=\"return false;\" onfocus=\"selectOption(";\r
-               sHTML += gaOpts.length + ");return false;\" ondblclick=\"displayOption(" + gaOpts.length;\r
-               sHTML += ");return false;\">"+ _textToHtml(cList[i].m_sName) + "</a></nobr></dt>";\r
-               gaOpts[gaOpts.length] = cList[i].m_sURL;\r
-       }\r
-       sHTML += "</dl>";\r
-       var oDivCon=getElement("divlist");\r
-       if(oDivCon)\r
-               oDivCon.innerHTML=sHTML;\r
-       return true;\r
-}\r
-\r
-function fnOK()\r
-{\r
-       displayOption(gSelectedItem);\r
-}\r
-\r
-function fnCancel()\r
-{\r
-       returnValue = null;             window.close();\r
-}\r
-\r
-function fnOnKeypress()\r
-{\r
-       switch( event.keyCode )\r
-       {\r
-       case 13:        // enter key\r
-               fnOK();\r
-               break;\r
-       case 27:        // escape key\r
-               fnCancel();\r
-               break;\r
-       }\r
-}\r
-\r
-function writeStyle(bMiniBar)\r
-{\r
-       var sStyle="";\r
-       sStyle+="<style type='text/css'>\n";\r
-       sStyle+="<!--\n";\r
-       sStyle+="body.clsbody\n";\r
-       sStyle+="{\n";\r
-       sStyle+="margin: 4px;\n";\r
-       sStyle+=getFontStyle(goTableFont);\r
-       sStyle+="background-attachment: fixed;\n";\r
-       sStyle+="};\n";\r
-       sStyle+="P.clsNDXTD\n";\r
-       sStyle+="{\n";\r
-       sStyle+="margin:0;\n";\r
-       sStyle+=getFontStyle(goTableFont);\r
-       sStyle+="};\n";\r
-       sStyle+="div.clslist\n";\r
-       sStyle+="{\n";\r
-       if (gsListBgImage)\r
-               sStyle+="background-image:url("+gsListBgImage+");\n";\r
-       else if (gsListBgColor)\r
-               sStyle+="background-color:"+gsListBgColor+";\n";\r
-       sStyle+=getFontStyle(goFont);\r
-       sStyle+="};\n";\r
-       sStyle+="BUTTON.clsNDXButton\n";\r
-       sStyle+="{\n";\r
-       sStyle+=getFontStyle(goTableFont);\r
-       sStyle+="background-color: transparent;\n";\r
-       sStyle+="};\n";\r
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";\r
-       sStyle+="</style>\n";\r
-       document.write(sStyle);\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(document.body)\r
-       {\r
-               if(gsBgImage&&gsBgImage.length>0)\r
-               {\r
-                       document.body.background=gsBgImage;\r
-               }\r
-               if(gsBgColor&&gsBgColor.length>0)\r
-               {\r
-                       document.body.bgColor=gsBgColor;\r
-               }\r
-       }\r
-       fnOnload();\r
-       window_onResize();\r
-}\r
-\r
-function window_onResize()\r
-{\r
-       var oDiv = getElement("divlist");\r
-       var oTitle = getElement("p_title");\r
-       var oButton = getElement("tb_button");\r
-       if (oDiv && oTitle && oButton)\r
-       {\r
-               oDiv.style.height = document.body.offsetHeight - oTitle.offsetHeight - oButton.offsetHeight - 8;\r
-       }\r
-}\r
-goTableFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-goHoverFont=new whFont("Verdana","8pt","#666666","normal","normal","none");\r
-\r
-\r
-setBackgroundcolor("White");\r
-\r
-setFont("Table", "Tahoma","8pt","Navy","Normal","Normal","none");\r
-setListBackgroundcolor("White");\r
-\r
-setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-setActiveBgColor("Silver");\r
-\r
-window.onload=window_OnLoad;\r
-window.onresize = window_onResize;\r
-writeStyle();\r
-//-->\r
-</script>\r
-</head>\r
-\r
-<body class="clsbody" scroll="no" onkeypress="fnOnKeypress()">\r
-<p id="p_title" class="clsNDXTD"><nobr>Select a topic, then click Display</nobr></p>\r
-<div id="divlist" class="clslist" style="margin:2px;position: relative;overflow:auto;width:100%;border-style:inset;border-width:2">\r
-</div>\r
-<table id="tb_button" width="100%">\r
-  <tr>\r
-    <td width="100%" align="center"><button class="clsNDXButton" name="btnOK" onclick="fnOK()">Display</button>&#32;&#32;&#32;<button class="clsNDXButton" name="btnCancel" onclick="fnCancel()">Cancel</button></td>\r
-  </tr>\r
-</table>\r
-\r
-</body>\r
-\r
+<html>
+<head>
+<title>Select a Topic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript">
+<!--
+var gsBgColor = "#c0c0c0";
+var gsBgImage = "";
+var gsListBgColor = "white";
+var gsListBgImage = "";
+var gsMargin="0pt";
+var gsIndent="0pt";
+var gSelectedItem = -1;
+
+
+var goFont=null;
+var goHoverFont=null;
+var goTableFont=null;
+var gsABgColor="#cccccc";
+
+function setListBackground(sBgImage)
+{
+       if (sBgImage != null && sBgImage.length > 0)
+               gsListBgImage = sBgImage;
+}
+
+function setListBackgroundcolor(sBgColor)
+{
+       if (sBgColor != null && sBgColor.length > 0)
+               gsListBgColor = sBgColor;
+}
+
+function setBackground(sBgImage)
+{
+       if (sBgImage != null && sBgImage.length > 0)
+               gsBgImage = sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       if (sBgColor != null && sBgColor.length > 0)
+               gsBgColor = sBgColor;
+}
+
+function setActiveBgColor(sBgColor)
+{
+       gsABgColor=sBgColor;
+}
+
+function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if (sType == "Normal")
+               goFont=vFont;
+       if (sType == "Hover")
+               goHoverFont=vFont;
+       else if (sType == "Table")
+               goTableFont=vFont;
+}
+
+function fnOnload()
+{
+       if( window.dialogArguments != null )
+               fnLoadOptions( window.dialogArguments );
+       var items = getElementsByTag(document, "a");
+       if (items.length > 0)
+               items[0].focus();
+}
+
+var gaOpts = new Array();
+
+function selectOption(index)
+{
+       gSelectedItem = index;
+}
+
+function displayOption(index)
+{
+       if (index < gaOpts.length)
+       {
+               returnValue = new Object();
+               returnValue.m_url = gaOpts[index];
+       }
+       else
+               returnValue = null;
+
+       window.close();
+}
+
+function fnLoadOptions( cList )
+{
+       var sHTML = "<dl>";
+       for( var i=0;i <cList.length; i++)
+       {
+               sHTML += "<dt><nobr><a href=\"javascript:void(0);\" onclick=\"return false;\" onfocus=\"selectOption(";
+               sHTML += gaOpts.length + ");return false;\" ondblclick=\"displayOption(" + gaOpts.length;
+               sHTML += ");return false;\">"+ _textToHtml(cList[i].m_sName) + "</a></nobr></dt>";
+               gaOpts[gaOpts.length] = cList[i].m_sURL;
+       }
+       sHTML += "</dl>";
+       var oDivCon=getElement("divlist");
+       if(oDivCon)
+               oDivCon.innerHTML=sHTML;
+       return true;
+}
+
+function fnOK()
+{
+       displayOption(gSelectedItem);
+}
+
+function fnCancel()
+{
+       returnValue = null;             window.close();
+}
+
+function fnOnKeypress()
+{
+       switch( event.keyCode )
+       {
+       case 13:        // enter key
+               fnOK();
+               break;
+       case 27:        // escape key
+               fnCancel();
+               break;
+       }
+}
+
+function writeStyle(bMiniBar)
+{
+       var sStyle="";
+       sStyle+="<style type='text/css'>\n";
+       sStyle+="<!--\n";
+       sStyle+="body.clsbody\n";
+       sStyle+="{\n";
+       sStyle+="margin: 4px;\n";
+       sStyle+=getFontStyle(goTableFont);
+       sStyle+="background-attachment: fixed;\n";
+       sStyle+="};\n";
+       sStyle+="P.clsNDXTD\n";
+       sStyle+="{\n";
+       sStyle+="margin:0;\n";
+       sStyle+=getFontStyle(goTableFont);
+       sStyle+="};\n";
+       sStyle+="div.clslist\n";
+       sStyle+="{\n";
+       if (gsListBgImage)
+               sStyle+="background-image:url("+gsListBgImage+");\n";
+       else if (gsListBgColor)
+               sStyle+="background-color:"+gsListBgColor+";\n";
+       sStyle+=getFontStyle(goFont);
+       sStyle+="};\n";
+       sStyle+="BUTTON.clsNDXButton\n";
+       sStyle+="{\n";
+       sStyle+=getFontStyle(goTableFont);
+       sStyle+="background-color: transparent;\n";
+       sStyle+="};\n";
+       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
+       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
+       sStyle+="</style>\n";
+       document.write(sStyle);
+}
+
+function window_OnLoad()
+{
+       if(document.body)
+       {
+               if(gsBgImage&&gsBgImage.length>0)
+               {
+                       document.body.background=gsBgImage;
+               }
+               if(gsBgColor&&gsBgColor.length>0)
+               {
+                       document.body.bgColor=gsBgColor;
+               }
+       }
+       fnOnload();
+       window_onResize();
+}
+
+function window_onResize()
+{
+       var oDiv = getElement("divlist");
+       var oTitle = getElement("p_title");
+       var oButton = getElement("tb_button");
+       if (oDiv && oTitle && oButton)
+       {
+               oDiv.style.height = document.body.offsetHeight - oTitle.offsetHeight - oButton.offsetHeight - 8;
+       }
+}
+goTableFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+goHoverFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
+
+
+
+
+setFont("Table", "Arial","9pt","#000000","normal","normal","none");
+
+
+setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
+setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
+setActiveBgColor("#cccccc");
+
+window.onload=window_OnLoad;
+window.onresize = window_onResize;
+writeStyle();
+//-->
+</script>
+</head>
+
+<body class="clsbody" scroll="no" onkeypress="fnOnKeypress()">
+<p id="p_title" class="clsNDXTD"><nobr>Select a topic, then click Display</nobr></p>
+<div id="divlist" class="clslist" style="margin:2px;position: relative;overflow:auto;width:100%;border-style:inset;border-width:2">
+</div>
+<table id="tb_button" width="100%">
+  <tr>
+    <td width="100%" align="center"><button class="clsNDXButton" name="btnOK" onclick="fnOK()">Display</button>&#32;&#32;&#32;<button class="clsNDXButton" name="btnCancel" onclick="fnCancel()">Cancel</button></td>
+  </tr>
+</table>
+
+</body>
+
 </html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_plist.htm b/doc/salome/gui/SMESH/whskin_plist.htm
deleted file mode 100755 (executable)
index f7cf6d1..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-<html>\r
-<head>\r
-<title> Navigation Pane </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-</head>\r
-<script language="javascript">\r
-<!--\r
-var strFrmToc="";\r
-var strFrmNdx="";\r
-var strFrmFts="";\r
-var strFrmGls="";\r
-var strFrmDft="";\r
-var gstrName="";\r
-\r
-//set overwrite here\r
-function setListFrames(strToc,strNdx,strFts,strGls,strDefault)\r
-{\r
-       strFrmToc=strToc;\r
-       strFrmNdx=strNdx;\r
-       strFrmFts=strFts;\r
-       strFrmGls=strGls;\r
-       strFrmDft=strDefault;\r
-       if(strFrmDft==strFrmToc)\r
-               gstrName="toc";\r
-       else if(strFrmDft==strFrmNdx)\r
-               gstrName="idx";\r
-       else if(strFrmDft==strFrmFts)\r
-               gstrName="fts";\r
-       else if(strFrmDft==strFrmGls)\r
-               gstrName="glo";\r
-}\r
-\r
-function setWebHelpPane()\r
-{\r
-       setListFrames("whgdata/whnvf30.htm","whgdata/whnvf31.htm","whgdata/whnvf32.htm","whgdata/whnvf33.htm","whgdata/whnvf30.htm");\r
-}\r
-\r
-function window_unload()\r
-{\r
-       if(!gbNav4||gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.\r
-       {\r
-               UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-               UnRegisterListener2(this,WH_MSG_SHOWIDX);\r
-               UnRegisterListener2(this,WH_MSG_SHOWFTS);\r
-               UnRegisterListener2(this,WH_MSG_SHOWGLO);\r
-               UnRegisterListener2(this,WH_MSG_GETPANEINFO);\r
-       }\r
-}\r
-\r
-function window_onload()\r
-{\r
-       var bHidePane=false;\r
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               if(oMsg.oParam>0)\r
-               {\r
-                       if(oMsg.oParam==1)\r
-                               gstrName="toc";\r
-                       else if(oMsg.oParam==2)\r
-                               gstrName="idx";\r
-                       else if(oMsg.oParam==3)\r
-                               gstrName="fts";\r
-                       else if(oMsg.oParam==4)\r
-                               gstrName="glo";\r
-                       switchNvp(gstrName);\r
-               }\r
-               else if(oMsg.oParam==0)\r
-               {\r
-                       bHidePane=true;\r
-               }\r
-               else if(gstrName)\r
-                       switchNvp(gstrName);\r
-       }\r
-       if(bHidePane)\r
-       {\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)\r
-               SendMessage(oMsg);\r
-       }\r
-       else if(gstrName)\r
-       {\r
-               oMsg=new whMessage(WH_MSG_PANEINFO,this,1,gstrName);\r
-               SendMessage(oMsg);\r
-       }\r
-       oMsg=new whMessage(WH_MSG_NOSYNC,this,1,null);\r
-       SendMessage(oMsg);\r
-       oMsg=new whMessage(WH_MSG_NOSEARCHINPUT,this,1,null);\r
-       SendMessage(oMsg);\r
-\r
-}\r
-\r
-function switchNvp(strName)\r
-{\r
-       var strFile="";\r
-       if(strName=="toc")              strFile=strFrmToc;\r
-       else if(strName=="idx") strFile=strFrmNdx;\r
-       else if(strName=="fts") strFile=strFrmFts;\r
-       else if(strName=="glo") strFile=strFrmGls;\r
-\r
-       gstrName=strName;\r
-       frames[0].location=strFile;     \r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var onMsg=null;\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       switchNvp("toc");\r
-                       onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"toc");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWIDX)\r
-               {\r
-                       switchNvp("idx");\r
-                       onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"idx");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWFTS)\r
-               {\r
-                       switchNvp("fts");\r
-                       onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWGLO)\r
-               {\r
-                       switchNvp("glo");\r
-                       onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"glo");\r
-                       SendMessage(onMsg);\r
-                       onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-                       SendMessage(onMsg);\r
-               }\r
-               else if(nMsgId==WH_MSG_GETPANEINFO)\r
-               {\r
-                       oMsg.oParam=gstrName;\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function onResize()\r
-{\r
-       var oMsg=null;\r
-       if(gbIE4)\r
-       {\r
-               if(document.body)\r
-               {\r
-                       if(document.body.clientWidth>1&&document.body.clientHeight>1)\r
-                       {\r
-                               oMsg=new whMessage(WH_MSG_RESIZEPANE,this,1,null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               if(window.innerWidth!=0&&window.innerHeight!=0)\r
-               {\r
-                       oMsg=new whMessage(WH_MSG_RESIZEPANE,this,1,null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-}\r
-\r
-if(window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_GETPANES,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               if(oMsg.oParam)\r
-               {\r
-                       for(var i=0;i<oMsg.oParam.aPanes.length;i++)\r
-                       {\r
-                               if(oMsg.oParam.aPanes[i].sPaneName=="toc")\r
-                                       strFrmToc=oMsg.oParam.aPanes[i].sPaneURL;\r
-                               else if(oMsg.oParam.aPanes[i].sPaneName=="idx")\r
-                                       strFrmNdx=oMsg.oParam.aPanes[i].sPaneURL;\r
-                               else if(oMsg.oParam.aPanes[i].sPaneName=="fts")\r
-                                       strFrmFts=oMsg.oParam.aPanes[i].sPaneURL;\r
-                               else if(oMsg.oParam.aPanes[i].sPaneName=="glo")\r
-                                       strFrmGls=oMsg.oParam.aPanes[i].sPaneURL;\r
-                               if(oMsg.oParam.sDefault==oMsg.oParam.aPanes[i].sPaneName)\r
-                               {\r
-                                       strFrmDft=oMsg.oParam.aPanes[i].sPaneURL;\r
-                               }\r
-                       }\r
-               }\r
-               else\r
-                       setWebHelpPane();\r
-       }\r
-       else\r
-               setWebHelpPane();\r
-\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWIDX);\r
-       RegisterListener2(this,WH_MSG_SHOWFTS);\r
-       RegisterListener2(this,WH_MSG_SHOWGLO);\r
-       RegisterListener2(this,WH_MSG_GETPANEINFO);\r
-\r
-       if(gbIE55)\r
-               window.onresize=onResize;\r
-\r
-       window.onunload=window_unload;\r
-       window.onload=window_onload;\r
-\r
-       var strHtml="";\r
-       strHtml+="<frameset rows=\'100%,*\'>";\r
-       strHtml+="<frame name=\'nvplist\' title=\'navpane frame\' src=\'" + strFrmDft +"\'></frame>";\r
-       strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";\r
-       strHtml+="</frameset>";\r
-       document.write(strHtml);\r
-}\r
-else\r
-       document.location.reload();\r
-\r
-if(window.gbNav6)\r
-{\r
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-//-->\r
-</script>\r
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_tbars.htm b/doc/salome/gui/SMESH/whskin_tbars.htm
deleted file mode 100755 (executable)
index 6cb4902..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<html>\r
-<head>\r
-<title> WebHelp Navigation Toolbar </title>\r
-\r
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
-<meta name="description" content="WebHelp 5.50">\r
-</head>\r
-<style>\r
-<!--\r
-body {margin:0;}\r
--->\r
-</style>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whtbar.js"></script>\r
-\r
-\r
-<body marginheight="0"  marginwidth="0"  bgcolor="#99ccff"     scroll="no">\r
-<script language="javascript1.2">\r
-<!--\r
-if (window.gbWhTBar)\r
-{\r
-       setButtonFont("toc","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("toc","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("idx","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("idx","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("fts","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("fts","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("glo","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("glo","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("websearch","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("websearch","Tahoma","8pt","White","Normal","Normal","none", true);\r
-setButtonFont("searchform","Tahoma","8pt","Black","Normal","Normal","none");\r
-setButtonFont("searchform","","","","","","", true);\r
-setButtonFont("banner","","","","","","");\r
-setButtonFont("banner","","","","","","", true);\r
-\r
-       gsIToc = "wht_toc_n.gif";\r
-       gsITocS = "wht_toc_h.gif";\r
-       gsIIndex = "wht_idx_n.gif";\r
-       gsIIndexS = "wht_idx_h.gif";\r
-       gsISearch = "wht_fts_n.gif";\r
-       gsISearchS = "wht_fts_h.gif";\r
-       gsIGlossary = "wht_glo_n.gif";\r
-       gsIGlossaryS = "wht_glo_h.gif";\r
-       gsIWebSearch = "wht_ws.gif";\r
-       gsIWebSearchD = "wht_ws_g.gif";\r
-       gsIBanner = "wht_logo1.gif";\r
-       gsIGo = "wht_go.gif";\r
-       setBackgroundcolor("#99ccff");\r
-       \r
-       setAlignment("left");\r
-       \r
-       \r
-       if (!gsBgImage)\r
-       {\r
-       setButtonBgColor("toc", gsBgColor);\r
-       setButtonBgColor("idx", gsBgColor);\r
-       setButtonBgColor("fts", gsBgColor);\r
-       setButtonBgColor("glo", gsBgColor);\r
-       setButtonBgColor("toc", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("idx", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("fts", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("glo", gsTBSelectedBgColor, true);\r
-       setButtonBgColor("toc","#99ccff");\r
-setButtonBgColor("idx","#99ccff");\r
-setButtonBgColor("fts","#99ccff");\r
-setButtonBgColor("glo","#99ccff");\r
-setButtonBgColor("websearch","#99ccff");\r
-setButtonBgColor("searchform","");\r
-setButtonBgColor("banner","");\r
-\r
-       }\r
-       setButtonBgColor("toc","#639ace", true);\r
-setButtonBgColor("idx","#639ace", true);\r
-setButtonBgColor("fts","#639ace", true);\r
-setButtonBgColor("glo","#639ace", true);\r
-setButtonBgColor("websearch","#639ace", true);\r
-setButtonBgColor("searchform","", true);\r
-setButtonBgColor("banner","", true);\r
-\r
-       addButton("toc",BTN_TEXT|BTN_IMG,"Contents","","","","",0,0,"","","","","","");\r
-addButton("fts",BTN_TEXT|BTN_IMG,"Search","","","","",0,0,"","","","","","");\r
-addButton("glo",BTN_TEXT|BTN_IMG,"Glossary","","","","",0,0,"","","","","","");\r
-addButton("searchform",BTN_TEXT,"","","","","",0,0,"","","","","","");\r
-addButton("banner",BTN_IMG,"","","","","",0,0,"","","","","","");\r
-\r
-       addButton("blankblock");\r
-       writeStyle(false);\r
-       ReSortToolbarButtons();\r
-       writeToolBar();\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-</body>\r
-</html>
\ No newline at end of file
index 69737fa1ec80b90ffd803923256b714df759af1f..01bee59ac6c21cb2f25e71a267b4102e784a8317 100755 (executable)
@@ -1,63 +1,63 @@
-<html>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2">\r
-<!--\r
-var gsTopic="";\r
-\r
-if (location.hash.length > 1)\r
-{\r
-       var nPos = location.hash.indexOf(">>");\r
-       if (nPos>1)\r
-       {\r
-               gsTopic = location.hash.substring(1, nPos);\r
-               parseParam(location.hash.substring(nPos+2));\r
-       }\r
-       else\r
-               gsTopic = location.hash.substring(1);\r
-}\r
-\r
-\r
-       var strHtml="";\r
-       strHtml+="<frameset rows=\'100%,*\'>";\r
-       strHtml+="<frame name=\'topicwindow\' src=\'" + gsTopic +"\'></frame>";\r
-       strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";\r
-       strHtml+="</frameset>";\r
-       document.write(strHtml);\r
-\r
-function parseParam(sParam)\r
-{\r
-       if (sParam)\r
-       {\r
-               var nBPos=0;\r
-               do \r
-               {\r
-                       var nPos=sParam.indexOf(">>", nBPos);\r
-                       if (nPos!=-1)\r
-                       {\r
-                               if (nPos>0)\r
-                               {\r
-                                       var sPart=sParam.substring(nBPos, nPos);\r
-                                       parsePart(sPart);\r
-                               }\r
-                               nBPos = nPos + 2;\r
-                       }\r
-                       else\r
-                       {\r
-                               var sPart=sParam.substring(nBPos);\r
-                               parsePart(sPart);\r
-                               break;\r
-                       }\r
-               } while(nBPos < sParam.length);\r
-       }       \r
-}\r
-\r
-function parsePart(sPart)\r
-{\r
-       if(sPart.toLowerCase().indexOf("cap=")==0)\r
-       {\r
-               document.title=_browserStringToText(sPart.substring(4));\r
-       }\r
-}\r
-//-->\r
-</script>\r
+<html>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2">
+<!--
+var gsTopic="";
+
+if (location.hash.length > 1)
+{
+       var nPos = location.hash.indexOf(">>");
+       if (nPos>1)
+       {
+               gsTopic = location.hash.substring(1, nPos);
+               parseParam(location.hash.substring(nPos+2));
+       }
+       else
+               gsTopic = location.hash.substring(1);
+}
+
+
+       var strHtml="";
+       strHtml+="<frameset rows=\'100%,*\'>";
+       strHtml+="<frame name=\'topicwindow\' src=\'" + gsTopic +"\'></frame>";
+       strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";
+       strHtml+="</frameset>";
+       document.write(strHtml);
+
+function parseParam(sParam)
+{
+       if (sParam)
+       {
+               var nBPos=0;
+               do 
+               {
+                       var nPos=sParam.indexOf(">>", nBPos);
+                       if (nPos!=-1)
+                       {
+                               if (nPos>0)
+                               {
+                                       var sPart=sParam.substring(nBPos, nPos);
+                                       parsePart(sPart);
+                               }
+                               nBPos = nPos + 2;
+                       }
+                       else
+                       {
+                               var sPart=sParam.substring(nBPos);
+                               parsePart(sPart);
+                               break;
+                       }
+               } while(nBPos < sParam.length);
+       }       
+}
+
+function parsePart(sPart)
+{
+       if(sPart.toLowerCase().indexOf("cap=")==0)
+       {
+               document.title=_browserStringToText(sPart.substring(4));
+       }
+}
+//-->
+</script>
 </html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whst_topics.xml b/doc/salome/gui/SMESH/whst_topics.xml
deleted file mode 100755 (executable)
index 6dce998..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>\r
-<topictemplate>\r
- <topic type="normal">\r
-  <add tag="head" pos="endbefore" >\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS ;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>\r
-";]]>\r
-  </add>\r
-  <add tag="body" pos="beginafter">\r
-    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.addTocInfo)\r
-       {\r
-       ";\r
-         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
-         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
-         OutputInTopicNavBarDataButtons("addButton(%s);\r\n");\r
-       "\r
-       }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
-\r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       ";\r
-         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
-         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");\r
-       "\r
-               autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>"]]>  \r
-  </add>\r
-  <add tag="body" pos="endbefore">\r
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");\r
-//-->\r
-</script>";\r
-OutputInTopicNavBarDataWebSearch.form();]]>    \r
-  </add>\r
- </topic>\r
- <topic type="frameset">\r
-  <add tag="head" pos="endbefore" >\r
-   <![CDATA["<script type=\"text/javascript1.2\" language=\"javascript\" src=\"";SF_MESSAGE_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS ;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>\r
-<script type=\"text/javascript\" language=\"javascript1.2\">\r
-<!--\r
-if (window.setRelStartPage)\r
-{\r
-";\r
-  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");\r
-  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");\r
-  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");\r
-"\r
-}\r
-if (window.autoSync)\r
-       autoSync(";WH_USER_OPTIONS.autosync_toc;");\r
-//-->\r
-</script>\r
-";]]>\r
-  </add>\r
- </topic>\r
-</topictemplate>\r
diff --git a/doc/salome/gui/SMESH/whstart.ico b/doc/salome/gui/SMESH/whstart.ico
deleted file mode 100755 (executable)
index 365ecea..0000000
Binary files a/doc/salome/gui/SMESH/whstart.ico and /dev/null differ
index 77f37ee6a58c8d49c00303534edb8f91af13a566..69a40758d98a00cddf05aa87f3cf0d7cf3e2bfe3 100755 (executable)
-//     WebHelp 5.10.003\r
-RegisterListener2(this, WH_MSG_GETSTARTFRAME);\r
-RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);\r
-RegisterListener2(this, WH_MSG_MINIBARORDER);\r
-RegisterListener2(this, WH_MSG_TOOLBARORDER);\r
-RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);\r
-RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);\r
-RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);\r
-RegisterListener2(this, WH_MSG_GETPANETYPE);\r
-RegisterListener2(this, WH_MSG_GETPANES);\r
-RegisterListener2(this, WH_MSG_RELOADNS6);\r
-RegisterListener2(this, WH_MSG_GETCMD);\r
-RegisterListener2(this, WH_MSG_GETPANE);\r
-RegisterListener2(this, WH_MSG_GETDEFPANE);\r
-\r
-if (gbNav6)\r
-{\r
-       var gnReload=0;\r
-       setTimeout("delayReload();",5000);\r
-}\r
-\r
-function delayReload()\r
-{\r
-       if (!(this.cMRServer && cMRServer.m_strVersion))\r
-       {\r
-               if(gnReload!=2)\r
-               {\r
-                       if(nViewFrameType&&nViewFrameType==1)\r
-                               document.location=document.location;\r
-               }\r
-       }\r
-}\r
-\r
-var gsToolbarOrder = "toc|fts|glo|blankblock|searchform|banner";\r
-var gsMinibarOrder = "blankblock|hide2|";\r
-\r
-var gsTopic = "files/introduction_to_smesh.htm";\r
-var PANE_OPT_SEARCH = 1;\r
-var PANE_OPT_BROWSESEQ = 2;\r
-var gnOpts=-1;\r
-var gnCmd=-1;\r
-var gnPans=2;\r
-var gsBtns="invalid";\r
-var gsDefaultBtn="invalid";\r
-var gbHasTitle=false;\r
-\r
-if (location.hash.length > 1)\r
-{\r
-       var sParam = location.hash;\r
-       if (sParam.indexOf("#<") == 0)\r
-       {\r
-               document.location = "whcsh_home.htm#" + sParam.substring(2);\r
-       }\r
-       else if (sParam.indexOf("#>>") == 0)\r
-       {\r
-               parseParam(sParam.substring(3));\r
-               sParam = "#" + gsTopic + sParam.substring(1);\r
-       }\r
-       else\r
-       {\r
-               var nPos = sParam.indexOf(">>");\r
-               if (nPos>1)\r
-               {\r
-                       gsTopic = sParam.substring(1, nPos);\r
-                       parseParam(sParam.substring(nPos+2));\r
-               }\r
-               else\r
-                       gsTopic = sParam.substring(1);\r
-       }\r
-       if (gnPans == 1 && gsTopic)\r
-       {\r
-               var strURL=location.href;\r
-               if (location.hash)\r
-               {\r
-                       var nPos=location.href.indexOf(location.hash);\r
-                       strURL=strURL.substring(0, nPos);\r
-               }\r
-               if (gbHasTitle)\r
-                       document.location=_getPath(strURL)+ "whskin_tw.htm" + sParam;\r
-               else\r
-                       document.location=_getPath(strURL)+ gsTopic;\r
-       }\r
-}\r
-\r
-function parseParam(sParam)\r
-{\r
-       if (sParam)\r
-       {\r
-               var nBPos=0;\r
-               do \r
-               {\r
-                       var nPos=sParam.indexOf(">>", nBPos);\r
-                       if (nPos!=-1)\r
-                       {\r
-                               if (nPos>0)\r
-                               {\r
-                                       var sPart=sParam.substring(nBPos, nPos);\r
-                                       parsePart(sPart);\r
-                               }\r
-                               nBPos = nPos + 2;\r
-                       }\r
-                       else\r
-                       {\r
-                               var sPart=sParam.substring(nBPos);\r
-                               parsePart(sPart);\r
-                               break;\r
-                       }\r
-               } while(nBPos < sParam.length);\r
-       }       \r
-}\r
-\r
-function parsePart(sPart)\r
-{\r
-       if(sPart.toLowerCase().indexOf("cmd=")==0)\r
-       {\r
-               gnCmd=parseInt(sPart.substring(4));\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("cap=")==0)\r
-       {\r
-               document.title=_browserStringToText(sPart.substring(4));\r
-               gbHasTitle=true;\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("pan=")==0)\r
-       {\r
-               gnPans=parseInt(sPart.substring(4));\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("pot=")==0)\r
-       {\r
-               gnOpts=parseInt(sPart.substring(4));\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("pbs=")==0)\r
-       {\r
-               var sRawBtns = sPart.substring(4);\r
-               var aBtns = sRawBtns.split("|");\r
-               for (var i=0;i<aBtns.length;i++)\r
-               {\r
-                       aBtns[i] = transferAgentNameToPaneName(aBtns[i]);\r
-               }\r
-               gsRawBtns = aBtns.join("|");\r
-       }\r
-       else if(sPart.toLowerCase().indexOf("pdb=")==0)\r
-       {\r
-               gsDefaultBtn=transferAgentNameToPaneName(sPart.substring(4));\r
-       }\r
-}\r
-\r
-function setToolbarOrder(sOrder)\r
-{\r
-       gsToolbarOrder = sOrder;\r
-}\r
-\r
-function setMinibarOrder(sOrder)\r
-{\r
-       gsMinibarOrder = sOrder;\r
-}\r
-\r
-function onSendMessageX(oMsg)\r
-{\r
-       var nMsgId = oMsg.nMessageId;\r
-       if (nMsgId == WH_MSG_GETSTARTFRAME)\r
-       {\r
-               oMsg.oParam.oFrame = this;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       if (cMRServer.m_strURLTopic);\r
-                       {\r
-                               oMsg.oParam.sTopic = cMRServer.m_strURLTopic;\r
-                               return false;\r
-                       }\r
-\r
-               }\r
-               oMsg.oParam.sTopic = gsTopic;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_TOOLBARORDER)\r
-       {\r
-               var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);\r
-               if (SendMessage(oMsg1))\r
-               {\r
-                       if (oMsg1.oParam)\r
-                       {\r
-                               if (this.cMRServer && cMRServer.m_strVersion)\r
-                               {\r
-                                       var aToolbarOrder=cMRServer.m_strAgentList.split(";");\r
-                                       var i=0;\r
-                                       for (i=0;i<aToolbarOrder.length;i++)\r
-                                               aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);\r
-                                       aToolbarOrder[aToolbarOrder.length] = "blankblock";\r
-                                       if (cMRServer.m_bShowSearchInput)\r
-                                       {\r
-                                               aToolbarOrder[aToolbarOrder.length] = "searchform";\r
-                                       }\r
-                                       aToolbarOrder[aToolbarOrder.length] = "banner";\r
-                                       var aToolbarOrderNew = new Array();\r
-                                       for (i=0;i<aToolbarOrder.length;i++)\r
-                                       {\r
-                                               if (isAPane(aToolbarOrder[i]))\r
-                                               {\r
-                                                       if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)\r
-                                                       {\r
-                                                               for (var j=0;j<oMsg1.oParam.aPanes.length;j++)\r
-                                                               {\r
-                                                                       if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)\r
-                                                                       {\r
-                                                                               aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];\r
-                                                                               break;\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                               else\r
-                                                       aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];\r
-                                       }\r
-                                       oMsg.oParam = aToolbarOrderNew.join("|");\r
-                                       return false;\r
-                               }\r
-                       }\r
-               }\r
-               var sParam="";\r
-               if (gsBtns!="invalid")\r
-                       sParam=gsBtns+"|blankblock|banner";\r
-               else\r
-                       sParam = gsToolbarOrder;\r
-\r
-               if (gnOpts!=-1)\r
-               {\r
-                       var nPosForm=sParam.indexOf("|searchform|");\r
-                       if (gnOpts&PANE_OPT_SEARCH)\r
-                       {\r
-                               if (nPosForm == -1 && sParam.indexOf("|fts|") != -1)\r
-                               {\r
-                                       var nPos=sParam.indexOf("banner");\r
-                                       if (nPos!=-1)\r
-                                       {\r
-                                               sParam=sParam.substring(0, nPos) + "searchform|" + sParam.substring(nPos);\r
-                                       }\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               if (nPosForm!=-1)\r
-                               {\r
-                                       sParam=sParam.substring(0,nPosForm) + sParam.substring(nPosForm+11);\r
-                               }\r
-                       }\r
-               }\r
-               oMsg.oParam=sParam;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_MINIBARORDER)\r
-       {\r
-               var sMinParam=gsMinibarOrder;\r
-               if (gnOpts!=-1)\r
-               {\r
-                       var nPosBro=gsMinibarOrder.indexOf("avprev|avnext");\r
-                       if (gnOpts&PANE_OPT_BROWSESEQ)\r
-                       {\r
-                               if (nPosBro==-1)\r
-                               {\r
-                                       sMinParam ="avprev|avnext|" + gsMinibarOrder;\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               if (nPosBro!=-1)\r
-                               {\r
-                                       if (nPosBro!=0)\r
-                                               sMinParam=gsMinibarOrder.substring(0, nPosBro) + gsMinibarOrder.substring(nPosBro+14);\r
-                                       else\r
-                                               sMinParam=gsMinibarOrder.substring(14);\r
-                               }\r
-                       }\r
-               }\r
-               oMsg.oParam = sMinParam;\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       if (cMRServer.m_bShowSync)\r
-                               oMsg.oParam=true;\r
-                       else\r
-                               oMsg.oParam=false;\r
-                       return false;\r
-               }\r
-               else\r
-               {\r
-                       if(typeof(nViewFrameType)!="undefined")\r
-                       {\r
-                               oMsg.oParam= (nViewFrameType < 3);\r
-                               return false;\r
-                       }\r
-               }\r
-       }\r
-       else if (nMsgId == WH_MSG_ISAVENUESUPPORT)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       if (cMRServer.m_bShowBrowseSequences)\r
-                               oMsg.oParam=true;\r
-                       else\r
-                               oMsg.oParam=false;\r
-               }\r
-               else\r
-               {\r
-                       oMsg.oParam=true;\r
-               }\r
-               return false;\r
-       }\r
-       else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)\r
-       {\r
-               if(typeof(nViewFrameType)!="undefined")\r
-               {\r
-                       oMsg.oParam= (nViewFrameType < 3);\r
-                       return false;\r
-               }\r
-       }\r
-       else if (nMsgId == WH_MSG_GETPANETYPE)\r
-       {\r
-               if(typeof(nViewFrameType)!="undefined")\r
-               {\r
-                       var oPaneInfo = new Object();\r
-                       oPaneInfo.nType = nViewFrameType;\r
-                       oPaneInfo.sPaneURL = strPane;\r
-                       oMsg.oParam = oPaneInfo;\r
-                       return false;\r
-               }\r
-       }\r
-       else if (nMsgId == WH_MSG_GETPANES)\r
-       {\r
-               if (this.cMRServer && cMRServer.m_strVersion)\r
-               {\r
-                       var oPanes = new Object();\r
-                       var aAgentNames = null;\r
-                       if (cMRServer.m_strDefAgent)\r
-                               oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);\r
-\r
-                       aPanes = new Array();\r
-                       for(var i=0; i< cMRServer.m_cAgents.length; i++)\r
-                       {\r
-                               var nCur = aPanes.length;\r
-                               aPanes[nCur] = new Object();\r
-                               aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);\r
-                               aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;\r
-                       }\r
-                       oPanes.aPanes = aPanes;\r
-                       oMsg.oParam = oPanes;\r
-                       return false;\r
-               }\r
-               else\r
-               {\r
-                       oMsg.oParam = null;\r
-                       return false;\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_RELOADNS6)\r
-       {\r
-               if(gbNav6)\r
-                       gnReload++;\r
-               return false;\r
-       }\r
-       else if(nMsgId==WH_MSG_GETCMD)\r
-       {\r
-               oMsg.oParam=gnCmd;\r
-               return false;\r
-       }\r
-       else if(nMsgId==WH_MSG_GETPANE)\r
-       {\r
-               if (gsBtns!="invalid" && oMsg.oParam.sName)\r
-               {\r
-                       if(gsBtns.indexOf(oMsg.oParam.sName) != -1)\r
-                               oMsg.oParam.bEnable=true;\r
-                       else\r
-                               oMsg.oParam.bEnable=false;\r
-               }\r
-               else\r
-                       oMsg.oParam.bEnable=true;\r
-               return false;\r
-       }\r
-       else if(nMsgId==WH_MSG_GETDEFPANE)\r
-       {\r
-               if (gsDefaultBtn!="invalid")\r
-               {\r
-                       oMsg.oParam=gsDefaultBtn;\r
-               }\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
-function transferANToPN2(sAN)\r
-{\r
-       if (sAN =="toc")\r
-               return "toc";\r
-       else if (sAN =="ndx")\r
-               return "idx";\r
-       else if (sAN =="nls")\r
-               return "fts";\r
-       else if (sAN =="gls")\r
-               return "glo";\r
-       else if (sAN =="WebSearch")\r
-               return "websearch";\r
-       else if (sAN.indexOf("custom_")==0);\r
-               return "custom" + sAN.substring(7);\r
-       return sAN;\r
-}\r
-\r
-function transferAgentNameToPaneName(sAgentName)\r
-{\r
-       if (sAgentName =="toc")\r
-               return "toc";\r
-       else if (sAgentName =="ndx")\r
-               return "idx";\r
-       else if (sAgentName =="nls")\r
-               return "fts";\r
-       else if (sAgentName =="gls")\r
-               return "glo";\r
-       return "";\r
-}\r
-\r
-function isAPane(sPaneName)\r
-{\r
-       if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")\r
-               return true;\r
-       else\r
-               return false;\r
+//     WebHelp 5.10.003
+RegisterListener2(this, WH_MSG_GETSTARTFRAME);
+RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);
+RegisterListener2(this, WH_MSG_MINIBARORDER);
+RegisterListener2(this, WH_MSG_TOOLBARORDER);
+RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);
+RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);
+RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);
+RegisterListener2(this, WH_MSG_GETPANETYPE);
+RegisterListener2(this, WH_MSG_GETPANES);
+RegisterListener2(this, WH_MSG_RELOADNS6);
+RegisterListener2(this, WH_MSG_GETCMD);
+RegisterListener2(this, WH_MSG_GETPANE);
+RegisterListener2(this, WH_MSG_GETDEFPANE);
+
+if (gbNav6)
+{
+       var gnReload=0;
+       setTimeout("delayReload();",5000);
+}
+
+function delayReload()
+{
+       if (!(this.cMRServer && cMRServer.m_strVersion))
+       {
+               if(gnReload!=2)
+               {
+                       if(nViewFrameType&&nViewFrameType==1)
+                               document.location=document.location;
+               }
+       }
+}
+
+var gsToolbarOrder = "";
+var gsMinibarOrder = "";
+
+var gsTopic = "mesh.htm";
+var PANE_OPT_SEARCH = 1;
+var PANE_OPT_BROWSESEQ = 2;
+var gnOpts=-1;
+var gnCmd=-1;
+var gnPans=2;
+var gsBtns="invalid";
+var gsDefaultBtn="invalid";
+var gbHasTitle=false;
+
+if (location.hash.length > 1)
+{
+       var sParam = location.hash;
+       if (sParam.indexOf("#<") == 0)
+       {
+               document.location = "whcsh_home.htm#" + sParam.substring(2);
+       }
+       else if (sParam.indexOf("#>>") == 0)
+       {
+               parseParam(sParam.substring(3));
+               sParam = "#" + gsTopic + sParam.substring(1);
+       }
+       else
+       {
+               var nPos = sParam.indexOf(">>");
+               if (nPos>1)
+               {
+                       gsTopic = sParam.substring(1, nPos);
+                       parseParam(sParam.substring(nPos+2));
+               }
+               else
+                       gsTopic = sParam.substring(1);
+       }
+       if (gnPans == 1 && gsTopic)
+       {
+               var strURL=location.href;
+               if (location.hash)
+               {
+                       var nPos=location.href.indexOf(location.hash);
+                       strURL=strURL.substring(0, nPos);
+               }
+               if (gbHasTitle)
+                       document.location=_getPath(strURL)+ "whskin_tw.htm" + sParam;
+               else
+                       document.location=_getPath(strURL)+ gsTopic;
+       }
+}
+
+function parseParam(sParam)
+{
+       if (sParam)
+       {
+               var nBPos=0;
+               do 
+               {
+                       var nPos=sParam.indexOf(">>", nBPos);
+                       if (nPos!=-1)
+                       {
+                               if (nPos>0)
+                               {
+                                       var sPart=sParam.substring(nBPos, nPos);
+                                       parsePart(sPart);
+                               }
+                               nBPos = nPos + 2;
+                       }
+                       else
+                       {
+                               var sPart=sParam.substring(nBPos);
+                               parsePart(sPart);
+                               break;
+                       }
+               } while(nBPos < sParam.length);
+       }       
+}
+
+function parsePart(sPart)
+{
+       if(sPart.toLowerCase().indexOf("cmd=")==0)
+       {
+               gnCmd=parseInt(sPart.substring(4));
+       }
+       else if(sPart.toLowerCase().indexOf("cap=")==0)
+       {
+               document.title=_browserStringToText(sPart.substring(4));
+               gbHasTitle=true;
+       }
+       else if(sPart.toLowerCase().indexOf("pan=")==0)
+       {
+               gnPans=parseInt(sPart.substring(4));
+       }
+       else if(sPart.toLowerCase().indexOf("pot=")==0)
+       {
+               gnOpts=parseInt(sPart.substring(4));
+       }
+       else if(sPart.toLowerCase().indexOf("pbs=")==0)
+       {
+               var sRawBtns = sPart.substring(4);
+               var aBtns = sRawBtns.split("|");
+               for (var i=0;i<aBtns.length;i++)
+               {
+                       aBtns[i] = transferAgentNameToPaneName(aBtns[i]);
+               }
+               gsRawBtns = aBtns.join("|");
+       }
+       else if(sPart.toLowerCase().indexOf("pdb=")==0)
+       {
+               gsDefaultBtn=transferAgentNameToPaneName(sPart.substring(4));
+       }
+}
+
+function setToolbarOrder(sOrder)
+{
+       gsToolbarOrder = sOrder;
+}
+
+function setMinibarOrder(sOrder)
+{
+       gsMinibarOrder = sOrder;
+}
+
+function onSendMessageX(oMsg)
+{
+       var nMsgId = oMsg.nMessageId;
+       if (nMsgId == WH_MSG_GETSTARTFRAME)
+       {
+               oMsg.oParam.oFrame = this;
+               return false;
+       }
+       else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)
+       {
+               if (this.cMRServer && cMRServer.m_strVersion)
+               {
+                       if (cMRServer.m_strURLTopic);
+                       {
+                               oMsg.oParam.sTopic = cMRServer.m_strURLTopic;
+                               return false;
+                       }
+
+               }
+               oMsg.oParam.sTopic = gsTopic;
+               return false;
+       }
+       else if (nMsgId == WH_MSG_TOOLBARORDER)
+       {
+               var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);
+               if (SendMessage(oMsg1))
+               {
+                       if (oMsg1.oParam)
+                       {
+                               if (this.cMRServer && cMRServer.m_strVersion)
+                               {
+                                       var aToolbarOrder=cMRServer.m_strAgentList.split(";");
+                                       var i=0;
+                                       for (i=0;i<aToolbarOrder.length;i++)
+                                               aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);
+                                       aToolbarOrder[aToolbarOrder.length] = "blankblock";
+                                       if (cMRServer.m_bShowSearchInput)
+                                       {
+                                               aToolbarOrder[aToolbarOrder.length] = "searchform";
+                                       }
+                                       aToolbarOrder[aToolbarOrder.length] = "banner";
+                                       var aToolbarOrderNew = new Array();
+                                       for (i=0;i<aToolbarOrder.length;i++)
+                                       {
+                                               if (isAPane(aToolbarOrder[i]))
+                                               {
+                                                       if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)
+                                                       {
+                                                               for (var j=0;j<oMsg1.oParam.aPanes.length;j++)
+                                                               {
+                                                                       if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)
+                                                                       {
+                                                                               aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
+                                                                               break;
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+                                               else
+                                                       aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
+                                       }
+                                       oMsg.oParam = aToolbarOrderNew.join("|");
+                                       return false;
+                               }
+                       }
+               }
+               var sParam="";
+               if (gsBtns!="invalid")
+                       sParam=gsBtns+"|blankblock|banner";
+               else
+                       sParam = gsToolbarOrder;
+
+               if (gnOpts!=-1)
+               {
+                       var nPosForm=sParam.indexOf("|searchform|");
+                       if (gnOpts&PANE_OPT_SEARCH)
+                       {
+                               if (nPosForm == -1 && sParam.indexOf("|fts|") != -1)
+                               {
+                                       var nPos=sParam.indexOf("banner");
+                                       if (nPos!=-1)
+                                       {
+                                               sParam=sParam.substring(0, nPos) + "searchform|" + sParam.substring(nPos);
+                                       }
+                               }
+                       }
+                       else
+                       {
+                               if (nPosForm!=-1)
+                               {
+                                       sParam=sParam.substring(0,nPosForm) + sParam.substring(nPosForm+11);
+                               }
+                       }
+               }
+               oMsg.oParam=sParam;
+               return false;
+       }
+       else if (nMsgId == WH_MSG_MINIBARORDER)
+       {
+               var sMinParam=gsMinibarOrder;
+               if (gnOpts!=-1)
+               {
+                       var nPosBro=gsMinibarOrder.indexOf("avprev|avnext");
+                       if (gnOpts&PANE_OPT_BROWSESEQ)
+                       {
+                               if (nPosBro==-1)
+                               {
+                                       sMinParam ="avprev|avnext|" + gsMinibarOrder;
+                               }
+                       }
+                       else
+                       {
+                               if (nPosBro!=-1)
+                               {
+                                       if (nPosBro!=0)
+                                               sMinParam=gsMinibarOrder.substring(0, nPosBro) + gsMinibarOrder.substring(nPosBro+14);
+                                       else
+                                               sMinParam=gsMinibarOrder.substring(14);
+                               }
+                       }
+               }
+               oMsg.oParam = sMinParam;
+               return false;
+       }
+       else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)
+       {
+               if (this.cMRServer && cMRServer.m_strVersion)
+               {
+                       if (cMRServer.m_bShowSync)
+                               oMsg.oParam=true;
+                       else
+                               oMsg.oParam=false;
+                       return false;
+               }
+               else
+               {
+                       if(typeof(nViewFrameType)!="undefined")
+                       {
+                               oMsg.oParam= (nViewFrameType < 3);
+                               return false;
+                       }
+               }
+       }
+       else if (nMsgId == WH_MSG_ISAVENUESUPPORT)
+       {
+               if (this.cMRServer && cMRServer.m_strVersion)
+               {
+                       if (cMRServer.m_bShowBrowseSequences)
+                               oMsg.oParam=true;
+                       else
+                               oMsg.oParam=false;
+               }
+               else
+               {
+                       oMsg.oParam=true;
+               }
+               return false;
+       }
+       else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)
+       {
+               if(typeof(nViewFrameType)!="undefined")
+               {
+                       oMsg.oParam= (nViewFrameType < 3);
+                       return false;
+               }
+       }
+       else if (nMsgId == WH_MSG_GETPANETYPE)
+       {
+               if(typeof(nViewFrameType)!="undefined")
+               {
+                       var oPaneInfo = new Object();
+                       oPaneInfo.nType = nViewFrameType;
+                       oPaneInfo.sPaneURL = strPane;
+                       oMsg.oParam = oPaneInfo;
+                       return false;
+               }
+       }
+       else if (nMsgId == WH_MSG_GETPANES)
+       {
+               if (this.cMRServer && cMRServer.m_strVersion)
+               {
+                       var oPanes = new Object();
+                       var aAgentNames = null;
+                       if (cMRServer.m_strDefAgent)
+                               oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);
+
+                       aPanes = new Array();
+                       for(var i=0; i< cMRServer.m_cAgents.length; i++)
+                       {
+                               var nCur = aPanes.length;
+                               aPanes[nCur] = new Object();
+                               aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);
+                               aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;
+                       }
+                       oPanes.aPanes = aPanes;
+                       oMsg.oParam = oPanes;
+                       return false;
+               }
+               else
+               {
+                       oMsg.oParam = null;
+                       return false;
+               }
+       }
+       else if(nMsgId==WH_MSG_RELOADNS6)
+       {
+               if(gbNav6)
+                       gnReload++;
+               return false;
+       }
+       else if(nMsgId==WH_MSG_GETCMD)
+       {
+               oMsg.oParam=gnCmd;
+               return false;
+       }
+       else if(nMsgId==WH_MSG_GETPANE)
+       {
+               if (gsBtns!="invalid" && oMsg.oParam.sName)
+               {
+                       if(gsBtns.indexOf(oMsg.oParam.sName) != -1)
+                               oMsg.oParam.bEnable=true;
+                       else
+                               oMsg.oParam.bEnable=false;
+               }
+               else
+                       oMsg.oParam.bEnable=true;
+               return false;
+       }
+       else if(nMsgId==WH_MSG_GETDEFPANE)
+       {
+               if (gsDefaultBtn!="invalid")
+               {
+                       oMsg.oParam=gsDefaultBtn;
+               }
+               return false;
+       }
+       return true;
+}
+
+function transferANToPN2(sAN)
+{
+       if (sAN =="toc")
+               return "toc";
+       else if (sAN =="ndx")
+               return "idx";
+       else if (sAN =="nls")
+               return "fts";
+       else if (sAN =="gls")
+               return "glo";
+       else if (sAN =="WebSearch")
+               return "websearch";
+       else if (sAN.indexOf("custom_")==0);
+               return "custom" + sAN.substring(7);
+       return sAN;
+}
+
+function transferAgentNameToPaneName(sAgentName)
+{
+       if (sAgentName =="toc")
+               return "toc";
+       else if (sAgentName =="ndx")
+               return "idx";
+       else if (sAgentName =="nls")
+               return "fts";
+       else if (sAgentName =="gls")
+               return "glo";
+       return "";
+}
+
+function isAPane(sPaneName)
+{
+       if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")
+               return true;
+       else
+               return false;
 }
\ No newline at end of file
index a43c6e1c43f9ee6acd4ef60b4d3e43f9307f120c..a94288c7c1745b060ea026c18641132450292516 100755 (executable)
-//     WebHelp 5.10.002\r
-window.whname="wh_stub";\r
-function getframehandle(frames,framename)\r
-{\r
-       var frame=null;\r
-       if(null==frames) return null;\r
-       for(var i=0;i<frames.length;i++)\r
-       {\r
-               if(typeof(frames[i].name)!="unknown")\r
-               {\r
-                       if(frames[i].name==framename)\r
-                               return frames[i];\r
-               }\r
-               if(frames[i].frames.length>0)\r
-               {\r
-                       frame=getframehandle(frames[i].frames,framename);\r
-                       if(null!=frame)\r
-                               return frame;\r
-               }\r
-       }\r
-       return frame;\r
-}\r
-\r
-function AddToArray(arr,obj)\r
-{\r
-       var bFound=false;\r
-       for(var i=0;i<arr.length;i++){\r
-               if(arr[i]==obj){\r
-                       bFound=true;\r
-                       break;\r
-               }\r
-               else if(arr[i]==null){\r
-                       break;\r
-               }\r
-       }\r
-       if(!bFound) arr[i]=obj;\r
-}\r
-\r
-var gArrayRegistedMessage=new Array();\r
-var gArrayCompoentsArray=new Array();\r
-\r
-function GetComponentsArray(nMessageId)\r
-{\r
-       var len=gArrayRegistedMessage.length;\r
-       for(var i=0;i<len;i++)\r
-       {\r
-               if(gArrayRegistedMessage[i]==nMessageId){\r
-                       if(gArrayCompoentsArray.length>i)\r
-                               return gArrayCompoentsArray[i];\r
-                       else\r
-                               return null;\r
-               }\r
-       }\r
-       return null;\r
-}\r
-\r
-function CreateComponentsArray(nMessageId)\r
-{\r
-       var len=gArrayRegistedMessage.length;\r
-       gArrayRegistedMessage[len]=nMessageId;\r
-       gArrayCompoentsArray[len]=new Array();\r
-       return gArrayCompoentsArray[len];\r
-}\r
-\r
-function listener(sName,oWindow)\r
-{\r
-       this.sName=sName;\r
-       this.oWindow=oWindow;\r
-}\r
-\r
-function RegisterListener(windowName,nMessageId)\r
-{\r
-       var arrayComponents=GetComponentsArray(nMessageId);\r
-       if(arrayComponents==null)\r
-               arrayComponents=CreateComponentsArray(nMessageId);\r
-       \r
-       if(arrayComponents!=null)\r
-       {\r
-               for (var i=0;i<arrayComponents.length;i++)\r
-               {\r
-                       if (arrayComponents[i].sName == windowName)\r
-                               return false;\r
-               }\r
-               var oListener=new listener(windowName,null);\r
-               AddToArray(arrayComponents,oListener);\r
-               return true;\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function RegisterListener2(oWindow,nMessageId)\r
-{\r
-       var arrayComponents=GetComponentsArray(nMessageId);\r
-       if(arrayComponents==null)\r
-               arrayComponents=CreateComponentsArray(nMessageId);\r
-       \r
-       if(arrayComponents!=null)\r
-       {\r
-               var oListener=new listener("",oWindow);\r
-               AddToArray(arrayComponents,oListener);\r
-               return true;\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function UnRegisterListener2(oWindow,nMessageId)\r
-{\r
-       var arrayComponents=GetComponentsArray(nMessageId);\r
-       if(arrayComponents!=null)\r
-       {\r
-               for(var i=0;i<arrayComponents.length;i++)\r
-               {\r
-                       if(arrayComponents[i].oWindow==oWindow)\r
-                       {\r
-                               removeItemFromArray(arrayComponents,i);\r
-                               return true;\r
-                       }\r
-               }\r
-       }\r
-       else\r
-               return false;\r
-}\r
-\r
-function SendMessage(oMessage)\r
-{\r
-       var bDelivered=false;\r
-       var arrayComponents=GetComponentsArray(oMessage.nMessageId);\r
-       if(arrayComponents!=null&&arrayComponents.length>0){\r
-               for(var i=0;i<arrayComponents.length;i++)\r
-               {\r
-                       if(null!=arrayComponents[i])\r
-                       {\r
-                               var pFrame;\r
-                               if(arrayComponents[i].oWindow==null)\r
-                                       pFrame=getframehandle(frames,arrayComponents[i].sName);\r
-                               else\r
-                                       pFrame=arrayComponents[i].oWindow;\r
-                               if(null!=pFrame)\r
-                               {\r
-                                       if(pFrame.onSendMessageX)\r
-                                       {\r
-                                               bDelivered=true;\r
-                                               if(!pFrame.onSendMessageX(oMessage))\r
-                                                       break;\r
-                                       }\r
-                                       if(pFrame.onSendMessage)\r
-                                       {\r
-                                               bDelivered=true;\r
-                                               if(!pFrame.onSendMessage(oMessage))\r
-                                                       break;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return bDelivered;\r
+//     WebHelp 5.10.002
+window.whname="wh_stub";
+function getframehandle(frames,framename)
+{
+       var frame=null;
+       if(null==frames) return null;
+       for(var i=0;i<frames.length;i++)
+       {
+               if(typeof(frames[i].name)!="unknown")
+               {
+                       if(frames[i].name==framename)
+                               return frames[i];
+               }
+               if(frames[i].frames.length>0)
+               {
+                       frame=getframehandle(frames[i].frames,framename);
+                       if(null!=frame)
+                               return frame;
+               }
+       }
+       return frame;
+}
+
+function AddToArray(arr,obj)
+{
+       var bFound=false;
+       for(var i=0;i<arr.length;i++){
+               if(arr[i]==obj){
+                       bFound=true;
+                       break;
+               }
+               else if(arr[i]==null){
+                       break;
+               }
+       }
+       if(!bFound) arr[i]=obj;
+}
+
+var gArrayRegistedMessage=new Array();
+var gArrayCompoentsArray=new Array();
+
+function GetComponentsArray(nMessageId)
+{
+       var len=gArrayRegistedMessage.length;
+       for(var i=0;i<len;i++)
+       {
+               if(gArrayRegistedMessage[i]==nMessageId){
+                       if(gArrayCompoentsArray.length>i)
+                               return gArrayCompoentsArray[i];
+                       else
+                               return null;
+               }
+       }
+       return null;
+}
+
+function CreateComponentsArray(nMessageId)
+{
+       var len=gArrayRegistedMessage.length;
+       gArrayRegistedMessage[len]=nMessageId;
+       gArrayCompoentsArray[len]=new Array();
+       return gArrayCompoentsArray[len];
+}
+
+function listener(sName,oWindow)
+{
+       this.sName=sName;
+       this.oWindow=oWindow;
+}
+
+function RegisterListener(windowName,nMessageId)
+{
+       var arrayComponents=GetComponentsArray(nMessageId);
+       if(arrayComponents==null)
+               arrayComponents=CreateComponentsArray(nMessageId);
+       
+       if(arrayComponents!=null)
+       {
+               for (var i=0;i<arrayComponents.length;i++)
+               {
+                       if (arrayComponents[i].sName == windowName)
+                               return false;
+               }
+               var oListener=new listener(windowName,null);
+               AddToArray(arrayComponents,oListener);
+               return true;
+       }
+       else
+               return false;
+}
+
+function RegisterListener2(oWindow,nMessageId)
+{
+       var arrayComponents=GetComponentsArray(nMessageId);
+       if(arrayComponents==null)
+               arrayComponents=CreateComponentsArray(nMessageId);
+       
+       if(arrayComponents!=null)
+       {
+               var oListener=new listener("",oWindow);
+               AddToArray(arrayComponents,oListener);
+               return true;
+       }
+       else
+               return false;
+}
+
+function UnRegisterListener2(oWindow,nMessageId)
+{
+       var arrayComponents=GetComponentsArray(nMessageId);
+       if(arrayComponents!=null)
+       {
+               for(var i=0;i<arrayComponents.length;i++)
+               {
+                       if(arrayComponents[i].oWindow==oWindow)
+                       {
+                               removeItemFromArray(arrayComponents,i);
+                               return true;
+                       }
+               }
+       }
+       else
+               return false;
+}
+
+function SendMessage(oMessage)
+{
+       var bDelivered=false;
+       var arrayComponents=GetComponentsArray(oMessage.nMessageId);
+       if(arrayComponents!=null&&arrayComponents.length>0){
+               for(var i=0;i<arrayComponents.length;i++)
+               {
+                       if(null!=arrayComponents[i])
+                       {
+                               var pFrame;
+                               if(arrayComponents[i].oWindow==null)
+                                       pFrame=getframehandle(frames,arrayComponents[i].sName);
+                               else
+                                       pFrame=arrayComponents[i].oWindow;
+                               if(null!=pFrame)
+                               {
+                                       if(pFrame.onSendMessageX)
+                                       {
+                                               bDelivered=true;
+                                               if(!pFrame.onSendMessageX(oMessage))
+                                                       break;
+                                       }
+                                       if(pFrame.onSendMessage)
+                                       {
+                                               bDelivered=true;
+                                               if(!pFrame.onSendMessage(oMessage))
+                                                       break;
+                                       }
+                               }
+                       }
+               }
+       }
+       return bDelivered;
 }
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/wht_abge.jpg b/doc/salome/gui/SMESH/wht_abge.jpg
deleted file mode 100755 (executable)
index 5e816c9..0000000
Binary files a/doc/salome/gui/SMESH/wht_abge.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abgi.jpg b/doc/salome/gui/SMESH/wht_abgi.jpg
deleted file mode 100755 (executable)
index bfedc68..0000000
Binary files a/doc/salome/gui/SMESH/wht_abgi.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abgw.jpg b/doc/salome/gui/SMESH/wht_abgw.jpg
deleted file mode 100755 (executable)
index 95af21f..0000000
Binary files a/doc/salome/gui/SMESH/wht_abgw.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abte.jpg b/doc/salome/gui/SMESH/wht_abte.jpg
deleted file mode 100755 (executable)
index a5638fa..0000000
Binary files a/doc/salome/gui/SMESH/wht_abte.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abti.jpg b/doc/salome/gui/SMESH/wht_abti.jpg
deleted file mode 100755 (executable)
index 14ac68c..0000000
Binary files a/doc/salome/gui/SMESH/wht_abti.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_abtw.jpg b/doc/salome/gui/SMESH/wht_abtw.jpg
deleted file mode 100755 (executable)
index 46e68b1..0000000
Binary files a/doc/salome/gui/SMESH/wht_abtw.jpg and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_fts_h.gif b/doc/salome/gui/SMESH/wht_fts_h.gif
deleted file mode 100755 (executable)
index feb79ae..0000000
Binary files a/doc/salome/gui/SMESH/wht_fts_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_fts_n.gif b/doc/salome/gui/SMESH/wht_fts_n.gif
deleted file mode 100755 (executable)
index 8483be4..0000000
Binary files a/doc/salome/gui/SMESH/wht_fts_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_glo_h.gif b/doc/salome/gui/SMESH/wht_glo_h.gif
deleted file mode 100755 (executable)
index 12223e5..0000000
Binary files a/doc/salome/gui/SMESH/wht_glo_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_glo_n.gif b/doc/salome/gui/SMESH/wht_glo_n.gif
deleted file mode 100755 (executable)
index 32803eb..0000000
Binary files a/doc/salome/gui/SMESH/wht_glo_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_go.gif b/doc/salome/gui/SMESH/wht_go.gif
deleted file mode 100755 (executable)
index 106f1d1..0000000
Binary files a/doc/salome/gui/SMESH/wht_go.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_hide.gif b/doc/salome/gui/SMESH/wht_hide.gif
deleted file mode 100755 (executable)
index 6ec602d..0000000
Binary files a/doc/salome/gui/SMESH/wht_hide.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_idx_h.gif b/doc/salome/gui/SMESH/wht_idx_h.gif
deleted file mode 100755 (executable)
index 2df1b16..0000000
Binary files a/doc/salome/gui/SMESH/wht_idx_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_idx_n.gif b/doc/salome/gui/SMESH/wht_idx_n.gif
deleted file mode 100755 (executable)
index fd193a0..0000000
Binary files a/doc/salome/gui/SMESH/wht_idx_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_logo1.gif b/doc/salome/gui/SMESH/wht_logo1.gif
deleted file mode 100755 (executable)
index 2ef5700..0000000
Binary files a/doc/salome/gui/SMESH/wht_logo1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_logo2.gif b/doc/salome/gui/SMESH/wht_logo2.gif
deleted file mode 100755 (executable)
index 2ac62e8..0000000
Binary files a/doc/salome/gui/SMESH/wht_logo2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_next.gif b/doc/salome/gui/SMESH/wht_next.gif
deleted file mode 100755 (executable)
index 8ea834d..0000000
Binary files a/doc/salome/gui/SMESH/wht_next.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_next_g.gif b/doc/salome/gui/SMESH/wht_next_g.gif
deleted file mode 100755 (executable)
index c0e9758..0000000
Binary files a/doc/salome/gui/SMESH/wht_next_g.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_prev.gif b/doc/salome/gui/SMESH/wht_prev.gif
deleted file mode 100755 (executable)
index b7eaba8..0000000
Binary files a/doc/salome/gui/SMESH/wht_prev.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_prev_g.gif b/doc/salome/gui/SMESH/wht_prev_g.gif
deleted file mode 100755 (executable)
index 8647909..0000000
Binary files a/doc/salome/gui/SMESH/wht_prev_g.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_spac.gif b/doc/salome/gui/SMESH/wht_spac.gif
deleted file mode 100755 (executable)
index fc25609..0000000
Binary files a/doc/salome/gui/SMESH/wht_spac.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_sync.gif b/doc/salome/gui/SMESH/wht_sync.gif
deleted file mode 100755 (executable)
index 0ef1747..0000000
Binary files a/doc/salome/gui/SMESH/wht_sync.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab0.gif b/doc/salome/gui/SMESH/wht_tab0.gif
deleted file mode 100755 (executable)
index 955c42f..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab0.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab1.gif b/doc/salome/gui/SMESH/wht_tab1.gif
deleted file mode 100755 (executable)
index b3ec41d..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab2.gif b/doc/salome/gui/SMESH/wht_tab2.gif
deleted file mode 100755 (executable)
index 08fb0ce..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab3.gif b/doc/salome/gui/SMESH/wht_tab3.gif
deleted file mode 100755 (executable)
index 1819c8e..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab3.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab4.gif b/doc/salome/gui/SMESH/wht_tab4.gif
deleted file mode 100755 (executable)
index 1a6fc4f..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab5.gif b/doc/salome/gui/SMESH/wht_tab5.gif
deleted file mode 100755 (executable)
index 9340192..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab5.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab6.gif b/doc/salome/gui/SMESH/wht_tab6.gif
deleted file mode 100755 (executable)
index fe312d2..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab6.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab7.gif b/doc/salome/gui/SMESH/wht_tab7.gif
deleted file mode 100755 (executable)
index 3b95ae2..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab7.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_tab8.gif b/doc/salome/gui/SMESH/wht_tab8.gif
deleted file mode 100755 (executable)
index c80acc8..0000000
Binary files a/doc/salome/gui/SMESH/wht_tab8.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc1.gif b/doc/salome/gui/SMESH/wht_toc1.gif
deleted file mode 100755 (executable)
index 515c352..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc1.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc2.gif b/doc/salome/gui/SMESH/wht_toc2.gif
deleted file mode 100755 (executable)
index 2e3d6c8..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc2.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc3.gif b/doc/salome/gui/SMESH/wht_toc3.gif
deleted file mode 100755 (executable)
index 330f369..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc3.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc4.gif b/doc/salome/gui/SMESH/wht_toc4.gif
deleted file mode 100755 (executable)
index 3f9a036..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc4.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc_h.gif b/doc/salome/gui/SMESH/wht_toc_h.gif
deleted file mode 100755 (executable)
index fe20f68..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc_h.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_toc_n.gif b/doc/salome/gui/SMESH/wht_toc_n.gif
deleted file mode 100755 (executable)
index ce28310..0000000
Binary files a/doc/salome/gui/SMESH/wht_toc_n.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_ws.gif b/doc/salome/gui/SMESH/wht_ws.gif
deleted file mode 100755 (executable)
index 563db8b..0000000
Binary files a/doc/salome/gui/SMESH/wht_ws.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/wht_ws_g.gif b/doc/salome/gui/SMESH/wht_ws_g.gif
deleted file mode 100755 (executable)
index 3056b75..0000000
Binary files a/doc/salome/gui/SMESH/wht_ws_g.gif and /dev/null differ
diff --git a/doc/salome/gui/SMESH/whtbar.js b/doc/salome/gui/SMESH/whtbar.js
deleted file mode 100755 (executable)
index 08b19e5..0000000
+++ /dev/null
@@ -1,2043 +0,0 @@
-//     WebHelp 5.10.006\r
-var gaButtons=new Array();\r
-var    gaTypes=new Array();\r
-var gaBtnBgColor=new Array();\r
-var gaSelBtnBgColor=new Array();\r
-var gaOrders=null;\r
-var gaObjBtns=new Array();\r
-var BTN_TEXT=1;\r
-var BTN_IMG=2;\r
-var BTN_IMG_TOP=4\r
-var BTN_IMG_BOTTOM=8;\r
-var BTN_IMG_LEFT=16;\r
-var BTN_IMG_RIGHT=32;\r
-var gsAlign="left";\r
-var gsBgImage="";\r
-var gsBgColor="#99ccff";\r
-var gsShadow="#cccccc";\r
-var gsTBBgImage="";\r
-var gnShowHideStyle=0;\r
-var goTocInfo=null;\r
-var gbTocInfoInited=false;\r
-var goWebSearch=null;\r
-var gsTBFontFamily="Arial";\r
-var gsTBFontSize="xx-small";\r
-var gsTBFontColor="#003063";\r
-var gsTBDarkColor="#808080";\r
-var gsTBLightColor="#FFFAFA";\r
-var gsTBSelectedBgColor="#639ace";\r
-var gsTBFontSelectedColor="#ffffff";\r
-var gaOnLoads=new Array();\r
-var goWebSearchEnable=true;\r
-\r
-var goShow=null;\r
-var goHide=null;\r
-var goHide2=null;\r
-var goSync=null;\r
-\r
-var goToc=null;\r
-var goIdx=null;\r
-var goFts=null;\r
-var goGlo=null;\r
-var goNext=null;\r
-var goPrev=null;\r
-\r
-var LAYOUT=1;\r
-var HLAYOUT=0;\r
-var VLAYOUT=1;\r
-var ALIGN=2;\r
-var BALIGN=0;\r
-var EALIGN=2;\r
-var goEl=null;\r
-var gnRE=0;\r
-\r
-var gnButtonLayout=0;\r
-var gnShowHide=-1;\r
-\r
-var gbEqualSize=false;\r
-var goCusButton=new Array();\r
-var gsBtnStyle="";\r
-var gaAvenues=null;\r
-var gsCurAveName="";\r
-\r
-var gsIToc=null;\r
-var gsITocS=null;\r
-var gsIIndex=null;\r
-var gsIIndexS=null;\r
-var gsISearch=null;\r
-var gsISearchS=null;\r
-var gsIGlossary=null;\r
-var gsIGlossaryS=null;\r
-var gsIBanner=null;\r
-var gsIGo=null;\r
-\r
-var gsIHide=null;\r
-var gsIPrev=null;\r
-var gsINext=null;\r
-var gsISync=null;\r
-var gsINextD=null;\r
-var gsIPrevD=null;\r
-var gsIWebSearch=null;\r
-var gsIWebSearchD=null;\r
-\r
-var gbAveButttnInited=false;\r
-var goNextParent=null;\r
-var goPrevParent=null;\r
-var gsSearchPrompt="- Search -";\r
-\r
-var gstrSearch="";\r
-var gbPreview=false;\r
-gbPreview=false; \r
-var gsSearchFormTitle="";\r
-var gnHasNavPane=-1;\r
-var gbInitBtn=false;\r
-var gaBtns=new Array();\r
-var gbWhTBar=false;\r
-var goTextFont=null;\r
-var goSelTextFont=null;\r
-var gsPane="";\r
-var gbNeedUpdateAve=false;\r
-var gbUpdateTimerCount=0;\r
-\r
-function setGoImage(sGoImage)\r
-{\r
-       if(sGoImage)\r
-       {\r
-               gsIGo=sGoImage;\r
-       }\r
-}\r
-\r
-function btnBgColor(sType,sColor)\r
-{\r
-       this.sType=sType;\r
-       this.sColor=sColor;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setAlignment(strAlignment)\r
-{\r
-       gnButtonLayout=0;\r
-       if(strAlignment=="left")\r
-       {\r
-               gnButtonLayout=HLAYOUT|BALIGN;\r
-       }\r
-       else if(strAlignment=="right")\r
-       {\r
-               gnButtonLayout=HLAYOUT|EALIGN;\r
-       }\r
-       else if(strAlignment=="top")\r
-       {\r
-               gnButtonLayout=VLAYOUT|BALIGN;\r
-       }\r
-       else if(strAlignment=="bottom")\r
-       {\r
-               gnButtonLayout=VLAYOUT|EALIGN;\r
-       }\r
-}\r
-\r
-function writeStyle(bMiniBar)\r
-{\r
-       var sStyle="";\r
-       sStyle+="<style type='text/css'>\n";\r
-       sStyle+="<!--\n";\r
-       sStyle+=".clsBtnNormal {\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:2px;\n";\r
-               else\r
-                       sStyle+="padding:5px;\n";\r
-       sStyle+="cursor:hand;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsNoBNormal {\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:hand;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsBtnDisable {\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:2px;\n";\r
-               else\r
-                       sStyle+="padding:5px;\n";\r
-       sStyle+="cursor:default;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsNoBDisable {\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:default;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-\r
-       sStyle+=".clsNotBtn {\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:2px;\n";\r
-               else\r
-                       sStyle+="padding:5px;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsBtnUp{\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:1px;\n";\r
-               else\r
-                       sStyle+="padding:4px;\n";\r
-       sStyle+="border-bottom:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="border-left:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="border-right:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="border-top:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="cursor:hand;";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsNoBUp{\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:hand;";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=".clsBtnDown{\n";\r
-       if(!(gbNav4&&!gbNav6))\r
-               if (bMiniBar)\r
-                       sStyle+="padding:1px;\n";\r
-               else\r
-                       sStyle+="padding:4px;\n";\r
-       sStyle+="border-bottom:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="border-left:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="border-right:"+gsTBLightColor+" 1px solid;\n";\r
-       sStyle+="border-top:"+gsTBDarkColor+" 1px solid;\n";\r
-       sStyle+="color:"+gsTBFontColor+";\n";\r
-       sStyle+="cursor:hand;\n";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";}\n";\r
-\r
-       sStyle+=".clsNoBDown{\n";\r
-       sStyle+="padding-left:2px;padding-right:2px;\n";\r
-       sStyle+="cursor:hand;";\r
-       sStyle+="font-family:"+gsTBFontFamily+";\n";\r
-       sStyle+="font-size:"+gsTBFontSize+";\n";\r
-       sStyle+="color:"+gsTBFontColor+";}\n";\r
-\r
-       sStyle+=getDefaultButtonFont();\r
-       sStyle+=gsBtnStyle;\r
-       sStyle+=".clsToolbarBackground{\n";\r
-       sStyle+="margin:2px;}\n";\r
-       sStyle+="-->\n";\r
-       sStyle+=" body {\n";\r
-       if (gsBgImage)\r
-               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="border-top:black 1px solid;}\n";\r
-       sStyle+="-->\n";\r
-       sStyle+="</style>\n";\r
-       document.write(sStyle);\r
-}\r
-\r
-function button(sType,sText,nWidth,nHeight)\r
-{\r
-       this.sType=sType;\r
-       this.sText=sText;\r
-       this.nWidth=nWidth;\r
-       this.nHeight=nHeight;\r
-       \r
-       this.aIs=new Array();\r
-       var i=0;\r
-       while(button.arguments.length>i+4)\r
-       {\r
-               if (button.arguments[4+i])\r
-                       this.aIs[i]=_getFullPath(_getPath(document.location.href),button.arguments[4+i]);\r
-               else\r
-                       this.aIs[i]="";\r
-               i++;\r
-       }\r
-}\r
-\r
-function getImage(oImage,sTitle)\r
-{\r
-       if(oImage.aIs[0])\r
-       {\r
-               var sI="";\r
-               if(sTitle=="")\r
-                       sTitle=oImage.sText;\r
-               sI+="<img alt=\""+sTitle+"\" src=\""+oImage.aIs[0]+"\"";\r
-               if(oImage.nWidth>0)\r
-                       sI+=" width="+oImage.nWidth;\r
-               if(oImage.nHeight>0)\r
-                       sI+=" height="+oImage.nHeight;\r
-               sI+=" border=0 align=\"absmiddle\">";\r
-               return sI;\r
-       }\r
-       return "";\r
-}\r
-\r
-function getCurrentAveName()\r
-{\r
-       var oSelect=getElement("avenue");\r
-       if(oSelect)\r
-               return oSelect.value;\r
-       else\r
-               return "";\r
-}\r
-\r
-function updateWebSearch(bEnable)\r
-{\r
-       var oWebSearch=getElement("btnwebsearch");\r
-       var oWebSearchParent=null;\r
-       if(oWebSearch)\r
-               oWebSearchParent=getParentNode(oWebSearch);\r
-       goWebSearchEnable=bEnable;\r
-       if(oWebSearchParent)\r
-       {\r
-               if(bEnable)\r
-                       enableButton(oWebSearchParent,goWebSearch);\r
-               else\r
-                       disableButton(oWebSearchParent,goWebSearch);\r
-       }\r
-\r
-}\r
-\r
-function setState(oEL,sState)\r
-{\r
-       if(gbNav6||gbOpera)\r
-               oEL.setAttribute("state",sState);\r
-       else\r
-               oEL.state=sState;       \r
-}\r
-\r
-function updateAvenueIfNeeded()\r
-{\r
-       gbUpdateTimerCount--;\r
-       if (gbNeedUpdateAve&&gbUpdateTimerCount==0)\r
-       {\r
-               updateAvenue();\r
-       }\r
-}\r
-\r
-function updateAvenue()\r
-{\r
-       var sSelect=getAvenueHTML(gaAvenues);\r
-       var oSelect=getElement("avenue");\r
-       if(oSelect)\r
-       {\r
-               if(gbNav6)\r
-               {\r
-                       var oParent=getParentNode(oSelect);\r
-                       \r
-                       if(oParent)\r
-                       {\r
-                               removeThis(oSelect);\r
-                               oParent.insertAdjacentHTML("afterBegin",sSelect);\r
-                       }\r
-               }\r
-               else\r
-                       oSelect.outerHTML=sSelect;      \r
-               oSelect=getElement("avenue");\r
-               if(isValidAvenue(gaAvenues,gsCurAveName))\r
-                       oSelect.value=gsCurAveName;\r
-       }\r
-       updateAveButton();\r
-}\r
-\r
-function initAveButtonObj()\r
-{\r
-       if(!gbAveButttnInited)\r
-       {\r
-               var oNext=getElement("btnavnext");\r
-               if(oNext)\r
-                       goNextParent=getParentNode(oNext);\r
-\r
-               var oPrev=getElement("btnavprev");\r
-               if(oPrev)\r
-                       goPrevParent=getParentNode(oPrev);\r
-       }\r
-       gbAveButttnInited=true;\r
-}\r
-\r
-function disableAveButton()\r
-{\r
-       initAveButtonObj();\r
-       if(goNextParent)\r
-               disableButton(goNextParent,goNext);\r
-       if(goPrevParent)\r
-               disableButton(goPrevParent,goPrev);\r
-}\r
-\r
-function disableButton(oEl,oBtn)\r
-{\r
-       setState(oEl,"disable");\r
-       var sPF=oEl.className.substring(0,6);\r
-       oEl.className=sPF+"Disable";\r
-       var oAs = getElementsByTag(oEl,"a");\r
-       if (oAs.length>0)\r
-       {\r
-               oAs[0].style.cursor="default";\r
-       }\r
-       var oIs=getElementsByTag(oEl,"img");\r
-       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3)\r
-       {\r
-               if(oBtn.aIs[3])\r
-                       oIs[0].src=oBtn.aIs[3];\r
-       }\r
-       else\r
-               oEl.style.visibility="hidden";\r
-}\r
-\r
-function enableButton(oEl,oBtn)\r
-{\r
-       setState(oEl,"normal");\r
-       if(oEl==goEl)\r
-       {\r
-               var sPF=oEl.className.substring(0,6);\r
-               oEl.className=sPF+"Up";\r
-       }\r
-       var oAs = getElementsByTag(oEl,"a");\r
-       if (oAs.length>0)\r
-       {\r
-               oAs[0].style.cursor="hand";\r
-       }\r
-       var oIs=getElementsByTag(oEl,"img");\r
-       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0)\r
-       {\r
-               if(oBtn.aIs[0])\r
-                       oIs[0].src=oBtn.aIs[0];\r
-       }\r
-       oEl.style.visibility="visible";\r
-}\r
-\r
-function updateAveButton()\r
-{\r
-       initAveButtonObj();     \r
-       var strAveName=getCurrentAvenue();\r
-       if(strAveName!="")\r
-       {\r
-               if(gaAvenues)\r
-               {\r
-                       for(var i=0;i<gaAvenues.length;i++)\r
-                       if(gaAvenues[i].sName==strAveName)\r
-                       {\r
-                               if(goNextParent)\r
-                               {\r
-                                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext!="")\r
-                                               enableButton(goNextParent,goNext);\r
-                                       else\r
-                                               disableButton(goNextParent,goNext);\r
-                               }\r
-                               if(goPrevParent)\r
-                               {\r
-                                       if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev!="")\r
-                                               enableButton(goPrevParent,goPrev);\r
-                                       else\r
-                                               disableButton(goPrevParent,goPrev);\r
-                               }       \r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var bNext=false;\r
-               var bPrev=false;\r
-               if(gaAvenues&&gaAvenues.length>0)\r
-               {\r
-                       for(var i=0;i<gaAvenues.length&&(!bNext||!bPrev);i++)\r
-                       {\r
-                               if(!bNext)\r
-                                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext!="")\r
-                                               bNext=true;     \r
-                               if(!bPrev)\r
-                                       if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev!="")\r
-                                               bPrev=true;     \r
-                       }\r
-               }\r
-               if(goNextParent)\r
-               {\r
-                       if(bNext)\r
-                               enableButton(goNextParent,goNext);\r
-                       else\r
-                               disableButton(goNextParent,goNext);\r
-               }\r
-               \r
-               if(goPrevParent)\r
-               {\r
-                       if(bPrev)\r
-                               enableButton(goPrevParent,goPrev);\r
-                       else\r
-                               disableButton(goPrevParent,goPrev);\r
-               }\r
-       }\r
-       \r
-}\r
-\r
-function isValidAvenue(aAvenues,sValue)\r
-{\r
-       if(aAvenues)\r
-       {\r
-               for(var i=0;i<aAvenues.length;i++)\r
-               {\r
-                       if(aAvenues[i].sName==sValue)\r
-                               return true;\r
-               }\r
-       }\r
-       return false;\r
-}\r
-\r
-function getAvenueHTML(aAvenues)\r
-{\r
-       var sSelect="<select id=\"avenue\" size=\"1\" name=\"avenue\" onchange=\"updateAveButton();\">";\r
-       sSelect+="<option value=\"\" selected> - Select Avenue - </option>";\r
-       if(aAvenues)\r
-       {\r
-               for(var i=0;i<aAvenues.length;i++)\r
-               {\r
-                       sSelect+="<option value=\""+aAvenues[i].sName+"\">"+aAvenues[i].sName+"</option>";\r
-               }\r
-       }\r
-       sSelect+="</select>";\r
-       return sSelect;\r
-}\r
-\r
-function addAvenueSelection()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object());\r
-       var sButton="";\r
-       if(SendMessage(oMsg))\r
-       {\r
-               sButton=getAvenueHTML(oMsg.oParam.aAvenues);\r
-       }\r
-       else\r
-       {\r
-               sButton=getAvenueHTML(null);\r
-       }\r
-       gaButtons[gaButtons.length]="<td NOWRAP align=\"center\" valign=\"middle\">"+sButton+"</td>";\r
-}\r
-\r
-function setSearchFormTitle(sTitle)\r
-{\r
-       gsSearchFormTitle=sTitle;\r
-}\r
-\r
-function highLightIfNeeded()\r
-{\r
-       if(document.searchForm.searchString.value==gsSearchPrompt)\r
-       {\r
-               document.searchForm.searchString.select();\r
-       }\r
-}\r
-\r
-function addSearchForm()\r
-{\r
-       var sPropmptString=gsSearchPrompt;\r
-\r
-       var nWidth=20;\r
-       if(!nWidth) nWidth=20;\r
-       if(gbNav4) nWidth=nWidth*.6;\r
-\r
-       if(gsSearchFormTitle)\r
-               sPropmptString="";\r
-       var sButton="<table id=\"searchInput\" CELLSPACING=0 CELLPADDING=1><tr><td valign=\"middle\" NOWRAP class=\"clsNotBtn\"><span class=\"btnsearchform\">"+_textToHtml(gsSearchFormTitle)+"</span></td><td NOWRAP valign=\"middle\"><input class=\"inputsearchform\" type=\"text\" onfocus=\"highLightIfNeeded();\" name=\"searchString\" value=\""+sPropmptString+"\" size=\""+nWidth+"\"></td>";\r
-       if(gbNav6)\r
-               sButton="<form id=\"searchInput\" name=\"searchForm\" method=\"POST\" action=\"javascript:searchB()\">"+sButton;\r
-       if("image"=="text")\r
-       {\r
-               sButton+="<td NOWRAP valign=\"middle\"><a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"searchForm.submit(); return false;\"></a></td>";\r
-       }\r
-       else if("image"=="image"&&gsIGo)\r
-       {\r
-               sButton+="<td NOWRAP valign=\"middle\"><a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\"searchForm.submit(); return false;\">"\r
-               sButton+="<img alt=\"Go\" src=\""+gsIGo+"\" border=0 align=\"absmiddle\"></a></td>";\r
-       }\r
-       sButton+="</tr></table>";\r
-       if(gbNav6)\r
-               sButton+="</form>";\r
-       var nBtn=gaButtons.length;\r
-       gaButtons[nBtn]="<td NOWRAP align=\"center\" valign=\"middle\">"+sButton+"</td>";\r
-       gaTypes[nBtn]="searchform";\r
-}\r
-\r
-function getShowHide()\r
-{\r
-       var sText="";\r
-       var sI="";\r
-       if(hasNavPane())\r
-       {\r
-               if(goHide)\r
-               {\r
-                       if(gnShowHideStyle&BTN_TEXT)\r
-                               sText=goHide.sText;\r
-                       if(gnShowHideStyle&BTN_IMG)\r
-                       sI=getImage(goHide,"Hide");\r
-               }\r
-       }\r
-       else\r
-       {\r
-               if(goShow)\r
-               {\r
-                       if(gnShowHideStyle&BTN_TEXT)\r
-                               sText=goShow.sText;\r
-                       if(gnShowHideStyle&BTN_IMG)\r
-                               sI=getImage(goShow,"Show");\r
-               }\r
-       }\r
-       var sButton=genButton(sText,sI,gnShowHideStyle);\r
-       return sButton;\r
-}\r
-\r
-function addBanner(sImage)\r
-{\r
-       if(sImage)\r
-       {\r
-               var nBtn=gaButtons.length;\r
-               gaButtons[nBtn]="<td NOWRAP align=\"center\" valign=\"middle\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\" onclick=\"showBanner();return false;\"><img alt=\"About WebHelp\"src=\""+sImage+"\" border=0 align=\"absmiddle\"></a></td>";\r
-               gaTypes[nBtn]="banner";\r
-       }\r
-}\r
-\r
-function showBanner()\r
-{\r
-       if (!gbPreview)\r
-       {\r
-               var nWidth=390;\r
-               var nHeight=204;\r
-               var     nScreenWidth=screen.width;\r
-               var     nScreenHeight=screen.height;\r
-               var nLeft=(nScreenWidth-nWidth)/2;\r
-               var nTop=(nScreenHeight-nHeight)/2;\r
-               if (gbIE4)\r
-               {\r
-                       if (gbIE5)\r
-                               nHeight+=20;\r
-                       else\r
-                               nHeight+=40;\r
-                       window.showModalDialog("whskin_banner.htm","","dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:no;status:no;scroll:no;help:no;center:yes;");\r
-               }\r
-               else\r
-                       window.open("whskin_banner.htm","banner","dependent,innerHeight="+nHeight+",innerWidth="+nWidth+",height="+nHeight+",width="+nWidth+",resizable=no,menubar=no,location=no,personalbar=no,status=no,scrollbar=no,toolbar=no,screenX="+nLeft+",screenY="+nTop);\r
-       }\r
-}\r
-\r
-function addButton(sType,nStyle,sTitle,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6)\r
-{\r
-       var sButton="";\r
-       var bMini=false;\r
-       var sText="";\r
-       var sI="";\r
-       var bState=false;\r
-       var nBtn=gaButtons.length;\r
-       var bHref=false;\r
-       if(sType=="show"&&isShowHideEnable())\r
-       {\r
-               var svTitle="Show Navigation Component";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnshowhide\" class=\"btnshow\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
-               gnShowHideStyle=nStyle;\r
-               goShow=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goShow;\r
-               if(gnShowHide!=-1)\r
-               {\r
-                       nBtn=gnShowHide;\r
-               }\r
-               else\r
-               {\r
-                       gnShowHide=nBtn;\r
-               }\r
-               sButton+=getShowHide();\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="hide"&&isShowHideEnable())\r
-       {\r
-               var svTitle="Hide Navigation Component";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnshowhide\" class=\"btnhide\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
-               gnShowHideStyle=nStyle;\r
-               goHide=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goHide;\r
-               if(gnShowHide!=-1)\r
-               {\r
-                       nBtn=gnShowHide;\r
-               }\r
-               else\r
-               {\r
-                       gnShowHide=nBtn;\r
-               }\r
-               sButton+=getShowHide();\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="hide2"&&(!gbNav4)&&(!gbOpera))\r
-       {\r
-               var svTitle="Hide Navigation Component";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnhide\" class=\"btnhide\" href=\"javascript:void(0);\" onclick=\"showHidePane();return false;\">";\r
-               gnShowHideStyle=nStyle;\r
-               if(!sI1)\r
-                       sI1=gsIHide;\r
-               goHide2=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goHide2;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goHide2.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goHide2,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="synctoc")\r
-       {\r
-               var svTitle="Sync TOC";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnsynctoc\" class=\"btnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsISync;\r
-               goSync=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goSync;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goSync.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goSync,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="toc")\r
-       {\r
-               var svTitle="Contents";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btntoc\" class=\"btntoc\" href=\"javascript:void(0);\" onclick=\"showToc();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIToc;\r
-               if(!sI2)\r
-                       sI2=gsITocS;\r
-               if(!sI4)\r
-                       sI4=gsITocS;\r
-               goToc=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goToc;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goToc.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goToc,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="idx")\r
-       {\r
-               var svTitle="Index";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnidx\" class=\"btnidx\" href=\"javascript:void(0);\" onclick=\"showIndex();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIIndex;\r
-               if(!sI2)\r
-                       sI2=gsIIndexS;\r
-               if(!sI4)\r
-                       sI4=gsIIndexS;\r
-               goIdx=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goIdx;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goIdx.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goIdx,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="fts")\r
-       {\r
-               var svTitle="Search";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnfts\" class=\"btnfts\" href=\"javascript:void(0);\" onclick=\"showFts();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsISearch;\r
-               if(!sI2)\r
-                       sI2=gsISearchS;\r
-               if(!sI4)\r
-                       sI4=gsISearchS;\r
-               goFts=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goFts;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goFts.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goFts,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="glo")\r
-       {\r
-               var svTitle="Glossary";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnglo\" class=\"btnglo\" href=\"javascript:void(0);\" onclick=\"showGlossary();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIGlossary;\r
-               if(!sI2)\r
-                       sI2=gsIGlossaryS;\r
-               if(!sI4)\r
-                       sI4=gsIGlossaryS;\r
-               goGlo=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goGlo;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goGlo.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goGlo,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bState=true;\r
-       }\r
-       else if(sType=="avnext")\r
-       {\r
-               var svTitle="Next Topic";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnavnext\" class=\"btnavnext\" href=\"javascript:void(0);\" onclick=\"goAveNext();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsINext;\r
-               if(!sI4)\r
-                       sI4=gsINextD;\r
-               goNext=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goNext;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goNext.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goNext,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="avprev")\r
-       {\r
-               var svTitle="Previous Topic";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnavprev\" class=\"btnavprev\" href=\"javascript:void(0);\" onclick=\"goAvePrev();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIPrev;\r
-               if(!sI4)\r
-                       sI4=gsIPrevD;\r
-               goPrev=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goPrev;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goPrev.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goPrev,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-               bMini=true;\r
-       }\r
-       else if(sType=="blankblock")\r
-       {\r
-               gaButtons[nBtn]=null;\r
-               gaTypes[nBtn]=sType;\r
-       }\r
-       else if(sType=="websearch")\r
-       {\r
-               var svTitle="WebSearch";\r
-               sButton="<a title=\""+svTitle+"\" id=\"btnwebsearch\" class=\"btnwebsearch\" href=\"javascript:void(0);\" onclick=\"doWebSearch();return false;\">";\r
-               if(!sI1)\r
-                       sI1=gsIWebSearch;\r
-               if(!sI4)\r
-                       sI4=gsIWebSearchD;\r
-               goWebSearch=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6);\r
-               gaObjBtns[nBtn]=goWebSearch;\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=goWebSearch.sText\r
-                       \r
-               if(nStyle&BTN_IMG)\r
-                       sI=getImage(goWebSearch,svTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-       }\r
-       else if(sType.indexOf("custom")==0)\r
-       {\r
-               var nCusBtnIdx=goCusButton.length;\r
-               goCusButton[nCusBtnIdx]=new cusButton(sType,sTitle,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3);\r
-               gaObjBtns[nBtn]=goCusButton[nCusBtnIdx];\r
-               var re=new RegExp("\"","g");\r
-               var svTitle=sTitle.replace(re, "&quot;");\r
-               if(sHref&&sHref.length!=0)\r
-               {\r
-                       sButton="<a title=\""+svTitle+"\" id=\"btn"+sType+"\" class=\"btn"+sType+"\" target=\"bsscright\" href=\""+sHref+"\" onclick=\"cusOnClick("+nCusBtnIdx+");";\r
-                       bHref=true;\r
-               }\r
-               else\r
-                       sButton="<a title=\""+svTitle+"\" id=\"btn"+sType+"\" class=\"btn"+sType+"\" href=\"javascript:void(0);\" onclick=\"cusOnClick("+nCusBtnIdx+");return false;";\r
-               sButton+="\" onmouseover=\"cusOnMouseOver("+nCusBtnIdx+");\" title=\""+sType+"\">";\r
-               if(nStyle&BTN_TEXT)\r
-                       sText=sTitle;\r
-               if(nStyle&BTN_IMG)\r
-                       sI+=getImage(goCusButton[nCusBtnIdx],sTitle);\r
-               sButton+=genButton(sText,sI,nStyle);\r
-               sButton+="</a>";\r
-       }\r
-       if(sButton.length!=0)\r
-       {\r
-               var btnClass="";\r
-               if(sText||bMini)\r
-                       btnClass="clsBtnNormal";\r
-               else\r
-                       btnClass="clsNoBNormal";\r
-\r
-               if(!bState)\r
-               {\r
-                       if(bHref)\r
-                               gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" onclick=\"onBtnClick(event);\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
-                       else\r
-                               gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" onclick=\"onBtnClick(event);return false;\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
-               }\r
-               else\r
-                       gaButtons[nBtn]="<td NOWRAP valign=\"middle\" align=\"center\" class="+btnClass+" state=\"up\" onclick=\"onBtnClick(event);return false;\" onmousedown=\"onBtnMouseDown(event, "+nBtn+");\" onmouseup=\"onBtnMouseUp(event, "+nBtn+");\" onmouseover=\"onBtnMouseOver(event, "+nBtn+");\" onmouseout=\"onBtnMouseOut(event, "+nBtn+");\">"+sButton+"</td>";\r
-               gaTypes[nBtn]=sType;\r
-       }\r
-\r
-       if(sType=="avenuesel")\r
-               addAvenueSelection();\r
-       else if(sType=="searchform")\r
-               addSearchForm();\r
-       else if(sType=="banner")\r
-       {\r
-               if(!sI1)\r
-                       sI1=gsIBanner;\r
-               addBanner(sI1);\r
-       }\r
-}\r
-\r
-function isShowHideEnable()\r
-{\r
-       if(gbIE4)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-function genButton(sText,sI,nStyle)\r
-{\r
-       var sButton="";\r
-       var sShowText=_textToHtml(sText);\r
-       if (gbNav4 && !gbNav6)\r
-               sShowText += "&nbsp;";\r
-       if(sText!=""&&sI!="")\r
-       {\r
-               if(nStyle&BTN_IMG_TOP)\r
-                       sButton+=sI+"<br>"+ sShowText;\r
-               else if(nStyle&BTN_IMG_BOTTOM)\r
-                       sButton+=sText+"<br>"+sI;\r
-               else if(nStyle&BTN_IMG_RIGHT)\r
-                       sButton+=sText+"&nbsp;"+sI;\r
-               else\r
-                       sButton+=sI+"&nbsp;"+sShowText;\r
-       }\r
-       else if(sText!="")\r
-       {\r
-               sButton+=sShowText;\r
-       }\r
-       else if(sI!="")\r
-       {\r
-               sButton+=sI;\r
-       }\r
-       return sButton;\r
-}\r
-\r
-function searchB()\r
-{\r
-       var onMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null);\r
-       SendMessage(onMsg);\r
-\r
-       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,document.searchForm.searchString.value);\r
-       if(!SendMessage(oMsg))\r
-               gstrSearch=document.searchForm.searchString.value;\r
-       else\r
-               gstrSearch="";\r
-}\r
-\r
-function ReSortToolbarButtons()\r
-{\r
-       var bSearchEnabled=isSearchEnabled();\r
-       var strOrder="";\r
-       var oMsg=new whMessage(WH_MSG_TOOLBARORDER,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               strOrder=oMsg.oParam;\r
-       }\r
-       if(strOrder.length>0)\r
-       {\r
-               gaOrders=strOrder.split("|");\r
-               var aTempButtons=new Array();\r
-               var ti=0;\r
-               for(var si=0;si<gaOrders.length;si++)\r
-               {\r
-                       if(gaOrders[si]!="searchform"||bSearchEnabled)\r
-                       {\r
-                               var sb=-1;\r
-                               for(var st=0;st<gaTypes.length;st++)\r
-                               {\r
-                                       if(gaOrders[si]==gaTypes[st])\r
-                                       {\r
-                                               sb=st;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               if(sb!=-1)\r
-                               {\r
-                                       aTempButtons[aTempButtons.length]=gaButtons[sb];\r
-                               }\r
-                       }\r
-               }\r
-               gaButtons=aTempButtons;\r
-       }\r
-}\r
-\r
-function isSyncEnabled()\r
-{\r
-       var bEnabled=false;\r
-       var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               bEnabled=oMsg.oParam;\r
-       }\r
-       return bEnabled;\r
-}\r
-\r
-function isAvenueEnabled()\r
-{\r
-       var bEnabled=false;\r
-       var oMsg=new whMessage(WH_MSG_ISAVENUESUPPORT,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               bEnabled=oMsg.oParam;\r
-       }\r
-       return bEnabled;\r
-}\r
-\r
-function isSearchEnabled()\r
-{\r
-       var bEnabled=false;\r
-       var oMsg=new whMessage(WH_MSG_ISSEARCHSUPPORT,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               bEnabled=oMsg.oParam;\r
-       }\r
-       return bEnabled;\r
-}\r
-\r
-function ReSortMinibarButtons()\r
-{\r
-       var bSyncEnabled=isSyncEnabled();\r
-       var bAvenueEnabled=isAvenueEnabled();\r
-       var strOrder="";\r
-       var oMsg=new whMessage(WH_MSG_MINIBARORDER,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               strOrder=oMsg.oParam;\r
-       }\r
-       if(strOrder.length>0)\r
-       {\r
-               gaOrders=strOrder.split("|");\r
-               var aTempButtons=new Array();\r
-               var ti=0;\r
-               for(var si=0;si<gaOrders.length;si++)\r
-               {\r
-                       if((gaOrders[si]!="synctoc"||bSyncEnabled)&&\r
-                               ((gaOrders[si]!="avnext"&&gaOrders[si]!="avprev")||bAvenueEnabled))\r
-                       {\r
-                               var sb=-1;\r
-                               for(var st=0;st<gaTypes.length;st++)\r
-                               {\r
-                                       if(gaOrders[si]==gaTypes[st])\r
-                                       {\r
-                                               sb=st;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                               if(sb!=-1)\r
-                               {\r
-                                       aTempButtons[aTempButtons.length]=gaButtons[sb];\r
-                               }\r
-                       }\r
-               }\r
-               gaButtons=aTempButtons;\r
-       }\r
-}\r
-\r
-function writeToolBar()\r
-{\r
-       var sHTML="";\r
-       if(gaButtons.length>0)\r
-       {\r
-               var strHeight="100%";\r
-               var strWidth="100%";\r
-               if (gbNav4)\r
-               {\r
-                       strHeight=window.innerHeight-4;\r
-                       strWidth=window.innerWidth-4;\r
-               }\r
-               if (gbIE4)\r
-               {\r
-                       strHeight=document.body.clientHeight-4;\r
-                       strWidth=document.body.clientWidth-4;\r
-               }\r
-               if(gbNav6)\r
-                       sHTML="<table class=\"clsToolbarBackground\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\""+strHeight+"\" width=\""+strWidth+"\">";\r
-               else\r
-                       sHTML="<form name=\"searchForm\" method=\"POST\" action=\"javascript:searchB()\"><table class=\"clsToolbarBackground\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" height=\""+strHeight+"\" width=\""+strWidth+"\">";\r
-               if((gnButtonLayout&LAYOUT)==HLAYOUT)\r
-               {\r
-                       sHTML+="<tr>";\r
-                       for(var i=0;i<gaButtons.length;i++)\r
-                       {\r
-                               if(gaButtons[i])\r
-                                       sHTML+=gaButtons[i];\r
-                               else\r
-                                       sHTML+="<td width=\"100%\"></td>";\r
-                       }\r
-                       sHTML+="</tr>";\r
-               }\r
-               else\r
-               {\r
-                       for(var i=0;i<gaButtons.length;i++)\r
-                       {\r
-                               if(gaButtons[i])\r
-                                       sHTML+="<tr width=\"100%\">"+gaButtons[i]+"</tr>";\r
-                               else\r
-                                       sHTML+="<tr height=\"100%\"><td></td></tr>";\r
-                       }\r
-               }\r
-               if(gbNav6)\r
-                       sHTML+="</table>";\r
-               else\r
-                       sHTML+="</table></form>";\r
-       }\r
-       document.write(sHTML);\r
-       if(document.body)\r
-               document.body.onselectstart=onSelect;\r
-       updateAveButton();\r
-}\r
-\r
-function hasNavPane()\r
-{\r
-       if(gnHasNavPane==-1)\r
-       {\r
-               gnHasNavPane=0;\r
-               var oParam=new Object();\r
-               oParam.bVisible=false;\r
-               var oMsg=new whMessage(WH_MSG_ISPANEVISIBLE,this,1,oParam);\r
-               if(SendMessage(oMsg))\r
-               {\r
-                       if(oParam.bVisible)\r
-                               gnHasNavPane=1;\r
-               }\r
-               \r
-       }\r
-       if(gnHasNavPane==1)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-function getTocInfo()\r
-{\r
-       var oParam=new Object();\r
-       oParam.oTocInfo=null;\r
-       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               goTocInfo=oParam.oTocInfo;\r
-               gbTocInfoInited=true;\r
-       }\r
-}\r
-\r
-function onBtnClick(e)\r
-{\r
-       var oEl=null;\r
-       var oElo=null;\r
-       if(gbNav6)\r
-       {\r
-               oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oElo=event.srcElement;\r
-               oEl=oElo;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       if(oElo.tagName=="A"||oElo.tagName=="IMG") return true;\r
-       var oaA=getElementsByTag(oElo,"A");\r
-       if(oaA&&oaA.length)\r
-       {\r
-               var oA=oaA[0];\r
-               if(gbNav6)\r
-               {\r
-                       var sCmd=oA.getAttribute("onclick");\r
-                       var nCmd=sCmd.indexOf("return false;");\r
-                       if(nCmd!=-1);\r
-                               sCmd=sCmd.substring(0,nCmd);\r
-                       setTimeout(sCmd,1);\r
-               }\r
-               else\r
-                       oA.onclick();\r
-       }\r
-}\r
-\r
-function onBtnMouseDown(e,nBtn)\r
-{\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var oIs=getElementsByTag(oEl,"img");\r
-       if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>2)\r
-       {\r
-               if(gaObjBtns[nBtn].aIs[2])\r
-                       oIs[0].src=gaObjBtns[nBtn].aIs[2];\r
-       }\r
-       var sState=getState(oEl);\r
-       if(sState!="disable")\r
-       {\r
-               oEl.className=sPF+"Down";\r
-       }\r
-}\r
-\r
-function onBtnMouseUp(e,nBtn)\r
-{\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var sState=getState(oEl);\r
-       if(sState=="down"||sState=="disable")\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[3])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[3];\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[0])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[0];\r
-               }\r
-       }\r
-       if(goEl==oEl)\r
-       {\r
-               if(sState!="down"&&sState!="disable")\r
-               {\r
-                       oEl.className=sPF+"Up";\r
-               }\r
-       }\r
-}\r
-\r
-function getState(oEl)\r
-{\r
-       var sState="";\r
-       if(gbNav6||gbOpera)\r
-               sState=oEl.getAttribute("state");\r
-       else\r
-               if(oEl.state)\r
-                       sState=oEl.state;\r
-       return sState;\r
-}\r
-\r
-function onBtnMouseOver(e,nBtn)\r
-{\r
-       markButton(e);\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-               oEl=getParentNode(oEl);\r
-               if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var sState=getState(oEl);\r
-       if(sState=="down"||sState=="disable")\r
-       {\r
-               if(sState=="down")\r
-                       oEl.className=sPF+"Down";\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>4)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[4])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[4];\r
-               }\r
-       }\r
-       else\r
-       {\r
-               oEl.className=sPF+"Up";\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>1)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[1])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[1];\r
-               }\r
-       }\r
-}\r
-\r
-function onBtnMouseOut(e,nBtn)\r
-{\r
-       goEl=null;\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-       {\r
-               oEl=event.srcElement;\r
-               event.cancelBubble=true;\r
-       }\r
-       while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB"))\r
-       {\r
-       oEl=getParentNode(oEl);\r
-       if(!oEl) return;\r
-       }\r
-       var sPF=oEl.className.substring(0,6);\r
-       var sState=getState(oEl);\r
-       if(sState=="down"||sState=="disable")\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[3])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[3];\r
-               }\r
-               if(sState=="down")\r
-                       oEl.className=sPF+"Down";\r
-       }\r
-       else\r
-       {\r
-               var oIs=getElementsByTag(oEl,"img");\r
-               if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0)\r
-               {\r
-                       if(gaObjBtns[nBtn].aIs[0])\r
-                               oIs[0].src=gaObjBtns[nBtn].aIs[0];\r
-               }\r
-               oEl.className=sPF+"Normal";\r
-       }\r
-}\r
-\r
-function showToc()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function showIndex()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function showFts()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function showGlossary()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function syncWithShow()\r
-{\r
-       if(!gbTocInfoInited)\r
-       {\r
-               getTocInfo();\r
-       }\r
-       if(goTocInfo)\r
-       {\r
-               showToc();\r
-               var oParam=goTocInfo;\r
-               var oMsg=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function markButton(e)\r
-{\r
-       var oEl=null;\r
-       if(gbNav6)\r
-       {\r
-               var oElo=e.target;\r
-               while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo);\r
-               oEl=oElo;\r
-       }\r
-       else\r
-               oEl=event.srcElement;\r
-       while(oEl&&oEl.tagName!="TD") oEl=getParentNode(oEl);\r
-       if(oEl)\r
-               goEl=oEl;\r
-}\r
-\r
-function showHidePane()\r
-{\r
-       var oMsg=null;\r
-       if(hasNavPane())\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);\r
-       else\r
-               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function goAveNext()\r
-{\r
-       goAvenue(true);\r
-}\r
-\r
-function goAvePrev()\r
-{\r
-       goAvenue(false);\r
-}\r
-\r
-function doWebSearch()\r
-{\r
-       if (goWebSearchEnable)\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_WEBSEARCH,this,1,null);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function goAvenue(bNext)\r
-{\r
-       var oMsg=null;\r
-       initAveButtonObj();\r
-       gsCurAveName=getCurrentAveName();\r
-       if(gbNav4&&!gbNav6)\r
-       {\r
-               if(bNext)\r
-               {\r
-                       gaAvenues=null;\r
-                       updateAvenue();\r
-                       oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
-                       SendMessage(oMsg);\r
-               }\r
-               else if(!bNext)\r
-               {\r
-                       gaAvenues=null;\r
-                       updateAvenue();\r
-                       oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
-                       SendMessage(oMsg);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               if(bNext&&goNextParent)\r
-               {\r
-                       var sState=getState(goNextParent);\r
-                       if(sState!="disable")\r
-                       {\r
-                               gaAvenues=null;\r
-                               gbNeedUpdateAve=true;\r
-                               gbUpdateTimerCount++;\r
-                               setTimeout("updateAvenueIfNeeded();", 2000);\r
-                               oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-               else if(!bNext&&goPrevParent)\r
-               {\r
-                       var sState=getState(goPrevParent);\r
-                       if(sState!="disable")\r
-                       {\r
-                               gaAvenues=null;\r
-                               gbNeedUpdateAve=true;\r
-                               gbUpdateTimerCount++;\r
-                               setTimeout("updateAvenueIfNeeded();", 2000);\r
-                               oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
-                               SendMessage(oMsg);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function window_Unload()\r
-{\r
-       if(!gbNav4||gbNav6)\r
-       {\r
-               UnRegisterListener2(this,WH_MSG_GETSEARCHS);\r
-               UnRegisterListener2(this,WH_MSG_PANESTATUE);\r
-               UnRegisterListener2(this,WH_MSG_SYNCINFO);\r
-               UnRegisterListener2(this,WH_MSG_PANEINFO);\r
-               UnRegisterListener2(this,WH_MSG_AVENUEINFO);\r
-               UnRegisterListener2(this,WH_MSG_GETCURRENTAVENUE);\r
-               UnRegisterListener2(this,WH_MSG_ENABLEWEBSEARCH);\r
-               UnRegisterListener2(this,WH_MSG_INITSEARCHSTRING);\r
-               UnRegisterListener2(this,WH_MSG_NOSEARCHINPUT);\r
-               UnRegisterListener2(this,WH_MSG_NOSYNC);\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(!gbOpera7&&document.body)\r
-       {\r
-               if(gsBgImage&&gsBgImage.length>0)\r
-               {\r
-                       document.body.background=gsBgImage;\r
-               }\r
-               if(gsBgColor&&gsBgColor.length>0)\r
-               {\r
-                       document.body.bgColor=gsBgColor;\r
-               }\r
-       }\r
-       doCusOnLoad();\r
-       var oMsg=new whMessage(WH_MSG_GETPANEINFO,this,1,null);\r
-       if(SendMessage(oMsg))\r
-       {\r
-               setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1);\r
-       }\r
-       if (!gaAvenues)\r
-       {\r
-               var oMsg2=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object());\r
-               if(SendMessage(oMsg2))\r
-               {\r
-                       gaAvenues=oMsg2.oParam.aAvenues;\r
-                       gbNeedUpdateAve=false;\r
-                       setTimeout("updateAvenue();",1);\r
-               }\r
-       }\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_GETSEARCHS)\r
-       {\r
-               if(document.searchForm&&document.searchForm.searchString)\r
-               {\r
-                       oMsg.oParam.sValue=document.searchForm.searchString.value;\r
-                       return false;\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_PANESTATUE)\r
-       {\r
-               if(oMsg.oParam=="visible")\r
-               {\r
-                       if(isShowHideEnable())\r
-                               setTimeout("flipShowHide(true);",1);\r
-                       setTimeout("showPaneButton();",1);\r
-               }\r
-               else\r
-               {\r
-                       if(isShowHideEnable())\r
-                               setTimeout("flipShowHide(false);",1);\r
-                       setTimeout("hidePaneButton();",1);\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_PANEINFO)\r
-       {\r
-               if(oMsg.oParam)\r
-                       setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1);\r
-               else\r
-                       setTimeout("hidePaneButton();",1);\r
-       }\r
-       else if(nMsgId==WH_MSG_SYNCINFO)\r
-       {\r
-               if(oMsg.oParam)\r
-                       goTocInfo=oMsg.oParam;\r
-               else\r
-                       goTocInfo=null;\r
-               gbTocInfoInited=true;\r
-       }\r
-       else if(nMsgId==WH_MSG_AVENUEINFO)\r
-       {\r
-               gaAvenues=oMsg.oParam;\r
-               gbNeedUpdateAve=false;\r
-               setTimeout("updateAvenue();",1);\r
-       }\r
-       else if(nMsgId==WH_MSG_GETCURRENTAVENUE)\r
-       {\r
-               var sAveName=getCurrentAvenue();\r
-               if(sAveName!="")\r
-               {\r
-                       oMsg.oParam.sAvenue=sAveName;\r
-                       return false;\r
-               }\r
-               else\r
-                       return true;\r
-       }\r
-       else if(nMsgId==WH_MSG_ENABLEWEBSEARCH)\r
-       {\r
-               setTimeout("updateWebSearch("+oMsg.oParam+");",1);\r
-       }\r
-       else if(nMsgId==WH_MSG_INITSEARCHSTRING)\r
-       {\r
-               if(gstrSearch!="")\r
-               {\r
-                       oMsg.oParam=gstrSearch;\r
-                       gstrSearch="";\r
-                       return false;\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_NOSEARCHINPUT)\r
-       {\r
-               var oSearchInput = getElement("searchInput");\r
-               if (oSearchInput)\r
-               {\r
-                       oSearchInput.style.visibility = "hidden";\r
-                       return false;\r
-               }\r
-       }\r
-       else if(nMsgId==WH_MSG_NOSYNC)\r
-       {\r
-               var oSync = getElement("btnsynctoc");\r
-               if (oSync)\r
-               {\r
-                       oSync.style.visibility = "hidden";\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function getCurrentAvenue()\r
-{\r
-       var strAveName="";\r
-       var oSelect=getElement("avenue");\r
-       if(oSelect)\r
-       {\r
-               strAveName=oSelect.value;\r
-       }\r
-       return strAveName;\r
-}\r
-\r
-function initBtn()\r
-{\r
-       var oBtn=null;\r
-       oBtn=getElement("btntoc");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       oBtn=getElement("btnidx");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       oBtn=getElement("btnfts");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       oBtn=getElement("btnglo");\r
-       if(oBtn)\r
-               gaBtns[gaBtns.length]=oBtn;\r
-       gbInitBtn=true;\r
-}\r
-\r
-function showPaneButton()\r
-{\r
-       flipPaneButton(gsPane);\r
-}\r
-\r
-function hidePaneButton()\r
-{\r
-       flipPaneButton("");\r
-}\r
-\r
-function flipPaneButton(sPane)\r
-{\r
-       if (sPane)\r
-               gsPane=sPane;\r
-       if(!gbInitBtn)\r
-               initBtn();\r
-\r
-       var oUp=null;\r
-       if(sPane)\r
-       {\r
-               oUp=getElement("btn"+sPane);\r
-       }\r
-       for(var i=0;i<gaBtns.length;i++)\r
-       {\r
-               if(gaBtns[i])\r
-               {\r
-                       if(gaBtns[i]==oUp)\r
-                       {\r
-                               var oEl=getParentNode(oUp);\r
-                               var sPF=oEl.className.substring(0,6);\r
-                               var sState=getState(oEl);\r
-                               if(sState=="up")\r
-                               {\r
-                                       setState(oEl,"down");\r
-                                       oEl.className=sPF+"Down";\r
-                                       if(sPF=="clsBtn")\r
-                                       {\r
-                                               if(gaBtns[i].id)\r
-                                               {\r
-                                                       var sColor=getBtnColor(gaBtns[i].id.substring(3),true);\r
-                                                       if(sColor)\r
-                                                       {\r
-                                                               oEl.style.backgroundColor=sColor\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               oEl.style.backgroundColor="";\r
-                                                       }\r
-                                               }\r
-                                               var oaA=getElementsByTag(oEl,"A");\r
-                                               if(oaA.length>0)\r
-                                               {\r
-                                                       var strClassName=oaA[0].className;\r
-                                                       oaA[0].className="btnsel"+strClassName.substring(3);\r
-                                               }\r
-                                       }\r
-                                       var oIs=getElementsByTag(oEl,"img");\r
-                                       var oBtn=getButtonObjByType(gaBtns[i].id.substring(3));\r
-                                       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3)\r
-                                       {\r
-                                               if(oBtn.aIs[3])\r
-                                                       oIs[0].src=oBtn.aIs[3];\r
-                                       }\r
-                               }\r
-                       }\r
-                       else\r
-                       {\r
-                               var oEl=getParentNode(gaBtns[i]);\r
-                               var sState=getState(oEl);\r
-                               var sPF=oEl.className.substring(0,6);\r
-                               if(sState=="down")\r
-                               {\r
-                                       setState(oEl,"up");\r
-                                       if(oEl==goEl)\r
-                                               oEl.className=sPF+"Up";\r
-                                       else\r
-                                               oEl.className=sPF+"Normal";\r
-\r
-                                       if(sPF=="clsBtn")\r
-                                       {\r
-                                               if(gaBtns[i].id)\r
-                                               {\r
-                                                       var sColor=getBtnColor(gaBtns[i].id.substring(3),false);\r
-                                                       if(sColor)\r
-                                                       {\r
-                                                               oEl.style.backgroundColor=sColor\r
-                                                       }\r
-                                                       else\r
-                                                       {\r
-                                                               oEl.style.backgroundColor="";\r
-                                                       }\r
-                                               }\r
-\r
-                                               var oaA=getElementsByTag(oEl,"A");\r
-                                               if(oaA.length>0)\r
-                                               {\r
-                                                       var strClassName=oaA[0].className;\r
-                                                       oaA[0].className="btn"+strClassName.substring(6);\r
-                                               }\r
-                                       }\r
-                                       var oIs=getElementsByTag(oEl,"img");\r
-                                       var oBtn=getButtonObjByType(gaBtns[i].id.substring(3));\r
-                                       if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0)\r
-                                       {\r
-                                               if(oBtn.aIs[0])\r
-                                                       oIs[0].src=oBtn.aIs[0];\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function flipShowHide(bShow)\r
-{\r
-       gnHasNavPane=-1;        \r
-       var oA=getElement("btnshowhide");\r
-       if(oA)\r
-       {\r
-               var oEl=getParentNode(oA);\r
-               var sPF=oEl.className.substring(0,6);\r
-               if(oEl&&oEl.state)\r
-               {\r
-                       if(bShow)\r
-                       {\r
-                               oEl.state="down";\r
-                               oEl.className=sPF+"Down";\r
-                       }\r
-                       else\r
-                       {\r
-                               oEl.state="up";\r
-                               \r
-                               if(oEl==goEl)\r
-                                       oEl.className=sPF+"Up";\r
-                               else\r
-                                       oEl.className=sPF+"Normal";\r
-                       }\r
-               }\r
-               oA.innerHTML=getShowHide();\r
-       }\r
-}\r
-\r
-function cusOnClick(nIdx)\r
-{\r
-       if(goCusButton.length>nIdx)\r
-       {\r
-               var sOnClick=goCusButton[nIdx].sOnClick;\r
-               if(sOnClick&&sOnClick.length>0)\r
-               {\r
-                       if(!gbPreview)\r
-                               eval(sOnClick);\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function cusOnMouseOver(nIdx)\r
-{\r
-       if(goCusButton.length>nIdx)\r
-       {\r
-               var sOnMouseOver=goCusButton[nIdx].sOnMouseOver;\r
-               if(sOnMouseOver&&sOnMouseOver.length>0)\r
-               {\r
-                       if(!gbPreview)\r
-                               eval(sOnMouseOver);\r
-                       return false;\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-function doCusOnLoad()\r
-{\r
-       if(!gbPreview&&gaOrders)\r
-       {\r
-               for(var i=0;i<gaOrders.length;i++)\r
-               {\r
-                       for(var j=0;j<gaOnLoads.length;j++)\r
-                       {\r
-                               if(gaOrders[i]==gaOnLoads[j].sType)\r
-                               {\r
-                                       eval(gaOnLoads[j].sOnLoad);\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-function registerOnLoad(sOnLoad,sType)\r
-{\r
-       gaOnLoads[gaOnLoads.length]=new cusOnLoad(sType,sOnLoad);       \r
-}\r
-\r
-function cusOnLoad(sType,sOnLoad)\r
-{\r
-       this.sType=sType;\r
-       this.sOnLoad=sOnLoad;\r
-}\r
-\r
-function cusButton(sType,sText,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight)\r
-{\r
-       this.sType=sType;\r
-       this.sText=sText;\r
-       this.sOnClick=sOnClick;\r
-       this.sOnMouseOver=sOnMouseOver;\r
-       this.sOnLoad=sOnLoad;\r
-       this.nWidth=nWidth;\r
-       this.nHeight=nHeight;\r
-       this.aIs=new Array();\r
-       var i=0;\r
-       while(cusButton.arguments.length>i+7)\r
-       {\r
-               if (cusButton.arguments[7+i])\r
-                       this.aIs[i]=_getFullPath(_getPath(document.location.href),cusButton.arguments[7+i]);\r
-               else\r
-                       this.aIs[i]="";\r
-               i++;\r
-       }\r
-       if(sOnLoad)\r
-       {\r
-               registerOnLoad(sOnLoad,sType);\r
-       }\r
-}\r
-\r
-function getBtnColor(sType,bSel)\r
-{\r
-       var aBtnColors=null;\r
-       if(bSel)\r
-               aBtnColors=gaSelBtnBgColor;\r
-       else\r
-               aBtnColors=gaBtnBgColor;\r
-       if(aBtnColors)\r
-       {\r
-               for(var i=0;i<aBtnColors.length;i++)\r
-               {\r
-                       if(aBtnColors[i].sType==sType)\r
-                               return aBtnColors[i].sColor;\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function setButtonBgColor(sType,sColor,bSel)\r
-{\r
-       if(sColor)\r
-       {\r
-               var aBtnColors=null;\r
-               if(bSel)\r
-                       aBtnColors=gaSelBtnBgColor;\r
-               else\r
-                       aBtnColors=gaBtnBgColor;\r
-               if(aBtnColors!=null)\r
-               {\r
-                       for(var i=0;i<aBtnColors.length;i++)\r
-                       {\r
-                               if(aBtnColors[i].sType==sType)\r
-                               {\r
-                                       aBtnColors[i].sColor=sColor;\r
-                                       return;\r
-                               }\r
-                       }\r
-                       aBtnColors[aBtnColors.length]=new btnBgColor(sType,sColor);\r
-               }\r
-       }\r
-}\r
-\r
-function getDefaultButtonFont()\r
-{\r
-       var strFontStyle="";\r
-       for(var i=0;i<gaTypes.length;i++)\r
-       {\r
-               strFontStyle+=".btnsel"+gaTypes[i]+"{"+getFontStyle(goSelTextFont)+"}";\r
-               strFontStyle+=".btn"+gaTypes[i]+"{"+getFontStyle(goTextFont)+"}";\r
-       }\r
-       return strFontStyle;\r
-}\r
-\r
-function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration,bSel)\r
-{\r
-       if(sFontName)\r
-       {\r
-               var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-               if(bSel)\r
-                       gsBtnStyle+=".btnsel"+sType+"{"+getFontStyle(vFont)+"}\n";\r
-               else\r
-                       gsBtnStyle+=".btn"+sType+"{"+getFontStyle(vFont)+"}\n";\r
-       }\r
-       if (sType=="searchform"&&!bSel)\r
-       {\r
-               var vFont1=new whFont(sFontName,sFontSize,"black",sFontStyle,sFontWeight,sFontDecoration);\r
-               gsBtnStyle+=".inputsearchform {" + getFontStyle(vFont1)+"}\n";\r
-       }\r
-}\r
-\r
-function getButtonObjByType(sType)\r
-{\r
-       for(var i=0;i<gaObjBtns.length;i++)\r
-       {\r
-               if(gaObjBtns[i].sType==sType)\r
-                       return gaObjBtns[i];\r
-       }\r
-       return null;\r
-}\r
-\r
-function onSelect()\r
-{\r
-       if (event.srcElement&&event.srcElement.name)\r
-       {\r
-               if (event.srcElement.name=="searchString")\r
-                       return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-function window_onResize()\r
-{\r
-       gnRE++;\r
-       setTimeout("tryReload();", 100);\r
-}\r
-\r
-function tryReload()\r
-{\r
-       if (gnRE==1)\r
-               document.location.reload();\r
-       gnRE--;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_GETSEARCHS);\r
-       RegisterListener2(this,WH_MSG_PANESTATUE);\r
-       RegisterListener2(this,WH_MSG_SYNCINFO);\r
-       RegisterListener2(this,WH_MSG_PANEINFO);\r
-       RegisterListener2(this,WH_MSG_AVENUEINFO);\r
-       RegisterListener2(this,WH_MSG_GETCURRENTAVENUE);\r
-       RegisterListener2(this,WH_MSG_ENABLEWEBSEARCH);\r
-       RegisterListener2(this,WH_MSG_INITSEARCHSTRING);\r
-       RegisterListener2(this,WH_MSG_NOSEARCHINPUT);\r
-       RegisterListener2(this,WH_MSG_NOSYNC);\r
-\r
-       window.onload=window_OnLoad;\r
-       window.onunload=window_Unload;\r
-       window.onresize=window_onResize;\r
-       goTextFont=new whFont("Verdana","8pt","#003063","normal","normal","none");\r
-       goSelTextFont=new whFont("Verdana","8pt","white","normal","normal","none");\r
-       gbWhTBar=true;\r
-}\r
-else\r
-       document.location.reload();\r
-\r
index c3eeecbdc637955d1dc64d4a1a49b76e1f52dfed..5c1b6d723a311019edd0e18f45f8c5a1bc6a93bf 100755 (executable)
@@ -1,49 +1,49 @@
-<html>\r
-<head>\r
-<title>Table of contents</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
-</head>\r
-<script language="javascript" src="whver.js"></script>\r
-<script language="javascript1.2" src="whmozemu.js"></script>\r
-<script language="javascript1.2" src="whutils.js"></script>\r
-<script language="javascript1.2" src="whmsg.js"></script>\r
-<script language="javascript1.2" src="whproxy.js"></script>\r
-<script language="javascript1.2" src="whthost.js"></script>\r
-<script LANGUAGE="javascript1.2">\r
-<!--\r
-if (window.gbWhTHost)\r
-{\r
-       setBackgroundcolor( "White");  \r
-       \r
-       setFont("Normal", "Tahoma","8pt","Black","Normal","Normal","none");\r
-       setFont("Hover", "Tahoma","8pt","Navy","Normal","Normal","underline");\r
-       setActiveBgColor("Silver");\r
-       \r
-       \r
-       setIcon("BookOpen","wht_toc2.gif");\r
-       setIcon("BookClose","wht_toc1.gif");\r
-       setIcon("Item","wht_toc3.gif");\r
-       setIcon("RemoteItem","wht_toc4.gif");\r
-       \r
-       \r
-       \r
-       \r
-       TocWriteClassStyle();\r
-       TocWriteFixedWidth(true,400);\r
-}\r
-else\r
-       document.location.reload();\r
-//-->\r
-</script>\r
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">\r
-<script LANGUAGE="javascript1.2">\r
-<!--\r
-TocWriteFixedWidth(false,400);\r
-TocInitPage();\r
-//-->\r
-</script>\r
-</body>\r
+<html>
+<head>
+<title>Table of contents</title>
+
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
+<meta name="description" content="WebHelp 5.50">
+<base target="bsscright">
+</head>
+<script language="javascript" src="whver.js"></script>
+<script language="javascript1.2" src="whmozemu.js"></script>
+<script language="javascript1.2" src="whutils.js"></script>
+<script language="javascript1.2" src="whmsg.js"></script>
+<script language="javascript1.2" src="whproxy.js"></script>
+<script language="javascript1.2" src="whthost.js"></script>
+<script LANGUAGE="javascript1.2">
+<!--
+if (window.gbWhTHost)
+{
+       
+       
+       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
+       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
+       setActiveBgColor("#cccccc");
+       setMargin("0pt");
+       setIndent("9pt");
+       setIcon("BookOpen","whd_toc2.gif");
+       setIcon("BookClose","whd_toc1.gif");
+       setIcon("Item","whd_toc3.gif");
+       setIcon("RemoteItem","whd_toc4.gif");
+       setIcon("NewBookOpen","whd_toc2.gif");
+       setIcon("NewBookClose","whd_toc1.gif");
+       setIcon("NewItem","whd_toc3.gif");
+       setIcon("NewRemoteItem","whd_toc4.gif");
+       TocWriteClassStyle();
+       TocWriteFixedWidth(true,400);
+}
+else
+       document.location.reload();
+//-->
+</script>
+<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">
+<script LANGUAGE="javascript1.2">
+<!--
+TocWriteFixedWidth(false,400);
+TocInitPage();
+//-->
+</script>
+</body>
 </html>
\ No newline at end of file
index 54ddc9aacf72aa8b858677bb56a2074f645ae4e0..1a864bbcdbfb4f90ac62e5131af577905020b719 100755 (executable)
-//     WebHelp 5.10.007\r
-var gaHSLoad=new Array();\r
-var gnMinIdx=0;\r
-var gnInsIdx=-1;\r
-var gsLoadingDivID="LoadingDiv";\r
-var gsLoadingMsg="Loading, click here to cancel...";\r
-var gaProj=null;\r
-var gaTocs=new Array();\r
-var goChunk=null;\r
-var gbReady=false;\r
-var gbToc=false;\r
-var gbXML=false;\r
-var gaRoot=new Array();\r
-var gnCC=-1;\r
-var gsTP="";\r
-var gaBTPs="";\r
-var gsCTPath="";\r
-var gnLT=-1;\r
-var gsPathSplit="\n";\r
-var gsBgColor="#ffffff";\r
-var gsBgImage="";\r
-var goFont=null;\r
-var goHFont=null;\r
-\r
-var gsMargin="0pt";\r
-var gsIndent="15pt";\r
-var gsABgColor="#cccccc";\r
-\r
-var giBookClose="";\r
-var giBookOpen="";\r
-var giBookItem="";\r
-var giURLItem="";\r
-var giNewBookClose="";\r
-var giNewBookOpen="";\r
-var giNewBookItem="";\r
-var giNewURLItem="";\r
-var gnImages=0;\r
-var gnLoadedImages=0;\r
-var gaImgs=new Array();\r
-var gbLoadData=false;\r
-var gobj=null;\r
-var gaTocsNs61Fix=null;\r
-var gbWhTHost=false;\r
-var gBookItems=new Array();\r
-var gInSync=false;\r
-var gbLData=false;\r
-var gbNeedFillStub=false;\r
-var gbLoadToc=false;\r
-\r
-function chunkInfoQueue()\r
-{\r
-       this.aContent=new Array();\r
-       this.inQueue=function(cInfo)\r
-       {\r
-               this.aContent[this.aContent.length]=cInfo;\r
-       }\r
-       this.deQueue=function()\r
-       {\r
-               var cInfo=null;\r
-               if(this.aContent.length>0)\r
-               {\r
-                       cInfo=this.aContent[0];\r
-                       for(var i=1;i<this.aContent.length;i++)\r
-                               this.aContent[i-1]=this.aContent[i];\r
-                       this.aContent.length--;\r
-               }\r
-               return cInfo;\r
-       }\r
-       this.length=function()\r
-       {\r
-               return this.aContent.length;\r
-       }\r
-}\r
-\r
-var gchunkRequestQueue=new chunkInfoQueue();\r
-\r
-function chunkInfo(nIdx, bLocal)\r
-{\r
-       this.nIdx=nIdx;\r
-       this.bLocal=bLocal;\r
-}\r
-\r
-function setBackground(sBgImage)\r
-{\r
-       gsBgImage=sBgImage;\r
-}\r
-\r
-function setBackgroundcolor(sBgColor)\r
-{\r
-       gsBgColor=sBgColor;\r
-}\r
-\r
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       if(sType=="Normal") goFont=vFont;\r
-       else if(sType=="Hover") goHFont=vFont;\r
-}\r
-\r
-function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}\r
-\r
-function setMargin(sMargin){gsMargin=sMargin;}\r
-\r
-function setIndent(sIndent){gsIndent=sIndent;}\r
-\r
-function setIcon(sType,sURL)\r
-{\r
-       if(sType=="BookOpen")\r
-               giBookOpen=sURL;\r
-       else if(sType=="BookClose")\r
-               giBookClose=sURL;\r
-       else if(sType=="Item")\r
-               giBookItem=sURL;\r
-       else if(sType=="RemoteItem")\r
-               giURLItem=sURL;\r
-       else if(sType=="NewBookClose")\r
-               giNewBookClose=sURL;\r
-       else if(sType=="NewBookOpen")\r
-               giNewBookOpen=sURL;\r
-       else if(sType=="NewItem")\r
-               giNewBookItem=sURL;\r
-       else if(sType=="NewRemoteItem")\r
-               giNewURLItem=sURL;              \r
-}\r
-\r
-function bookItem(sTarget,sURL)\r
-{\r
-       if(sTarget)\r
-               this.sTarget=sTarget;\r
-       else\r
-               this.sTarget="bsscright";\r
-       this.sURL=sURL;\r
-}\r
-\r
-function addBookItem(sBookId,sTarget,sURL)\r
-{\r
-       gBookItems[sBookId]=new bookItem(sTarget,sURL);         \r
-}\r
-\r
-function tocChunk(sPPath,sDPath)\r
-{\r
-       this.sPPath=sPPath;\r
-       this.sDPath=sDPath;\r
-       this.nMI=-1;\r
-       this.aTocs=null;\r
-}\r
-\r
-function addTocChunk(sPPath,sDPath)\r
-{\r
-       var oChunk=new tocChunk(sPPath,sDPath);\r
-       gaTocs[gaTocs.length]=oChunk;\r
-       return oChunk;\r
-}\r
-\r
-function isHSLoad(nIdx)\r
-{\r
-       for(var i=0;i<gaHSLoad.length;i++)\r
-               if(gaHSLoad[i]==nIdx)\r
-                       return true;\r
-       return false;\r
-}\r
-\r
-function setHSLoad(nIdx)\r
-{\r
-       if(!isHSLoad(nIdx))\r
-       {\r
-               var len=gaHSLoad.length;\r
-               for(var i=0;i<len;i++)\r
-                       if(gaHSLoad[i]==-1)\r
-                       {\r
-                               gaHSLoad[i]=nIdx;\r
-                               return;\r
-                       }\r
-               gaHSLoad[len]=nIdx;\r
-       }\r
-}\r
-\r
-function setHSUnLoad(nIdx)\r
-{\r
-       if(isHSLoad(nIdx))\r
-       {\r
-               for(var i=0;i<gaHSLoad.length;i++)\r
-                       if(gaHSLoad[i]==nIdx)\r
-                       {\r
-                               gaHSLoad[i]=-1;\r
-                               return;\r
-                       }\r
-       }\r
-}\r
-\r
-function removeLoadingDiv()\r
-{\r
-       var eLoadingDiv=getElement(gsLoadingDivID);\r
-       if(eLoadingDiv)\r
-               removeThis(eLoadingDiv);\r
-}\r
-\r
-function checkBookItem(nIdx)\r
-{\r
-       if(!gInSync)\r
-       {\r
-               var sBookId=getBookId(nIdx);\r
-               if(gBookItems[sBookId])\r
-               {\r
-                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);\r
-               }\r
-       }\r
-}\r
-\r
-function insertBookItems(nIdx,num)\r
-{\r
-       checkBookItem(nIdx);\r
-       var sChildBookId=getCBId(nIdx);\r
-       var eChildDiv=getElement(sChildBookId);\r
-       if(eChildDiv){\r
-               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||\r
-                       (eChildDiv.all&&eChildDiv.all.length==0)){\r
-                       var sHTML=writeBookItems(nIdx,num);\r
-                       eChildDiv.innerHTML=sHTML;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-       }\r
-       ExpandIt(nIdx);\r
-}\r
-\r
-function isBookEmpty(nIdx)\r
-{\r
-       var num=getItemContentsNum(nIdx);\r
-       if (num>0)\r
-       {\r
-               var nCIdx=0;\r
-               do {\r
-                       nCIdx++;\r
-                       var i=nIdx+nCIdx;\r
-                       var nItemType=getItemType(i);\r
-                       if(nItemType==1){\r
-                               if (!isBookEmpty(i))\r
-                                       return false;\r
-                       }\r
-                       else if(nItemType==4){\r
-                               var     sSrc=getRefURL(i);\r
-                               var nProj=getProject(sSrc);\r
-                               if(nProj!=-1){\r
-                                       sSrc=gaRoot[nProj].sToc;\r
-                                       if(sSrc)\r
-                                               return false;\r
-                               }\r
-                       }\r
-                       else if(nItemType==2||nItemType==16||nItemType==8)\r
-                               return false;\r
-               } while(nCIdx<num);\r
-       }\r
-       return true;\r
-}\r
-\r
-function writeBook(nIdx)\r
-{\r
-       var sIcon=getBookImage(nIdx,true);\r
-       var sName=_textToHtml(getItemName(nIdx));\r
-       sIcon=_textToHtml_nonbsp(sIcon);\r
-       \r
-       var nType=getItemType(nIdx);\r
-       var bLocal=(nType==1);\r
-       var bLocalProject=(nType!=4);\r
-       \r
-       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";\r
-       if(bLocal)\r
-       {\r
-               if (!isBookEmpty(nIdx))\r
-               {\r
-                       sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";\r
-                       sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);\r
-                       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";\r
-                       sHTML+="&nbsp;"+sName+"</a></nobr></p></div>";\r
-                       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));\r
-                       if(sURL!="")\r
-                               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);\r
-                       sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";\r
-               }\r
-               else\r
-                       sHTML="";\r
-       }\r
-       else\r
-       {\r
-               sHTML+="stub></div>";\r
-               gbNeedFillStub=true;\r
-               setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-function checkFillStub()\r
-{\r
-       if(!gbLData)\r
-       {\r
-               if(gchunkRequestQueue.length()>0)\r
-               {\r
-                       var cInfo=gchunkRequestQueue.deQueue();\r
-                       if(cInfo)\r
-                       {\r
-                               fillStub(cInfo.nIdx,cInfo.bLocal);\r
-                               return;\r
-                       }\r
-               }\r
-       }\r
-       if(gbNeedFillStub)\r
-       {\r
-               gbNeedFillStub=false;\r
-               setTimeout("syncInit()",1);\r
-       }\r
-}\r
-\r
-function fillStub(nIdx,bLocalProject)\r
-{\r
-       if(!gbLData)\r
-       {\r
-               gbLData=true;\r
-               var sObj=getElement(getPBId(nIdx));\r
-               if(sObj!=null)\r
-               {\r
-                       tocExpandHelpSet(nIdx,bLocalProject);\r
-                       gbNeedFillStub=false;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-               else\r
-                       setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);\r
-       }\r
-       else\r
-               gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));\r
-}\r
-\r
-function getBookId(nIdx){return "B_"+nIdx;}\r
-\r
-function getItemId(nIdx){return "I_"+nIdx;}\r
-\r
-function markBook(nIdx)\r
-{\r
-       var obj=getElement(getItemId(nIdx));\r
-       if(obj==null)\r
-               obj=getElement(getBookId(nIdx));\r
-       if(gbNav6)\r
-       {\r
-               gobj=obj;\r
-               setTimeout("delayMarkObj();",1);\r
-       }\r
-       else\r
-               markObj(obj);\r
-}\r
-\r
-function delayMarkObj()\r
-{\r
-       if(gobj)\r
-       {\r
-               markObj(gobj);\r
-               gobj=null;\r
-       }\r
-}\r
-\r
-function markObj(obj)\r
-{\r
-       if(obj!=null)\r
-       {\r
-               HighLightElement(obj,gsABgColor,"transparent");\r
-               var sPath=calTocPath(obj);\r
-               if(gsCTPath!=sPath)\r
-                       gsCTPath=sPath;\r
-       }\r
-}\r
-\r
-function markItem(nIdx)\r
-{\r
-       var obj=getElement(getItemId(nIdx));\r
-       if(gbNav6)\r
-       {\r
-               gobj=obj;\r
-               setTimeout("delayMarkObj();",1);\r
-       }\r
-       else\r
-               markObj(getElement(getItemId(nIdx)));\r
-}\r
-\r
-function calTocPath(obj)\r
-{\r
-       var sPath=getInnerText2(obj);\r
-       var pObj=getParentNode(obj);\r
-       do\r
-       {\r
-               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);\r
-               if(pObj!=null)\r
-               {\r
-                       var nId=getIdByCBId(pObj.id);\r
-                       var sObj=getElement(getPBId(nId));\r
-                       if(sObj!=null)\r
-                       {\r
-                               var objs=getItemsByBook(sObj);\r
-                               for(var i=0;i<objs.length;i++)\r
-                               {\r
-                                       var sText=getInnerText2(objs[i]);\r
-                                       if(sText.length!=0)\r
-                                       {\r
-                                               sPath=sText+gsPathSplit+sPath;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       }\r
-                       pObj=getParentNode(pObj);\r
-               }\r
-       }while(pObj!=null);\r
-       return sPath;\r
-}\r
-\r
-function writeAnItem(nIdx)\r
-{\r
-       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));\r
-       var sIcon=getItemIcon(nIdx,0);\r
-       if(sIcon=="")\r
-       {\r
-               var nItemType=getItemType(nIdx);\r
-               if(nItemType&2)\r
-                       sIcon=getItemImage(nIdx,false);\r
-               else\r
-                       sIcon=getItemImage(nIdx,true);\r
-       }\r
-       sIcon=_textToHtml_nonbsp(sIcon);\r
-       var sName=_textToHtml(getItemName(nIdx));\r
-       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""\r
-       var sAltString="";\r
-       if(nItemType&2)\r
-               sAltString="Page";\r
-       else\r
-               sAltString="Remote Page";\r
-       if(sTarget!="")\r
-               sHTML+="target=\""+sTarget+"\" ";\r
-       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";\r
-       return sHTML;\r
-}\r
-\r
-function writeBookItems(nIdx,num)\r
-{\r
-       var sHTML="";\r
-       if(num>0){\r
-               var nCIdx=0;\r
-               do{\r
-                       nCIdx++;\r
-                       var i=nIdx+nCIdx;\r
-                       var nItemType=getItemType(i);\r
-                       if(nItemType==1||nItemType==4||nItemType==8){\r
-                               sHTML+=writeBook(i);    \r
-                               nCIdx+=getItemContentsNum(i);           \r
-                       }\r
-                       else if(nItemType==2||nItemType==16){\r
-                               sHTML+=writeAnItem(i);\r
-                       }\r
-               }\r
-               while(nCIdx<num);\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-function tocExpandHelpSet(nIdx,bLocal)\r
-{\r
-       checkBookItem(nIdx);\r
-       removeLoadingDiv();\r
-       if(!isHSLoad(nIdx))\r
-       {\r
-               setHSLoad(nIdx);\r
-               var sSrc="";\r
-               if(bLocal){\r
-                       var oChunk=getChunk(nIdx);\r
-                       if(oChunk)\r
-                       {\r
-                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);\r
-                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
-                       }\r
-               }\r
-               else{\r
-                       sSrc=getRefURL(nIdx);\r
-                       var nProj=getProject(sSrc);\r
-                       if(nProj!=-1)\r
-                       {\r
-                               sSrc=gaRoot[nProj].sToc;\r
-                               if(sSrc)\r
-                                       goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);\r
-                               else\r
-                                       goChunk=null;\r
-                       }\r
-                       else\r
-                               goChunk=null;\r
-               }\r
-               if(goChunk)\r
-               {\r
-                       PrepareLoading(nIdx);\r
-                       gbToc=false;\r
-                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);\r
-               }\r
-               else\r
-               {\r
-                       gbLData=false;\r
-                       checkFillStub();\r
-               }\r
-       }\r
-}\r
-\r
-function getProject(sSrc)\r
-{\r
-       for(var i=0;i<gaProj.length;i++)\r
-               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))\r
-                       return i;\r
-       return -1;\r
-}\r
-\r
-function getPath(sPath)\r
-{\r
-       if(sPath!="")\r
-       {\r
-               sPath=_replaceSlash(sPath);\r
-               var nPosFile=sPath.lastIndexOf("/");\r
-               sPath=sPath.substring(0,nPosFile+1);\r
-       }\r
-       return sPath;\r
-}\r
-\r
-function isSamePath(sPath1,sPath2)\r
-{\r
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());\r
-}\r
-\r
-function PrepareLoading(nIdx)\r
-{\r
-       gnInsIdx=nIdx;\r
-       if(!gsTP)\r
-       {\r
-               var oObj=getElement(getPBId(gnInsIdx));\r
-               if(oObj)\r
-                       oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));\r
-       }\r
-}\r
-\r
-function writeLoadingDiv(nIdx)\r
-{\r
-       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";\r
-}\r
-\r
-function getItemName(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemContentsNum(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;\r
-       else\r
-               return null;\r
-}\r
-\r
-function getItemType(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-               return oChunk.aTocs[nIdx-oChunk.nMI].nType;\r
-       else\r
-               return 0;\r
-}\r
-\r
-function getItemURL(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;\r
-               if(!(sPath==null||sPath==""))\r
-               {\r
-                       return _getFullPath(oChunk.sPPath,sPath);\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function getRefURL(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;\r
-               if(!(sPath==null||sPath==""))\r
-               {\r
-                       return _getFullPath(oChunk.sPPath,sPath)\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function getTopicTarget(nIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")\r
-                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;\r
-       }\r
-       return "";\r
-}\r
-\r
-function getItemIcon(nIdx,nIconIdx)\r
-{\r
-       var oChunk=getChunk(nIdx);\r
-       if(oChunk)\r
-       {\r
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")\r
-               {\r
-                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;\r
-                       var nIndex=sIconRef.indexOf(";");\r
-                       while(nIconIdx-->0&&nIndex!=-1)\r
-                       {\r
-                               sIconRef=sIconRef.substring(nIndex+1);\r
-                               nIndex=sIconRef.indexOf(";");\r
-                       }\r
-                       if(nIconIdx<0)\r
-                       {\r
-                               if(nIndex!=-1)\r
-                                       sIconRef=sIconRef.substring(0,nIndex);\r
-                               return _getFullPath(oChunk.sPPath,sIconRef)\r
-                       }\r
-               }\r
-       }\r
-       return "";\r
-}\r
-\r
-function TocWriteClassStyle()\r
-{\r
-       var sStyle="<STYLE TYPE='text/css'>\n";\r
-       if(gsBgImage)\r
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";\r
-       else\r
-               sStyle+="body {border-top:black 1px solid;}\n";\r
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
-       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";\r
-       sStyle+=".parent {margin-left:0pt;}\n";\r
-       sStyle+=".stub {margin-left:0pt;display:none}\n";\r
-       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";\r
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";\r
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";\r
-       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";\r
-       sStyle+="</STYLE>";\r
-       document.write(sStyle);\r
-}\r
-\r
-function TocWriteFixedWidth(bBegin,nWidth)\r
-{\r
-       if((gbIE4)&&(gbMac)&&(!gbIE5)){\r
-               if(bBegin)\r
-                       document.write("<table width="+nWidth+" border=0><tr><td>");\r
-               else\r
-                       document.write("</td></tr></table>");\r
-       }\r
-}\r
-\r
-function TocInitPage()\r
-{\r
-       var tempColl=getItemsByBook(document.body);\r
-       if(tempColl.length>0)\r
-               tempColl[0].focus();\r
-}\r
-\r
-function getItemsFromObj(obj)\r
-{\r
-       var aAnchor=new Array();\r
-       var tempColl=getChildrenByTag(obj,"P");\r
-       if(tempColl&&tempColl.length>0)\r
-       {\r
-               var anobr=new Array();\r
-               for(var i=0;i<tempColl.length;i++)\r
-               {\r
-                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");\r
-                       if(tempNobr&&tempNobr.length>0)\r
-                               for(var j=0;j<tempNobr.length;j++)\r
-                                       anobr[anobr.length]=tempNobr[j];\r
-               }\r
-               for(var s=0;s<anobr.length;s++)\r
-               {\r
-                       var tempAnchor=getChildrenByTag(anobr[s],"A");\r
-                       if(tempAnchor&&tempAnchor.length>0)\r
-                               for(var u=0;u<tempAnchor.length;u++)\r
-                                       aAnchor[aAnchor.length]=tempAnchor[u];\r
-               }\r
-       }\r
-       return aAnchor;\r
-}\r
-\r
-function getItemsByBook(obj)\r
-{\r
-       var aAnchor=new Array();\r
-       var aTAnchor=getItemsFromObj(obj);\r
-       for(var i=0;i<aTAnchor.length;i++)\r
-               aAnchor[aAnchor.length]=aTAnchor[i];\r
-       var tempBook=getChildrenByTag(obj,"DIV");\r
-       if(tempBook&&tempBook.length>0)\r
-               for(var j=0;j<tempBook.length;j++)\r
-               {\r
-                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);\r
-                       for(var s=0;s<aTAnchorDiv.length;s++)\r
-                               aAnchor[aAnchor.length]=aTAnchorDiv[s];\r
-               }\r
-       return aAnchor;\r
-}\r
-\r
-function ExpandIt(nId)\r
-{\r
-       if(!gsTP)\r
-               ExpandIt2(nId,false);\r
-}\r
-\r
-function ExpandIt2(nId,bForceOpen)\r
-{\r
-       var oC=TocExpand(nId,true,bForceOpen);\r
-       var nNewScroll=document.body.scrollTop;\r
-       if(oC.style.display=="block"){\r
-               var nTop=oC.offsetTop;\r
-               var nBottom=nTop+oC.offsetHeight;\r
-               if(document.body.scrollTop+document.body.clientHeight<nBottom){\r
-                       nNewScroll=nBottom-document.body.clientHeight;\r
-               }\r
-               if(nBottom-nTop>document.body.clientHeight){\r
-                       nNewScroll=nTop-20;\r
-               }\r
-       }\r
-       document.body.scrollTop=nNewScroll;\r
-}\r
-\r
-function TocExpand(nId,bChangeImg,bForceOpen)\r
-{\r
-       var oDiv=getElement(getCBId(nId));\r
-       if(oDiv==null) return null;\r
-\r
-       var whichIm=document.images[getBId(nId)];\r
-       if((oDiv.style.display!="block")||bForceOpen){\r
-               oDiv.style.display="block";\r
-               if(bChangeImg){\r
-                       var sPath=getPath(whichIm.src);\r
-                       sPath=_getFullPath(sPath,getBookImage(nId,false));\r
-                       whichIm.src=sPath;              \r
-               }\r
-       }else{\r
-               oDiv.style.display="none";\r
-               if(bChangeImg){\r
-                       var sPath=getPath(whichIm.src);\r
-                       sPath=_getFullPath(sPath,getBookImage(nId,true));\r
-                       whichIm.src=sPath;\r
-               }\r
-               if(gbMac&&gbIE5){\r
-                       this.parent.document.getElementById("tocIFrame").style.width="101%";\r
-                       this.parent.document.getElementById("tocIFrame").style.width="100%";\r
-               }\r
-       }\r
-       return oDiv;\r
-}\r
-\r
-function getChunkId(n)\r
-{\r
-       var nCan=-1;\r
-       for(var i=0;i<gaTocs.length;i++)\r
-               if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)\r
-               {\r
-                       if(nCan==-1)\r
-                               nCan=i;\r
-                       else\r
-                               if(gaTocs[i].nMI>=gaTocs[nCan].nMI)\r
-                                       nCan=i;\r
-               }\r
-       if(nCan!=-1)\r
-               return nCan;\r
-       else\r
-               return -1;\r
-}\r
-\r
-function getChunk(n)\r
-{\r
-       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||\r
-               gaTocs[gnCC+1].nMI>n))\r
-       {       \r
-               return gaTocs[gnCC];\r
-       }\r
-       else{\r
-               gnCC=getChunkId(n);\r
-               if(gnCC!=-1)\r
-                       return gaTocs[gnCC];\r
-               else\r
-                       return null;\r
-       }\r
-}\r
-\r
-function getBookImage(nIdx,bClosed)\r
-{\r
-       var nIdx=bClosed?0:1;\r
-       var sIcon=getItemIcon(nIdx,nIdx);\r
-       if(sIcon=="")\r
-               if(bClosed)\r
-                       sIcon=giBookClose;\r
-               else\r
-                       sIcon=giBookOpen;\r
-       return _getFullPath(gaProj[0].sPPath,sIcon);\r
-}\r
-\r
-function getItemImage(nIdx,bRemote)\r
-{\r
-       var sIcon=getItemIcon(nIdx,0);\r
-       if(sIcon=="")\r
-               if(bRemote)\r
-                       sIcon=giURLItem;\r
-               else\r
-                       sIcon=giBookItem;\r
-       return _getFullPath(gaProj[0].sPPath,sIcon);\r
-}\r
-\r
-function getInnerText2(obj)\r
-{\r
-       var sText=getInnerText(obj);\r
-       if(sText.length>0&&!gbOpera7)\r
-               sText=sText.substring(1);\r
-       return sText;\r
-}\r
-\r
-function expandToc(oObj,sRest,aIdList)\r
-{\r
-       var len=aIdList.length;\r
-       var nPos=sRest.indexOf(gsPathSplit);\r
-       if(nPos!=-1)\r
-       {\r
-               sPart=sRest.substring(0,nPos);\r
-               sRest=sRest.substring(nPos+1);\r
-       }\r
-       else\r
-       {\r
-               sPart=sRest;\r
-               var aTagAs=getItemsByBook(oObj);\r
-               for(var s=0;s<aTagAs.length;s++)\r
-               {\r
-                       var sText=getInnerText2(aTagAs[s]);\r
-                       if(sText==sPart)\r
-                       {\r
-                               aIdList[len]=aTagAs[s];\r
-                               return 1;\r
-                       }\r
-               }\r
-               return 0;\r
-       }\r
-               \r
-       var aChildren=getChildrenByTag(oObj,"DIV");\r
-       for(var i=0;i<aChildren.length;i++)\r
-       {\r
-               var sPId=aChildren[i].id;\r
-               if(!isPBId(sPId))\r
-                       continue;\r
-               var sText=getInnerText2(aChildren[i]);\r
-               if(sText!=sPart)\r
-                       continue;\r
-               aIdList[len]=getIdByPBId(sPId);\r
-               var sCId=getCBId(aIdList[len]);\r
-               var oCObj=getElement(sCId);\r
-               if(oCObj)\r
-               {\r
-                       if(oCObj.innerHTML=="")\r
-                       {\r
-                               var obj=getItemsByBook(aChildren[i]);\r
-                               if(obj.length>0)\r
-                               {\r
-                                       if(gbNav6)\r
-                                       {\r
-                                               var sCommand=obj[0].getAttribute("onClick");\r
-                                               var nCommand=sCommand.indexOf(";");\r
-                                               sCommand=sCommand.substring(0,nCommand);\r
-                                               setTimeout(sCommand,1);\r
-                                       }\r
-                                       else\r
-                                               obj[0].click();\r
-                               }\r
-                               return -1;\r
-                       }\r
-                       var nRet=expandToc(oCObj,sRest,aIdList);\r
-                       if(nRet)\r
-                               return nRet;\r
-               }\r
-       }\r
-       aIdList.length=len;\r
-       return 0;\r
-}\r
-\r
-function getIdByPBId(sPId)\r
-{\r
-       return parseInt(sPId.substring(2,sPId.length-1));\r
-}\r
-\r
-function getIdByCBId(sCId)\r
-{\r
-       return parseInt(sCId.substring(2,sCId.length-1));\r
-}\r
-\r
-function isPBId(sId)\r
-{\r
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);\r
-}\r
-\r
-function isCBId(sId)\r
-{\r
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);\r
-}\r
-\r
-function getBId(nIdx)\r
-{\r
-       return "B_"+nIdx;\r
-}\r
-\r
-function getPBId(nIdx)\r
-{\r
-       return getBId(nIdx)+"P";\r
-}\r
-\r
-function getCBId(nIdx)\r
-{\r
-       return getBId(nIdx)+"C";\r
-}\r
-\r
-function getClosestTocPath(aPaths)\r
-{\r
-       var nMaxSimilarity=0;\r
-       var nThatIndex=-1;\r
-       var sPath=null;\r
-       if(aPaths.length==0) return sPath;\r
-       for(var i=0;i<aPaths.length;i++)\r
-       {\r
-               var nSimilarity=comparePath(gsCTPath,aPaths[i]);\r
-               if(nSimilarity>nMaxSimilarity)\r
-               {\r
-                       nMaxSimilarity=nSimilarity;\r
-                       nThatIndex=i;\r
-               }\r
-       }\r
-       if(nThatIndex!=-1)\r
-               sPath=aPaths[nThatIndex];\r
-       else\r
-               sPath=aPaths[0];\r
-       return sPath;\r
-}\r
-\r
-function comparePath(sPath1,sPath2)\r
-{\r
-       var nMaxSimilarity=0;\r
-       var nStartPos1=0;\r
-       var nPos1=-1;\r
-       var nStartPos2=0;\r
-       var nPos2=-1;\r
-       do{\r
-               var sCheck1=null;\r
-               var sCheck2=null;\r
-               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);\r
-               if(nPos1!=-1)\r
-               {\r
-                       sCheck1=sPath1.substring(nStartPos1,nPos1);\r
-                       nStartPos1=nPos1+1;\r
-               }\r
-               else\r
-               {\r
-                       sCheck1=sPath1.substring(nStartPos1);\r
-                       nStartPos1=-1;\r
-               }\r
-               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);\r
-               if(nPos1!=-1)\r
-               {\r
-                       sCheck2=sPath2.substring(nStartPos2,nPos2);\r
-                       nStartPos2=nPos2+1;\r
-               }\r
-               else\r
-               {\r
-                       sCheck2=sPath2.substring(nStartPos2);\r
-                       nStartPos2=-1;\r
-               }\r
-               if(sCheck1==sCheck2)\r
-                       nMaxSimilarity++;\r
-               else\r
-                       break;\r
-       }while(nStartPos1!=-1&&nStartPos2!=-1);\r
-       return nMaxSimilarity;\r
-}\r
-\r
-function getTocPaths(oTopicParam)\r
-{\r
-       var aRelTocPaths=oTopicParam.aPaths;\r
-       var aPaths=new Array();\r
-       for(var i=0;i<gaProj.length;i++)\r
-               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))\r
-               {\r
-                       for(var j=0;j<aRelTocPaths.length;j++)\r
-                               for (var k=0;k<gaRoot[i].aRPath.length;k++)\r
-                               {\r
-                                       var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];\r
-                                       aPaths[aPaths.length]=sPath.substring(1);\r
-                               }\r
-                       break;\r
-               }\r
-       return aPaths;\r
-}\r
-\r
-function syncInit()\r
-{\r
-       if(gsTP&&!gbNeedFillStub)\r
-       {\r
-               gInSync=true;\r
-               var obj=document.body;\r
-               var aIdList=new Array();\r
-               var nRet=expandToc(obj,gsTP,aIdList);\r
-               if(nRet!=-1)\r
-               {\r
-                       if(nRet==1)\r
-                       {\r
-                               if(aIdList.length)\r
-                                       for(var i=0;i<aIdList.length-1;i++)\r
-                                               ExpandIt2(aIdList[i],true);\r
-                               gsCTPath=gsTP;\r
-                               if(!gbIE55)\r
-                                       aIdList[aIdList.length-1].focus();\r
-                               else\r
-                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");\r
-                       }\r
-                       var aPaths=gaBTPs;\r
-                       gsTP=null;\r
-                       gaBTPs=null;\r
-                       if(aPaths!=null)\r
-                       {\r
-                               var sPath=getClosestTocPath(aPaths);\r
-                               if(sPath!=null)\r
-                               {       \r
-                                       gsTP=sPath;             \r
-                                       setTimeout("syncInit()",1);\r
-                               }\r
-                       }\r
-               }\r
-               gInSync=false;\r
-       }\r
-}\r
-\r
-function loadToc()\r
-{\r
-       if(!gbLoadToc)\r
-       {\r
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
-               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
-               {\r
-                       gbLoadToc=true;\r
-                       var oProj=oResMsg.oParam;\r
-                       gaProj=oProj.aProj;\r
-                       gbXML=oProj.bXML;\r
-                       load1B1();\r
-               }\r
-       }\r
-}\r
-\r
-function load1B1()\r
-{\r
-       if(gnLT+1<gaProj.length)\r
-               for(var i=gnLT+1;i<gaProj.length;i++)\r
-                       if(gaProj[i].sToc)\r
-                       {\r
-                               gbToc=true;\r
-                               gnLT=i;\r
-                               setTimeout("loadTocInfo()",1);\r
-                               return true;\r
-                       }\r
-       return false;\r
-}\r
-\r
-function loadTocInfo()\r
-{\r
-       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);\r
-}\r
-\r
-function loadData2(sFile)\r
-{\r
-       if(gbXML)\r
-               loadDataXML(sFile);\r
-       else\r
-               loadData(sFile);\r
-}\r
-\r
-function projReady(sRoot,aProj)\r
-{\r
-       if(gaRoot.length<=gnLT||!gaRoot[gnLT])\r
-               gaRoot[gnLT]=new Object();\r
-       gaRoot[gnLT].sToc=sRoot;\r
-       \r
-       if(gnLT==0)\r
-       {\r
-               gaRoot[gnLT].aRPath=new Array();\r
-               gaRoot[gnLT].aRPath[0]=gsPathSplit;\r
-       }\r
-\r
-       updatePTPath(gnLT,aProj);\r
-\r
-       if(!((gnLT+1<gaProj.length)&&load1B1()))\r
-       {\r
-               gbReady=true;\r
-               if(gbIE4)\r
-                       setTimeout("loadImages();",1);\r
-               else\r
-                       setTimeout("loadTData();",1);\r
-       }\r
-}\r
-\r
-function loadTData()\r
-{\r
-       if(gaProj[0].sToc!="")\r
-       {\r
-               gbLData=true;\r
-               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);\r
-               gbToc=false;\r
-               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);\r
-       }\r
-}\r
-\r
-function updatePTPath(n,aProj)\r
-{\r
-       if(aProj)\r
-               for(var i=0;i<aProj.length;i++)\r
-               {\r
-                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);\r
-                       for(var j=0;j<gaProj.length;j++)\r
-                               if(isSamePath(sFullPath,gaProj[j].sPPath))\r
-                               {\r
-                                       if(gaRoot.length<=j||!gaRoot[j])\r
-                                               gaRoot[j]=new Object();\r
-                                       if(!gaRoot[j].aRPath)\r
-                                               gaRoot[j].aRPath=new Array();\r
-\r
-                                       if(gaRoot[n].aRPath)\r
-                                               for(var k=0;k<gaRoot[n].aRPath.length;k++)\r
-                                               {\r
-                                                       var bDup=false;\r
-                                                       var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;\r
-                                                       for(var l=0;l<gaRoot[j].aRPath.length;l++)\r
-                                                               if(gaRoot[j].aRPath[l]==sTFPath)\r
-                                                               {\r
-                                                                       bDup=true;\r
-                                                                       break;\r
-                                                               }\r
-                                                       if(!bDup)\r
-                                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;\r
-                                               }\r
-                                       else\r
-                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;\r
-                                       break;\r
-                               }\r
-               }\r
-}\r
-\r
-function onLoadXMLError()\r
-{\r
-       if(gbToc)\r
-       {\r
-               var sRoot="";\r
-               var aRProj=new Array();\r
-               projReady(sRoot,aRProj);\r
-       }\r
-       else\r
-       {\r
-               var aToc=new Array();\r
-               putData(aToc)\r
-       }\r
-}\r
-\r
-function putDataXML(xmlDoc,sDocPath)\r
-{\r
-       if(gbToc)\r
-       {\r
-               var tocNode=xmlDoc.getElementsByTagName("toc")[0];\r
-               if(tocNode)\r
-               {\r
-                       var sRoot=tocNode.getAttribute("root");\r
-                       var rmtProject=tocNode.getElementsByTagName("project");\r
-                       var aRProj=new Array();\r
-                       if(rmtProject.length>0)\r
-                       {\r
-                               for(var i=0;i<rmtProject.length;i++)\r
-                               {\r
-                                       aRProj[i]=new Object();\r
-                                       var sURL=rmtProject[i].getAttribute("url");\r
-                                       if(sURL)\r
-                                       {\r
-                                               if(sURL.lastIndexOf("/")!=sURL.length-1)\r
-                                                       sURL+="/";                                              \r
-                                       }\r
-                                       aRProj[i].sPPath=sURL;\r
-                                       aRProj[i].sRPath = "";\r
-                                       var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];\r
-                                       if (oSubPath)\r
-                                       {\r
-                                               while (oSubPath)\r
-                                               {\r
-                                                       aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";\r
-                                                       oSubPath = oSubPath.getElementsByTagName("subpath")[0];\r
-                                               }\r
-                                       }\r
-                                       else\r
-                                               aRProj[i].sRPath=rmtProject[i].getAttribute("path");\r
-                               }\r
-                       }\r
-                       projReady(sRoot,aRProj);\r
-               }\r
-       }\r
-       else\r
-       {\r
-               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];\r
-               if(chunkNode)\r
-               {\r
-                       var aToc=new Array();\r
-                       processBook(chunkNode,aToc);\r
-                       putData(aToc);\r
-               }\r
-       }\r
-}\r
-\r
-function processBook(node,aToc)\r
-{\r
-       var i=0;\r
-       var entry=null;\r
-       var prevEntry=null;\r
-       var oChild=node.firstChild;\r
-       do{\r
-               if(oChild)\r
-               {\r
-                       if(oChild.nodeName.indexOf("#")!=0)\r
-                       {\r
-                               var sName=oChild.getAttribute("name");\r
-                               var sURL=oChild.getAttribute("url");\r
-                               var sRef=oChild.getAttribute("ref");\r
-                               var sTarget=oChild.getAttribute("target");\r
-                               var sIcons=oChild.getAttribute("images");\r
-                               var item=new Object();\r
-                               item.sItemName=sName;\r
-                               if(sTarget)\r
-                                       item.sTarget=sTarget;\r
-                               if(sIcons)\r
-                                       item.sIconRef=sIcons;\r
-                               if(sURL==null) sURL="";\r
-\r
-                               item.sItemURL=sURL;\r
-                               \r
-                               if(oChild.nodeName=="book")\r
-                               {\r
-                                       item.nType=1;\r
-                                       aToc[aToc.length]=item;\r
-                                       var nCurrPos=aToc.length;\r
-                                       processBook(oChild,aToc);\r
-                                       item.nContents=aToc.length-nCurrPos;\r
-                               }\r
-                               else if(oChild.nodeName=="item")\r
-                               {\r
-                                       item.nType=2;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="remoteitem")\r
-                               {\r
-                                       item.nType=16;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="project")\r
-                               {\r
-                                       if(sRef)\r
-                                       {\r
-                                               if(sRef.lastIndexOf("/")!=sRef.length-1)\r
-                                                       sRef+="/";                                              \r
-                                       }\r
-                                       item.nType=4;\r
-                                       item.sRefURL=sRef;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                               else if(oChild.nodeName=="chunk")\r
-                               {\r
-                                       item.nType=8;\r
-                                       item.sRefURL=sRef;\r
-                                       item.nContents=0;\r
-                                       aToc[aToc.length]=item;\r
-                               }\r
-                       }\r
-               }\r
-               else\r
-                       break;\r
-               oChild=oChild.nextSibling;\r
-       }while(true);\r
-}\r
-\r
-function putData(aTocs)\r
-{\r
-       gaTocsNs61Fix=aTocs;\r
-       setTimeout("realPutData();",1);\r
-}\r
-\r
-function realPutData()\r
-{\r
-       removeLoadingDiv();\r
-       var aTocs=gaTocsNs61Fix;\r
-       if(!aTocs) return;\r
-       if(goChunk)\r
-       {\r
-               var n=gnMinIdx;\r
-               goChunk.nMI=gnMinIdx;\r
-               goChunk.aTocs=aTocs;\r
-               gnMinIdx+=aTocs.length;\r
-               if(gnInsIdx!=-1)\r
-               {\r
-                       var oObj=getElement(getPBId(gnInsIdx));\r
-                       if(oObj)\r
-                       {\r
-                               oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));\r
-                               setTimeout("syncInit()",1);\r
-                       }\r
-               }\r
-               else{\r
-                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));\r
-                       var oParam=new Object();\r
-                       oParam.oTocInfo=null;\r
-                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);\r
-                       if(SendMessage(oMsg))\r
-                       {\r
-                               if(oMsg.oParam.oTocInfo)\r
-                                       syncWithPaths(oMsg.oParam.oTocInfo);\r
-                       }\r
-               }       \r
-       }\r
-       gbLData=false;\r
-       checkFillStub();\r
-}\r
-\r
-function syncWithPaths(oTopicParam)\r
-{\r
-       var aPaths=getTocPaths(oTopicParam);\r
-       if(gsTP)\r
-               gaBTPs=aPaths;\r
-       else{\r
-               var sPath=getClosestTocPath(aPaths);\r
-               if(sPath!=null)\r
-               {\r
-                       gsTP=sPath;\r
-                       setTimeout("syncInit()",1);\r
-               }\r
-       }\r
-}\r
-\r
-function window_OnLoad()\r
-{\r
-       if(gsBgImage&&gsBgImage.length>0)\r
-       {\r
-               document.body.background=gsBgImage;\r
-       }\r
-       if(gsBgColor&&gsBgColor.length>0)\r
-       {\r
-               document.body.bgColor=gsBgColor;\r
-       }\r
-       loadToc();\r
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function loadImages()\r
-{\r
-       if(giBookClose)\r
-       {\r
-               gaImgs[gnImages]=giBookClose;\r
-               gnImages++;\r
-       }               \r
-       if(giBookOpen)\r
-       {\r
-               gaImgs[gnImages]=giBookOpen;\r
-               gnImages++;\r
-       }               \r
-       if(giBookItem)\r
-       {\r
-               gaImgs[gnImages]=giBookItem;\r
-               gnImages++;\r
-       }               \r
-       if(giURLItem)\r
-       {\r
-               gaImgs[gnImages]=giURLItem;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookClose)\r
-       {\r
-               gaImgs[gnImages]=giNewBookClose;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookOpen)\r
-       {\r
-               gaImgs[gnImages]=giNewBookOpen;\r
-               gnImages++;\r
-       }               \r
-       if(giNewBookItem)\r
-       {\r
-               gaImgs[gnImages]=giNewBookItem;\r
-               gnImages++;\r
-       }               \r
-       if(giNewURLItem)\r
-       {\r
-               gaImgs[gnImages]=giNewURLItem;\r
-               gnImages++;\r
-       }\r
-       if(gnImages>0)\r
-       {\r
-               setTimeout("loadDataAfter();",1000);\r
-               loadImage(gaImgs[0]);\r
-       }\r
-       else\r
-               loadDataAfter();\r
-}\r
-\r
-function loadImage(sURL)\r
-{\r
-       var oImg=new Image();\r
-       oImg.onload=checkImageLoading;\r
-       oImg.onerror=errorImageLoading;\r
-       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);\r
-}\r
-\r
-function loadDataAfter()\r
-{\r
-       if(!gbLoadData)\r
-       {\r
-               gbLoadData=true;\r
-               loadTData();\r
-       }\r
-}\r
-\r
-function errorImageLoading()\r
-{\r
-       gnLoadedImages++;\r
-       if(gnImages==gnLoadedImages)\r
-               loadDataAfter();\r
-       else\r
-               loadImage(gaImgs[gnLoadedImages]);      \r
-}\r
-\r
-function checkImageLoading()\r
-{\r
-       gnLoadedImages++;\r
-       if(gnImages==gnLoadedImages)\r
-               loadDataAfter();\r
-       else\r
-               loadImage(gaImgs[gnLoadedImages]);      \r
-}\r
-\r
-function window_unload()\r
-{\r
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       UnRegisterListener2(this,WH_MSG_SYNCTOC);\r
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       if(oMsg)\r
-       {\r
-               var nMsgId=oMsg.nMessageId;\r
-               if(nMsgId==WH_MSG_PROJECTREADY)\r
-               {\r
-                       loadToc();\r
-               }\r
-               else if(nMsgId==WH_MSG_SYNCTOC)\r
-               {\r
-                       if(gbReady)\r
-                       {\r
-                               syncWithPaths(oMsg.oParam);\r
-                       }\r
-               }\r
-               else if(nMsgId==WH_MSG_SHOWTOC)\r
-               {\r
-                       if(!gbNav6)\r
-                               document.body.focus();\r
-               }\r
-       }\r
-       return true;\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)\r
-{\r
-       RegisterListener2(this,WH_MSG_PROJECTREADY);\r
-       RegisterListener2(this,WH_MSG_SYNCTOC);\r
-       RegisterListener2(this,WH_MSG_SHOWTOC);\r
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");\r
-       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");\r
-\r
-       window.onload=window_OnLoad;\r
-       window.onbeforeunload=window_BUnload;\r
-       window.onunload=window_unload;\r
-       gbWhTHost=true;\r
-}\r
-else\r
+//     WebHelp 5.10.007
+var gaHSLoad=new Array();
+var gnMinIdx=0;
+var gnInsIdx=-1;
+var gsLoadingDivID="LoadingDiv";
+var gsLoadingMsg="Loading, click here to cancel...";
+var gaProj=null;
+var gaTocs=new Array();
+var goChunk=null;
+var gbReady=false;
+var gbToc=false;
+var gbXML=false;
+var gaRoot=new Array();
+var gnCC=-1;
+var gsTP="";
+var gaBTPs="";
+var gsCTPath="";
+var gnLT=-1;
+var gsPathSplit="\n";
+var gsBgColor="#ffffff";
+var gsBgImage="";
+var goFont=null;
+var goHFont=null;
+
+var gsMargin="0pt";
+var gsIndent="15pt";
+var gsABgColor="#cccccc";
+
+var giBookClose="";
+var giBookOpen="";
+var giBookItem="";
+var giURLItem="";
+var giNewBookClose="";
+var giNewBookOpen="";
+var giNewBookItem="";
+var giNewURLItem="";
+var gnImages=0;
+var gnLoadedImages=0;
+var gaImgs=new Array();
+var gbLoadData=false;
+var gobj=null;
+var gaTocsNs61Fix=null;
+var gbWhTHost=false;
+var gBookItems=new Array();
+var gInSync=false;
+var gbLData=false;
+var gbNeedFillStub=false;
+var gbLoadToc=false;
+
+function chunkInfoQueue()
+{
+       this.aContent=new Array();
+       this.inQueue=function(cInfo)
+       {
+               this.aContent[this.aContent.length]=cInfo;
+       }
+       this.deQueue=function()
+       {
+               var cInfo=null;
+               if(this.aContent.length>0)
+               {
+                       cInfo=this.aContent[0];
+                       for(var i=1;i<this.aContent.length;i++)
+                               this.aContent[i-1]=this.aContent[i];
+                       this.aContent.length--;
+               }
+               return cInfo;
+       }
+       this.length=function()
+       {
+               return this.aContent.length;
+       }
+}
+
+var gchunkRequestQueue=new chunkInfoQueue();
+
+function chunkInfo(nIdx, bLocal)
+{
+       this.nIdx=nIdx;
+       this.bLocal=bLocal;
+}
+
+function setBackground(sBgImage)
+{
+       gsBgImage=sBgImage;
+}
+
+function setBackgroundcolor(sBgColor)
+{
+       gsBgColor=sBgColor;
+}
+
+function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       if(sType=="Normal") goFont=vFont;
+       else if(sType=="Hover") goHFont=vFont;
+}
+
+function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
+
+function setMargin(sMargin){gsMargin=sMargin;}
+
+function setIndent(sIndent){gsIndent=sIndent;}
+
+function setIcon(sType,sURL)
+{
+       if(sType=="BookOpen")
+               giBookOpen=sURL;
+       else if(sType=="BookClose")
+               giBookClose=sURL;
+       else if(sType=="Item")
+               giBookItem=sURL;
+       else if(sType=="RemoteItem")
+               giURLItem=sURL;
+       else if(sType=="NewBookClose")
+               giNewBookClose=sURL;
+       else if(sType=="NewBookOpen")
+               giNewBookOpen=sURL;
+       else if(sType=="NewItem")
+               giNewBookItem=sURL;
+       else if(sType=="NewRemoteItem")
+               giNewURLItem=sURL;              
+}
+
+function bookItem(sTarget,sURL)
+{
+       if(sTarget)
+               this.sTarget=sTarget;
+       else
+               this.sTarget="bsscright";
+       this.sURL=sURL;
+}
+
+function addBookItem(sBookId,sTarget,sURL)
+{
+       gBookItems[sBookId]=new bookItem(sTarget,sURL);         
+}
+
+function tocChunk(sPPath,sDPath)
+{
+       this.sPPath=sPPath;
+       this.sDPath=sDPath;
+       this.nMI=-1;
+       this.aTocs=null;
+}
+
+function addTocChunk(sPPath,sDPath)
+{
+       var oChunk=new tocChunk(sPPath,sDPath);
+       gaTocs[gaTocs.length]=oChunk;
+       return oChunk;
+}
+
+function isHSLoad(nIdx)
+{
+       for(var i=0;i<gaHSLoad.length;i++)
+               if(gaHSLoad[i]==nIdx)
+                       return true;
+       return false;
+}
+
+function setHSLoad(nIdx)
+{
+       if(!isHSLoad(nIdx))
+       {
+               var len=gaHSLoad.length;
+               for(var i=0;i<len;i++)
+                       if(gaHSLoad[i]==-1)
+                       {
+                               gaHSLoad[i]=nIdx;
+                               return;
+                       }
+               gaHSLoad[len]=nIdx;
+       }
+}
+
+function setHSUnLoad(nIdx)
+{
+       if(isHSLoad(nIdx))
+       {
+               for(var i=0;i<gaHSLoad.length;i++)
+                       if(gaHSLoad[i]==nIdx)
+                       {
+                               gaHSLoad[i]=-1;
+                               return;
+                       }
+       }
+}
+
+function removeLoadingDiv()
+{
+       var eLoadingDiv=getElement(gsLoadingDivID);
+       if(eLoadingDiv)
+               removeThis(eLoadingDiv);
+}
+
+function checkBookItem(nIdx)
+{
+       if(!gInSync)
+       {
+               var sBookId=getBookId(nIdx);
+               if(gBookItems[sBookId])
+               {
+                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
+               }
+       }
+}
+
+function insertBookItems(nIdx,num)
+{
+       checkBookItem(nIdx);
+       var sChildBookId=getCBId(nIdx);
+       var eChildDiv=getElement(sChildBookId);
+       if(eChildDiv){
+               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
+                       (eChildDiv.all&&eChildDiv.all.length==0)){
+                       var sHTML=writeBookItems(nIdx,num);
+                       eChildDiv.innerHTML=sHTML;
+                       setTimeout("syncInit()",1);
+               }
+       }
+       ExpandIt(nIdx);
+}
+
+function isBookEmpty(nIdx)
+{
+       var num=getItemContentsNum(nIdx);
+       if (num>0)
+       {
+               var nCIdx=0;
+               do {
+                       nCIdx++;
+                       var i=nIdx+nCIdx;
+                       var nItemType=getItemType(i);
+                       if(nItemType==1){
+                               if (!isBookEmpty(i))
+                                       return false;
+                       }
+                       else if(nItemType==4){
+                               var     sSrc=getRefURL(i);
+                               var nProj=getProject(sSrc);
+                               if(nProj!=-1){
+                                       sSrc=gaRoot[nProj].sToc;
+                                       if(sSrc)
+                                               return false;
+                               }
+                       }
+                       else if(nItemType==2||nItemType==16||nItemType==8)
+                               return false;
+               } while(nCIdx<num);
+       }
+       return true;
+}
+
+function writeBook(nIdx)
+{
+       var sIcon=getBookImage(nIdx,true);
+       var sName=_textToHtml(getItemName(nIdx));
+       sIcon=_textToHtml_nonbsp(sIcon);
+       
+       var nType=getItemType(nIdx);
+       var bLocal=(nType==1);
+       var bLocalProject=(nType!=4);
+       
+       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
+       if(bLocal)
+       {
+               if (!isBookEmpty(nIdx))
+               {
+                       sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
+                       sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
+                       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
+                       sHTML+="&nbsp;"+sName+"</a></nobr></p></div>";
+                       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
+                       if(sURL!="")
+                               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
+                       sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
+               }
+               else
+                       sHTML="";
+       }
+       else
+       {
+               sHTML+="stub></div>";
+               gbNeedFillStub=true;
+               setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
+       }
+       return sHTML;
+}
+
+function checkFillStub()
+{
+       if(!gbLData)
+       {
+               if(gchunkRequestQueue.length()>0)
+               {
+                       var cInfo=gchunkRequestQueue.deQueue();
+                       if(cInfo)
+                       {
+                               fillStub(cInfo.nIdx,cInfo.bLocal);
+                               return;
+                       }
+               }
+       }
+       if(gbNeedFillStub)
+       {
+               gbNeedFillStub=false;
+               setTimeout("syncInit()",1);
+       }
+}
+
+function fillStub(nIdx,bLocalProject)
+{
+       if(!gbLData)
+       {
+               gbLData=true;
+               var sObj=getElement(getPBId(nIdx));
+               if(sObj!=null)
+               {
+                       tocExpandHelpSet(nIdx,bLocalProject);
+                       gbNeedFillStub=false;
+                       setTimeout("syncInit()",1);
+               }
+               else
+                       setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
+       }
+       else
+               gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
+}
+
+function getBookId(nIdx){return "B_"+nIdx;}
+
+function getItemId(nIdx){return "I_"+nIdx;}
+
+function markBook(nIdx)
+{
+       var obj=getElement(getItemId(nIdx));
+       if(obj==null)
+               obj=getElement(getBookId(nIdx));
+       if(gbNav6)
+       {
+               gobj=obj;
+               setTimeout("delayMarkObj();",1);
+       }
+       else
+               markObj(obj);
+}
+
+function delayMarkObj()
+{
+       if(gobj)
+       {
+               markObj(gobj);
+               gobj=null;
+       }
+}
+
+function markObj(obj)
+{
+       if(obj!=null)
+       {
+               HighLightElement(obj,gsABgColor,"transparent");
+               var sPath=calTocPath(obj);
+               if(gsCTPath!=sPath)
+                       gsCTPath=sPath;
+       }
+}
+
+function markItem(nIdx)
+{
+       var obj=getElement(getItemId(nIdx));
+       if(gbNav6)
+       {
+               gobj=obj;
+               setTimeout("delayMarkObj();",1);
+       }
+       else
+               markObj(getElement(getItemId(nIdx)));
+}
+
+function calTocPath(obj)
+{
+       var sPath=getInnerText2(obj);
+       var pObj=getParentNode(obj);
+       do
+       {
+               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
+               if(pObj!=null)
+               {
+                       var nId=getIdByCBId(pObj.id);
+                       var sObj=getElement(getPBId(nId));
+                       if(sObj!=null)
+                       {
+                               var objs=getItemsByBook(sObj);
+                               for(var i=0;i<objs.length;i++)
+                               {
+                                       var sText=getInnerText2(objs[i]);
+                                       if(sText.length!=0)
+                                       {
+                                               sPath=sText+gsPathSplit+sPath;
+                                               break;
+                                       }
+                               }
+                       }
+                       pObj=getParentNode(pObj);
+               }
+       }while(pObj!=null);
+       return sPath;
+}
+
+function writeAnItem(nIdx)
+{
+       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
+       var sIcon=getItemIcon(nIdx,0);
+       if(sIcon=="")
+       {
+               var nItemType=getItemType(nIdx);
+               if(nItemType&2)
+                       sIcon=getItemImage(nIdx,false);
+               else
+                       sIcon=getItemImage(nIdx,true);
+       }
+       sIcon=_textToHtml_nonbsp(sIcon);
+       var sName=_textToHtml(getItemName(nIdx));
+       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
+       var sAltString="";
+       if(nItemType&2)
+               sAltString="Page";
+       else
+               sAltString="Remote Page";
+       if(sTarget!="")
+               sHTML+="target=\""+sTarget+"\" ";
+       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";
+       return sHTML;
+}
+
+function writeBookItems(nIdx,num)
+{
+       var sHTML="";
+       if(num>0){
+               var nCIdx=0;
+               do{
+                       nCIdx++;
+                       var i=nIdx+nCIdx;
+                       var nItemType=getItemType(i);
+                       if(nItemType==1||nItemType==4||nItemType==8){
+                               sHTML+=writeBook(i);    
+                               nCIdx+=getItemContentsNum(i);           
+                       }
+                       else if(nItemType==2||nItemType==16){
+                               sHTML+=writeAnItem(i);
+                       }
+               }
+               while(nCIdx<num);
+       }
+       return sHTML;
+}
+
+function tocExpandHelpSet(nIdx,bLocal)
+{
+       checkBookItem(nIdx);
+       removeLoadingDiv();
+       if(!isHSLoad(nIdx))
+       {
+               setHSLoad(nIdx);
+               var sSrc="";
+               if(bLocal){
+                       var oChunk=getChunk(nIdx);
+                       if(oChunk)
+                       {
+                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
+                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
+                       }
+               }
+               else{
+                       sSrc=getRefURL(nIdx);
+                       var nProj=getProject(sSrc);
+                       if(nProj!=-1)
+                       {
+                               sSrc=gaRoot[nProj].sToc;
+                               if(sSrc)
+                                       goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
+                               else
+                                       goChunk=null;
+                       }
+                       else
+                               goChunk=null;
+               }
+               if(goChunk)
+               {
+                       PrepareLoading(nIdx);
+                       gbToc=false;
+                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
+               }
+               else
+               {
+                       gbLData=false;
+                       checkFillStub();
+               }
+       }
+}
+
+function getProject(sSrc)
+{
+       for(var i=0;i<gaProj.length;i++)
+               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
+                       return i;
+       return -1;
+}
+
+function getPath(sPath)
+{
+       if(sPath!="")
+       {
+               sPath=_replaceSlash(sPath);
+               var nPosFile=sPath.lastIndexOf("/");
+               sPath=sPath.substring(0,nPosFile+1);
+       }
+       return sPath;
+}
+
+function isSamePath(sPath1,sPath2)
+{
+       return (sPath1.toLowerCase()==sPath2.toLowerCase());
+}
+
+function PrepareLoading(nIdx)
+{
+       gnInsIdx=nIdx;
+       if(!gsTP)
+       {
+               var oObj=getElement(getPBId(gnInsIdx));
+               if(oObj)
+                       oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
+       }
+}
+
+function writeLoadingDiv(nIdx)
+{
+       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
+}
+
+function getItemName(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
+       else
+               return null;
+}
+
+function getItemContentsNum(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
+       else
+               return null;
+}
+
+function getItemType(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+               return oChunk.aTocs[nIdx-oChunk.nMI].nType;
+       else
+               return 0;
+}
+
+function getItemURL(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
+               if(!(sPath==null||sPath==""))
+               {
+                       return _getFullPath(oChunk.sPPath,sPath);
+               }
+       }
+       return "";
+}
+
+function getRefURL(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
+               if(!(sPath==null||sPath==""))
+               {
+                       return _getFullPath(oChunk.sPPath,sPath)
+               }
+       }
+       return "";
+}
+
+function getTopicTarget(nIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
+                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
+       }
+       return "";
+}
+
+function getItemIcon(nIdx,nIconIdx)
+{
+       var oChunk=getChunk(nIdx);
+       if(oChunk)
+       {
+               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
+               {
+                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
+                       var nIndex=sIconRef.indexOf(";");
+                       while(nIconIdx-->0&&nIndex!=-1)
+                       {
+                               sIconRef=sIconRef.substring(nIndex+1);
+                               nIndex=sIconRef.indexOf(";");
+                       }
+                       if(nIconIdx<0)
+                       {
+                               if(nIndex!=-1)
+                                       sIconRef=sIconRef.substring(0,nIndex);
+                               return _getFullPath(oChunk.sPPath,sIconRef)
+                       }
+               }
+       }
+       return "";
+}
+
+function TocWriteClassStyle()
+{
+       var sStyle="<STYLE TYPE='text/css'>\n";
+       if(gsBgImage)
+               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
+       else
+               sStyle+="body {border-top:black 1px solid;}\n";
+       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
+       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
+       sStyle+=".parent {margin-left:0pt;}\n";
+       sStyle+=".stub {margin-left:0pt;display:none}\n";
+       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
+       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
+       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
+       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
+       sStyle+="</STYLE>";
+       document.write(sStyle);
+}
+
+function TocWriteFixedWidth(bBegin,nWidth)
+{
+       if((gbIE4)&&(gbMac)&&(!gbIE5)){
+               if(bBegin)
+                       document.write("<table width="+nWidth+" border=0><tr><td>");
+               else
+                       document.write("</td></tr></table>");
+       }
+}
+
+function TocInitPage()
+{
+       var tempColl=getItemsByBook(document.body);
+       if(tempColl.length>0)
+               tempColl[0].focus();
+}
+
+function getItemsFromObj(obj)
+{
+       var aAnchor=new Array();
+       var tempColl=getChildrenByTag(obj,"P");
+       if(tempColl&&tempColl.length>0)
+       {
+               var anobr=new Array();
+               for(var i=0;i<tempColl.length;i++)
+               {
+                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
+                       if(tempNobr&&tempNobr.length>0)
+                               for(var j=0;j<tempNobr.length;j++)
+                                       anobr[anobr.length]=tempNobr[j];
+               }
+               for(var s=0;s<anobr.length;s++)
+               {
+                       var tempAnchor=getChildrenByTag(anobr[s],"A");
+                       if(tempAnchor&&tempAnchor.length>0)
+                               for(var u=0;u<tempAnchor.length;u++)
+                                       aAnchor[aAnchor.length]=tempAnchor[u];
+               }
+       }
+       return aAnchor;
+}
+
+function getItemsByBook(obj)
+{
+       var aAnchor=new Array();
+       var aTAnchor=getItemsFromObj(obj);
+       for(var i=0;i<aTAnchor.length;i++)
+               aAnchor[aAnchor.length]=aTAnchor[i];
+       var tempBook=getChildrenByTag(obj,"DIV");
+       if(tempBook&&tempBook.length>0)
+               for(var j=0;j<tempBook.length;j++)
+               {
+                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);
+                       for(var s=0;s<aTAnchorDiv.length;s++)
+                               aAnchor[aAnchor.length]=aTAnchorDiv[s];
+               }
+       return aAnchor;
+}
+
+function ExpandIt(nId)
+{
+       if(!gsTP)
+               ExpandIt2(nId,false);
+}
+
+function ExpandIt2(nId,bForceOpen)
+{
+       var oC=TocExpand(nId,true,bForceOpen);
+       var nNewScroll=document.body.scrollTop;
+       if(oC.style.display=="block"){
+               var nTop=oC.offsetTop;
+               var nBottom=nTop+oC.offsetHeight;
+               if(document.body.scrollTop+document.body.clientHeight<nBottom){
+                       nNewScroll=nBottom-document.body.clientHeight;
+               }
+               if(nBottom-nTop>document.body.clientHeight){
+                       nNewScroll=nTop-20;
+               }
+       }
+       document.body.scrollTop=nNewScroll;
+}
+
+function TocExpand(nId,bChangeImg,bForceOpen)
+{
+       var oDiv=getElement(getCBId(nId));
+       if(oDiv==null) return null;
+
+       var whichIm=document.images[getBId(nId)];
+       if((oDiv.style.display!="block")||bForceOpen){
+               oDiv.style.display="block";
+               if(bChangeImg){
+                       var sPath=getPath(whichIm.src);
+                       sPath=_getFullPath(sPath,getBookImage(nId,false));
+                       whichIm.src=sPath;              
+               }
+       }else{
+               oDiv.style.display="none";
+               if(bChangeImg){
+                       var sPath=getPath(whichIm.src);
+                       sPath=_getFullPath(sPath,getBookImage(nId,true));
+                       whichIm.src=sPath;
+               }
+               if(gbMac&&gbIE5){
+                       this.parent.document.getElementById("tocIFrame").style.width="101%";
+                       this.parent.document.getElementById("tocIFrame").style.width="100%";
+               }
+       }
+       return oDiv;
+}
+
+function getChunkId(n)
+{
+       var nCan=-1;
+       for(var i=0;i<gaTocs.length;i++)
+               if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
+               {
+                       if(nCan==-1)
+                               nCan=i;
+                       else
+                               if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
+                                       nCan=i;
+               }
+       if(nCan!=-1)
+               return nCan;
+       else
+               return -1;
+}
+
+function getChunk(n)
+{
+       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
+               gaTocs[gnCC+1].nMI>n))
+       {       
+               return gaTocs[gnCC];
+       }
+       else{
+               gnCC=getChunkId(n);
+               if(gnCC!=-1)
+                       return gaTocs[gnCC];
+               else
+                       return null;
+       }
+}
+
+function getBookImage(nIdx,bClosed)
+{
+       var nIdx=bClosed?0:1;
+       var sIcon=getItemIcon(nIdx,nIdx);
+       if(sIcon=="")
+               if(bClosed)
+                       sIcon=giBookClose;
+               else
+                       sIcon=giBookOpen;
+       return _getFullPath(gaProj[0].sPPath,sIcon);
+}
+
+function getItemImage(nIdx,bRemote)
+{
+       var sIcon=getItemIcon(nIdx,0);
+       if(sIcon=="")
+               if(bRemote)
+                       sIcon=giURLItem;
+               else
+                       sIcon=giBookItem;
+       return _getFullPath(gaProj[0].sPPath,sIcon);
+}
+
+function getInnerText2(obj)
+{
+       var sText=getInnerText(obj);
+       if(sText.length>0&&!gbOpera7)
+               sText=sText.substring(1);
+       return sText;
+}
+
+function expandToc(oObj,sRest,aIdList)
+{
+       var len=aIdList.length;
+       var nPos=sRest.indexOf(gsPathSplit);
+       if(nPos!=-1)
+       {
+               sPart=sRest.substring(0,nPos);
+               sRest=sRest.substring(nPos+1);
+       }
+       else
+       {
+               sPart=sRest;
+               var aTagAs=getItemsByBook(oObj);
+               for(var s=0;s<aTagAs.length;s++)
+               {
+                       var sText=getInnerText2(aTagAs[s]);
+                       if(sText==sPart)
+                       {
+                               aIdList[len]=aTagAs[s];
+                               return 1;
+                       }
+               }
+               return 0;
+       }
+               
+       var aChildren=getChildrenByTag(oObj,"DIV");
+       for(var i=0;i<aChildren.length;i++)
+       {
+               var sPId=aChildren[i].id;
+               if(!isPBId(sPId))
+                       continue;
+               var sText=getInnerText2(aChildren[i]);
+               if(sText!=sPart)
+                       continue;
+               aIdList[len]=getIdByPBId(sPId);
+               var sCId=getCBId(aIdList[len]);
+               var oCObj=getElement(sCId);
+               if(oCObj)
+               {
+                       if(oCObj.innerHTML=="")
+                       {
+                               var obj=getItemsByBook(aChildren[i]);
+                               if(obj.length>0)
+                               {
+                                       if(gbNav6)
+                                       {
+                                               var sCommand=obj[0].getAttribute("onClick");
+                                               var nCommand=sCommand.indexOf(";");
+                                               sCommand=sCommand.substring(0,nCommand);
+                                               setTimeout(sCommand,1);
+                                       }
+                                       else
+                                               obj[0].click();
+                               }
+                               return -1;
+                       }
+                       var nRet=expandToc(oCObj,sRest,aIdList);
+                       if(nRet)
+                               return nRet;
+               }
+       }
+       aIdList.length=len;
+       return 0;
+}
+
+function getIdByPBId(sPId)
+{
+       return parseInt(sPId.substring(2,sPId.length-1));
+}
+
+function getIdByCBId(sCId)
+{
+       return parseInt(sCId.substring(2,sCId.length-1));
+}
+
+function isPBId(sId)
+{
+       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
+}
+
+function isCBId(sId)
+{
+       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
+}
+
+function getBId(nIdx)
+{
+       return "B_"+nIdx;
+}
+
+function getPBId(nIdx)
+{
+       return getBId(nIdx)+"P";
+}
+
+function getCBId(nIdx)
+{
+       return getBId(nIdx)+"C";
+}
+
+function getClosestTocPath(aPaths)
+{
+       var nMaxSimilarity=0;
+       var nThatIndex=-1;
+       var sPath=null;
+       if(aPaths.length==0) return sPath;
+       for(var i=0;i<aPaths.length;i++)
+       {
+               var nSimilarity=comparePath(gsCTPath,aPaths[i]);
+               if(nSimilarity>nMaxSimilarity)
+               {
+                       nMaxSimilarity=nSimilarity;
+                       nThatIndex=i;
+               }
+       }
+       if(nThatIndex!=-1)
+               sPath=aPaths[nThatIndex];
+       else
+               sPath=aPaths[0];
+       return sPath;
+}
+
+function comparePath(sPath1,sPath2)
+{
+       var nMaxSimilarity=0;
+       var nStartPos1=0;
+       var nPos1=-1;
+       var nStartPos2=0;
+       var nPos2=-1;
+       do{
+               var sCheck1=null;
+               var sCheck2=null;
+               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
+               if(nPos1!=-1)
+               {
+                       sCheck1=sPath1.substring(nStartPos1,nPos1);
+                       nStartPos1=nPos1+1;
+               }
+               else
+               {
+                       sCheck1=sPath1.substring(nStartPos1);
+                       nStartPos1=-1;
+               }
+               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
+               if(nPos1!=-1)
+               {
+                       sCheck2=sPath2.substring(nStartPos2,nPos2);
+                       nStartPos2=nPos2+1;
+               }
+               else
+               {
+                       sCheck2=sPath2.substring(nStartPos2);
+                       nStartPos2=-1;
+               }
+               if(sCheck1==sCheck2)
+                       nMaxSimilarity++;
+               else
+                       break;
+       }while(nStartPos1!=-1&&nStartPos2!=-1);
+       return nMaxSimilarity;
+}
+
+function getTocPaths(oTopicParam)
+{
+       var aRelTocPaths=oTopicParam.aPaths;
+       var aPaths=new Array();
+       for(var i=0;i<gaProj.length;i++)
+               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
+               {
+                       for(var j=0;j<aRelTocPaths.length;j++)
+                               for (var k=0;k<gaRoot[i].aRPath.length;k++)
+                               {
+                                       var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
+                                       aPaths[aPaths.length]=sPath.substring(1);
+                               }
+                       break;
+               }
+       return aPaths;
+}
+
+function syncInit()
+{
+       if(gsTP&&!gbNeedFillStub)
+       {
+               gInSync=true;
+               var obj=document.body;
+               var aIdList=new Array();
+               var nRet=expandToc(obj,gsTP,aIdList);
+               if(nRet!=-1)
+               {
+                       if(nRet==1)
+                       {
+                               if(aIdList.length)
+                                       for(var i=0;i<aIdList.length-1;i++)
+                                               ExpandIt2(aIdList[i],true);
+                               gsCTPath=gsTP;
+                               if(!gbIE55)
+                                       aIdList[aIdList.length-1].focus();
+                               else
+                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
+                       }
+                       var aPaths=gaBTPs;
+                       gsTP=null;
+                       gaBTPs=null;
+                       if(aPaths!=null)
+                       {
+                               var sPath=getClosestTocPath(aPaths);
+                               if(sPath!=null)
+                               {       
+                                       gsTP=sPath;             
+                                       setTimeout("syncInit()",1);
+                               }
+                       }
+               }
+               gInSync=false;
+       }
+}
+
+function loadToc()
+{
+       if(!gbLoadToc)
+       {
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
+               if(SendMessage(oResMsg)&&oResMsg.oParam)
+               {
+                       gbLoadToc=true;
+                       var oProj=oResMsg.oParam;
+                       gaProj=oProj.aProj;
+                       gbXML=oProj.bXML;
+                       load1B1();
+               }
+       }
+}
+
+function load1B1()
+{
+       if(gnLT+1<gaProj.length)
+               for(var i=gnLT+1;i<gaProj.length;i++)
+                       if(gaProj[i].sToc)
+                       {
+                               gbToc=true;
+                               gnLT=i;
+                               setTimeout("loadTocInfo()",1);
+                               return true;
+                       }
+       return false;
+}
+
+function loadTocInfo()
+{
+       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
+}
+
+function loadData2(sFile)
+{
+       if(gbXML)
+               loadDataXML(sFile);
+       else
+               loadData(sFile);
+}
+
+function projReady(sRoot,aProj)
+{
+       if(gaRoot.length<=gnLT||!gaRoot[gnLT])
+               gaRoot[gnLT]=new Object();
+       gaRoot[gnLT].sToc=sRoot;
+       
+       if(gnLT==0)
+       {
+               gaRoot[gnLT].aRPath=new Array();
+               gaRoot[gnLT].aRPath[0]=gsPathSplit;
+       }
+
+       updatePTPath(gnLT,aProj);
+
+       if(!((gnLT+1<gaProj.length)&&load1B1()))
+       {
+               gbReady=true;
+               if(gbIE4)
+                       setTimeout("loadImages();",1);
+               else
+                       setTimeout("loadTData();",1);
+       }
+}
+
+function loadTData()
+{
+       if(gaProj[0].sToc!="")
+       {
+               gbLData=true;
+               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
+               gbToc=false;
+               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
+       }
+}
+
+function updatePTPath(n,aProj)
+{
+       if(aProj)
+               for(var i=0;i<aProj.length;i++)
+               {
+                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
+                       for(var j=0;j<gaProj.length;j++)
+                               if(isSamePath(sFullPath,gaProj[j].sPPath))
+                               {
+                                       if(gaRoot.length<=j||!gaRoot[j])
+                                               gaRoot[j]=new Object();
+                                       if(!gaRoot[j].aRPath)
+                                               gaRoot[j].aRPath=new Array();
+
+                                       if(gaRoot[n].aRPath)
+                                               for(var k=0;k<gaRoot[n].aRPath.length;k++)
+                                               {
+                                                       var bDup=false;
+                                                       var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
+                                                       for(var l=0;l<gaRoot[j].aRPath.length;l++)
+                                                               if(gaRoot[j].aRPath[l]==sTFPath)
+                                                               {
+                                                                       bDup=true;
+                                                                       break;
+                                                               }
+                                                       if(!bDup)
+                                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
+                                               }
+                                       else
+                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
+                                       break;
+                               }
+               }
+}
+
+function onLoadXMLError()
+{
+       if(gbToc)
+       {
+               var sRoot="";
+               var aRProj=new Array();
+               projReady(sRoot,aRProj);
+       }
+       else
+       {
+               var aToc=new Array();
+               putData(aToc)
+       }
+}
+
+function putDataXML(xmlDoc,sDocPath)
+{
+       if(gbToc)
+       {
+               var tocNode=xmlDoc.getElementsByTagName("toc")[0];
+               if(tocNode)
+               {
+                       var sRoot=tocNode.getAttribute("root");
+                       var rmtProject=tocNode.getElementsByTagName("project");
+                       var aRProj=new Array();
+                       if(rmtProject.length>0)
+                       {
+                               for(var i=0;i<rmtProject.length;i++)
+                               {
+                                       aRProj[i]=new Object();
+                                       var sURL=rmtProject[i].getAttribute("url");
+                                       if(sURL)
+                                       {
+                                               if(sURL.lastIndexOf("/")!=sURL.length-1)
+                                                       sURL+="/";                                              
+                                       }
+                                       aRProj[i].sPPath=sURL;
+                                       aRProj[i].sRPath = "";
+                                       var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
+                                       if (oSubPath)
+                                       {
+                                               while (oSubPath)
+                                               {
+                                                       aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
+                                                       oSubPath = oSubPath.getElementsByTagName("subpath")[0];
+                                               }
+                                       }
+                                       else
+                                               aRProj[i].sRPath=rmtProject[i].getAttribute("path");
+                               }
+                       }
+                       projReady(sRoot,aRProj);
+               }
+       }
+       else
+       {
+               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
+               if(chunkNode)
+               {
+                       var aToc=new Array();
+                       processBook(chunkNode,aToc);
+                       putData(aToc);
+               }
+       }
+}
+
+function processBook(node,aToc)
+{
+       var i=0;
+       var entry=null;
+       var prevEntry=null;
+       var oChild=node.firstChild;
+       do{
+               if(oChild)
+               {
+                       if(oChild.nodeName.indexOf("#")!=0)
+                       {
+                               var sName=oChild.getAttribute("name");
+                               var sURL=oChild.getAttribute("url");
+                               var sRef=oChild.getAttribute("ref");
+                               var sTarget=oChild.getAttribute("target");
+                               var sIcons=oChild.getAttribute("images");
+                               var item=new Object();
+                               item.sItemName=sName;
+                               if(sTarget)
+                                       item.sTarget=sTarget;
+                               if(sIcons)
+                                       item.sIconRef=sIcons;
+                               if(sURL==null) sURL="";
+
+                               item.sItemURL=sURL;
+                               
+                               if(oChild.nodeName=="book")
+                               {
+                                       item.nType=1;
+                                       aToc[aToc.length]=item;
+                                       var nCurrPos=aToc.length;
+                                       processBook(oChild,aToc);
+                                       item.nContents=aToc.length-nCurrPos;
+                               }
+                               else if(oChild.nodeName=="item")
+                               {
+                                       item.nType=2;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                               else if(oChild.nodeName=="remoteitem")
+                               {
+                                       item.nType=16;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                               else if(oChild.nodeName=="project")
+                               {
+                                       if(sRef)
+                                       {
+                                               if(sRef.lastIndexOf("/")!=sRef.length-1)
+                                                       sRef+="/";                                              
+                                       }
+                                       item.nType=4;
+                                       item.sRefURL=sRef;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                               else if(oChild.nodeName=="chunk")
+                               {
+                                       item.nType=8;
+                                       item.sRefURL=sRef;
+                                       item.nContents=0;
+                                       aToc[aToc.length]=item;
+                               }
+                       }
+               }
+               else
+                       break;
+               oChild=oChild.nextSibling;
+       }while(true);
+}
+
+function putData(aTocs)
+{
+       gaTocsNs61Fix=aTocs;
+       setTimeout("realPutData();",1);
+}
+
+function realPutData()
+{
+       removeLoadingDiv();
+       var aTocs=gaTocsNs61Fix;
+       if(!aTocs) return;
+       if(goChunk)
+       {
+               var n=gnMinIdx;
+               goChunk.nMI=gnMinIdx;
+               goChunk.aTocs=aTocs;
+               gnMinIdx+=aTocs.length;
+               if(gnInsIdx!=-1)
+               {
+                       var oObj=getElement(getPBId(gnInsIdx));
+                       if(oObj)
+                       {
+                               oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
+                               setTimeout("syncInit()",1);
+                       }
+               }
+               else{
+                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
+                       var oParam=new Object();
+                       oParam.oTocInfo=null;
+                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
+                       if(SendMessage(oMsg))
+                       {
+                               if(oMsg.oParam.oTocInfo)
+                                       syncWithPaths(oMsg.oParam.oTocInfo);
+                       }
+               }       
+       }
+       gbLData=false;
+       checkFillStub();
+}
+
+function syncWithPaths(oTopicParam)
+{
+       var aPaths=getTocPaths(oTopicParam);
+       if(gsTP)
+               gaBTPs=aPaths;
+       else{
+               var sPath=getClosestTocPath(aPaths);
+               if(sPath!=null)
+               {
+                       gsTP=sPath;
+                       setTimeout("syncInit()",1);
+               }
+       }
+}
+
+function window_OnLoad()
+{
+       if(gsBgImage&&gsBgImage.length>0)
+       {
+               document.body.background=gsBgImage;
+       }
+       if(gsBgColor&&gsBgColor.length>0)
+       {
+               document.body.bgColor=gsBgColor;
+       }
+       loadToc();
+       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
+       SendMessage(oMsg);
+}
+
+function loadImages()
+{
+       if(giBookClose)
+       {
+               gaImgs[gnImages]=giBookClose;
+               gnImages++;
+       }               
+       if(giBookOpen)
+       {
+               gaImgs[gnImages]=giBookOpen;
+               gnImages++;
+       }               
+       if(giBookItem)
+       {
+               gaImgs[gnImages]=giBookItem;
+               gnImages++;
+       }               
+       if(giURLItem)
+       {
+               gaImgs[gnImages]=giURLItem;
+               gnImages++;
+       }               
+       if(giNewBookClose)
+       {
+               gaImgs[gnImages]=giNewBookClose;
+               gnImages++;
+       }               
+       if(giNewBookOpen)
+       {
+               gaImgs[gnImages]=giNewBookOpen;
+               gnImages++;
+       }               
+       if(giNewBookItem)
+       {
+               gaImgs[gnImages]=giNewBookItem;
+               gnImages++;
+       }               
+       if(giNewURLItem)
+       {
+               gaImgs[gnImages]=giNewURLItem;
+               gnImages++;
+       }
+       if(gnImages>0)
+       {
+               setTimeout("loadDataAfter();",1000);
+               loadImage(gaImgs[0]);
+       }
+       else
+               loadDataAfter();
+}
+
+function loadImage(sURL)
+{
+       var oImg=new Image();
+       oImg.onload=checkImageLoading;
+       oImg.onerror=errorImageLoading;
+       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
+}
+
+function loadDataAfter()
+{
+       if(!gbLoadData)
+       {
+               gbLoadData=true;
+               loadTData();
+       }
+}
+
+function errorImageLoading()
+{
+       gnLoadedImages++;
+       if(gnImages==gnLoadedImages)
+               loadDataAfter();
+       else
+               loadImage(gaImgs[gnLoadedImages]);      
+}
+
+function checkImageLoading()
+{
+       gnLoadedImages++;
+       if(gnImages==gnLoadedImages)
+               loadDataAfter();
+       else
+               loadImage(gaImgs[gnLoadedImages]);      
+}
+
+function window_unload()
+{
+       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
+       UnRegisterListener2(this,WH_MSG_SYNCTOC);
+       UnRegisterListener2(this,WH_MSG_SHOWTOC);
+}
+
+function onSendMessage(oMsg)
+{
+       if(oMsg)
+       {
+               var nMsgId=oMsg.nMessageId;
+               if(nMsgId==WH_MSG_PROJECTREADY)
+               {
+                       loadToc();
+               }
+               else if(nMsgId==WH_MSG_SYNCTOC)
+               {
+                       if(gbReady)
+                       {
+                               syncWithPaths(oMsg.oParam);
+                       }
+               }
+               else if(nMsgId==WH_MSG_SHOWTOC)
+               {
+                       if(!gbNav6)
+                               document.body.focus();
+               }
+       }
+       return true;
+}
+
+if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
+{
+       RegisterListener2(this,WH_MSG_PROJECTREADY);
+       RegisterListener2(this,WH_MSG_SYNCTOC);
+       RegisterListener2(this,WH_MSG_SHOWTOC);
+       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
+       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
+
+       window.onload=window_OnLoad;
+       window.onbeforeunload=window_BUnload;
+       window.onunload=window_unload;
+       gbWhTHost=true;
+}
+else
        document.location.reload();
\ No newline at end of file
index 8a53281c8cce69d80b14260e59fb7c28f91fe30c..e9d9cd19a9b006aa996f3632e48c43eedf17743d 100755 (executable)
-//     WebHelp 5.10.005\r
-var gsPPath="";\r
-var gaPaths=new Array();\r
-var gaAvenues=new Array();\r
-\r
-var goFrame=null;\r
-var gsStartPage="";\r
-var gsRelCurPagePath="";\r
-var gsSearchFormHref="";\r
-var gnTopicOnly=-1;\r
-var gnOutmostTopic=-1;\r
-\r
-var BTN_TEXT=1;\r
-var BTN_IMG=2;\r
-\r
-var goSync=null;\r
-\r
-var goShow=null;\r
-var goHide=null;\r
-\r
-var goPrev=null;\r
-var goNext=null;\r
-var gnForm=0;\r
-var goShowNav=null;\r
-var goHideNav=null;\r
-\r
-var goWebSearch=null;\r
-\r
-var gsBtnStyle="";\r
-var gaButtons=new Array();\r
-var gaTypes=new Array();\r
-var whtopic_foldUnload=null;\r
-var gbWhTopic=false;\r
-var gbCheckSync=false;\r
-var gbSyncEnabled=false;\r
-\r
-function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)\r
-{\r
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);\r
-       gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}";\r
-}\r
-\r
-function writeBtnStyle()\r
-{\r
-       if(gaButtons.length>0)\r
-       {\r
-               if(gsBtnStyle.length>0)\r
-               {\r
-                       var sStyle="<style type='text/css'>";\r
-                       sStyle+=gsBtnStyle+"</style>";\r
-                       document.write(sStyle);\r
-               }\r
-       }\r
-}\r
-\r
-function button(sText,nWidth,nHeight)\r
-{\r
-       this.sText=sText;\r
-       this.nWidth=nWidth;\r
-       this.nHeight=nHeight;\r
-       \r
-       this.aImgs=new Array();\r
-       var i=0;\r
-       while(button.arguments.length>i+3)\r
-       {\r
-               this.aImgs[i]=button.arguments[3+i];\r
-               i++;\r
-       }\r
-}\r
-\r
-//project info\r
-function setRelStartPage(sPath)\r
-{\r
-       if(gsPPath.length==0)\r
-       {\r
-               gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath));\r
-               gsStartPage=_getFullPath(_getPath(document.location.href),sPath);\r
-               gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href);\r
-       }\r
-}\r
-\r
-function getImage(oImage,sType)\r
-{\r
-       var sImg="";\r
-       if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0))\r
-       {\r
-               sImg+="<img alt=\""+sType+"\" src=\""+oImage.aImgs[0]+"\"";\r
-               if(oImage.nWidth>0)\r
-                       sImg+=" width="+oImage.nWidth;\r
-               if(oImage.nHeight>0)\r
-                       sImg+=" height="+oImage.nHeight;\r
-               sImg+=" border=0>";\r
-       }\r
-       return sImg;\r
-}\r
-\r
-function addTocInfo(sTocPath)\r
-{\r
-       gaPaths[gaPaths.length]=sTocPath;\r
-}\r
-\r
-function addAvenueInfo(sName,sPrev,sNext)\r
-{\r
-       gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext);  \r
-}\r
-\r
-function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3)\r
-{\r
-       var sButton="";\r
-       var nBtn=gaButtons.length;\r
-       if(sType=="prev")\r
-       {\r
-               if(canGo(false))\r
-               {\r
-                       var sTitle="Previous Topic";\r
-                       goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goPrev.sText;\r
-                       else\r
-                               sButton+=getImage(goPrev,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="next")\r
-       {\r
-               if(canGo(true))\r
-               {\r
-                       var sTitle="Next Topic";\r
-                       goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goNext.sText;\r
-                       else\r
-                               sButton+=getImage(goNext,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="show")\r
-       {\r
-               if(isTopicOnly()&&(!gbOpera6||gbOpera7))\r
-               {\r
-                       var sTitle="Show Navigation Component";\r
-                       goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goShow.sText;\r
-                       else\r
-                               sButton+=getImage(goShow,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="hide")\r
-       {\r
-               if(!isTopicOnly()&&!gbOpera6)\r
-               {\r
-                       var sTitle="Hide Navigation Component";\r
-                       goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goHide.sText;\r
-                       else\r
-                               sButton+=getImage(goHide,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="shownav")\r
-       {\r
-               if(isShowHideEnable())\r
-               {\r
-                       var sTitle="Show Navigation Component";\r
-                       goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goShowNav.sText;\r
-                       else\r
-                               sButton+=getImage(goShowNav,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="hidenav")\r
-       {\r
-               if(isShowHideEnable())\r
-               {\r
-                       var sTitle="Hide Navigation Component";\r
-                       goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goHideNav.sText;\r
-                       else\r
-                               sButton+=getImage(goHideNav,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="synctoc")\r
-       {\r
-               if(gaPaths.length>0)\r
-               {\r
-                       var sTitle="Sync TOC";\r
-                       goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goSync.sText;\r
-                       else\r
-                               sButton+=getImage(goSync,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="websearch")\r
-       {\r
-               if(gsSearchFormHref.length>0)\r
-               {\r
-                       var sTitle="WebSearch";\r
-                       goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);\r
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnwebsearch\" href=\""+gsSearchFormHref+"\">";\r
-                       if(nStyle==BTN_TEXT)\r
-                               sButton+=goWebSearch.sText;\r
-                       else\r
-                               sButton+=getImage(goWebSearch,sTitle);\r
-                       sButton+="</a>";\r
-               }\r
-       }\r
-       else if(sType=="searchform")\r
-       {\r
-               gaButtons[nBtn]="NeedSearchForm";\r
-               gaTypes[nBtn]=sType;\r
-       }\r
-       if(sButton.length!=0)\r
-       {\r
-               if(nStyle==BTN_TEXT)\r
-                       sButton+="&nbsp;";\r
-               gaButtons[nBtn]="<td>"+sButton+"</td>";\r
-               gaTypes[nBtn]=sType;\r
-       }\r
-}\r
-\r
-function isSyncEnabled()\r
-{\r
-       if(!gbCheckSync)\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);\r
-               if(SendMessage(oMsg))\r
-               {\r
-                       gbSyncEnabled=oMsg.oParam;\r
-               }\r
-               gbCheckSync=true;\r
-       }\r
-       return gbSyncEnabled;\r
-}\r
-\r
-function isInPopup()\r
-{\r
-       return (window.name.indexOf("BSSCPopup")!=-1);\r
-}\r
-\r
-function getIntopicBar(sAlign)\r
-{\r
-       var sHTML="";\r
-       if(gaButtons.length>0)\r
-       {\r
-               sHTML+="<div align="+sAlign+">";\r
-\r
-               sHTML+="<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";\r
-               for(var i=0;i<gaButtons.length;i++)\r
-               {\r
-                       if(gaTypes[i]!="synctoc"||isSyncEnabled())\r
-                       {\r
-                               if(gaButtons[i]=="NeedSearchForm")\r
-                                       sHTML+=getSearchFormHTML();\r
-                               else\r
-                                       sHTML+=gaButtons[i];\r
-                       }\r
-               }\r
-               sHTML+="</tr></table>";\r
-\r
-               sHTML+="</div>";\r
-       }\r
-       return sHTML;\r
-}\r
-\r
-\r
-function writeIntopicBar(nAligns)\r
-{\r
-       if(isInPopup()) return;\r
-       if(gaButtons.length>0)\r
-       {\r
-               var sHTML="";\r
-               if(nAligns!=0)\r
-               {\r
-                       sHTML+="<table width=100%><tr>"\r
-                       if(nAligns&1)\r
-                               sHTML+="<td width=33%>"+getIntopicBar("left")+"</td>";\r
-                       if(nAligns&2)\r
-                               sHTML+="<td width=34%>"+getIntopicBar("center")+"</td>";\r
-                       if(nAligns&4)\r
-                               sHTML+="<td width=33%>"+getIntopicBar("right")+"</td>";\r
-                       sHTML+="</tr></table>";\r
-                       document.write(sHTML);\r
-               }\r
-       }\r
-}\r
-\r
-function sendAveInfoOut()\r
-{\r
-       if(!isInPopup())\r
-               setTimeout("sendAveInfo();",100);\r
-}\r
-\r
-function sendAveInfo()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-\r
-function onNext()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_NEXT,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function onPrev()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_PREV,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function createSyncInfo()\r
-{\r
-       var oParam=new Object();\r
-       if(gsPPath.length==0)\r
-               gsPPath=_getPath(document.location.href);\r
-       oParam.sPPath=gsPPath;\r
-       oParam.sTPath=document.location.href;\r
-       oParam.aPaths=gaPaths;\r
-       return oParam;\r
-}\r
-\r
-function syncWithShow()\r
-{\r
-       if(isTopicOnly())\r
-               show();\r
-       else\r
-       {\r
-               sync();\r
-               showTocPane();\r
-       }\r
-}\r
-\r
-function showTocPane()\r
-{\r
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function sendSyncInfo()\r
-{\r
-       if(!isInPopup())\r
-       {\r
-               var oParam=null;\r
-               if(gaPaths.length>0)\r
-               {\r
-                       oParam=createSyncInfo();\r
-               }\r
-               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function sendInvalidSyncInfo()\r
-{\r
-       if(!isInPopup())\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function enableWebSearch(bEnable)\r
-{\r
-       if(!isInPopup())\r
-       {\r
-               var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable);\r
-               SendMessage(oMsg);\r
-       }\r
-}\r
-\r
-function autoSync(nSync)\r
-{\r
-       if(nSync==0) return;\r
-       if(isInPopup()) return;\r
-       if(isOutMostTopic())\r
-               sync();\r
-}\r
-\r
-function isOutMostTopic()\r
-{\r
-       if(gnOutmostTopic==-1)\r
-       {\r
-               var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null);\r
-               if(SendMessage(oMessage))\r
-                       gnOutmostTopic=0;\r
-               else\r
-                       gnOutmostTopic=1;\r
-       }\r
-       return (gnOutmostTopic==1);\r
-}\r
-\r
-function sync()\r
-{\r
-       if(gaPaths.length>0)\r
-       {\r
-               var oParam=createSyncInfo();\r
-               var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);\r
-               SendMessage(oMessage);\r
-       }\r
-}\r
-\r
-\r
-function avenueInfo(sName,sPrev,sNext)\r
-{\r
-       this.sName=sName;\r
-       this.sPrev=sPrev;\r
-       this.sNext=sNext;\r
-}\r
-\r
-function getCurrentAvenue()\r
-{\r
-       var oParam=new Object();\r
-       oParam.sAvenue=null;\r
-       var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam);\r
-       SendMessage(oMessage);\r
-       return oParam.sAvenue;\r
-}\r
-\r
-function unRegisterListener()\r
-{\r
-       sendInvalidSyncInfo();\r
-       enableWebSearch(false);\r
-       if(whtopic_foldUnload)\r
-               whtopic_foldUnload();\r
-}\r
-\r
-function onSendMessage(oMsg)\r
-{\r
-       var nMsgId=oMsg.nMessageId;\r
-       if(nMsgId==WH_MSG_GETAVIAVENUES)\r
-       {\r
-               oMsg.oParam.aAvenues=gaAvenues;\r
-               return false;\r
-       }\r
-       else if(nMsgId==WH_MSG_GETTOCPATHS)\r
-       {\r
-               if(isOutMostTopic())\r
-               {\r
-                       oMsg.oParam.oTocInfo=createSyncInfo();\r
-                       return false;           \r
-               }\r
-               else\r
-                       return true;\r
-       }\r
-       else if(nMsgId==WH_MSG_NEXT)\r
-       {\r
-               goAvenue(true);\r
-       }\r
-       else if(nMsgId==WH_MSG_PREV)\r
-       {\r
-               goAvenue(false);\r
-       }\r
-       else if(nMsgId==WH_MSG_WEBSEARCH)\r
-       {\r
-               websearch();\r
-       }\r
-       return true;\r
-}\r
-\r
-function goAvenue(bNext)\r
-{\r
-       var sTopic=null;\r
-       var sAvenue=getCurrentAvenue();\r
-       var nAvenue=-1;\r
-       if(sAvenue!=null&&sAvenue!="")\r
-       {\r
-               for(var i=0;i<gaAvenues.length;i++)\r
-               {\r
-                       if(gaAvenues[i].sName==sAvenue)\r
-                       {\r
-                               nAvenue=i;\r
-                               break;\r
-                       }\r
-               }\r
-               if(nAvenue!=-1)\r
-               {\r
-                       if(bNext)\r
-                               sTopic=gaAvenues[nAvenue].sNext;\r
-                       else\r
-                               sTopic=gaAvenues[nAvenue].sPrev;\r
-               }\r
-       }\r
-       else\r
-       {\r
-               for(var i=0;i<gaAvenues.length;i++)\r
-               {\r
-                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)\r
-                       {\r
-                               sTopic=gaAvenues[i].sNext;\r
-                               break;\r
-                       }\r
-                       else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)\r
-                       {\r
-                               sTopic=gaAvenues[i].sPrev;\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-       \r
-       if(sTopic!=null&&sTopic!="")\r
-       {\r
-               if(gsPPath!=null&&gsPPath!="")\r
-               {\r
-                       sFullTopicPath=_getFullPath(gsPPath,sTopic);\r
-                       document.location=sFullTopicPath;\r
-               }\r
-       }\r
-}\r
-\r
-function canGo(bNext)\r
-{\r
-       for(var i=0;i<gaAvenues.length;i++)\r
-       {\r
-               if((gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)||\r
-                       (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext))\r
-                       return true;\r
-       }\r
-       return false;\r
-}\r
-\r
-function show()\r
-{\r
-       if(gsStartPage!="")\r
-               window.location=gsStartPage+"#"+gsRelCurPagePath;\r
-}\r
-\r
-function hide()\r
-{\r
-       if(goFrame!=null)\r
-       {\r
-               goFrame.location=window.location;\r
-       }\r
-}\r
-\r
-function isTopicOnly()\r
-{\r
-       if(gnTopicOnly==-1)\r
-       {\r
-               var oParam=new Object();\r
-               oParam.oFrame=null;\r
-               var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam);\r
-               if(SendMessage(oMsg))\r
-               {\r
-                       goFrame=oParam.oFrame;\r
-                       gnTopicOnly=0;\r
-               }\r
-               else\r
-                       gnTopicOnly=1;\r
-       }\r
-       if(gnTopicOnly==1)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-function websearch()\r
-{\r
-       if(gbNav4)\r
-       {\r
-               if(document.ehelpform)\r
-                       document.ehelpform.submit();\r
-       }\r
-       else\r
-       {\r
-               if(window.ehelpform)\r
-                       window.ehelpform.submit();\r
-       }\r
-}\r
-\r
-function addSearchFormHref(sHref)\r
-{\r
-       gsSearchFormHref=sHref;\r
-       enableWebSearch(true);\r
-}\r
-\r
-function searchB(nForm)\r
-{\r
-       var sValue=eval("document.searchForm"+nForm+".searchString.value");\r
-       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function getSearchFormHTML()\r
-{\r
-       var sHTML="";\r
-       gnForm++;\r
-       var sFormName="searchForm"+gnForm;\r
-       var sButton="<form name=\""+sFormName+"\" method=\"POST\" action=\"javascript:searchB("+gnForm+")\">"\r
-       sButton+="<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";\r
-       if(""=="text")\r
-       {\r
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\"></a>";\r
-       }\r
-       else if(""=="image")\r
-       {\r
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\">"\r
-               sButton+="<img src=\"\" border=0></a>";\r
-       }\r
-       sButton+="</form>";\r
-       sHTML="<td align=\"center\">"+sButton+"</td>";\r
-       return sHTML;\r
-}\r
-\r
-function showHidePane(bShow)\r
-{\r
-       var oMsg=null;\r
-       if(bShow)\r
-               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);\r
-       else\r
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);\r
-       SendMessage(oMsg);\r
-}\r
-\r
-function isShowHideEnable()\r
-{\r
-       if(gbIE4)\r
-               return true;\r
-       else\r
-               return false;\r
-}\r
-\r
-\r
-function PickupDialog_Invoke()\r
-{\r
-       if(!gbIE4||gbMac)\r
-       {\r
-               if(typeof(_PopupMenu_Invoke)=="function")\r
-                       return _PopupMenu_Invoke(PickupDialog_Invoke.arguments);\r
-       }\r
-       else\r
-       {\r
-               if(PickupDialog_Invoke.arguments.length>2)\r
-               {\r
-                       var sPickup="whskin_pickup.htm";\r
-                       var sPickupPath=gsPPath+sPickup;\r
-                       if(gbIE4)\r
-                       {\r
-                               var sFrame=PickupDialog_Invoke.arguments[1];\r
-                               var aTopics=new Array();\r
-                               for(var i=2;i<PickupDialog_Invoke.arguments.length;i+=2)\r
-                               {\r
-                                       var j=aTopics.length;\r
-                                       aTopics[j]=new Object();\r
-                                       aTopics[j].m_sName=PickupDialog_Invoke.arguments[i];\r
-                                       aTopics[j].m_sURL=PickupDialog_Invoke.arguments[i+1];\r
-                               }\r
-\r
-                               if(aTopics.length>1)\r
-                               {\r
-                                       var nWidth=300;\r
-                                       var nHeight=180;\r
-                                       var     nScreenWidth=screen.width;\r
-                                       var     nScreenHeight=screen.height;\r
-                                       var nLeft=(nScreenWidth-nWidth)/2;\r
-                                       var nTop=(nScreenHeight-nHeight)/2;\r
-                                       if(gbIE4)\r
-                                       {\r
-                                               var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;");\r
-                                               if(vRet)\r
-                                               {\r
-                                                       var sURL=vRet.m_url;\r
-                                                       if(sFrame)\r
-                                                               window.open(sURL,sFrame);\r
-                                                       else\r
-                                                               window.open(sURL,"_self");\r
-                                               }\r
-                                       }\r
-                               }\r
-                               else if(aTopics.length==1)\r
-                               {\r
-                                       var sURL=aTopics[0].m_sURL\r
-                                       if(sFrame)\r
-                                               window.open(sURL,sFrame);\r
-                                       else\r
-                                               window.open(sURL,"_self");\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)\r
-{\r
-       RegisterListener("bsscright",WH_MSG_GETAVIAVENUES);\r
-       RegisterListener("bsscright",WH_MSG_GETTOCPATHS);\r
-       RegisterListener("bsscright",WH_MSG_NEXT);\r
-       RegisterListener("bsscright",WH_MSG_PREV);\r
-       RegisterListener("bsscright",WH_MSG_WEBSEARCH);\r
-       if(gbMac&&gbIE4)\r
-       {\r
-               if(typeof(window.onunload)!="unknown")\r
-                       if(window.onunload.toString!=unRegisterListener.toString)\r
-                               whtopic_foldUnload=window.onunload;\r
-       }\r
-       else\r
-       {\r
-               if(window.onunload)\r
-                       if(window.onunload.toString!=unRegisterListener.toString)\r
-                               whtopic_foldUnload=window.onunload;\r
-       }\r
-       window.onunload=unRegisterListener;\r
-       setButtonFont("show","","10pt","","","","");\r
-\r
-       gbWhTopic=true;\r
-}\r
-else\r
+//     WebHelp 5.10.005
+var gsPPath="";
+var gaPaths=new Array();
+var gaAvenues=new Array();
+
+var goFrame=null;
+var gsStartPage="";
+var gsRelCurPagePath="";
+var gsSearchFormHref="";
+var gnTopicOnly=-1;
+var gnOutmostTopic=-1;
+
+var BTN_TEXT=1;
+var BTN_IMG=2;
+
+var goSync=null;
+
+var goShow=null;
+var goHide=null;
+
+var goPrev=null;
+var goNext=null;
+var gnForm=0;
+var goShowNav=null;
+var goHideNav=null;
+
+var goWebSearch=null;
+
+var gsBtnStyle="";
+var gaButtons=new Array();
+var gaTypes=new Array();
+var whtopic_foldUnload=null;
+var gbWhTopic=false;
+var gbCheckSync=false;
+var gbSyncEnabled=false;
+
+function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
+{
+       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
+       gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}";
+}
+
+function writeBtnStyle()
+{
+       if(gaButtons.length>0)
+       {
+               if(gsBtnStyle.length>0)
+               {
+                       var sStyle="<style type='text/css'>";
+                       sStyle+=gsBtnStyle+"</style>";
+                       document.write(sStyle);
+               }
+       }
+}
+
+function button(sText,nWidth,nHeight)
+{
+       this.sText=sText;
+       this.nWidth=nWidth;
+       this.nHeight=nHeight;
+       
+       this.aImgs=new Array();
+       var i=0;
+       while(button.arguments.length>i+3)
+       {
+               this.aImgs[i]=button.arguments[3+i];
+               i++;
+       }
+}
+
+//project info
+function setRelStartPage(sPath)
+{
+       if(gsPPath.length==0)
+       {
+               gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath));
+               gsStartPage=_getFullPath(_getPath(document.location.href),sPath);
+               gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href);
+       }
+}
+
+function getImage(oImage,sType)
+{
+       var sImg="";
+       if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0))
+       {
+               sImg+="<img alt=\""+sType+"\" src=\""+oImage.aImgs[0]+"\"";
+               if(oImage.nWidth>0)
+                       sImg+=" width="+oImage.nWidth;
+               if(oImage.nHeight>0)
+                       sImg+=" height="+oImage.nHeight;
+               sImg+=" border=0>";
+       }
+       return sImg;
+}
+
+function addTocInfo(sTocPath)
+{
+       gaPaths[gaPaths.length]=sTocPath;
+}
+
+function addAvenueInfo(sName,sPrev,sNext)
+{
+       gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext);  
+}
+
+function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3)
+{
+       var sButton="";
+       var nBtn=gaButtons.length;
+       if(sType=="prev")
+       {
+               if(canGo(false))
+               {
+                       var sTitle="Previous Topic";
+                       goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goPrev.sText;
+                       else
+                               sButton+=getImage(goPrev,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="next")
+       {
+               if(canGo(true))
+               {
+                       var sTitle="Next Topic";
+                       goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goNext.sText;
+                       else
+                               sButton+=getImage(goNext,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="show")
+       {
+               if(isTopicOnly()&&(!gbOpera6||gbOpera7))
+               {
+                       var sTitle="Show Navigation Component";
+                       goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goShow.sText;
+                       else
+                               sButton+=getImage(goShow,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="hide")
+       {
+               if(!isTopicOnly()&&!gbOpera6)
+               {
+                       var sTitle="Hide Navigation Component";
+                       goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goHide.sText;
+                       else
+                               sButton+=getImage(goHide,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="shownav")
+       {
+               if(isShowHideEnable())
+               {
+                       var sTitle="Show Navigation Component";
+                       goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goShowNav.sText;
+                       else
+                               sButton+=getImage(goShowNav,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="hidenav")
+       {
+               if(isShowHideEnable())
+               {
+                       var sTitle="Hide Navigation Component";
+                       goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goHideNav.sText;
+                       else
+                               sButton+=getImage(goHideNav,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="synctoc")
+       {
+               if(gaPaths.length>0)
+               {
+                       var sTitle="Sync TOC";
+                       goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goSync.sText;
+                       else
+                               sButton+=getImage(goSync,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="websearch")
+       {
+               if(gsSearchFormHref.length>0)
+               {
+                       var sTitle="WebSearch";
+                       goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
+                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnwebsearch\" href=\""+gsSearchFormHref+"\">";
+                       if(nStyle==BTN_TEXT)
+                               sButton+=goWebSearch.sText;
+                       else
+                               sButton+=getImage(goWebSearch,sTitle);
+                       sButton+="</a>";
+               }
+       }
+       else if(sType=="searchform")
+       {
+               gaButtons[nBtn]="NeedSearchForm";
+               gaTypes[nBtn]=sType;
+       }
+       if(sButton.length!=0)
+       {
+               if(nStyle==BTN_TEXT)
+                       sButton+="&nbsp;";
+               gaButtons[nBtn]="<td>"+sButton+"</td>";
+               gaTypes[nBtn]=sType;
+       }
+}
+
+function isSyncEnabled()
+{
+       if(!gbCheckSync)
+       {
+               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);
+               if(SendMessage(oMsg))
+               {
+                       gbSyncEnabled=oMsg.oParam;
+               }
+               gbCheckSync=true;
+       }
+       return gbSyncEnabled;
+}
+
+function isInPopup()
+{
+       return (window.name.indexOf("BSSCPopup")!=-1);
+}
+
+function getIntopicBar(sAlign)
+{
+       var sHTML="";
+       if(gaButtons.length>0)
+       {
+               sHTML+="<div align="+sAlign+">";
+
+               sHTML+="<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";
+               for(var i=0;i<gaButtons.length;i++)
+               {
+                       if(gaTypes[i]!="synctoc"||isSyncEnabled())
+                       {
+                               if(gaButtons[i]=="NeedSearchForm")
+                                       sHTML+=getSearchFormHTML();
+                               else
+                                       sHTML+=gaButtons[i];
+                       }
+               }
+               sHTML+="</tr></table>";
+
+               sHTML+="</div>";
+       }
+       return sHTML;
+}
+
+
+function writeIntopicBar(nAligns)
+{
+       if(isInPopup()) return;
+       if(gaButtons.length>0)
+       {
+               var sHTML="";
+               if(nAligns!=0)
+               {
+                       sHTML+="<table width=100%><tr>"
+                       if(nAligns&1)
+                               sHTML+="<td width=33%>"+getIntopicBar("left")+"</td>";
+                       if(nAligns&2)
+                               sHTML+="<td width=34%>"+getIntopicBar("center")+"</td>";
+                       if(nAligns&4)
+                               sHTML+="<td width=33%>"+getIntopicBar("right")+"</td>";
+                       sHTML+="</tr></table>";
+                       document.write(sHTML);
+               }
+       }
+}
+
+function sendAveInfoOut()
+{
+       if(!isInPopup())
+               setTimeout("sendAveInfo();",100);
+}
+
+function sendAveInfo()
+{
+       var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues);
+       SendMessage(oMsg);
+}
+
+
+function onNext()
+{
+       var oMsg=new whMessage(WH_MSG_NEXT,this,1,null);
+       SendMessage(oMsg);
+}
+
+function onPrev()
+{
+       var oMsg=new whMessage(WH_MSG_PREV,this,1,null);
+       SendMessage(oMsg);
+}
+
+function createSyncInfo()
+{
+       var oParam=new Object();
+       if(gsPPath.length==0)
+               gsPPath=_getPath(document.location.href);
+       oParam.sPPath=gsPPath;
+       oParam.sTPath=document.location.href;
+       oParam.aPaths=gaPaths;
+       return oParam;
+}
+
+function syncWithShow()
+{
+       if(isTopicOnly())
+               show();
+       else
+       {
+               sync();
+               showTocPane();
+       }
+}
+
+function showTocPane()
+{
+       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null);
+       SendMessage(oMsg);
+}
+
+function sendSyncInfo()
+{
+       if(!isInPopup())
+       {
+               var oParam=null;
+               if(gaPaths.length>0)
+               {
+                       oParam=createSyncInfo();
+               }
+               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam);
+               SendMessage(oMsg);
+       }
+}
+
+function sendInvalidSyncInfo()
+{
+       if(!isInPopup())
+       {
+               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null);
+               SendMessage(oMsg);
+       }
+}
+
+function enableWebSearch(bEnable)
+{
+       if(!isInPopup())
+       {
+               var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable);
+               SendMessage(oMsg);
+       }
+}
+
+function autoSync(nSync)
+{
+       if(nSync==0) return;
+       if(isInPopup()) return;
+       if(isOutMostTopic())
+               sync();
+}
+
+function isOutMostTopic()
+{
+       if(gnOutmostTopic==-1)
+       {
+               var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null);
+               if(SendMessage(oMessage))
+                       gnOutmostTopic=0;
+               else
+                       gnOutmostTopic=1;
+       }
+       return (gnOutmostTopic==1);
+}
+
+function sync()
+{
+       if(gaPaths.length>0)
+       {
+               var oParam=createSyncInfo();
+               var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);
+               SendMessage(oMessage);
+       }
+}
+
+
+function avenueInfo(sName,sPrev,sNext)
+{
+       this.sName=sName;
+       this.sPrev=sPrev;
+       this.sNext=sNext;
+}
+
+function getCurrentAvenue()
+{
+       var oParam=new Object();
+       oParam.sAvenue=null;
+       var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam);
+       SendMessage(oMessage);
+       return oParam.sAvenue;
+}
+
+function unRegisterListener()
+{
+       sendInvalidSyncInfo();
+       enableWebSearch(false);
+       if(whtopic_foldUnload)
+               whtopic_foldUnload();
+}
+
+function onSendMessage(oMsg)
+{
+       var nMsgId=oMsg.nMessageId;
+       if(nMsgId==WH_MSG_GETAVIAVENUES)
+       {
+               oMsg.oParam.aAvenues=gaAvenues;
+               return false;
+       }
+       else if(nMsgId==WH_MSG_GETTOCPATHS)
+       {
+               if(isOutMostTopic())
+               {
+                       oMsg.oParam.oTocInfo=createSyncInfo();
+                       return false;           
+               }
+               else
+                       return true;
+       }
+       else if(nMsgId==WH_MSG_NEXT)
+       {
+               goAvenue(true);
+       }
+       else if(nMsgId==WH_MSG_PREV)
+       {
+               goAvenue(false);
+       }
+       else if(nMsgId==WH_MSG_WEBSEARCH)
+       {
+               websearch();
+       }
+       return true;
+}
+
+function goAvenue(bNext)
+{
+       var sTopic=null;
+       var sAvenue=getCurrentAvenue();
+       var nAvenue=-1;
+       if(sAvenue!=null&&sAvenue!="")
+       {
+               for(var i=0;i<gaAvenues.length;i++)
+               {
+                       if(gaAvenues[i].sName==sAvenue)
+                       {
+                               nAvenue=i;
+                               break;
+                       }
+               }
+               if(nAvenue!=-1)
+               {
+                       if(bNext)
+                               sTopic=gaAvenues[nAvenue].sNext;
+                       else
+                               sTopic=gaAvenues[nAvenue].sPrev;
+               }
+       }
+       else
+       {
+               for(var i=0;i<gaAvenues.length;i++)
+               {
+                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)
+                       {
+                               sTopic=gaAvenues[i].sNext;
+                               break;
+                       }
+                       else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)
+                       {
+                               sTopic=gaAvenues[i].sPrev;
+                               break;
+                       }
+               }
+       }
+       
+       if(sTopic!=null&&sTopic!="")
+       {
+               if(gsPPath!=null&&gsPPath!="")
+               {
+                       sFullTopicPath=_getFullPath(gsPPath,sTopic);
+                       document.location=sFullTopicPath;
+               }
+       }
+}
+
+function canGo(bNext)
+{
+       for(var i=0;i<gaAvenues.length;i++)
+       {
+               if((gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)||
+                       (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext))
+                       return true;
+       }
+       return false;
+}
+
+function show()
+{
+       if(gsStartPage!="")
+               window.location=gsStartPage+"#"+gsRelCurPagePath;
+}
+
+function hide()
+{
+       if(goFrame!=null)
+       {
+               goFrame.location=window.location;
+       }
+}
+
+function isTopicOnly()
+{
+       if(gnTopicOnly==-1)
+       {
+               var oParam=new Object();
+               oParam.oFrame=null;
+               var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam);
+               if(SendMessage(oMsg))
+               {
+                       goFrame=oParam.oFrame;
+                       gnTopicOnly=0;
+               }
+               else
+                       gnTopicOnly=1;
+       }
+       if(gnTopicOnly==1)
+               return true;
+       else
+               return false;
+}
+
+function websearch()
+{
+       if(gbNav4)
+       {
+               if(document.ehelpform)
+                       document.ehelpform.submit();
+       }
+       else
+       {
+               if(window.ehelpform)
+                       window.ehelpform.submit();
+       }
+}
+
+function addSearchFormHref(sHref)
+{
+       gsSearchFormHref=sHref;
+       enableWebSearch(true);
+}
+
+function searchB(nForm)
+{
+       var sValue=eval("document.searchForm"+nForm+".searchString.value");
+       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue);
+       SendMessage(oMsg);
+}
+
+function getSearchFormHTML()
+{
+       var sHTML="";
+       gnForm++;
+       var sFormName="searchForm"+gnForm;
+       var sButton="<form name=\""+sFormName+"\" method=\"POST\" action=\"javascript:searchB("+gnForm+")\">"
+       sButton+="<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";
+       if(""=="text")
+       {
+               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\"></a>";
+       }
+       else if(""=="image")
+       {
+               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\">"
+               sButton+="<img src=\"\" border=0></a>";
+       }
+       sButton+="</form>";
+       sHTML="<td align=\"center\">"+sButton+"</td>";
+       return sHTML;
+}
+
+function showHidePane(bShow)
+{
+       var oMsg=null;
+       if(bShow)
+               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
+       else
+               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);
+       SendMessage(oMsg);
+}
+
+function isShowHideEnable()
+{
+       if(gbIE4)
+               return true;
+       else
+               return false;
+}
+
+
+function PickupDialog_Invoke()
+{
+       if(!gbIE4||gbMac)
+       {
+               if(typeof(_PopupMenu_Invoke)=="function")
+                       return _PopupMenu_Invoke(PickupDialog_Invoke.arguments);
+       }
+       else
+       {
+               if(PickupDialog_Invoke.arguments.length>2)
+               {
+                       var sPickup="whskin_pickup.htm";
+                       var sPickupPath=gsPPath+sPickup;
+                       if(gbIE4)
+                       {
+                               var sFrame=PickupDialog_Invoke.arguments[1];
+                               var aTopics=new Array();
+                               for(var i=2;i<PickupDialog_Invoke.arguments.length;i+=2)
+                               {
+                                       var j=aTopics.length;
+                                       aTopics[j]=new Object();
+                                       aTopics[j].m_sName=PickupDialog_Invoke.arguments[i];
+                                       aTopics[j].m_sURL=PickupDialog_Invoke.arguments[i+1];
+                               }
+
+                               if(aTopics.length>1)
+                               {
+                                       var nWidth=300;
+                                       var nHeight=180;
+                                       var     nScreenWidth=screen.width;
+                                       var     nScreenHeight=screen.height;
+                                       var nLeft=(nScreenWidth-nWidth)/2;
+                                       var nTop=(nScreenHeight-nHeight)/2;
+                                       if(gbIE4)
+                                       {
+                                               var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;");
+                                               if(vRet)
+                                               {
+                                                       var sURL=vRet.m_url;
+                                                       if(sFrame)
+                                                               window.open(sURL,sFrame);
+                                                       else
+                                                               window.open(sURL,"_self");
+                                               }
+                                       }
+                               }
+                               else if(aTopics.length==1)
+                               {
+                                       var sURL=aTopics[0].m_sURL
+                                       if(sFrame)
+                                               window.open(sURL,sFrame);
+                                       else
+                                               window.open(sURL,"_self");
+                               }
+                       }
+               }
+       }
+}
+
+if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
+{
+       RegisterListener("bsscright",WH_MSG_GETAVIAVENUES);
+       RegisterListener("bsscright",WH_MSG_GETTOCPATHS);
+       RegisterListener("bsscright",WH_MSG_NEXT);
+       RegisterListener("bsscright",WH_MSG_PREV);
+       RegisterListener("bsscright",WH_MSG_WEBSEARCH);
+       if(gbMac&&gbIE4)
+       {
+               if(typeof(window.onunload)!="unknown")
+                       if(window.onunload.toString!=unRegisterListener.toString)
+                               whtopic_foldUnload=window.onunload;
+       }
+       else
+       {
+               if(window.onunload)
+                       if(window.onunload.toString!=unRegisterListener.toString)
+                               whtopic_foldUnload=window.onunload;
+       }
+       window.onunload=unRegisterListener;
+       setButtonFont("show","","","","","","");
+setButtonFont("hide","","","","","","");
+
+       gbWhTopic=true;
+}
+else
        document.location.reload();
\ No newline at end of file
index 85fae7e05b81c3ae6071ef877ba6715b66a1c82a..5026b24a3558a7ce36cb9491a5c9424acbb8778b 100755 (executable)
-//     WebHelp 5.10.004\r
-var gsFileName="";\r
-var gsDivName="";\r
-var xmlDoc=null;\r
-var sdocPath=null;\r
-var gsInsertBeforeEndHTML="";\r
-var sReplaceStringsSrc=new Array();\r
-var gsDivName="dataDiv";\r
-var gnLoadDivNum=0;\r
-sReplaceStringsSrc[0]="&amp;";\r
-sReplaceStringsSrc[1]="&gt;";\r
-sReplaceStringsSrc[2]="&lt;";\r
-sReplaceStringsSrc[3]="&quot;";\r
-sReplaceStringsSrc[4]=String.fromCharCode(8364);\r
-sReplaceStringsSrc[5]="&nbsp;";\r
-\r
-var sReplaceStringsDst=new Array();\r
-sReplaceStringsDst[0]="&";\r
-sReplaceStringsDst[1]=">";\r
-sReplaceStringsDst[2]="<";\r
-sReplaceStringsDst[3]="\"";\r
-sReplaceStringsDst[4]=String.fromCharCode(128);\r
-sReplaceStringsDst[5]=" ";\r
-var goHighLighted=null;\r
-\r
-function _getRelativePath(strParentPath,strCurrentPath)\r
-{\r
-       if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);\r
-       strParentPath=_replaceSlash(strParentPath);\r
-       strParentPath=_getPath(strParentPath);\r
-       strCurrentPath=_replaceSlash(strCurrentPath);\r
-       strCurrentPath=_getPath(strCurrentPath);\r
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)\r
-       {\r
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))\r
-                       break;\r
-       }\r
-       \r
-       strParentPath=strParentPath.substring(i);\r
-       strCurrentPath=strCurrentPath.substring(i);     \r
-       \r
-       var nPathPos=0;\r
-       while(nPathPos!=-1)\r
-       {\r
-               nPathPos=strParentPath.indexOf("/");\r
-               if(nPathPos!=-1)\r
-               {\r
-                       strParentPath=strParentPath.substring(nPathPos+1);\r
-                       strCurrentPath="../"+strCurrentPath;\r
-               }\r
-       }\r
-       return strCurrentPath;\r
-}\r
-\r
-function _getRelativeFileName(strParentPath,strCurrentPath)\r
-{\r
-       strParentPath=_replaceSlash(strParentPath);\r
-       strParentPath=_getPath(strParentPath);\r
-       strCurrentPath=_replaceSlash(strCurrentPath);\r
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)\r
-       {\r
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))\r
-                       break;\r
-       }\r
-       \r
-       strParentPath=strParentPath.substring(i);\r
-       strCurrentPath=strCurrentPath.substring(i);     \r
-       \r
-       var nPathPos=0;\r
-       while(nPathPos!=-1)\r
-       {\r
-               nPathPos=strParentPath.indexOf("/");\r
-               if(nPathPos!=-1)\r
-               {\r
-                       strParentPath=strParentPath.substring(nPathPos+1);\r
-                       strCurrentPath="../"+strCurrentPath;\r
-               }\r
-       }\r
-       return strCurrentPath;\r
-}\r
-\r
-function _isAbsPathToHost(sPath)\r
-{\r
-       return (sPath.indexOf("/")==0);\r
-}\r
-\r
-function _getHost(sPath)\r
-{\r
-       var nPos=sPath.indexOf("//");\r
-       if(nPos>0)\r
-       {\r
-               var nPosx=sPath.indexOf("/",nPos+2);\r
-               if(nPosx>0)\r
-                       return sPath.substring(0,nPosx);\r
-               else\r
-                       return sPath;\r
-       }\r
-       return sPath;\r
-}\r
-\r
-function _getFullPath(sPath,sRelPath)\r
-{\r
-       if(_isAbsPath(sRelPath))\r
-               return sRelPath;\r
-       else if(_isAbsPathToHost(sRelPath))\r
-               return _getHost(sPath)+sRelPath;\r
-       else\r
-       {\r
-               var sFullPath=sPath;\r
-               var nPathPos=0;\r
-               while(nPathPos!=-1)\r
-               {\r
-                       var nPathPos=sRelPath.indexOf("../");\r
-                       if(nPathPos!=-1)\r
-                       {\r
-                               sRelPath=sRelPath.substring(nPathPos+3);\r
-                               sFullPath=sFullPath.substring(0,sFullPath.length-1);\r
-                               var nPos2=sFullPath.lastIndexOf("/");\r
-                               if(nPos2!=-1)\r
-                                       sFullPath=sFullPath.substring(0,nPos2+1);\r
-                               else\r
-                                       break;\r
-                       }\r
-               }\r
-               sFullPath+=sRelPath;\r
-               return sFullPath;\r
-       }       \r
-}\r
-\r
-function _isAbsPath(strPath)\r
-{\r
-       var strUpper=strPath.toUpperCase();\r
-       return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0);\r
-}\r
-\r
-function _replaceSlash(strURL)\r
-{      \r
-       var re=new RegExp("\\\\","g");\r
-       var strReplacedURL=strURL.replace(re,"/");\r
-       return strReplacedURL;\r
-}\r
-\r
-function _getPath(strURL)\r
-{\r
-       pathpos=strURL.lastIndexOf("/");\r
-       if(pathpos>0)\r
-               return strURL.substring(0,pathpos+1);\r
-       else\r
-               return "";\r
-}\r
-\r
-function removeItemFromArray(oArray,i)\r
-{\r
-       if(oArray.length&&i>=0&&i<oArray.length)\r
-       {\r
-               var len=oArray.length;\r
-               for(var s=i;s<len-1;s++)\r
-                       oArray[s]=oArray[s+1];\r
-               oArray.length=len-1;\r
-       }\r
-}\r
-\r
-function insertItemIntoArray(oArray,i,obj)\r
-{\r
-       if(oArray.length&&i>=0&&i<=oArray.length)\r
-       {\r
-               var len=oArray.length;\r
-               for(var s=len;s>i;s--)\r
-                       oArray[s]=oArray[s-1];\r
-               oArray[i]=obj;          \r
-       }\r
-}\r
-\r
-function loadData(sFileName)\r
-{\r
-       var i=gnLoadDivNum;\r
-       var sName=gsDivName+gnLoadDivNum++;\r
-       loadData_2(sFileName,sName);\r
-}\r
-\r
-function loadData_2(sFileName,sDivName)\r
-{\r
-       if(!getElement(sDivName))\r
-       {\r
-               if(!insertDataDiv(sDivName))\r
-               {\r
-                       gsFileName=sFileName;\r
-                       gsDivName=sDivName;\r
-                       return;\r
-               }\r
-       }\r
-       var sHTML="";\r
-       if(gbMac)\r
-               sHTML+="<iframe src=\""+sFileName+"\"></iframe>";\r
-       else\r
-               sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src=\""+sFileName+"\"></iframe>";\r
-       \r
-       var oDivCon=getElement(sDivName);\r
-       if(oDivCon)\r
-       {\r
-               if(gbNav6)\r
-               {\r
-                       if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)\r
-                       {\r
-                               oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;\r
-                       }\r
-                       else\r
-                               oDivCon.innerHTML=sHTML;\r
-               }\r
-               else\r
-                       oDivCon.innerHTML=sHTML;\r
-       }\r
-}\r
-\r
-function loadDataXML(sFileName)\r
-{\r
-       var sCurrentDocPath=_getPath(document.location.href);\r
-       sdocPath=_getFullPath(sCurrentDocPath,sFileName);\r
-       if(gbIE5)\r
-       {\r
-               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");\r
-               xmlDoc.async=true;\r
-               xmlDoc.onreadystatechange=checkState;\r
-               if(document.body!=null)\r
-                       xmlDoc.load(sdocPath);\r
-       }\r
-       else if(gbNav6)\r
-       {\r
-               xmlDoc=document.implementation.createDocument("","",null);\r
-               xmlDoc.addEventListener("load",initializeData,false);\r
-               xmlDoc.load(sdocPath,"text/xml");\r
-       }\r
-}\r
-\r
-function initializeData()\r
-{\r
-       if(xmlDoc!=null)\r
-               putDataXML(xmlDoc,sdocPath);\r
-}\r
-\r
-function checkState()\r
-{\r
-       if(xmlDoc!=null)\r
-       {\r
-               var state=xmlDoc.readyState;\r
-               if(state==4)\r
-               {\r
-                       var err=xmlDoc.parseError;\r
-                       if(err.errorCode==0)\r
-                               putDataXML(xmlDoc,sdocPath);\r
-                       else\r
-                               onLoadXMLError();\r
-               }\r
-       }\r
-}\r
-\r
-function insertDataDiv(sName)\r
-{\r
-       var sHTML="";\r
-       if(gbMac)\r
-               sHTML+="<div id="+sName+" style=\"display:none;\"></div>";\r
-       else\r
-               sHTML+="<div id="+sName+" style=\"visibility:hidden\"></div>";\r
-       if((gbIE5||gbNav6)&&document.body)\r
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);\r
-       else\r
-       {\r
-               gsInsertBeforeEndHTML=sHTML;\r
-               setTimeout("insertWhenBodyReady();",100);\r
-               return false;\r
-       }\r
-       return true;\r
-}\r
-\r
-function insertWhenBodyReady()\r
-{\r
-       if(gsInsertBeforeEndHTML=="") return;\r
-       if(document.body)\r
-       {\r
-               document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);\r
-               gsInsertBeforeEndHTML="";\r
-               loadData_2(gsFileName,gsDivName);\r
-       }\r
-       else\r
-       {\r
-               setTimeout("insertWhenBodyReady();",100);\r
-       }\r
-}\r
-\r
-function window_BUnload()\r
-{\r
-       for(var i=0;i<gnLoadDivNum;i++)\r
-       {\r
-               var oDivCon=getElement(gsDivName+i);\r
-               if(oDivCon)\r
-                       oDivCon.innerHTML="";\r
-       }\r
-}\r
-\r
-function removeThis(obj)\r
-{\r
-       if(obj.parentNode)\r
-               obj.parentNode.removeChild(obj);\r
-       else\r
-               obj.outerHTML="";\r
-}\r
-\r
-function getParentNode(obj)\r
-{\r
-       if(obj.parentNode)\r
-               return obj.parentNode;\r
-       else if(obj.parentElement)\r
-               return obj.parentElement;\r
-       return null;\r
-}\r
-\r
-function getElement(sID)\r
-{\r
-       if(document.getElementById)\r
-               return document.getElementById(sID);\r
-       else if(document.all)\r
-               return document.all(sID);\r
-       return null;\r
-}\r
-\r
-function getChildrenByTag(obj,sTagName)\r
-{\r
-       if(obj.getElementsByTagName)\r
-       {\r
-               var aChildren=new Array();\r
-               var aElements=getElementsByTag(obj,sTagName);\r
-               if(aElements!=null)\r
-               {\r
-                       for(var i=0;i<aElements.length;i++)\r
-                       {\r
-                               if(aElements[i].parentNode==obj)\r
-                                       aChildren[aChildren.length]=aElements[i];\r
-                       }\r
-                       return aChildren;\r
-               }\r
-               else\r
-                       return new Array();\r
-       }\r
-       else if(obj.children)\r
-               return obj.children.tags(sTagName);\r
-}\r
-\r
-function getElementsByTag(obj,sTagName)\r
-{\r
-       if(obj.getElementsByTagName)\r
-               return obj.getElementsByTagName(sTagName);\r
-       else if(obj.all)\r
-               return obj.all.tags(sTagName);\r
-       return null;\r
-}\r
-\r
-function _htmlToText(sHTML)\r
-{\r
-       if(sHTML==null) return null;\r
-       var sText=sHTML;\r
-       for(var i=0;i<sReplaceStringsSrc.length;i++)\r
-       {\r
-               var re=new RegExp(sReplaceStringsSrc[i],"g");\r
-               sText=sText.replace(re,sReplaceStringsDst[i]);\r
-       }       \r
-       return sText;\r
-}\r
-\r
-function _textToHtml_nonbsp(sText)\r
-{\r
-       if(sText==null) return null;\r
-       var sHTML=sText;\r
-       for(var i=0;i<sReplaceStringsSrc.length-1;i++)\r
-       {\r
-               var re=new RegExp(sReplaceStringsDst[i],"g");\r
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);\r
-       }       \r
-       return sHTML;\r
-}\r
-\r
-function _textToHtml(sText)\r
-{\r
-       if(sText==null) return null;\r
-       var sHTML=sText;\r
-       for(var i=0;i<sReplaceStringsSrc.length;i++)\r
-       {\r
-               var re=new RegExp(sReplaceStringsDst[i],"g");\r
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);\r
-       }       \r
-       return sHTML;\r
-}\r
-\r
-\r
-function getInnerText(obj)\r
-{\r
-       var renbsp2sp=new RegExp("\xa0","g");\r
-       if(obj.innerText)\r
-       {\r
-               var sText=obj.innerText;\r
-               sText=sText.replace(renbsp2sp," ");\r
-               return sText;\r
-       }\r
-       else\r
-       {\r
-               if(obj.nodeValue)\r
-               {\r
-                       var sValue=obj.nodeValue;\r
-                       sValue=sValue.replace(renbsp2sp," ");\r
-                       return sValue;\r
-               }\r
-               else\r
-               {\r
-                       var sText="";\r
-                       var oChild=obj.firstChild;\r
-                       while(oChild!=null)\r
-                       {\r
-                               sText+=getInnerText(oChild);\r
-                               oChild=oChild.nextSibling;\r
-                       }\r
-                       return sText;\r
-               }\r
-       }\r
-               \r
-}\r
-\r
-function HighLightElement(obj,sHighLightColor,sNormalColor)\r
-{\r
-       if(obj!=null)\r
-       {\r
-               resetHighLight(sNormalColor);\r
-               if (obj.style)\r
-                       obj.style.backgroundColor=sHighLightColor;\r
-               goHighLighted=obj;\r
-       }\r
-}\r
-\r
-function resetHighLight(sNormalColor)\r
-{\r
-       if(goHighLighted!=null)\r
-       {\r
-               if (goHighLighted.style)\r
-                       goHighLighted.style.backgroundColor=sNormalColor;\r
-               goHighLighted=null;\r
-       }\r
-}\r
-\r
-function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)\r
-{\r
-       this.sName=sName;\r
-       this.sSize=sSize;\r
-       this.sColor=sColor;\r
-       this.sStyle=sStyle;\r
-       this.sWeight=sWeight;\r
-       this.sDecoration=sDecoration;\r
-}\r
-\r
-function getFontStyle(oFont)\r
-{\r
-       var sStyle="";\r
-       if(oFont)\r
-       {\r
-               sStyle+="font-family:"+oFont.sName+";";\r
-               if(gbMac)\r
-               {\r
-                       var nSize=parseInt(oFont.sSize);\r
-                       if(gbIE5)\r
-                               nSize+=2;\r
-                       else\r
-                               nSize+=4;\r
-                       sStyle+="font-size:"+nSize+"pt;";\r
-               }\r
-               else\r
-                       sStyle+="font-size:"+oFont.sSize+";";\r
-                       \r
-               sStyle+="font-style:"+oFont.sStyle+";";\r
-               sStyle+="font-weight:"+oFont.sWeight+";";\r
-               sStyle+="text-decoration:"+oFont.sDecoration+";";\r
-               sStyle+="color:"+oFont.sColor+";";\r
-       }\r
-       return sStyle;\r
-}\r
-\r
-function _browserStringToText(sBStr)\r
-{\r
-       var sText="";\r
-       // change %xxx back to the real char.\r
-       var nPos=sBStr.indexOf('%');\r
-       while(nPos!=-1)\r
-       {\r
-               sText+=sBStr.substring(0,nPos);\r
-               sBStr=sBStr.substring(nPos+1);\r
-               var sNum="";\r
-               var i=0;\r
-               while(sBStr.charAt(i)>='0'&&sBStr.charAt(i)<='9')\r
-               {\r
-                       sNum+=sBStr.charAt(i++);        \r
-               }\r
-               if(sNum!=""){\r
-                       var nNum=parseInt(sNum,16);\r
-                       sText+=String.fromCharCode(nNum);\r
-                       sBStr=sBStr.substring(i);\r
-               }\r
-               nPos=sBStr.indexOf('%');\r
-       }\r
-       sText+=sBStr;\r
-       return sText;\r
-}\r
-\r
-function excapeSingleQuotandSlash(str)\r
-{\r
-       if(str==null) return null;\r
-       var nPos=0;\r
-       var sRes="";\r
-       var nPosNew=str.indexOf("\\",nPos);\r
-       while(nPosNew!=-1){\r
-               sRes+=str.substring(nPos,nPosNew+1)+"\\";\r
-               nPos=nPosNew+1;\r
-               nPosNew=str.indexOf("\\",nPos);\r
-       }\r
-       if(nPos<str.length)\r
-               sRes+=str.substring(nPos);\r
-       var re=new RegExp("'","g");\r
-       sRes=sRes.replace(re,"\\'");\r
-       return sRes;\r
-}\r
-\r
+//     WebHelp 5.10.004
+var gsFileName="";
+var gsDivName="";
+var xmlDoc=null;
+var sdocPath=null;
+var gsInsertBeforeEndHTML="";
+var sReplaceStringsSrc=new Array();
+var gsDivName="dataDiv";
+var gnLoadDivNum=0;
+sReplaceStringsSrc[0]="&amp;";
+sReplaceStringsSrc[1]="&gt;";
+sReplaceStringsSrc[2]="&lt;";
+sReplaceStringsSrc[3]="&quot;";
+sReplaceStringsSrc[4]=String.fromCharCode(8364);
+sReplaceStringsSrc[5]="&nbsp;";
+
+var sReplaceStringsDst=new Array();
+sReplaceStringsDst[0]="&";
+sReplaceStringsDst[1]=">";
+sReplaceStringsDst[2]="<";
+sReplaceStringsDst[3]="\"";
+sReplaceStringsDst[4]=String.fromCharCode(128);
+sReplaceStringsDst[5]=" ";
+var goHighLighted=null;
+
+function _getRelativePath(strParentPath,strCurrentPath)
+{
+       if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);
+       strParentPath=_replaceSlash(strParentPath);
+       strParentPath=_getPath(strParentPath);
+       strCurrentPath=_replaceSlash(strCurrentPath);
+       strCurrentPath=_getPath(strCurrentPath);
+       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
+       {
+               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
+                       break;
+       }
+       
+       strParentPath=strParentPath.substring(i);
+       strCurrentPath=strCurrentPath.substring(i);     
+       
+       var nPathPos=0;
+       while(nPathPos!=-1)
+       {
+               nPathPos=strParentPath.indexOf("/");
+               if(nPathPos!=-1)
+               {
+                       strParentPath=strParentPath.substring(nPathPos+1);
+                       strCurrentPath="../"+strCurrentPath;
+               }
+       }
+       return strCurrentPath;
+}
+
+function _getRelativeFileName(strParentPath,strCurrentPath)
+{
+       strParentPath=_replaceSlash(strParentPath);
+       strParentPath=_getPath(strParentPath);
+       strCurrentPath=_replaceSlash(strCurrentPath);
+       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
+       {
+               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
+                       break;
+       }
+       
+       strParentPath=strParentPath.substring(i);
+       strCurrentPath=strCurrentPath.substring(i);     
+       
+       var nPathPos=0;
+       while(nPathPos!=-1)
+       {
+               nPathPos=strParentPath.indexOf("/");
+               if(nPathPos!=-1)
+               {
+                       strParentPath=strParentPath.substring(nPathPos+1);
+                       strCurrentPath="../"+strCurrentPath;
+               }
+       }
+       return strCurrentPath;
+}
+
+function _isAbsPathToHost(sPath)
+{
+       return (sPath.indexOf("/")==0);
+}
+
+function _getHost(sPath)
+{
+       var nPos=sPath.indexOf("//");
+       if(nPos>0)
+       {
+               var nPosx=sPath.indexOf("/",nPos+2);
+               if(nPosx>0)
+                       return sPath.substring(0,nPosx);
+               else
+                       return sPath;
+       }
+       return sPath;
+}
+
+function _getFullPath(sPath,sRelPath)
+{
+       if(_isAbsPath(sRelPath))
+               return sRelPath;
+       else if(_isAbsPathToHost(sRelPath))
+               return _getHost(sPath)+sRelPath;
+       else
+       {
+               var sFullPath=sPath;
+               var nPathPos=0;
+               while(nPathPos!=-1)
+               {
+                       var nPathPos=sRelPath.indexOf("../");
+                       if(nPathPos!=-1)
+                       {
+                               sRelPath=sRelPath.substring(nPathPos+3);
+                               sFullPath=sFullPath.substring(0,sFullPath.length-1);
+                               var nPos2=sFullPath.lastIndexOf("/");
+                               if(nPos2!=-1)
+                                       sFullPath=sFullPath.substring(0,nPos2+1);
+                               else
+                                       break;
+                       }
+               }
+               sFullPath+=sRelPath;
+               return sFullPath;
+       }       
+}
+
+function _isAbsPath(strPath)
+{
+       var strUpper=strPath.toUpperCase();
+       return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0);
+}
+
+function _replaceSlash(strURL)
+{      
+       var re=new RegExp("\\\\","g");
+       var strReplacedURL=strURL.replace(re,"/");
+       return strReplacedURL;
+}
+
+function _getPath(strURL)
+{
+       pathpos=strURL.lastIndexOf("/");
+       if(pathpos>0)
+               return strURL.substring(0,pathpos+1);
+       else
+               return "";
+}
+
+function removeItemFromArray(oArray,i)
+{
+       if(oArray.length&&i>=0&&i<oArray.length)
+       {
+               var len=oArray.length;
+               for(var s=i;s<len-1;s++)
+                       oArray[s]=oArray[s+1];
+               oArray.length=len-1;
+       }
+}
+
+function insertItemIntoArray(oArray,i,obj)
+{
+       if(oArray.length&&i>=0&&i<=oArray.length)
+       {
+               var len=oArray.length;
+               for(var s=len;s>i;s--)
+                       oArray[s]=oArray[s-1];
+               oArray[i]=obj;          
+       }
+}
+
+function loadData(sFileName)
+{
+       var i=gnLoadDivNum;
+       var sName=gsDivName+gnLoadDivNum++;
+       loadData_2(sFileName,sName);
+}
+
+function loadData_2(sFileName,sDivName)
+{
+       if(!getElement(sDivName))
+       {
+               if(!insertDataDiv(sDivName))
+               {
+                       gsFileName=sFileName;
+                       gsDivName=sDivName;
+                       return;
+               }
+       }
+       var sHTML="";
+       if(gbMac)
+               sHTML+="<iframe src=\""+sFileName+"\"></iframe>";
+       else
+               sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src=\""+sFileName+"\"></iframe>";
+       
+       var oDivCon=getElement(sDivName);
+       if(oDivCon)
+       {
+               if(gbNav6)
+               {
+                       if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)
+                       {
+                               oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;
+                       }
+                       else
+                               oDivCon.innerHTML=sHTML;
+               }
+               else
+                       oDivCon.innerHTML=sHTML;
+       }
+}
+
+function loadDataXML(sFileName)
+{
+       var sCurrentDocPath=_getPath(document.location.href);
+       sdocPath=_getFullPath(sCurrentDocPath,sFileName);
+       if(gbIE5)
+       {
+               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
+               xmlDoc.async=true;
+               xmlDoc.onreadystatechange=checkState;
+               if(document.body!=null)
+                       xmlDoc.load(sdocPath);
+       }
+       else if(gbNav6)
+       {
+               xmlDoc=document.implementation.createDocument("","",null);
+               xmlDoc.addEventListener("load",initializeData,false);
+               xmlDoc.load(sdocPath,"text/xml");
+       }
+}
+
+function initializeData()
+{
+       if(xmlDoc!=null)
+               putDataXML(xmlDoc,sdocPath);
+}
+
+function checkState()
+{
+       if(xmlDoc!=null)
+       {
+               var state=xmlDoc.readyState;
+               if(state==4)
+               {
+                       var err=xmlDoc.parseError;
+                       if(err.errorCode==0)
+                               putDataXML(xmlDoc,sdocPath);
+                       else
+                               onLoadXMLError();
+               }
+       }
+}
+
+function insertDataDiv(sName)
+{
+       var sHTML="";
+       if(gbMac)
+               sHTML+="<div id="+sName+" style=\"display:none;\"></div>";
+       else
+               sHTML+="<div id="+sName+" style=\"visibility:hidden\"></div>";
+       if((gbIE5||gbNav6)&&document.body)
+               document.body.insertAdjacentHTML("beforeEnd",sHTML);
+       else
+       {
+               gsInsertBeforeEndHTML=sHTML;
+               setTimeout("insertWhenBodyReady();",100);
+               return false;
+       }
+       return true;
+}
+
+function insertWhenBodyReady()
+{
+       if(gsInsertBeforeEndHTML=="") return;
+       if(document.body)
+       {
+               document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);
+               gsInsertBeforeEndHTML="";
+               loadData_2(gsFileName,gsDivName);
+       }
+       else
+       {
+               setTimeout("insertWhenBodyReady();",100);
+       }
+}
+
+function window_BUnload()
+{
+       for(var i=0;i<gnLoadDivNum;i++)
+       {
+               var oDivCon=getElement(gsDivName+i);
+               if(oDivCon)
+                       oDivCon.innerHTML="";
+       }
+}
+
+function removeThis(obj)
+{
+       if(obj.parentNode)
+               obj.parentNode.removeChild(obj);
+       else
+               obj.outerHTML="";
+}
+
+function getParentNode(obj)
+{
+       if(obj.parentNode)
+               return obj.parentNode;
+       else if(obj.parentElement)
+               return obj.parentElement;
+       return null;
+}
+
+function getElement(sID)
+{
+       if(document.getElementById)
+               return document.getElementById(sID);
+       else if(document.all)
+               return document.all(sID);
+       return null;
+}
+
+function getChildrenByTag(obj,sTagName)
+{
+       if(obj.getElementsByTagName)
+       {
+               var aChildren=new Array();
+               var aElements=getElementsByTag(obj,sTagName);
+               if(aElements!=null)
+               {
+                       for(var i=0;i<aElements.length;i++)
+                       {
+                               if(aElements[i].parentNode==obj)
+                                       aChildren[aChildren.length]=aElements[i];
+                       }
+                       return aChildren;
+               }
+               else
+                       return new Array();
+       }
+       else if(obj.children)
+               return obj.children.tags(sTagName);
+}
+
+function getElementsByTag(obj,sTagName)
+{
+       if(obj.getElementsByTagName)
+               return obj.getElementsByTagName(sTagName);
+       else if(obj.all)
+               return obj.all.tags(sTagName);
+       return null;
+}
+
+function _htmlToText(sHTML)
+{
+       if(sHTML==null) return null;
+       var sText=sHTML;
+       for(var i=0;i<sReplaceStringsSrc.length;i++)
+       {
+               var re=new RegExp(sReplaceStringsSrc[i],"g");
+               sText=sText.replace(re,sReplaceStringsDst[i]);
+       }       
+       return sText;
+}
+
+function _textToHtml_nonbsp(sText)
+{
+       if(sText==null) return null;
+       var sHTML=sText;
+       for(var i=0;i<sReplaceStringsSrc.length-1;i++)
+       {
+               var re=new RegExp(sReplaceStringsDst[i],"g");
+               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
+       }       
+       return sHTML;
+}
+
+function _textToHtml(sText)
+{
+       if(sText==null) return null;
+       var sHTML=sText;
+       for(var i=0;i<sReplaceStringsSrc.length;i++)
+       {
+               var re=new RegExp(sReplaceStringsDst[i],"g");
+               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
+       }       
+       return sHTML;
+}
+
+
+function getInnerText(obj)
+{
+       var renbsp2sp=new RegExp("\xa0","g");
+       if(obj.innerText)
+       {
+               var sText=obj.innerText;
+               sText=sText.replace(renbsp2sp," ");
+               return sText;
+       }
+       else
+       {
+               if(obj.nodeValue)
+               {
+                       var sValue=obj.nodeValue;
+                       sValue=sValue.replace(renbsp2sp," ");
+                       return sValue;
+               }
+               else
+               {
+                       var sText="";
+                       var oChild=obj.firstChild;
+                       while(oChild!=null)
+                       {
+                               sText+=getInnerText(oChild);
+                               oChild=oChild.nextSibling;
+                       }
+                       return sText;
+               }
+       }
+               
+}
+
+function HighLightElement(obj,sHighLightColor,sNormalColor)
+{
+       if(obj!=null)
+       {
+               resetHighLight(sNormalColor);
+               if (obj.style)
+                       obj.style.backgroundColor=sHighLightColor;
+               goHighLighted=obj;
+       }
+}
+
+function resetHighLight(sNormalColor)
+{
+       if(goHighLighted!=null)
+       {
+               if (goHighLighted.style)
+                       goHighLighted.style.backgroundColor=sNormalColor;
+               goHighLighted=null;
+       }
+}
+
+function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)
+{
+       this.sName=sName;
+       this.sSize=sSize;
+       this.sColor=sColor;
+       this.sStyle=sStyle;
+       this.sWeight=sWeight;
+       this.sDecoration=sDecoration;
+}
+
+function getFontStyle(oFont)
+{
+       var sStyle="";
+       if(oFont)
+       {
+               sStyle+="font-family:"+oFont.sName+";";
+               if(gbMac)
+               {
+                       var nSize=parseInt(oFont.sSize);
+                       if(gbIE5)
+                               nSize+=2;
+                       else
+                               nSize+=4;
+                       sStyle+="font-size:"+nSize+"pt;";
+               }
+               else
+                       sStyle+="font-size:"+oFont.sSize+";";
+                       
+               sStyle+="font-style:"+oFont.sStyle+";";
+               sStyle+="font-weight:"+oFont.sWeight+";";
+               sStyle+="text-decoration:"+oFont.sDecoration+";";
+               sStyle+="color:"+oFont.sColor+";";
+       }
+       return sStyle;
+}
+
+function _browserStringToText(sBStr)
+{
+       var sText="";
+       // change %xxx back to the real char.
+       var nPos=sBStr.indexOf('%');
+       while(nPos!=-1)
+       {
+               sText+=sBStr.substring(0,nPos);
+               sBStr=sBStr.substring(nPos+1);
+               var sNum="";
+               var i=0;
+               while(sBStr.charAt(i)>='0'&&sBStr.charAt(i)<='9')
+               {
+                       sNum+=sBStr.charAt(i++);        
+               }
+               if(sNum!=""){
+                       var nNum=parseInt(sNum,16);
+                       sText+=String.fromCharCode(nNum);
+                       sBStr=sBStr.substring(i);
+               }
+               nPos=sBStr.indexOf('%');
+       }
+       sText+=sBStr;
+       return sText;
+}
+
+function excapeSingleQuotandSlash(str)
+{
+       if(str==null) return null;
+       var nPos=0;
+       var sRes="";
+       var nPosNew=str.indexOf("\\",nPos);
+       while(nPosNew!=-1){
+               sRes+=str.substring(nPos,nPosNew+1)+"\\";
+               nPos=nPosNew+1;
+               nPosNew=str.indexOf("\\",nPos);
+       }
+       if(nPos<str.length)
+               sRes+=str.substring(nPos);
+       var re=new RegExp("'","g");
+       sRes=sRes.replace(re,"\\'");
+       return sRes;
+}
+
 var gbWhUtil=true;
\ No newline at end of file
index ff597631d2f9012fd7ccbe355118ba1bd39f6644..cd61895dcda3eeddc5bc294a2d4b3d3abbf36288 100755 (executable)
-//     WebHelp 5.10.006\r
-var gbNav=false;\r
-var gbNav6=false;\r
-var gbNav61=false;\r
-var gbNav7=false;\r
-var gbNav4=false;\r
-var gbIE4=false;\r
-var gbIE=false;\r
-var gbIE5=false;\r
-var gbIE55=false;\r
-var gbOpera6=false;\r
-var gbOpera7=false;\r
-var gbKonqueror3=false;\r
-\r
-var gAgent=navigator.userAgent.toLowerCase();\r
-var gbMac=(gAgent.indexOf("mac")!=-1);\r
-var gbSunOS=(gAgent.indexOf("sunos")!=-1);\r
-var gbOpera=(gAgent.indexOf("opera")!=-1);\r
-var gbKonqueror=(gAgent.indexOf("konqueror")!= -1);\r
-var gbSafari=(gAgent.indexOf("safari")!= -1);\r
-var gbWindows=((gAgent.indexOf('win')!= -1)||(gAgent.indexOf('16bit')!= -1));\r
-var gbMozilla=((gAgent.indexOf('gecko')!=-1) && (gAgent.indexOf('netscape')==-1));\r
-\r
-\r
-var gVersion=navigator.appVersion.toLowerCase();\r
-\r
-var gnVerMajor=parseInt(gVersion);\r
-var gnVerMinor=parseFloat(gVersion);\r
-\r
-if(!gbOpera&&!gbKonqueror&&!gbSafari) // opera can mimic IE or Netscape by settings.\r
-{\r
-       gbIE=(navigator.appName.indexOf("Microsoft")!=-1);\r
-       gbNav=(gAgent.indexOf('mozilla')!=-1) && ((gAgent.indexOf('spoofer')==-1) && (gAgent.indexOf('compatible')==-1));\r
-       if(gnVerMajor>=4)\r
-       {\r
-               if(navigator.appName=="Netscape")\r
-               {\r
-                       gbNav4=true;\r
-                       if(gnVerMajor>=5)\r
-                               gbNav6=true;\r
-               }\r
-               gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);\r
-       }\r
-       if(gbNav6)\r
-       {\r
-               var nPos=gAgent.indexOf("gecko");\r
-               if(nPos!=-1)\r
-               {\r
-                       var nPos2=gAgent.indexOf("/", nPos);\r
-                       if(nPos2!=-1)\r
-                       {\r
-                               var nVersion=parseFloat(gAgent.substring(nPos2+1));\r
-                               if(nVersion>=20010726)\r
-                               {\r
-                                       gbNav61=true;\r
-                                       if (nVersion>=20020823)\r
-                                               gbNav7=true;\r
-                               }\r
-                       }\r
-               }\r
-       }else if(gbIE4)\r
-       {\r
-               var nPos=gAgent.indexOf("msie");\r
-               if(nPos!=-1)\r
-               {\r
-                       var nVersion=parseFloat(gAgent.substring(nPos+5));\r
-                       if(nVersion>=5)\r
-                       {\r
-                               gbIE5=true;\r
-                               if(nVersion>=5.5)\r
-                                       gbIE55=true;\r
-                       }\r
-               }\r
-       }\r
-}\r
-else if (gbOpera)\r
-{\r
-       var nPos = gAgent.indexOf("opera");\r
-       if(nPos!=-1)\r
-       {\r
-               var nVersion=parseFloat(gAgent.substring(nPos+6));\r
-               if(nVersion>=6)\r
-               {\r
-                       gbOpera6=true;\r
-                       if(nVersion>=7)\r
-                               gbOpera7=true;\r
-               }\r
-       }\r
-}\r
-else if (gbKonqueror)\r
-{\r
-       var nPos = gAgent.indexOf("konqueror");\r
-       if(nPos!=-1)\r
-       {\r
-               var nVersion = parseFloat(gAgent.substring(nPos+10));\r
-               if (nVersion >= 3)\r
-               {\r
-                       gbKonqueror3=true;\r
-               }\r
-       }\r
-}\r
-\r
+//     WebHelp 5.10.006
+var gbNav=false;
+var gbNav6=false;
+var gbNav61=false;
+var gbNav7=false;
+var gbNav4=false;
+var gbIE4=false;
+var gbIE=false;
+var gbIE5=false;
+var gbIE55=false;
+var gbOpera6=false;
+var gbOpera7=false;
+var gbKonqueror3=false;
+
+var gAgent=navigator.userAgent.toLowerCase();
+var gbMac=(gAgent.indexOf("mac")!=-1);
+var gbSunOS=(gAgent.indexOf("sunos")!=-1);
+var gbOpera=(gAgent.indexOf("opera")!=-1);
+var gbKonqueror=(gAgent.indexOf("konqueror")!= -1);
+var gbSafari=(gAgent.indexOf("safari")!= -1);
+var gbWindows=((gAgent.indexOf('win')!= -1)||(gAgent.indexOf('16bit')!= -1));
+var gbMozilla=((gAgent.indexOf('gecko')!=-1) && (gAgent.indexOf('netscape')==-1));
+
+
+var gVersion=navigator.appVersion.toLowerCase();
+
+var gnVerMajor=parseInt(gVersion);
+var gnVerMinor=parseFloat(gVersion);
+
+if(!gbOpera&&!gbKonqueror&&!gbSafari) // opera can mimic IE or Netscape by settings.
+{
+       gbIE=(navigator.appName.indexOf("Microsoft")!=-1);
+       gbNav=(gAgent.indexOf('mozilla')!=-1) && ((gAgent.indexOf('spoofer')==-1) && (gAgent.indexOf('compatible')==-1));
+       if(gnVerMajor>=4)
+       {
+               if(navigator.appName=="Netscape")
+               {
+                       gbNav4=true;
+                       if(gnVerMajor>=5)
+                               gbNav6=true;
+               }
+               gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);
+       }
+       if(gbNav6)
+       {
+               var nPos=gAgent.indexOf("gecko");
+               if(nPos!=-1)
+               {
+                       var nPos2=gAgent.indexOf("/", nPos);
+                       if(nPos2!=-1)
+                       {
+                               var nVersion=parseFloat(gAgent.substring(nPos2+1));
+                               if(nVersion>=20010726)
+                               {
+                                       gbNav61=true;
+                                       if (nVersion>=20020823)
+                                               gbNav7=true;
+                               }
+                       }
+               }
+       }else if(gbIE4)
+       {
+               var nPos=gAgent.indexOf("msie");
+               if(nPos!=-1)
+               {
+                       var nVersion=parseFloat(gAgent.substring(nPos+5));
+                       if(nVersion>=5)
+                       {
+                               gbIE5=true;
+                               if(nVersion>=5.5)
+                                       gbIE55=true;
+                       }
+               }
+       }
+}
+else if (gbOpera)
+{
+       var nPos = gAgent.indexOf("opera");
+       if(nPos!=-1)
+       {
+               var nVersion=parseFloat(gAgent.substring(nPos+6));
+               if(nVersion>=6)
+               {
+                       gbOpera6=true;
+                       if(nVersion>=7)
+                               gbOpera7=true;
+               }
+       }
+}
+else if (gbKonqueror)
+{
+       var nPos = gAgent.indexOf("konqueror");
+       if(nPos!=-1)
+       {
+               var nVersion = parseFloat(gAgent.substring(nPos+10));
+               if (nVersion >= 3)
+               {
+                       gbKonqueror3=true;
+               }
+       }
+}
+
 var gbWhVer=true;
\ No newline at end of file
index 053989ed4f9eec5e87bb31b852df68706eb702ab..3c5f6ca5db7db102c3e2febc788327e65c6ce464 100755 (executable)
@@ -1,70 +1,74 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<ftstdata>\r
-<topic name="About viewing meshes" url="about_viewing_meshes.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="Clipping" url="clipping.htm" />\r
-<topic name="Constructing Meshes" url="constructing_meshes.htm" />\r
-<topic name="Defining hypotheses TUI" url="defining_hypotheses_tui.htm" />\r
-<topic name="Deleting Groups" url="deleting_groups.htm" />\r
-<topic name="Display Entity" url="display_entity.htm" />\r
-<topic name="Extrusion" url="extrusion.htm" />\r
-<topic name="Extrusion along a path" url="extrusion_along_a_path.htm" />\r
-<topic name="About hypotheses" url="files/about_hypotheses.htm" />\r
-<topic name="About meshes" url="files/about_meshes.htm" />\r
-<topic name="About meshing algorithms" url="files/about_meshing_algorithms.htm" />\r
-<topic name="About quality controls" url="files/about_quality_controls.htm" />\r
-<topic name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
-<topic name="Area of elements" url="files/area_of_elements.htm" />\r
-<topic name="Arithmetic 1D" url="files/arithmetic_1d.htm" />\r
-<topic name="Aspect Ratio" url="files/aspect_ratio.htm" />\r
-<topic name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
-<topic name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
-<topic name="Constructing meshes" url="files/constructing_meshes.htm" />\r
-<topic name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
-<topic name="Creating groups" url="files/creating_groups.htm" />\r
-<topic name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
-<topic name="Diagonal iversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
-<topic name="Displacing nodes" url="files/displacing_nodes.htm" />\r
-<topic name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
-<topic name="Editing groups" url="files/editing_groups.htm" />\r
-<topic name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
-<topic name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
-<topic name="Length of edges" url="files/length_of_edges.htm" />\r
-<topic name="Length from edges" url="files/max._element_area_hypothesis.htm" />\r
-<topic name="Non conform mesh allowed hypothesis" url="files/max._element_volume_hypothsis.htm" />\r
-<topic name="Merging nodes" url="files/merging_nodes.htm" />\r
-<topic name="Minimum angle" url="files/minimum_angle.htm" />\r
-<topic name="Non conform mesh allowed hypothesis" url="files/non_conform_mesh_allowed_hypothesis.htm" />\r
-<topic name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
-<topic name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
-<topic name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
-<topic name="Rotation" url="files/rotation.htm" />\r
-<topic name="Running SMESH module" url="files/running_smesh_module.htm" />\r
-<topic name="Sewing meshes" url="files/sewing_meshes.htm" />\r
-<topic name="Skew" url="files/skew.htm" />\r
-<topic name="Smoothing" url="files/smoothing.htm" />\r
-<topic name="Symmetry" url="files/symmetry.htm" />\r
-<topic name="Taper" url="files/taper.htm" />\r
-<topic name="Translation" url="files/translation.htm" />\r
-<topic name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
-<topic name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
-<topic name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
-<topic name="Viewing mesh info" url="files/viewing_mesh_info.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="Modifying Meshes" url="modifying_meshes.htm" />\r
-<topic name="Pattern mapping" url="pattern_mapping.htm" />\r
-<topic name="Presentation" url="presentation.htm" />\r
-<topic name="Quality Controls" url="quality_controls.htm" />\r
-<topic name="Revolution" url="revolution.htm" />\r
-<topic name="Selection filter library" url="selection_filter_library.htm" />\r
-<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
-\r
-</ftstdata>  \r
+<?xml version='1.0' encoding='windows-1252' ?>
+<ftstdata>
+<topic name="About viewing meshes" url="about_viewing_meshes.htm" />
+<topic name="Adding Quadratic Nodes and Elements" url="adding_quadratic_nodes_and_elements.htm" />
+<topic name="Aspect ratio 3D" url="aspect_ratio_3d.htm" />
+<topic name="Borders at multi-connection" url="borders_at_multi-connection.htm" />
+<topic name="Borders at multiconnection 2D" url="borders_at_multiconnection_2d.htm" />
+<topic name="Clipping" url="clipping.htm" />
+<topic name="Constructing Meshes" url="constructing_meshes.htm" />
+<topic name="Defining hypotheses TUI" url="defining_hypotheses_tui.htm" />
+<topic name="Deleting Groups" url="deleting_groups.htm" />
+<topic name="Display Entity" url="display_entity.htm" />
+<topic name="Extrusion" url="extrusion.htm" />
+<topic name="Extrusion along a path" url="extrusion_along_a_path.htm" />
+<topic name="About hypotheses" url="files/about_hypotheses.htm" />
+<topic name="About meshes" url="files/about_meshes.htm" />
+<topic name="About meshing algorithms" url="files/about_meshing_algorithms.htm" />
+<topic name="About quality controls" url="files/about_quality_controls.htm" />
+<topic name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />
+<topic name="Area of elements" url="files/area_of_elements.htm" />
+<topic name="Arithmetic 1D" url="files/arithmetic_1d.htm" />
+<topic name="Aspect Ratio" url="files/aspect_ratio.htm" />
+<topic name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />
+<topic name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />
+<topic name="Constructing meshes" url="files/constructing_meshes.htm" />
+<topic name="Constructing submeshes" url="files/constructing_submeshes.htm" />
+<topic name="Creating groups" url="files/creating_groups.htm" />
+<topic name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />
+<topic name="Diagonal iversion of elements" url="files/diagonal_iversion_of_elements.htm" />
+<topic name="Displacing nodes" url="files/displacing_nodes.htm" />
+<topic name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />
+<topic name="Editing groups" url="files/editing_groups.htm" />
+<topic name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />
+<topic name="Length of edges" url="files/length_of_edges.htm" />
+<topic name="Length from edges" url="files/max._element_area_hypothesis.htm" />
+<topic name="Non conform mesh allowed hypothesis" url="files/max._element_volume_hypothsis.htm" />
+<topic name="Merging nodes" url="files/merging_nodes.htm" />
+<topic name="Minimum angle" url="files/minimum_angle.htm" />
+<topic name="Non conform mesh allowed hypothesis" url="files/non_conform_mesh_allowed_hypothesis.htm" />
+<topic name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />
+<topic name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />
+<topic name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />
+<topic name="Rotation" url="files/rotation.htm" />
+<topic name="Running SMESH module" url="files/running_smesh_module.htm" />
+<topic name="Sewing meshes" url="files/sewing_meshes.htm" />
+<topic name="Skew" url="files/skew.htm" />
+<topic name="Smoothing" url="files/smoothing.htm" />
+<topic name="Symmetry" url="files/symmetry.htm" />
+<topic name="Taper" url="files/taper.htm" />
+<topic name="Translation" url="files/translation.htm" />
+<topic name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />
+<topic name="Uniting two triangles" url="files/uniting_two_triangles.htm" />
+<topic name="Using operations on groups" url="files/using_operations_on_groups.htm" />
+<topic name="Viewing mesh info" url="files/viewing_mesh_info.htm" />
+<topic name="VTK 3D Viewer" url="files/vtk_3d_viewer.htm" />
+<topic name="Warp" url="files/warp.htm" />
+<topic name="Free borders" url="free_borders.htm" />
+<topic name="Free_edges" url="free_edges.htm" />
+<topic name="Grouping Elements" url="grouping_elements.htm" />
+<topic name="Length" url="length.htm" />
+<topic name="Merge Elements" url="merge_elements.htm" />
+<topic name="mesh" url="mesh.htm" />
+<topic name="Modifying Meshes" url="modifying_meshes.htm" />
+<topic name="Pattern mapping" url="pattern_mapping.htm" />
+<topic name="Presentation" url="presentation.htm" />
+<topic name="Quality Controls" url="quality_controls.htm" />
+<topic name="Revolution" url="revolution.htm" />
+<topic name="Selection filter library" url="selection_filter_library.htm" />
+<topic name="Transforming Meshes" url="transforming_meshes.htm" />
+<topic name="Transparency" url="transparency.htm" />
+<topic name="Viewing Meshes" url="viewing_meshes.htm" />
+<topic name="Volume" url="volume.htm" />
+
+</ftstdata>  
index 58b9c0e24b924f2953455a0062183d5a2b89306e..023ab7c77a53ae18093608009d556b1cfda8f33e 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
-\r
-<tchunkinfo first="0" last="65" url="whftdata0.xml" />\r
-\r
-</fts>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<fts>
+<chunkinfo url="whfwdata0.xml" first="0" last="zoom"/>
+
+<tchunkinfo first="0" last="69" url="whftdata0.xml" />
+
+</fts>
index 028a018b6782eaf3056efa782f0f364ecdc2d2d6..bf8dac36b90bf0549889cff9139c4a6f87ad7a12 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="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="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="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="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="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
-\r
-</ftswdata>  \r
+<?xml version='1.0' encoding='windows-1252' ?>
+<ftswdata>
+<key name="0"> 13,18,5,6,24,7,56,60,63,42,66,68, </key>
+<key name="001"> 66, </key>
+<key name="0d"> 13, </key>
+<key name="1"> 16,1,17,18,19,2,20,22,6,25,7,26,27,28,29,10,11,56,30,31,34,35,60,61,63,38,39,64,42,43,44,46,66,48,49,50,68,69,53, </key>
+<key name="10"> 6,7,56,60,66,68, </key>
+<key name="100"> 6,7,56,60,63,66, </key>
+<key name="109"> 66, </key>
+<key name="11"> 60, </key>
+<key name="113"> 66, </key>
+<key name="1135"> 60, </key>
+<key name="1145"> 60, </key>
+<key name="1147"> 60, </key>
+<key name="1159"> 60, </key>
+<key name="12"> 60,66, </key>
+<key name="13"> 60, </key>
+<key name="14"> 60, </key>
+<key name="15"> 60,63,66, </key>
+<key name="150"> 66, </key>
+<key name="16"> 60, </key>
+<key name="17"> 60, </key>
+<key name="18"> 60,63, </key>
+<key name="180"> 60, </key>
+<key name="19"> 60, </key>
+<key name="1d"> 12,13,14,15,18,22,7,10,11,59,36,63,64, </key>
+<key name="1e"> 60,63, </key>
+<key name="2"> 16,1,17,19,2,20,22,6,25,7,26,27,28,29,10,11,30,31,35,60,61,63,38,39,64,42,43,44,46,66,48,49,50,68,69,53, </key>
+<key name="20"> 6,7,56,60,63,66,68, </key>
+<key name="200"> 6,7,60, </key>
+<key name="21"> 60,66, </key>
+<key name="23"> 60,66, </key>
+<key name="2381"> 60, </key>
+<key name="2382"> 60, </key>
+<key name="2383"> 60, </key>
+<key name="2384"> 60, </key>
+<key name="2385"> 60, </key>
+<key name="2386"> 60, </key>
+<key name="2387"> 60, </key>
+<key name="2388"> 60, </key>
+<key name="2389"> 60, </key>
+<key name="2390"> 60, </key>
+<key name="2391"> 60, </key>
+<key name="2392"> 60, </key>
+<key name="2393"> 60, </key>
+<key name="2394"> 60, </key>
+<key name="2395"> 60, </key>
+<key name="2396"> 60, </key>
+<key name="2397"> 60, </key>
+<key name="2398"> 60, </key>
+<key name="2399"> 60, </key>
+<key name="24"> 66, </key>
+<key name="240"> 60, </key>
+<key name="2400"> 60, </key>
+<key name="2401"> 60, </key>
+<key name="2402"> 60, </key>
+<key name="2403"> 60, </key>
+<key name="2404"> 60, </key>
+<key name="2405"> 60, </key>
+<key name="2406"> 60, </key>
+<key name="2407"> 60, </key>
+<key name="2408"> 60, </key>
+<key name="2409"> 60, </key>
+<key name="2410"> 60, </key>
+<key name="2411"> 60, </key>
+<key name="2412"> 60, </key>
+<key name="2413"> 60, </key>
+<key name="2414"> 60, </key>
+<key name="2415"> 60, </key>
+<key name="2416"> 60, </key>
+<key name="2417"> 60, </key>
+<key name="2418"> 60, </key>
+<key name="2419"> 60, </key>
+<key name="2420"> 60, </key>
+<key name="2421"> 60, </key>
+<key name="2422"> 60, </key>
+<key name="245"> 60, </key>
+<key name="246"> 60, </key>
+<key name="25"> 66, </key>
+<key name="255"> 60, </key>
+<key name="2d"> 12,13,14,15,17,19,4,22,6,7,10,11,32,31,59,35,60,61,63,64,42,66,53, </key>
+<key name="3"> 13,17,19,20,22,6,25,26,27,10,11,56,30,60,61,63,38,39,64,42,43,44,66,48,49,68,53, </key>
+<key name="30"> 7,56,60,63,66, </key>
+<key name="300"> 6,7, </key>
+<key name="3128"> 60, </key>
+<key name="321"> 60, </key>
+<key name="3265"> 60, </key>
+<key name="3402"> 60, </key>
+<key name="3658"> 60, </key>
+<key name="38"> 60,66, </key>
+<key name="39"> 60, </key>
+<key name="3d"> 12,13,14,15,0,16,1,19,2,20,22,24,25,7,8,26,27,28,10,11,59,33,63,38,39,64,42,44,48,49,69,52, </key>
+<key name="3e"> 63, </key>
+<key name="3rd"> 13, </key>
+<key name="3x3"> 60, </key>
+<key name="4"> 13,17,19,22,6,25,7,27,11,30,60,61,63,42,43,46,66,53, </key>
+<key name="40"> 60, </key>
+<key name="405"> 60, </key>
+<key name="406"> 60, </key>
+<key name="45"> 60,66, </key>
+<key name="47"> 60, </key>
+<key name="492"> 60, </key>
+<key name="493"> 60, </key>
+<key name="5"> 5,60,63,66, </key>
+<key name="50"> 7,60,66, </key>
+<key name="502"> 60, </key>
+<key name="503"> 60, </key>
+<key name="58"> 66, </key>
+<key name="5th"> 13, </key>
+<key name="6"> 2,6,7,56,60,66,68, </key>
+<key name="60"> 56,60, </key>
+<key name="642"> 60, </key>
+<key name="66632"> 60, </key>
+<key name="69"> 66, </key>
+<key name="7"> 6,7,56,60,63, </key>
+<key name="70"> 7,63,66, </key>
+<key name="700"> 60, </key>
+<key name="71"> 66, </key>
+<key name="72"> 66, </key>
+<key name="73"> 60, </key>
+<key name="77"> 60, </key>
+<key name="8"> 56,60,66, </key>
+<key name="800"> 6,7, </key>
+<key name="814"> 60, </key>
+<key name="850"> 60, </key>
+<key name="859"> 60, </key>
+<key name="864"> 60, </key>
+<key name="89"> 66, </key>
+<key name="9"> 60,66, </key>
+<key name="90"> 66, </key>
+<key name="900"> 6,7, </key>
+<key name="91"> 66, </key>
+<key name="911"> 60, </key>
+<key name="92"> 66, </key>
+<key name="931"> 60, </key>
+<key name="932"> 60, </key>
+<key name="95"> 63, </key>
+<key name="950"> 60, </key>
+<key name="9999"> 24, </key>
+<key name="a_mesh"> 60, </key>
+<key name="aa"> 60, </key>
+<key name="abl"> 16,1,52, </key>
+<key name="abord"> 63, </key>
+<key name="aborder"> 63, </key>
+<key name="abov"> 11,60,44, </key>
+<key name="abox"> 63, </key>
+<key name="absent"> 50, </key>
+<key name="absolute"> 67, </key>
+<key name="abut"> 18, </key>
+<key name="acces"> 0,65,52, </key>
+<key name="accord"> 15,17,18,19,2,31,35,61,43,44,46,69,53, </key>
+<key name="account"> 12,61, </key>
+<key name="acomp"> 63,66, </key>
+<key name="acompobj"> 66, </key>
+<key name="actual"> 36, </key>
+<key name="ad"> 16,1,20,24,25,56,60,48,50, </key>
+<key name="add"> 16,1,20,22,6,24,25,7,29,11,56,60,63,65,48, </key>
+<key name="addedg"> 60, </key>
+<key name="addfac"> 60, </key>
+<key name="addhypothesi"> 6,7,56,60,63,68, </key>
+<key name="addition"> 25,59,60, </key>
+<key name="additional"> 12,13,22,7,36,61,41,65,44, </key>
+<key name="addnod"> 60, </key>
+<key name="addobject"> 56, </key>
+<key name="addpolygonalfac"> 60, </key>
+<key name="addpolyhedralvolum"> 60, </key>
+<key name="addtostudy"> 6,7,56,60,63,66,68, </key>
+<key name="addtostudyinfath"> 6,7,56,60,68, </key>
+<key name="addvolum"> 60, </key>
+<key name="adjacent"> 27,35,36,38,42,48, </key>
+<key name="adjust"> 44, </key>
+<key name="adjustabl"> 36, </key>
+<key name="advanc"> 0,51, </key>
+<key name="afilt"> 56,63, </key>
+<key name="afiltermgr"> 56,60,63, </key>
+<key name="afunctor"> 56,60,63, </key>
+<key name="ageomgroup1"> 56, </key>
+<key name="ageomgroup2"> 56, </key>
+<key name="agroup"> 56,63, </key>
+<key name="agroup1"> 56, </key>
+<key name="agroup2"> 56, </key>
+<key name="agroup3"> 56, </key>
+<key name="agroup4"> 56, </key>
+<key name="agroup5"> 56, </key>
+<key name="agroupelemid"> 56, </key>
+<key name="agroupf"> 63, </key>
+<key name="agroupmain"> 56, </key>
+<key name="agroupn"> 63, </key>
+<key name="agroupr"> 56, </key>
+<key name="agrouptool"> 56, </key>
+<key name="ai"> 18, </key>
+<key name="al"> 60, </key>
+<key name="algo"> 6,7,60,66, </key>
+<key name="algo1"> 6,63,68, </key>
+<key name="algo2"> 6,63,68, </key>
+<key name="algorithm"> 12,13,14,15,0,17,22,6,23,7,11,56,32,59,33,61,37,42,66, </key>
+<key name="allow"> 12,0,1,18,20,23,24,25,30,32,58,34,59,36,61,40,42,44,45,47,48,50,52, </key>
+<key name="along"> 10,11,60,61,44,52, </key>
+<key name="alternativ"> 22, </key>
+<key name="alternative"> 0,1, </key>
+<key name="alway"> 44, </key>
+<key name="amesheditor"> 60,66, </key>
+<key name="amount"> 3, </key>
+<key name="analytic"> 18, </key>
+<key name="aneditor"> 60,63,66, </key>
+<key name="angl"> 15,5,25,11,59,35,60,63,64,40,43,48,53, </key>
+<key name="angle180"> 66, </key>
+<key name="angle45"> 60, </key>
+<key name="angular"> 11, </key>
+<key name="angularity"> 11, </key>
+<key name="anid"> 56,63, </key>
+<key name="anodeid1"> 60, </key>
+<key name="anodeid2"> 60, </key>
+<key name="anodeid3"> 60, </key>
+<key name="anodeid4"> 60, </key>
+<key name="anoth"> 60,36, </key>
+<key name="any"> 13,1,22,24,27,11,56,61,44, </key>
+<key name="ap"> 14,16,1,17,19,2,20,5,22,24,25,7,8,26,27,29,10,11,31,58,59,35,60,61,37,38,39,64,42,43,44,45,46,48,49,50,69,53, </key>
+<key name="apparent"> 22, </key>
+<key name="appear"> 0,16,1,20,22,23,25,26,27,29,10,11,34,61,38,39,64,40,45,47,48,49,50, </key>
+<key name="append"> 60,63, </key>
+<key name="appli"> 17,18,19,2,22,23,32,31,35,33,36,37,65,43,44,46,69,53, </key>
+<key name="applicabl"> 19,65, </key>
+<key name="application"> 15,61, </key>
+<key name="apply"> 12,0,22,23,24, </key>
+<key name="applytomeshfac"> 60, </key>
+<key name="appropriat"> 22, </key>
+<key name="approximate"> 18, </key>
+<key name="apredicat"> 56,63, </key>
+<key name="arc"> 7,60,66, </key>
+<key name="arcsin"> 53, </key>
+<key name="area"> 12,15,17,7,56,32,59,33,63,44,46,52, </key>
+<key name="arithmetic"> 12,18,6,7,59,66, </key>
+<key name="arithmetic1d"> 6,7,66,68, </key>
+<key name="around"> 5,11,64, </key>
+<key name="array_of_nodes_group"> 66, </key>
+<key name="asmeshgroup1"> 56, </key>
+<key name="asmeshgroup2"> 56, </key>
+<key name="aspect"> 15,19,2,59,63,44, </key>
+<key name="assign"> 18,22,24,7,37,53, </key>
+<key name="associat"> 16,28,38, </key>
+<key name="attribut"> 24, </key>
+<key name="auto"> 5, </key>
+<key name="automatic"> 12,18,22,59,61, </key>
+<key name="automatical"> 0,18,20,22,25,27,48, </key>
+<key name="availabl"> 42,52, </key>
+<key name="averag"> 12,18,7,32,59,61,53, </key>
+<key name="ax"> 52, </key>
+<key name="axi"> 10,64,40,45,52,53, </key>
+<key name="axisstruct"> 60,66, </key>
+<key name="axisxyz"> 60,66, </key>
+<key name="background"> 0, </key>
+<key name="bar"> 15, </key>
+<key name="bas"> 12,17,7,11,59,53, </key>
+<key name="basi"> 13,22,23, </key>
+<key name="basic"> 12,0, </key>
+<key name="becom"> 61, </key>
+<key name="befor"> 65,66, </key>
+<key name="begin"> 18,42, </key>
+<key name="belong"> 3,4,24,54,55,42,50, </key>
+<key name="below"> 60, </key>
+<key name="berder"> 42, </key>
+<key name="bet"> 19, </key>
+<key name="binary"> 65, </key>
+<key name="bisect"> 53, </key>
+<key name="bisector"> 53, </key>
+<key name="bit"> 65, </key>
+<key name="black"> 0, </key>
+<key name="block"> 6,7, </key>
+<key name="blu"> 3, </key>
+<key name="bmp"> 0,52, </key>
+<key name="bog"> 18, </key>
+<key name="boolean"> 50, </key>
+<key name="bord"> 42,66, </key>
+<key name="border"> 15,3,4,54,55,59,63,42,66, </key>
+<key name="both"> 0,11,44,50, </key>
+<key name="bottom"> 60,41, </key>
+<key name="bound"> 13,61, </key>
+<key name="boundari"> 61, </key>
+<key name="boundary"> 12,24,61,42,44, </key>
+<key name="box"> 14,16,1,18,20,22,6,23,25,7,26,27,29,10,11,56,30,58,34,61,63,38,39,64,40,41,65,42,44,45,66,47,48,49,50,51,68, </key>
+<key name="box_1"> 60, </key>
+<key name="box_id"> 6,7, </key>
+<key name="box1"> 66, </key>
+<key name="box2"> 66, </key>
+<key name="broken"> 1,36, </key>
+<key name="brown"> 24, </key>
+<key name="brows"> 0,16,1,21,22,23,24,8,29,62,38,39,65,51, </key>
+<key name="build"> 7,10,32,60,36,61,64, </key>
+<key name="built"> 19,23,61,44, </key>
+<key name="button"> 16,1,17,19,2,20,5,22,23,24,25,8,26,27,29,10,11,30,31,35,61,37,38,39,64,40,65,42,43,44,45,46,47,48,49,50,51,69,52,53, </key>
+<key name="cad"> 13, </key>
+<key name="cal"> 61, </key>
+<key name="calculat"> 15,19,2,32,46, </key>
+<key name="calculation"> 12,17,31,35, </key>
+<key name="careful"> 38, </key>
+<key name="cas"> 16,22,6,7,27,60,61,66,51, </key>
+<key name="cel"> 24,38,49, </key>
+<key name="cent"> 11,44,52, </key>
+<key name="centroid"> 44, </key>
+<key name="centroidal"> 44, </key>
+<key name="centroidal_smooth"> 60, </key>
+<key name="certain"> 24,61, </key>
+<key name="chang"> 0,18,20,6,27,60,36,37,68, </key>
+<key name="characteristic"> 15, </key>
+<key name="characteriz"> 13, </key>
+<key name="check"> 24,42,52, </key>
+<key name="checkbox"> 16,65,47, </key>
+<key name="choic"> 12,22,61, </key>
+<key name="choos"> 16,1,17,19,2,20,21,24,25,8,26,27,9,28,10,11,30,31,34,35,61,38,39,64,40,41,65,42,43,45,46,47,48,49,69,53, </key>
+<key name="chosen"> 19,25,32,33,48, </key>
+<key name="circl"> 11,60,66, </key>
+<key name="circlemesh"> 60,66, </key>
+<key name="clear"> 65, </key>
+<key name="click"> 0,16,1,17,19,2,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,31,35,61,62,37,38,39,64,41,65,42,43,44,46,48,49,50,51,69,52,53, </key>
+<key name="clip"> 0,5, </key>
+<key name="clos"> 13,19,8,42, </key>
+<key name="co"> 60,42, </key>
+<key name="coars"> 18, </key>
+<key name="coincid"> 58, </key>
+<key name="coincident"> 58,34, </key>
+<key name="color"> 15,0,17,19,2,24,31,35,43,46,69,52,53, </key>
+<key name="combin"> 9,31,62,65, </key>
+<key name="common"> 26,65,49, </key>
+<key name="compar"> 18,42, </key>
+<key name="complete"> 58, </key>
+<key name="complex"> 1, </key>
+<key name="component"> 59,41, </key>
+<key name="compos"> 12,13,14,15,0,18,2,28,32,33,43, </key>
+<key name="compound"> 6,7, </key>
+<key name="comput"> 0,18,22,6,7,56,60,61,63,42,66,68, </key>
+<key name="computation"> 22,23,7,56,60, </key>
+<key name="concept"> 36, </key>
+<key name="condition"> 12,24, </key>
+<key name="confirm"> 20,25,29,38,44,48,50, </key>
+<key name="confirmation"> 24, </key>
+<key name="conform"> 12,36,42,66, </key>
+<key name="conformity"> 19, </key>
+<key name="connect"> 18,25,44, </key>
+<key name="connection"> 13,15,3,4,59,63, </key>
+<key name="connectivity"> 61, </key>
+<key name="consid"> 19,22, </key>
+<key name="consider"> 13,19,2,42, </key>
+<key name="consist"> 15,1,17,18,19,3,4,21,22,23,24,54,55,56,32,31,35,33,46, </key>
+<key name="consol"> 51, </key>
+<key name="constant"> 18, </key>
+<key name="construct"> 18,21,22,6,23,37, </key>
+<key name="construction"> 18,22,6,23, </key>
+<key name="contain"> 13,14,20,22,23,24,25,30,32,61,44,48, </key>
+<key name="content"> 8,52, </key>
+<key name="continu"> 44, </key>
+<key name="contour"> 13,42, </key>
+<key name="contrast"> 48, </key>
+<key name="control"> 15,0,17,19,2,3,4,25,54,55,57,31,59,35,63,43,46,48,69,53, </key>
+<key name="converg"> 44, </key>
+<key name="conversion"> 18, </key>
+<key name="coordinat"> 13,16,27,61,52, </key>
+<key name="copy"> 40,65,45,66,47, </key>
+<key name="corn"> 1,53, </key>
+<key name="corner"> 25,44,53, </key>
+<key name="correspond"> 13,15,30,60,61,63,65,42,47, </key>
+<key name="cosal"> 60, </key>
+<key name="could"> 13,16, </key>
+<key name="count"> 42, </key>
+<key name="counterclockwis"> 61, </key>
+<key name="cours"> 22, </key>
+<key name="creat"> 13,14,0,16,1,18,5,22,6,23,24,7,29,56,34,59,60,36,61,63,37,40,65,45,66,47,50,53, </key>
+<key name="createanddisplaygo"> 7, </key>
+<key name="createarea"> 56,63, </key>
+<key name="createaspectratio"> 63, </key>
+<key name="createaspectratio3d"> 63, </key>
+<key name="createequalto"> 56,63, </key>
+<key name="createfilt"> 56,63, </key>
+<key name="createfiltermanag"> 56,60,63, </key>
+<key name="createfreeborder"> 63, </key>
+<key name="createfreeedg"> 63, </key>
+<key name="creategroup"> 56,60,63, </key>
+<key name="creategroupfromgeom"> 56, </key>
+<key name="createhypothesi"> 6,7,56,60,63,68, </key>
+<key name="createlength"> 63, </key>
+<key name="createlength2d"> 63, </key>
+<key name="createlessthan"> 56,63, </key>
+<key name="createmesh"> 6,7,56,60,63,68, </key>
+<key name="createminimumangl"> 60,63, </key>
+<key name="createmorethan"> 56,63, </key>
+<key name="createmulticonnection"> 63, </key>
+<key name="createmulticonnection2d"> 63, </key>
+<key name="createskew"> 63, </key>
+<key name="createtap"> 63, </key>
+<key name="createvolume3d"> 63, </key>
+<key name="createwarp"> 63, </key>
+<key name="creation"> 13,36,61,37,50, </key>
+<key name="criteria"> 59,65, </key>
+<key name="criterion"> 17,19,2,24,25,56,57,31,35,63,65,43,46,48,69,53, </key>
+<key name="cros"> 0,5,53, </key>
+<key name="cubic"> 14, </key>
+<key name="current"> 20,22,25,37,65,42,48, </key>
+<key name="curv"> 13,18,11, </key>
+<key name="curvilinear"> 18,11, </key>
+<key name="cut"> 18,6,25,7,56,60,66,50, </key>
+<key name="cutgroup"> 56, </key>
+<key name="cylind"> 60, </key>
+<key name="d"> 18, </key>
+<key name="deal"> 13, </key>
+<key name="def"> 60, </key>
+<key name="default"> 0,22,11,62,65,67,52, </key>
+<key name="defin"> 13,14,1,18,19,5,22,6,23,24,7,11,60,36,61,42,66,52, </key>
+<key name="definit"> 13,15,18,20,21,24,25,59,37,38,48, </key>
+<key name="definition"> 0,18,32,33, </key>
+<key name="deflection"> 12,18,7,59, </key>
+<key name="deflection1d"> 7, </key>
+<key name="deform"> 52, </key>
+<key name="degre"> 19,5, </key>
+<key name="delet"> 8,55,60,38,65, </key>
+<key name="deletediag"> 60, </key>
+<key name="deletion"> 38,49, </key>
+<key name="density"> 18, </key>
+<key name="depend"> 12,13,22,32,33, </key>
+<key name="describ"> 13,61, </key>
+<key name="description"> 61, </key>
+<key name="desirabl"> 34, </key>
+<key name="desktop"> 41, </key>
+<key name="destin"> 13,15,59, </key>
+<key name="detail"> 12,0, </key>
+<key name="detect"> 34, </key>
+<key name="dh"> 60, </key>
+<key name="diagonal"> 25,26,60,46, </key>
+<key name="dialog"> 14,16,1,18,20,22,23,25,26,27,29,10,11,30,58,34,61,38,39,64,40,42,44,45,47,48,49,50, </key>
+<key name="diamet"> 19, </key>
+<key name="dif"> 1, </key>
+<key name="differ"> 18, </key>
+<key name="differenc"> 11,42, </key>
+<key name="different"> 12,16,24,37,65,42, </key>
+<key name="dimension"> 13,2,22,10,64,51, </key>
+<key name="direct"> 13,42,44, </key>
+<key name="direction"> 61,53, </key>
+<key name="dirstruct"> 60,66, </key>
+<key name="discretisation"> 6,7, </key>
+<key name="discretiz"> 10,64, </key>
+<key name="discretization"> 13,14, </key>
+<key name="displac"> 27, </key>
+<key name="display"> 15,0,1,17,19,2,3,20,22,23,24,25,7,27,9,28,54,31,35,62,43,44,46,48,51,69,52,53, </key>
+<key name="distanc"> 18,5,61,52,53, </key>
+<key name="distinguish"> 24, </key>
+<key name="distortion"> 44, </key>
+<key name="distribution"> 18, </key>
+<key name="divid"> 18, </key>
+<key name="do"> 16, </key>
+<key name="domain"> 61, </key>
+<key name="don"> 13,22,36,52, </key>
+<key name="doubl"> 1, </key>
+<key name="downward"> 52, </key>
+<key name="dr"> 60, </key>
+<key name="drag"> 52, </key>
+<key name="drawn"> 52, </key>
+<key name="dump"> 0,52, </key>
+<key name="dx"> 60, </key>
+<key name="dy"> 60, </key>
+<key name="e"> 19,22,23,25,61,42,48, </key>
+<key name="easi"> 21, </key>
+<key name="edg"> 12,13,14,15,0,16,1,18,19,3,4,21,22,6,24,25,7,26,27,9,11,54,55,56,57,32,31,59,60,36,61,63,65,42,44,66,48,49,68,53, </key>
+<key name="edgeslist"> 66, </key>
+<key name="edgex111"> 6,7, </key>
+<key name="edgex112"> 6,7, </key>
+<key name="edgex121"> 6,7, </key>
+<key name="edgex122"> 6,7, </key>
+<key name="edgey11"> 6,7, </key>
+<key name="edgey12"> 6,7, </key>
+<key name="edgey21"> 6,7, </key>
+<key name="edgey22"> 6,7, </key>
+<key name="edgez111"> 6,7, </key>
+<key name="edgez121"> 6,7, </key>
+<key name="edgez211"> 6,7, </key>
+<key name="edgez221"> 6,7, </key>
+<key name="edit"> 6,8,29,56,34,37, </key>
+<key name="effect"> 48, </key>
+<key name="eith"> 61,42, </key>
+<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,55,56,32,31,58,59,35,60,33,36,61,63,38,39,64,40,65,42,43,44,45,46,66,47,48,50,51,69,53, </key>
+<key name="els"> 7,56,60,61, </key>
+<key name="enabl"> 65, </key>
+<key name="encapsulat"> 23, </key>
+<key name="encounter"> 61, </key>
+<key name="end"> 12,18,7,59,36,65,42,47, </key>
+<key name="enough"> 42, </key>
+<key name="ent"> 24,26,27,30,49, </key>
+<key name="entiti"> 13,14, </key>
+<key name="entity"> 13,0,9,65, </key>
+<key name="equal"> 18,32,61,65,42,44, </key>
+<key name="equidistant"> 18, </key>
+<key name="equilateral"> 19, </key>
+<key name="eras"> 0, </key>
+<key name="etc"> 15,2,25,48, </key>
+<key name="even"> 22,32, </key>
+<key name="eventual"> 61, </key>
+<key name="every"> 53, </key>
+<key name="everyth"> 22, </key>
+<key name="exampl"> 13,2,22,24,61,50, </key>
+<key name="exce"> 18, </key>
+<key name="exceed"> 44, </key>
+<key name="except"> 42,52, </key>
+<key name="exist"> 12,20,24,25,29,61,65,48, </key>
+<key name="existenc"> 22, </key>
+<key name="exponent"> 18, </key>
+<key name="export"> 0,6,30,59,52, </key>
+<key name="exportation"> 30, </key>
+<key name="exportm"> 6, </key>
+<key name="extend"> 52,53, </key>
+<key name="extreme"> 18, </key>
+<key name="extremiti"> 5, </key>
+<key name="extrud"> 10,11,60,64, </key>
+<key name="extrusion"> 10,11,60,66, </key>
+<key name="extrusionalongpathobject"> 60,66, </key>
+<key name="extrusionsweepobject"> 60, </key>
+<key name="f"> 18,7, </key>
+<key name="fac"> 12,13,14,0,16,18,2,3,21,22,6,23,24,7,9,54,56,32,59,60,36,61,63,65,42,66,51,68,53, </key>
+<key name="face_1"> 60, </key>
+<key name="face_2"> 60, </key>
+<key name="face1"> 7,60,66, </key>
+<key name="facelist"> 63, </key>
+<key name="facesrotat"> 60, </key>
+<key name="facessmooth"> 60, </key>
+<key name="facestritoquad"> 60, </key>
+<key name="facex11"> 6,7, </key>
+<key name="facex21"> 6,7, </key>
+<key name="facey111"> 6,7, </key>
+<key name="facey121"> 6,7, </key>
+<key name="facez11"> 6,7, </key>
+<key name="facez12"> 6,7, </key>
+<key name="factor"> 18,25, </key>
+<key name="factoryserv"> 6,7,56,60,63,68, </key>
+<key name="fail"> 60, </key>
+<key name="far"> 42, </key>
+<key name="fashion"> 11, </key>
+<key name="fast"> 44, </key>
+<key name="featur"> 24, </key>
+<key name="field"> 16,1,20,24,26,27,39,65,42,44,48,49, </key>
+<key name="fifth"> 42, </key>
+<key name="fil"> 30,61,65, </key>
+<key name="fill"> 63,39,42, </key>
+<key name="filt"> 20,24,25,65,48, </key>
+<key name="filter"> 24,65, </key>
+<key name="fin"> 18, </key>
+<key name="find"> 30,61,42, </key>
+<key name="findcoincidentnod"> 66, </key>
+<key name="findorloadcomponent"> 6,7,56,60,63,68, </key>
+<key name="finenes"> 18, </key>
+<key name="first"> 1,18,22,56,60,36,61,42, </key>
+<key name="fit"> 52, </key>
+<key name="fiv"> 60, </key>
+<key name="fix"> 13,6,7,44,66, </key>
+<key name="flag"> 61, </key>
+<key name="fold"> 22,23, </key>
+<key name="follow"> 12,13,14,16,1,2,20,22,23,24,25,26,27,28,29,10,11,34,61,38,39,64,40,42,44,45,47,48,49,50,51, </key>
+<key name="font"> 52, </key>
+<key name="form"> 1,26,29,61,42, </key>
+<key name="format"> 0,30,59,52, </key>
+<key name="formula"> 18,19,2, </key>
+<key name="four"> 13,19,53, </key>
+<key name="fourth"> 60, </key>
+<key name="fram"> 52, </key>
+<key name="fre"> 13,15,54,55,59,63,42,44,66, </key>
+<key name="function"> 13, </key>
+<key name="functionaliti"> 52, </key>
+<key name="functionality"> 22,30,58,34,42,52, </key>
+<key name="futur"> 18, </key>
+<key name="g"> 23, </key>
+<key name="gaus"> 52, </key>
+<key name="generat"> 12,13,15,18,22,59,36,61, </key>
+<key name="generation"> 10,61,64, </key>
+<key name="geom"> 13,7,59,60, </key>
+<key name="geometric"> 13,15,7, </key>
+<key name="geometrical"> 12,13,14,18,22,23,24,32,59,33,61,37,40,44,45,47,51, </key>
+<key name="geometry"> 23,24,56,60,44, </key>
+<key name="geompy"> 6,7,56,60,63,66,68, </key>
+<key name="get"> 0,5,22,7,11,61,51, </key>
+<key name="getalgorithm"> 60, </key>
+<key name="getborder"> 63, </key>
+<key name="getelementsid"> 56,63, </key>
+<key name="geterrorcod"> 60, </key>
+<key name="getid"> 6, </key>
+<key name="getlistofid"> 56, </key>
+<key name="getmaxelementarea"> 6,7, </key>
+<key name="getmaxelementvolum"> 6,7, </key>
+<key name="getmesh"> 60,66, </key>
+<key name="getmesheditor"> 60,63,66, </key>
+<key name="getnam"> 6,7, </key>
+<key name="getnumberofsegment"> 6,7, </key>
+<key name="getpattern"> 60, </key>
+<key name="gg"> 7, </key>
+<key name="giv"> 65,51, </key>
+<key name="given"> 18,32,42, </key>
+<key name="global"> 52, </key>
+<key name="go"> 60, </key>
+<key name="good"> 44, </key>
+<key name="got"> 61, </key>
+<key name="graduat"> 52, </key>
+<key name="graphical"> 0, </key>
+<key name="great"> 18,52, </key>
+<key name="greatest"> 19,2, </key>
+<key name="green"> 24, </key>
+<key name="group"> 20,21,24,25,8,29,11,56,34,59,60,63,65,44,47,48,50,51, </key>
+<key name="group1"> 50, </key>
+<key name="group12"> 50, </key>
+<key name="group12a"> 50, </key>
+<key name="group12b"> 50, </key>
+<key name="group2"> 50, </key>
+<key name="grouprotat"> 60, </key>
+<key name="groupsmooth"> 60, </key>
+<key name="groupsofnod"> 66, </key>
+<key name="grouptritoquad"> 60, </key>
+<key name="h"> 53, </key>
+<key name="half"> 19,53, </key>
+<key name="halv"> 5, </key>
+<key name="hav"> 19,32,36,61, </key>
+<key name="hedron"> 60, </key>
+<key name="height"> 53, </key>
+<key name="helical"> 11, </key>
+<key name="help"> 15, </key>
+<key name="henc"> 61, </key>
+<key name="her"> 61, </key>
+<key name="hexa"> 6,7, </key>
+<key name="hexa_3d"> 7, </key>
+<key name="hexa3d"> 7, </key>
+<key name="hexagon"> 11, </key>
+<key name="hexahedral"> 14,6,7, </key>
+<key name="hexahedralization"> 22, </key>
+<key name="hexahedrical"> 6,7, </key>
+<key name="hexahedron"> 13,14,16,2,7,60,33,68, </key>
+<key name="hh"> 60, </key>
+<key name="hid"> 0,52, </key>
+<key name="high"> 13, </key>
+<key name="highlight"> 3,4,20,24,25,54,55,48, </key>
+<key name="hmax"> 19, </key>
+<key name="hol"> 55, </key>
+<key name="hold"> 61, </key>
+<key name="how"> 11,37, </key>
+<key name="hyp"> 23, </key>
+<key name="hyp1"> 6,63,68, </key>
+<key name="hyp2"> 6,63,68, </key>
+<key name="hyp3"> 6,68, </key>
+<key name="hyp4"> 6,68, </key>
+<key name="hyparea"> 6,7, </key>
+<key name="hypnbseg"> 6,7,56, </key>
+<key name="hypothes"> 12,0,18,22,23,7,56,32,59,36,37, </key>
+<key name="hypothesi"> 12,18,22,6,7,56,32,33,36,37,66,68, </key>
+<key name="hypvolum"> 6,7, </key>
+<key name="i"> 19,22,25,56,60,61,63,42,48, </key>
+<key name="icon"> 29,38,41, </key>
+<key name="id"> 0,18,20,24,25,26,27,28,10,11,64,42,44,48,49, </key>
+<key name="id_arc"> 7, </key>
+<key name="id_circl"> 60,66, </key>
+<key name="id_fac"> 7, </key>
+<key name="id_face1"> 7,60,66, </key>
+<key name="idbox"> 6,7,56,63,68, </key>
+<key name="idcomp"> 66, </key>
+<key name="idea"> 11, </key>
+<key name="idedg"> 6,68, </key>
+<key name="idfac"> 56, </key>
+<key name="idtoobject"> 6,63,66,68, </key>
+<key name="if"> 13,16,5,22,6,23,7,10,11,56,32,60,36,61,37,38,64,65,42,44,48,52, </key>
+<key name="ii"> 60, </key>
+<key name="imag"> 0,11,52, </key>
+<key name="imp"> 13, </key>
+<key name="import"> 6,7,56,30,59,60,63,66,68, </key>
+<key name="importation"> 30, </key>
+<key name="importcomponentgui"> 6,7,63, </key>
+<key name="includ"> 13,51, </key>
+<key name="increas"> 6,7,66, </key>
+<key name="index"> 24,61, </key>
+<key name="indic"> 61, </key>
+<key name="indicat"> 53, </key>
+<key name="info"> 0,51,68, </key>
+<key name="information"> 13,0,29,51,68, </key>
+<key name="init"> 6,7,63, </key>
+<key name="init_geom"> 60, </key>
+<key name="initial"> 11,65,45,50, </key>
+<key name="initializ"> 6,7,56, </key>
+<key name="input"> 1,18, </key>
+<key name="inscrib"> 19, </key>
+<key name="insert"> 65,42, </key>
+<key name="instead"> 36,61, </key>
+<key name="intact"> 8, </key>
+<key name="integ"> 24, </key>
+<key name="intend"> 42, </key>
+<key name="interest"> 13, </key>
+<key name="intermediat"> 42, </key>
+<key name="internal"> 61, </key>
+<key name="intersect"> 61,50, </key>
+<key name="intersectgroup"> 56, </key>
+<key name="intersection"> 56,61,50, </key>
+<key name="introduc"> 12,24,36, </key>
+<key name="introduction"> 59, </key>
+<key name="invers"> 13,26,60, </key>
+<key name="inversediag"> 60, </key>
+<key name="inversion"> 26,60, </key>
+<key name="invisibl"> 67, </key>
+<key name="isdon"> 60, </key>
+<key name="iso"> 61, </key>
+<key name="isolin"> 61, </key>
+<key name="isometric"> 52, </key>
+<key name="isplanarfac"> 7,60,66, </key>
+<key name="item"> 16,1,20,21,25,26,27,29,10,11,30,34,61,39,64,40,42,44,45,47,48,49,50, </key>
+<key name="iteration"> 11,44, </key>
+<key name="iterativ"> 44, </key>
+<key name="join"> 43, </key>
+<key name="jpeg"> 0,52, </key>
+<key name="jpg"> 0,52, </key>
+<key name="just"> 1,61,38, </key>
+<key name="k"> 18,19, </key>
+<key name="keep"> 11,44,45, </key>
+<key name="key"> 61, </key>
+<key name="keyboard"> 25, </key>
+<key name="know"> 61, </key>
+<key name="ko"> 60, </key>
+<key name="l"> 53, </key>
+<key name="label"> 52, </key>
+<key name="laplacian"> 44, </key>
+<key name="last"> 1,18,36,42, </key>
+<key name="lastnodeid"> 60, </key>
+<key name="lay"> 10,61,64, </key>
+<key name="lcc"> 6,7,56,60,63,68, </key>
+<key name="learn"> 51, </key>
+<key name="least"> 61,44, </key>
+<key name="leav"> 22,8, </key>
+<key name="left"> 0,11,61,52, </key>
+<key name="legth"> 63, </key>
+<key name="len"> 56,63, </key>
+<key name="length"> 12,15,18,19,6,7,57,32,31,59,63,42,66,52,53, </key>
+<key name="lengthfromedg"> 7,60,66, </key>
+<key name="les"> 65,42,44, </key>
+<key name="let"> 11, </key>
+<key name="level"> 12,16, </key>
+<key name="libnetgenengin"> 7, </key>
+<key name="library"> 24,65, </key>
+<key name="libstdmeshersengin"> 6,7,56,60,63,68, </key>
+<key name="lik"> 16,2,28,42, </key>
+<key name="limit"> 61,42,44, </key>
+<key name="lin"> 13,1,18,10,36,61,64,43, </key>
+<key name="link"> 42, </key>
+<key name="list"> 0,16,20,24,25,8,11,65,48, </key>
+<key name="lk"> 18, </key>
+<key name="ll"> 52, </key>
+<key name="load"> 61,65, </key>
+<key name="loadfromfac"> 60, </key>
+<key name="local"> 6,23,7,59,36,66, </key>
+<key name="locallength"> 7, </key>
+<key name="locat"> 61,42, </key>
+<key name="location"> 18,27,30,44, </key>
+<key name="lock"> 25,44,52, </key>
+<key name="longest"> 19, </key>
+<key name="look"> 28,61,65, </key>
+<key name="low"> 13,18, </key>
+<key name="ly"> 61, </key>
+<key name="main"> 20,25,8,11,36,61,65,48,50, </key>
+<key name="makearc"> 7,60,66, </key>
+<key name="makebox"> 6,7,56,63,66,68, </key>
+<key name="makeboxdxdydz"> 60, </key>
+<key name="makecirclethreepnt"> 60,66, </key>
+<key name="makecompound"> 6,7,63,66, </key>
+<key name="makecylinderrh"> 7,60, </key>
+<key name="makeedg"> 6,7, </key>
+<key name="makefac"> 7,60,66, </key>
+<key name="makehexa"> 6,7, </key>
+<key name="makemesh"> 60, </key>
+<key name="makepolygon"> 60, </key>
+<key name="makequad"> 6,7, </key>
+<key name="makesketch"> 7, </key>
+<key name="makevector"> 7,60,66, </key>
+<key name="makevertex"> 6,7,60,66, </key>
+<key name="makewir"> 7,60,66, </key>
+<key name="manag"> 12,16, </key>
+<key name="manual"> 24,61, </key>
+<key name="map"> 32,60,61, </key>
+<key name="mark"> 52, </key>
+<key name="mas"> 11, </key>
+<key name="math"> 60,66, </key>
+<key name="max"> 12,7,32,59,33,44, </key>
+<key name="max_element_area"> 60, </key>
+<key name="maxelementarea"> 6,7,60,63,68, </key>
+<key name="maxelementarea_500"> 6, </key>
+<key name="maxelementarea_800"> 7, </key>
+<key name="maxelementvolum"> 6,7, </key>
+<key name="maxelementvolume_500"> 6, </key>
+<key name="maxelementvolume_900"> 7, </key>
+<key name="maximum"> 18,7,32,33,43,44,51, </key>
+<key name="mean"> 13, </key>
+<key name="meaningful"> 13, </key>
+<key name="measur"> 53, </key>
+<key name="meet"> 25,48, </key>
+<key name="mefisto_2d"> 6,7,63,68, </key>
+<key name="mefisto2d"> 6,7, </key>
+<key name="menu"> 16,1,18,20,5,21,22,23,24,25,8,26,27,28,29,10,11,30,34,36,61,38,39,64,40,41,65,42,44,45,47,48,49,50,51, </key>
+<key name="merg"> 58,34,42,66, </key>
+<key name="mergeequalelement"> 66, </key>
+<key name="mergenod"> 66, </key>
+<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,54,55,56,30,32,31,58,34,59,35,60,33,36,61,62,63,37,38,39,64,40,41,65,42,43,44,45,46,66,47,48,49,50,51,68,69,52,53, </key>
+<key name="mesh_1"> 22,60, </key>
+<key name="mesh_2"> 60, </key>
+<key name="mesh_borders_at_multi"> 63, </key>
+<key name="mesh_freebord"> 63, </key>
+<key name="meshbox"> 6,7, </key>
+<key name="mesheditor"> 60, </key>
+<key name="meshm"> 6, </key>
+<key name="method"> 60,44, </key>
+<key name="middl"> 1,36, </key>
+<key name="minimum"> 15,18,25,59,35,63,42,48, </key>
+<key name="mirror"> 66, </key>
+<key name="mirrorobject"> 66, </key>
+<key name="mod"> 0,18,62, </key>
+<key name="model"> 13,59, </key>
+<key name="modification"> 13,16,1,20,25,26,27,29,10,11,34,59,61,38,39,64,40,42,44,45,47,48,49, </key>
+<key name="modify"> 20,25,29,60,48, </key>
+<key name="modul"> 13,14,1,18,24,59,60,41,52, </key>
+<key name="mous"> 0,24,52, </key>
+<key name="mov"> 27,60, </key>
+<key name="movenod"> 60, </key>
+<key name="multi"> 15,3,4,59,63, </key>
+<key name="multiconnection"> 63, </key>
+<key name="must"> 22,11,61,65,42, </key>
+<key name="myelemid"> 63, </key>
+<key name="mypnt1"> 63, </key>
+<key name="mypnt2"> 63, </key>
+<key name="mystudy"> 6,60,63,68, </key>
+<key name="mystudyid"> 6,7,63, </key>
+<key name="n"> 61,42, </key>
+<key name="nam"> 22,6,23,24,29,56,30,65,50,68,52, </key>
+<key name="nb"> 56,63, </key>
+<key name="nb_segments_1"> 60, </key>
+<key name="nb_vert"> 60, </key>
+<key name="nbedg"> 66,68, </key>
+<key name="nbfac"> 68, </key>
+<key name="nbhexa"> 68, </key>
+<key name="nbnod"> 60,66,68, </key>
+<key name="nbpolygon"> 68, </key>
+<key name="nbpolyhedron"> 68, </key>
+<key name="nbprism"> 68, </key>
+<key name="nbpyramid"> 68, </key>
+<key name="nbquadrangl"> 66,68, </key>
+<key name="nbtetra"> 68, </key>
+<key name="nbtriangl"> 66,68, </key>
+<key name="nbvolum"> 66,68, </key>
+<key name="ne"> 22, </key>
+<key name="necessary"> 16, </key>
+<key name="negativ"> 18, </key>
+<key name="neighbor"> 26,49, </key>
+<key name="netgen"> 14, </key>
+<key name="netgen_3d"> 7, </key>
+<key name="netgen3d"> 7, </key>
+<key name="netgenplugin"> 7, </key>
+<key name="new"> 0,5,22,23,24,27,61,37,65,50, </key>
+<key name="next"> 18,61, </key>
+<key name="nod"> 13,0,16,1,17,18,19,20,21,24,27,28,10,32,34,59,60,61,62,63,38,39,64,65,42,43,44,46,66,51,68,53, </key>
+<key name="nodal"> 61,44, </key>
+<key name="node_id"> 60, </key>
+<key name="node_start_id"> 60, </key>
+<key name="non"> 22, </key>
+<key name="normal"> 45,53, </key>
+<key name="normalisation"> 19, </key>
+<key name="not"> 16,19,22,24,8, </key>
+<key name="noth"> 24, </key>
+<key name="notic"> 13, </key>
+<key name="now"> 5,22,11,60, </key>
+<key name="numb"> 12,13,1,18,6,24,7,10,32,59,61,64,42,44,66,51,68,52, </key>
+<key name="number"> 0,1,28, </key>
+<key name="numberofsegment"> 6,7,56,60,63,66,68, </key>
+<key name="numberofsegments_10"> 6, </key>
+<key name="numberofsegments_7"> 7, </key>
+<key name="numeric"> 25, </key>
+<key name="numerical"> 12, </key>
+<key name="obey"> 42, </key>
+<key name="object"> 12,14,0,16,1,18,5,21,22,23,24,25,7,8,29,30,32,60,33,61,62,37,38,39,40,47,48,51,69,52, </key>
+<key name="objecttoid"> 6,7,63, </key>
+<key name="objet"> 24, </key>
+<key name="obliqu"> 11, </key>
+<key name="obtain"> 16, </key>
+<key name="offset"> 52, </key>
+<key name="ok"> 16,1,20,5,25,8,26,27,29,10,11,30,60,38,39,64,42,44,48,49,50, </key>
+<key name="on"> 13,1,18,22,23,25,8,26,10,54,55,58,36,61,63,37,38,64,65,42,44,45,47,48,50,68, </key>
+<key name="onc"> 48, </key>
+<key name="onto"> 36,61, </key>
+<key name="oo"> 19, </key>
+<key name="opaqu"> 67, </key>
+<key name="operat"> 12, </key>
+<key name="operation"> 14,16,17,18,19,2,3,4,20,23,24,25,8,26,27,29,10,11,54,55,30,57,32,31,58,34,59,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,69,53, </key>
+<key name="opposit"> 12,5,6,25,7,32,36,42,43,66, </key>
+<key name="option"> 13,0,18,45,47, </key>
+<key name="optional"> 22,11, </key>
+<key name="ord"> 13,20,61, </key>
+<key name="ordinary"> 1,36, </key>
+<key name="orientat"> 52, </key>
+<key name="orientation"> 20,5,25,60,48, </key>
+<key name="origin"> 53, </key>
+<key name="other"> 48, </key>
+<key name="otherwis"> 22,32, </key>
+<key name="our"> 22, </key>
+<key name="out"> 52, </key>
+<key name="outlin"> 55, </key>
+<key name="outsid"> 61, </key>
+<key name="own"> 13, </key>
+<key name="pag"> 24,29, </key>
+<key name="pair"> 18, </key>
+<key name="pan"> 52, </key>
+<key name="paramet"> 13,18,2,65,42, </key>
+<key name="parameter"> 12,0,5,11,40,42,52, </key>
+<key name="parametric"> 13,61, </key>
+<key name="parent"> 23, </key>
+<key name="part"> 42,44,52, </key>
+<key name="particular"> 60, </key>
+<key name="particularity"> 13, </key>
+<key name="pas"> 60, </key>
+<key name="path"> 11,60,65,66, </key>
+<key name="pattern"> 60,61, </key>
+<key name="pattern_nam"> 61, </key>
+<key name="pentahedron"> 2, </key>
+<key name="perform"> 59,39,42,45,50, </key>
+<key name="perimet"> 19, </key>
+<key name="pi"> 60,66, </key>
+<key name="pictur"> 3,24,11,54,55,58, </key>
+<key name="plac"> 42,52, </key>
+<key name="plan"> 5,63,45,53, </key>
+<key name="planar"> 53, </key>
+<key name="platform"> 24,41, </key>
+<key name="pleas"> 8, </key>
+<key name="plot"> 18, </key>
+<key name="plu"> 10,64, </key>
+<key name="png"> 0,52, </key>
+<key name="point"> 13,1,18,7,11,60,36,61,64,40,42,45,66,47,52,53, </key>
+<key name="point111"> 6,7, </key>
+<key name="point112"> 6,7, </key>
+<key name="point121"> 6,7, </key>
+<key name="point122"> 6,7, </key>
+<key name="point211"> 6,7, </key>
+<key name="point212"> 6,7, </key>
+<key name="point221"> 6,7, </key>
+<key name="point222"> 6,7, </key>
+<key name="pointstruct"> 60,66, </key>
+<key name="polygon"> 16,60,68, </key>
+<key name="polygonal"> 60, </key>
+<key name="polyhedral"> 16,60, </key>
+<key name="polyhedron"> 16,60,68, </key>
+<key name="pop"> 8,28, </key>
+<key name="position"> 13,61,52, </key>
+<key name="posses"> 36, </key>
+<key name="possibility"> 65, </key>
+<key name="possibl"> 12,2,24,61, </key>
+<key name="post"> 52, </key>
+<key name="powerful"> 65, </key>
+<key name="precision"> 16, </key>
+<key name="preferenc"> 12,32,59,62, </key>
+<key name="prefix"> 65, </key>
+<key name="preproces"> 24, </key>
+<key name="pres"> 16,1,11,38,52, </key>
+<key name="present"> 13,0,50, </key>
+<key name="presentation"> 15,0,52, </key>
+<key name="preserv"> 61, </key>
+<key name="preset"> 12, </key>
+<key name="preview"> 16,5,25,61,65, </key>
+<key name="previou"> 18,48, </key>
+<key name="previous"> 23,24,59,61, </key>
+<key name="principl"> 11, </key>
+<key name="print"> 6,7,56,60,63,66,68, </key>
+<key name="prism"> 68, </key>
+<key name="pro"> 52, </key>
+<key name="problem"> 6,7,56, </key>
+<key name="proce"> 22,8, </key>
+<key name="procedur"> 44, </key>
+<key name="proceed"> 37, </key>
+<key name="proces"> 44, </key>
+<key name="produc"> 13,10,64,44, </key>
+<key name="product"> 53, </key>
+<key name="program"> 22, </key>
+<key name="progression"> 18, </key>
+<key name="project"> 61, </key>
+<key name="projection"> 61,53, </key>
+<key name="prompt"> 18, </key>
+<key name="propagat"> 6,7,36,66, </key>
+<key name="propagation"> 12,6,7,36,66,68, </key>
+<key name="properti"> 52, </key>
+<key name="provid"> 0,16,25, </key>
+<key name="pseudo"> 26, </key>
+<key name="pul"> 44, </key>
+<key name="px"> 7,60,66, </key>
+<key name="px1"> 60,66, </key>
+<key name="py"> 7,60,66, </key>
+<key name="py1"> 60,66, </key>
+<key name="pyramid"> 68, </key>
+<key name="pyramidal"> 14, </key>
+<key name="python"> 51, </key>
+<key name="pz"> 7,60,66, </key>
+<key name="pz1"> 60,66, </key>
+<key name="qi"> 2, </key>
+<key name="qk"> 19,2, </key>
+<key name="quad"> 60,53, </key>
+<key name="quad2d"> 7,56, </key>
+<key name="quadrangl"> 12,13,14,16,17,19,2,6,25,7,26,10,32,31,59,35,60,64,43,66,68, </key>
+<key name="quadrangle_2d"> 7,56, </key>
+<key name="quadrangular"> 14,6,7,32,36,66, </key>
+<key name="quadratic"> 12,1,36, </key>
+<key name="quadtotri"> 60, </key>
+<key name="quality"> 15,0,17,18,19,2,3,4,25,54,55,57,31,59,35,63,43,46,48,69,53, </key>
+<key name="quantity"> 12, </key>
+<key name="r1"> 60, </key>
+<key name="radio"> 20,24,25,40,42,45,48, </key>
+<key name="radiu"> 19,60, </key>
+<key name="rang"> 18,24,56,60,63, </key>
+<key name="ratio"> 15,19,2,59,63,44,46,53, </key>
+<key name="ready"> 22, </key>
+<key name="recent"> 0, </key>
+<key name="red"> 55, </key>
+<key name="redefin"> 0,52, </key>
+<key name="reduc"> 44, </key>
+<key name="reevaluat"> 44, </key>
+<key name="refer"> 61, </key>
+<key name="referenc"> 13,15,22,23, </key>
+<key name="refin"> 12, </key>
+<key name="reflect"> 61,43,69, </key>
+<key name="refresh"> 0, </key>
+<key name="regular"> 19, </key>
+<key name="regular_1d"> 6,7,56,63,68, </key>
+<key name="regular1d"> 6,7,56, </key>
+<key name="relat"> 41, </key>
+<key name="relation"> 13, </key>
+<key name="relationship"> 13, </key>
+<key name="remot"> 52, </key>
+<key name="remov"> 20,6,24,25,8,29,11,56,60,38,65,48,68, </key>
+<key name="removal"> 59, </key>
+<key name="removeelement"> 60,63, </key>
+<key name="removehypothesi"> 6,68, </key>
+<key name="removenod"> 60, </key>
+<key name="renumb"> 39, </key>
+<key name="renumber"> 60,39, </key>
+<key name="renumbernod"> 60, </key>
+<key name="reorient"> 20,60, </key>
+<key name="replac"> 42, </key>
+<key name="represent"> 12,13,18,2,62,46,52, </key>
+<key name="representation"> 13, </key>
+<key name="requir"> 26,27,49, </key>
+<key name="reset"> 52, </key>
+<key name="resiz"> 52, </key>
+<key name="respect"> 11, </key>
+<key name="respectiv"> 1, </key>
+<key name="rest"> 61,42, </key>
+<key name="restor"> 52, </key>
+<key name="restrict"> 13, </key>
+<key name="result"> 12,16,11,56,63,44,50, </key>
+<key name="ret"> 6,7,56, </key>
+<key name="retriev"> 13, </key>
+<key name="return"> 57,60, </key>
+<key name="reveal"> 19, </key>
+<key name="revers"> 1,61, </key>
+<key name="revert"> 20, </key>
+<key name="revolution"> 10,60,64, </key>
+<key name="revolv"> 64, </key>
+<key name="right"> 0,21,8,27,28,11,62, </key>
+<key name="rotat"> 10,11,60,64,40,66,52, </key>
+<key name="rotateobject"> 66, </key>
+<key name="rotation"> 5,11,64,40,66,52, </key>
+<key name="rotationsweepobject"> 60, </key>
+<key name="rough"> 12, </key>
+<key name="rr"> 60, </key>
+<key name="rul"> 18,36,42, </key>
+<key name="run"> 41, </key>
+<key name="s"> 11, </key>
+<key name="salom"> 6,24,7,56,59,60,63,41,66,68, </key>
+<key name="sam"> 13,0,18,19,2,22,23,7,11,36,37,65,42,50, </key>
+<key name="sampl"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,69,53, </key>
+<key name="sav"> 65, </key>
+<key name="scal"> 18,52, </key>
+<key name="scalar"> 15, </key>
+<key name="scen"> 52, </key>
+<key name="script"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,51,69,53, </key>
+<key name="se"> 14,16,17,18,19,2,3,4,20,5,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,69,52,53, </key>
+<key name="seam"> 61, </key>
+<key name="search"> 30,65, </key>
+<key name="second"> 16,60,42, </key>
+<key name="section"> 0,5,22,61, </key>
+<key name="segment"> 12,18,6,7,32,59,60,66, </key>
+<key name="select"> 12,14,0,16,1,18,20,21,22,23,24,25,8,26,27,29,10,11,30,34,36,61,62,38,39,64,40,41,65,42,44,45,47,48,49,50,51,52, </key>
+<key name="selectabl"> 58, </key>
+<key name="selection"> 16,1,20,24,25,8,65,48, </key>
+<key name="sens"> 13, </key>
+<key name="separat"> 46, </key>
+<key name="sequenc"> 42, </key>
+<key name="set"> 13,14,16,18,20,5,22,24,7,27,11,32,59,60,33,61,62,65,42,44,67,48, </key>
+<key name="setcurrentstudy"> 6,60,63,68, </key>
+<key name="setdisplaymod"> 7, </key>
+<key name="setlength"> 6,68, </key>
+<key name="setmargin"> 56,63, </key>
+<key name="setmaxelementarea"> 6,7,63,68, </key>
+<key name="setmaxelementvolum"> 6,7, </key>
+<key name="setmesh"> 63, </key>
+<key name="setnam"> 6,7,63, </key>
+<key name="setnumberofsegment"> 6,7,56,60,63,68, </key>
+<key name="setnumfunctor"> 56,63, </key>
+<key name="setpredicat"> 56,63, </key>
+<key name="setting"> 22, </key>
+<key name="settransparency"> 7, </key>
+<key name="sew"> 63,42,66, </key>
+<key name="sewbordertosid"> 66, </key>
+<key name="sewconformfreeborder"> 66, </key>
+<key name="sewfreeborder"> 66, </key>
+<key name="sewsideelement"> 66, </key>
+<key name="sg"> 6,7,56,60,63,66,68, </key>
+<key name="shad"> 0,62,67, </key>
+<key name="shall"> 20,26,27,34,61,64,40,45,47,48,49, </key>
+<key name="shap"> 12,13,11,61,44, </key>
+<key name="shape_mesh"> 60, </key>
+<key name="shapetyp"> 6,7,56,60,63,66,68, </key>
+<key name="shift"> 16,1,25,38,44, </key>
+<key name="shortest"> 53, </key>
+<key name="should"> 18,24,10,11,61,64,40,65,42,44,50, </key>
+<key name="show"> 18,5,11,65,52, </key>
+<key name="shown"> 15,44, </key>
+<key name="shrink"> 62, </key>
+<key name="sid"> 6,7,35,42,43,66, </key>
+<key name="simp"> 22,36, </key>
+<key name="simpl"> 13,16,61, </key>
+<key name="simplex"> 19,2, </key>
+<key name="sin"> 60, </key>
+<key name="siz"> 0,44, </key>
+<key name="sk"> 19,2, </key>
+<key name="sketch"> 7, </key>
+<key name="sketcher"> 7, </key>
+<key name="sketcher1"> 7, </key>
+<key name="sketcher2"> 7, </key>
+<key name="skew"> 15,25,59,63,43,48, </key>
+<key name="slid"> 67, </key>
+<key name="small"> 52, </key>
+<key name="smesh"> 6,7,56,60,63,42,66,68, </key>
+<key name="smesh_mechanic"> 56,60,63,66, </key>
+<key name="smesh_mechanic_tetra"> 63, </key>
+<key name="smesh_mesheditor"> 60,66, </key>
+<key name="smeshgroup1"> 56, </key>
+<key name="smeshgroup2"> 56, </key>
+<key name="smeshgui"> 6,7,63, </key>
+<key name="smooth"> 60,44, </key>
+<key name="smoothobject"> 60, </key>
+<key name="smp"> 61, </key>
+<key name="so"> 12,18,19,6,7,56,60,61,63,42,46,68, </key>
+<key name="solid"> 6,7,59, </key>
+<key name="somewhat"> 16, </key>
+<key name="sort"> 20,24,25,48, </key>
+<key name="sourc"> 65, </key>
+<key name="spac"> 13,61,40,47, </key>
+<key name="specifi"> 18,3,61,38,42,44, </key>
+<key name="specific"> 21,65, </key>
+<key name="specify"> 16,1,25,10,11,61,38,64,40,65,44,45,47,50, </key>
+<key name="spher"> 18,19,22, </key>
+<key name="split"> 14,18,2,5,42, </key>
+<key name="sqrt"> 60, </key>
+<key name="standalon"> 24,56,65, </key>
+<key name="standard"> 0,30,51, </key>
+<key name="start"> 12,18,5,7,11,59,41,42,47, </key>
+<key name="startendlength"> 7, </key>
+<key name="statu"> 60, </key>
+<key name="stdmesher"> 6,7,56,60,63,68, </key>
+<key name="step"> 10,64, </key>
+<key name="stor"> 61,65, </key>
+<key name="straight"> 1,7,36, </key>
+<key name="stretch"> 52, </key>
+<key name="strict"> 52, </key>
+<key name="structur"> 22,23, </key>
+<key name="study"> 6,7,56,65, </key>
+<key name="stuf"> 52, </key>
+<key name="sub"> 30,34,60,61,40,42,45,47, </key>
+<key name="submenu"> 16,9,38,39, </key>
+<key name="submesh"> 12,20,21,6,23,24,25,10,11,37,64,44,47,48,51, </key>
+<key name="subshapeall"> 6,7,56,60,63,66,68, </key>
+<key name="subshapelist"> 6,56,63,68, </key>
+<key name="subshapelist1"> 66, </key>
+<key name="subshapelist2"> 66, </key>
+<key name="subshapenam"> 6,56,68, </key>
+<key name="succed"> 7,56, </key>
+<key name="sum"> 2, </key>
+<key name="supplement"> 36, </key>
+<key name="supplementary"> 25, </key>
+<key name="surfac"> 13,19,2,10,61,64,42, </key>
+<key name="surround"> 13,44, </key>
+<key name="sweep"> 60, </key>
+<key name="swept"> 10,64, </key>
+<key name="switch"> 1, </key>
+<key name="symmetrical"> 45,66, </key>
+<key name="symmetry"> 45,66, </key>
+<key name="syntax"> 65, </key>
+<key name="t"> 13,18,2,22,36,61,62,52, </key>
+<key name="tabl"> 1,18, </key>
+<key name="tak"> 19,48, </key>
+<key name="taken"> 12,21,24,7,61, </key>
+<key name="tap"> 15,24,59,63,46, </key>
+<key name="techniqu"> 44, </key>
+<key name="tetra3d"> 7, </key>
+<key name="tetrahedral"> 14, </key>
+<key name="tetrahedralization"> 22, </key>
+<key name="tetrahedron"> 13,14,16,2,7,60,33,68, </key>
+<key name="th"> 61,42, </key>
+<key name="them"> 12,16,1,18,2,24,8,9,10,11,34,38,64,42,44,52, </key>
+<key name="thos"> 25,48, </key>
+<key name="thre"> 13,1,19,7,60,36,42,45, </key>
+<key name="threshold"> 65, </key>
+<key name="tick"> 52, </key>
+<key name="tim"> 0, </key>
+<key name="tmp"> 6, </key>
+<key name="togeth"> 32, </key>
+<key name="toggl"> 16,65,47, </key>
+<key name="toleranc"> 34,64,65,66, </key>
+<key name="tool"> 65,50, </key>
+<key name="toolbar"> 19,2,20,22,23,25,26,27,29,10,11,31,61,38,39,64,41,43,44,46,48,49,51,69,52,53, </key>
+<key name="top"> 60, </key>
+<key name="topological"> 13,42, </key>
+<key name="topology"> 13, </key>
+<key name="total"> 51, </key>
+<key name="toward"> 44, </key>
+<key name="transform"> 27,66, </key>
+<key name="transformation"> 34,40,42,45,47, </key>
+<key name="translat"> 66,47, </key>
+<key name="translateobject"> 66, </key>
+<key name="translation"> 66,47, </key>
+<key name="transparency"> 0,67, </key>
+<key name="transparent"> 67, </key>
+<key name="tri_mesh"> 66, </key>
+<key name="tria"> 7,60,66, </key>
+<key name="tria_mesh"> 7, </key>
+<key name="triangl"> 13,14,16,1,17,19,7,26,10,32,31,58,35,60,64,43,46,66,48,49,68,52, </key>
+<key name="triangle_mefisto"> 60, </key>
+<key name="triangular"> 14,32, </key>
+<key name="triangulation"> 7, </key>
+<key name="trihedron"> 52, </key>
+<key name="tritoquad"> 60, </key>
+<key name="try"> 22, </key>
+<key name="tt"> 7, </key>
+<key name="tui"> 14,16,17,18,19,2,3,4,20,22,23,24,25,26,27,29,10,11,54,55,30,57,32,31,58,34,35,33,36,61,37,38,39,64,40,42,43,44,45,46,47,48,49,50,51,69,53, </key>
+<key name="two"> 13,16,5,24,25,7,26,11,56,35,60,61,42,46,66,47,49,50,51, </key>
+<key name="typ"> 13,16,18,19,2,21,22,24,10,11,38,64,65,42,51, </key>
+<key name="typical"> 44, </key>
+<key name="u"> 13,42, </key>
+<key name="unary"> 65, </key>
+<key name="unassign"> 37, </key>
+<key name="uniform"> 44, </key>
+<key name="union"> 56,48,49,50, </key>
+<key name="uniongroup"> 56, </key>
+<key name="unit"> 60,42,48,49,50, </key>
+<key name="unles"> 36, </key>
+<key name="unv"> 30, </key>
+<key name="up"> 18,8,28, </key>
+<key name="updat"> 0,41,44, </key>
+<key name="updateobjbrows"> 6,7,56,60,63,66,68, </key>
+<key name="upload"> 65, </key>
+<key name="us"> 13,14,18,3,5,22,23,24,10,32,34,61,64,65,42,44,67,50,52, </key>
+<key name="usag"> 15, </key>
+<key name="useful"> 0,16,24,11, </key>
+<key name="usual"> 42,44, </key>
+<key name="v"> 13, </key>
+<key name="valu"> 12,15,18,19,2,22,6,11,57,35,36,37,65,43,68, </key>
+<key name="vari"> 19, </key>
+<key name="variou"> 0, </key>
+<key name="ve"> 16, </key>
+<key name="vector"> 7,10,11,60,64,40,45,66,47,53, </key>
+<key name="vertex"> 13,61, </key>
+<key name="vertic"> 6,7,61, </key>
+<key name="very"> 16,11, </key>
+<key name="via"> 65,51,52, </key>
+<key name="view"> 0,16,1,17,19,2,20,5,24,25,8,26,27,28,10,11,31,35,38,39,64,65,42,43,44,46,48,49,51,68,69,52,53, </key>
+<key name="visibl"> 52, </key>
+<key name="visual"> 15, </key>
+<key name="visualiz"> 52, </key>
+<key name="vk"> 2, </key>
+<key name="volum"> 12,13,14,15,16,2,21,24,7,9,59,60,33,63,65,66,51,68,69, </key>
+<key name="vtk"> 0,52, </key>
+<key name="vxy"> 7,60,66, </key>
+<key name="walk"> 61, </key>
+<key name="warp"> 15,25,59,63,48,53, </key>
+<key name="way"> 13,16,22,23,24,11,61,37,50, </key>
+<key name="weight"> 44, </key>
+<key name="well"> 61, </key>
+<key name="wheth"> 65, </key>
+<key name="whil"> 38, </key>
+<key name="whit"> 54, </key>
+<key name="whol"> 2,10,11,60,64,65,44,47, </key>
+<key name="whos"> 20,24,25,36,48, </key>
+<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,32,31,58,35,60,33,36,61,38,39,64,41,65,42,43,44,46,67,48,50,51,69,53, </key>
+<key name="window"> 5, </key>
+<key name="wir"> 14,6,7,11,32,60,66, </key>
+<key name="wire_discretisation"> 60, </key>
+<key name="wirefram"> 0,11,62, </key>
+<key name="wish"> 22,8,30,52, </key>
+<key name="within"> 18,61,42, </key>
+<key name="without"> 1,63, </key>
+<key name="word"> 18, </key>
+<key name="work"> 1,11, </key>
+<key name="worst"> 19, </key>
+<key name="would"> 16,42, </key>
+<key name="ww"> 7, </key>
+<key name="x"> 13,5,53, </key>
+<key name="x0"> 60, </key>
+<key name="y"> 13,5, </key>
+<key name="y0"> 60, </key>
+<key name="your"> 12,13,15,0,16,1,17,18,19,2,20,5,21,22,23,24,27,28,29,30,32,31,34,35,33,61,62,37,38,39,40,65,43,44,45,46,47,51,69,53, </key>
+<key name="z"> 13,5, </key>
+<key name="z0"> 60, </key>
+<key name="zero"> 61, </key>
+<key name="zoom"> 52, </key>
+
+</ftswdata>  
index 0075ff8d54162c69791b0c63a0c4a19b87f26f00..b0993a04396797dd1c2876aba3d32a93c064b587 100755 (executable)
@@ -1,22 +1,22 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<glossarydata>\r
- <entry name="Cell" value="Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension." />\r
- <entry name="Component" value="One integer or real value can correspond to each component of a field and to each entity of a mesh" />\r
- <entry name="Descendant connectivity" value="It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1." />\r
- <entry name="Edge" value="An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node)." />\r
- <entry name="Entity of a mesh" value="Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity." />\r
- <entry name="Equivalence" value="Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension." />\r
- <entry name="Face" value="Face of a volumetrical cell (triangle, quadrangle)." />\r
- <entry name="Family" value="Entities of a mesh are described by a certain number   of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership." />\r
- <entry name="Field" value="Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type." />\r
- <entry name="Field profile" value="Fields can be defined only on one part of the mesh. Profile   of the field or profile of the component of a field indicates which entities of the mesh contain values." />\r
- <entry name="Group" value="Unordered set of entities of a mesh. One entity can belong to   several groups." />\r
- <entry name="Mesh" value="Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions)." />\r
- <entry name="Nodal connectivity" value="It is a description of an entity of the mesh by an ordered list of nodes constituting this entity." />\r
- <entry name="Node" value="Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point." />\r
- <entry name="Point" value="Geometrical entity determined by its coordinates in the space." />\r
- <entry name="Reference connectivity" value="For each type of entity of a mesh, reference connectivity define the topology of an entity." />\r
- <entry name="Result" value="List of fields referring to one mesh." />\r
- <entry name="Study" value="Study represents a chain of sequences of calculations." />\r
-\r
-</glossarydata>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<glossarydata>
+ <entry name="Cell" value="Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension." />
+ <entry name="Component" value="One integer or real value can correspond to each component of a field and to each entity of a mesh" />
+ <entry name="Descendant connectivity" value="It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1." />
+ <entry name="Edge" value="An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node)." />
+ <entry name="Entity of a mesh" value="Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity." />
+ <entry name="Equivalence" value="Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension." />
+ <entry name="Face" value="Face of a volumetrical cell (triangle, quadrangle)." />
+ <entry name="Family" value="Entities of a mesh are described by a certain number   of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership." />
+ <entry name="Field" value="Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type." />
+ <entry name="Field profile" value="Fields can be defined only on one part of the mesh. Profile   of the field or profile of the component of a field indicates which entities of the mesh contain values." />
+ <entry name="Group" value="Unordered set of entities of a mesh. One entity can belong to   several groups." />
+ <entry name="Mesh" value="Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions)." />
+ <entry name="Nodal connectivity" value="It is a description of an entity of the mesh by an ordered list of nodes constituting this entity." />
+ <entry name="Node" value="Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point." />
+ <entry name="Point" value="Geometrical entity determined by its coordinates in the space." />
+ <entry name="Reference connectivity" value="For each type of entity of a mesh, reference connectivity define the topology of an entity." />
+ <entry name="Result" value="List of fields referring to one mesh." />
+ <entry name="Study" value="Study represents a chain of sequences of calculations." />
+
+</glossarydata>
index 0f1cd68e537f05a317d0b24d82052de893ba238b..ac67056d39df23e412311d072725c0bddcfbd5b4 100755 (executable)
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<glossary>\r
-<chunkinfo url="whgdata0.xml" first="Cell" last="Study" num="18" />\r
-\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<glossary>
+<chunkinfo url="whgdata0.xml" first="Cell" last="Study" num="18" />
+
 </glossary>
\ No newline at end of file
index ac66bb96640ee91007eecc48c2728520738106c2..44f05e5be5ca2e73885c0653ab2411593b241baf 100755 (executable)
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<index>\r
-\r
-</index>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<index>
+
+</index>
index f4771caad683b086782119163085d59a53df1322..26bf3274ff80a6c595a0075ec8392c7205238d74 100755 (executable)
@@ -1,88 +1,93 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<tocdata>\r
-<book name="MESH module" >\r
-  <item name="Introduction to MESH" url="files/introduction_to_smesh.htm" />\r
-  <item name="Running MESH module" url="files/running_smesh_module.htm" />\r
-  <book name="Creating meshes" >\r
-    <item name="About meshes" url="files/about_meshes.htm" />\r
-    <item name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
-    <item name="Constructing meshes" url="files/constructing_meshes.htm" />\r
-    <item name="Defining meshing algorithms" url="files/about_meshing_algorithms.htm" />\r
-    <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="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
-    <item name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
-    <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="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
-    <item name="Display Entity" url="display_entity.htm" />\r
-    <item name="Transparency" url="transparency.htm" />\r
-    <item name="Clipping" url="clipping.htm" />\r
-  </book>\r
-  <book name="Quality controls" >\r
-    <item name="About quality controls" url="files/about_quality_controls.htm" />\r
-    <item name="Free borders" url="free_borders.htm" />\r
-    <item name="Borders at multi-connection" url="borders_at_multi-connection.htm" />\r
-    <item name="Length" url="length.htm" />\r
-    <item name="Free edges" url="free_edges.htm" />\r
-    <item name="Length 2D" url="files/length_of_edges.htm" />\r
-    <item name="Borders at multi-connection 2D" url="borders_at_multiconnection_2d.htm" />\r
-    <item name="Area" url="files/area_of_elements.htm" />\r
-    <item name="Taper" url="files/taper.htm" />\r
-    <item name="Aspect ratio" url="files/aspect_ratio.htm" />\r
-    <item name="Minimum angle" url="files/minimum_angle.htm" />\r
-    <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
-  </book>\r
-  <book name="Grouping elements" >\r
-    <item name="Creating groups" url="files/creating_groups.htm" />\r
-    <item name="Editing groups" url="files/editing_groups.htm" />\r
-    <item name="Using operations on groups" url="files/using_operations_on_groups.htm" />\r
-    <item name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />\r
-    <item name="Deleting Groups" url="deleting_groups.htm" />\r
-    <item name="Selection filter library" url="selection_filter_library.htm" />\r
-  </book>\r
-  <book name="Modifying meshes" >\r
-    <item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
-    <item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
-    <item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />\r
-    <book name="Transforming meshes" >\r
-      <item name="Translation" url="files/translation.htm" />\r
-      <item name="Rotation" url="files/rotation.htm" />\r
-      <item name="Symmetry" url="files/symmetry.htm" />\r
-      <item name="Sewing meshes" url="files/sewing_meshes.htm" />\r
-      <item name="Merging nodes" url="files/merging_nodes.htm" />\r
-    </book>\r
-    <item name="Moving nodes" url="files/displacing_nodes.htm" />\r
-    <item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
-    <item name="Uniting two triangles" url="files/uniting_two_triangles.htm" />\r
-    <item name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />\r
-    <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
-    <item name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />\r
-    <item name="Smoothing" url="files/smoothing.htm" />\r
-    <item name="Extrusion" url="extrusion.htm" />\r
-    <item name="Extrusion along a path" url="extrusion_along_a_path.htm" />\r
-    <item name="Revolution" url="revolution.htm" />\r
-    <item name="Pattern mapping" url="pattern_mapping.htm" />\r
-  </book>\r
-  <book name="TUI Scripts" >\r
-    <item name="Creating Meshes" url="constructing_meshes.htm" />\r
-    <item name="Defining Hypotheses" url="defining_hypotheses_tui.htm" />\r
-    <item name="Viewing Meshes" url="viewing_meshes.htm" />\r
-    <item name="Quality Controls" url="quality_controls.htm" />\r
-    <item name="Grouping Elements" url="grouping_elements.htm" />\r
-    <item name="Modifying Meshes" url="modifying_meshes.htm" />\r
-    <item name="Transforming Meshes" url="transforming_meshes.htm" />\r
-  </book>\r
-</book>\r
-\r
-</tocdata>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<tocdata>
+<book name="MESH module" >
+  <item name="Introduction to Mesh" url="mesh.htm" />
+  <item name="Running MESH module" url="files/running_smesh_module.htm" />
+  <book name="Creating meshes" >
+    <item name="About meshes" url="files/about_meshes.htm" />
+    <item name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />
+    <item name="Constructing meshes" url="files/constructing_meshes.htm" />
+    <item name="Defining meshing algorithms" url="files/about_meshing_algorithms.htm" />
+    <book name="Defining hypotheses" >
+      <item name="About Hypotheses" url="files/about_hypotheses.htm" />
+      <item name="1D Meshing Hypotheses" url="files/arithmetic_1d.htm" />
+      <item name="2D Meshing Hypotheses" url="files/max._element_area_hypothesis.htm" />
+      <item name="Max Element Volume hypothesis" url="files/max._element_volume_hypothsis.htm" />
+      <item name="Additional Hypotheses" url="files/non_conform_mesh_allowed_hypothesis.htm" />
+    </book>
+    <item name="Constructing submeshes" url="files/constructing_submeshes.htm" />
+    <item name="Editing Meshes" url="files/reassigning_hypotheses_and_algorithms.htm" />
+  </book>
+  <book name="Viewing meshes" >
+    <item name="Viewing meshes" url="about_viewing_meshes.htm" />
+    <item name="VTK 3D Viewer" url="files/vtk_3d_viewer.htm" />
+    <item name="Mesh infos" url="files/viewing_mesh_info.htm" />
+    <item name="Numbering" url="files/displaying_nodes_numbers.htm" />
+    <item name="Display Mode" url="presentation.htm" />
+    <item name="Display Entity" url="display_entity.htm" />
+    <item name="Transparency" url="transparency.htm" />
+    <item name="Clipping" url="clipping.htm" />
+  </book>
+  <book name="Quality controls" >
+    <item name="About quality controls" url="files/about_quality_controls.htm" />
+    <item name="Free borders" url="free_borders.htm" />
+    <item name="Borders at multi-connection" url="borders_at_multi-connection.htm" />
+    <item name="Length" url="length.htm" />
+    <item name="Free edges" url="free_edges.htm" />
+    <item name="Length 2D" url="files/length_of_edges.htm" />
+    <item name="Borders at multi-connection 2D" url="borders_at_multiconnection_2d.htm" />
+    <item name="Area" url="files/area_of_elements.htm" />
+    <item name="Taper" url="files/taper.htm" />
+    <item name="Aspect ratio" url="files/aspect_ratio.htm" />
+    <item name="Minimum angle" url="files/minimum_angle.htm" />
+    <item name="Warping" url="files/warp.htm" />
+    <item name="Skew" url="files/skew.htm" />
+    <item name="Aspect ratio 3D" url="aspect_ratio_3d.htm" />
+    <item name="Volume" url="volume.htm" />
+  </book>
+  <book name="Grouping elements" >
+    <item name="Creating groups" url="files/creating_groups.htm" />
+    <item name="Editing groups" url="files/editing_groups.htm" />
+    <item name="Using operations on groups" url="files/using_operations_on_groups.htm" />
+    <item name="Constructing groups of specific elements" url="files/constructing_groups_of_specific_elements.htm" />
+    <item name="Deleting Groups" url="deleting_groups.htm" />
+    <item name="Selection filter library" url="selection_filter_library.htm" />
+  </book>
+  <book name="Modifying meshes" >
+    <item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />
+    <item name="Adding quadratic elements" url="adding_quadratic_nodes_and_elements.htm" />
+    <item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />
+    <item name="Renumbering nodes and elements" url="files/renumbering_nodes_and_elements.htm" />
+    <book name="Transforming meshes" >
+      <item name="Translation" url="files/translation.htm" />
+      <item name="Rotation" url="files/rotation.htm" />
+      <item name="Symmetry" url="files/symmetry.htm" />
+      <item name="Sewing meshes" url="files/sewing_meshes.htm" />
+      <item name="Merging nodes" url="files/merging_nodes.htm" />
+      <item name="Merging Elements" url="merge_elements.htm" />
+    </book>
+    <item name="Moving nodes" url="files/displacing_nodes.htm" />
+    <item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />
+    <item name="Uniting two triangles" url="files/uniting_two_triangles.htm" />
+    <item name="Uniting a set of triangles" url="files/uniting_a_set_of_triangles.htm" />
+    <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />
+    <item name="Cutting quadrangles" url="files/cutting_quadrangles.htm" />
+    <item name="Smoothing" url="files/smoothing.htm" />
+    <item name="Extrusion" url="extrusion.htm" />
+    <item name="Extrusion along a path" url="extrusion_along_a_path.htm" />
+    <item name="Revolution" url="revolution.htm" />
+    <item name="Pattern mapping" url="pattern_mapping.htm" />
+  </book>
+  <item name="Access to Mesh module functionality from Python (using smesh.py)" url="smeshpy_doc/namespacesmesh.html" />
+  <book name="TUI Scripts" >
+    <item name="Creating Meshes" url="constructing_meshes.htm" />
+    <item name="Defining Hypotheses" url="defining_hypotheses_tui.htm" />
+    <item name="Viewing Meshes" url="viewing_meshes.htm" />
+    <item name="Quality Controls" url="quality_controls.htm" />
+    <item name="Grouping Elements" url="grouping_elements.htm" />
+    <item name="Modifying Meshes" url="modifying_meshes.htm" />
+    <item name="Transforming Meshes" url="transforming_meshes.htm" />
+  </book>
+</book>
+
+</tocdata>
index a271ba7cc99810bb4aa4db02ef622ed2c5fc650a..871ec25b98da95cb0a3f52da19d447a00b5ffb24 100755 (executable)
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='windows-1252' ?>\r
-<toc root="whtdata0.xml">\r
-\r
-</toc>\r
+<?xml version='1.0' encoding='windows-1252' ?>
+<toc root="whtdata0.xml">
+
+</toc>
index 894cc0c6daec8bdfa61ad92460bfec0ce4e6e6a1..ba71fe6fb1aaf81bd2c28cd54daa3d87b91b64bf 100644 (file)
@@ -1,6 +1,21 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
 #
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #  File   : Makefile.in
 #  Author : Vasily Rusyaev (Open Cascade NN)
@@ -19,25 +34,45 @@ doxygen=@DOXYGEN@
 PYTHON_SCRIPTS = \
        smesh.py
 
-docs:
+dev_docs:
        cp -fr $(srcdir)/SMESH ./INPUT; \
+       cp -fr ./SMESH/doxyfile ./SMESH/doxyfile_py ./INPUT; \
+       cp -fr ./SMESH/sources/static/tree.js ./INPUT/sources/static; \
        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; \
+       mv -f doxyfile2 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/
diff --git a/doc/salome/tui/SMESH/doxyfile b/doc/salome/tui/SMESH/doxyfile
deleted file mode 100755 (executable)
index d663d38..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-# Doxyfile 1.3-rc1
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - SMESH - v.3.2.0a1"
-PROJECT_NUMBER         = id#1.1
-OUTPUT_DIRECTORY       = ../
-OUTPUT_LANGUAGE        = English
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-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
-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
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-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
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = sources/
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = YES
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = SMESH
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = sources/myheader.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_SCHEMA             = 
-XML_DTD                = 
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = NO
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1200
-GENERATE_LEGEND        = NO
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions 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/doxyfile_py b/doc/salome/tui/SMESH/doxyfile_py
deleted file mode 100755 (executable)
index 3b4a048..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-# Doxyfile 1.3-rc1
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = "SALOME - SMESH - v.3.2.0a1"
-PROJECT_NUMBER         = id#1.1
-OUTPUT_DIRECTORY       = ../
-OUTPUT_LANGUAGE        = English
-EXTRACT_ALL            = YES
-EXTRACT_PRIVATE        = YES
-EXTRACT_STATIC         = YES
-EXTRACT_LOCAL_CLASSES  = YES
-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
-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
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-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
-EXCLUDE                = 
-EXCLUDE_SYMLINKS       = NO
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = ../sources/
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = YES
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION    = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = ../SMESH/meshpy_doc
-HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = ../sources/myheader_py2.html
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
-GENERATE_CHI           = NO
-BINARY_TOC             = YES
-TOC_EXPAND             = YES
-DISABLE_INDEX          = YES
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = YES
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = NO
-LATEX_OUTPUT           = latex
-LATEX_CMD_NAME         = latex
-MAKEINDEX_CMD_NAME     = makeindex
-COMPACT_LATEX          = NO
-PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = rtf
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = NO
-MAN_OUTPUT             = man
-MAN_EXTENSION          = .3
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML           = NO
-XML_SCHEMA             = 
-XML_DTD                = 
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF   = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO
-PERLMOD_LATEX          = NO
-PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = YES
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-SKIP_FUNCTION_MACROS   = NO
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-EXTERNAL_GROUPS        = YES
-PERL_PATH              = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS         = YES
-HIDE_UNDOC_RELATIONS   = NO
-HAVE_DOT               = YES
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = NO
-TEMPLATE_RELATIONS     = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = NO
-GRAPHICAL_HIERARCHY    = YES
-DOT_IMAGE_FORMAT       = jpg
-DOT_PATH               = 
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1200
-GENERATE_LEGEND        = NO
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions 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 7b58330d50856e28562e8f9ed80dae72d6e6dda3..df0d5a187398c59271c45249950a92cd9cec68bb 100755 (executable)
Binary files a/doc/salome/tui/SMESH/sources/Application-About.png and b/doc/salome/tui/SMESH/sources/Application-About.png differ
index 677b70468f798fe4fbc20fac3d706e61179ff12b..429489c691d274d2af69108c574491a022e78824 100755 (executable)
Binary files a/doc/salome/tui/SMESH/sources/bg_salome.gif and b/doc/salome/tui/SMESH/sources/bg_salome.gif differ
index 83ca543cda7dcf8bc623fb52b00def9617fd1c8b..d2efb75faade344eacb10128d14a6d5bd3592193 100755 (executable)
@@ -5,20 +5,9 @@
    <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
    <title>Main Page</title>
 <link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
 </head>
 <body>
 &nbsp;
-<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..389449d8746fde543d6fea6e87c8bd6955370b38 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.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 +136,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 +150,7 @@ TD.indexvalue {
    margin-top     : 2px; 
    margin-bottom  : 2px  
 }
+
 span.keyword       { color: #008000 }
 span.keywordtype   { color: #604020 }
 span.keywordflow   { color: #e08000 }
diff --git a/doc/salome/tui/SMESH/sources/static/tree.js b/doc/salome/tui/SMESH/sources/static/tree.js
deleted file mode 100755 (executable)
index f55fe0b..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-foldersTree = gFld("<b>SALOME v.3.2.0a1 </b>", "", "")
-     insDoc(foldersTree, gLnk("Main Page", "", "main.html"))
-
-aux1 = insFld(foldersTree, gFld("TUI Reference Guide", ""))
-  aux2 = insFld(aux1, gFld("Modules", ""))
-    aux3 = insFld(aux2, gFld("SALOME SMESH module", ""))
-/*!             insDoc(aux3, gLnk("Overview", "", "overview_SMESH.html"))*/
-      aux4 = insFld(aux3, gFld("Packages", ""))                
-               insDoc(aux4, gLnk("SMESH", "", "namespaceSMESH.html"))
-/*!             insDoc(aux3, gLnk("Examples", "", "examples_SMESH.html"))
-*/
-
-         insDoc(aux1, gLnk("Data Structures", "", "annotated.html"))
-         insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html"))
-         insDoc(aux1, gLnk("Class methods list", "", "functions.html"))
-         insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html"))
-         insDoc(aux1, gLnk("File List", "", "files.html"))
-
-aux1 = insFld(foldersTree, gFld("IDL/Python mapping", ""))
-         insDoc(aux1, gLnk("Mapping of SMESH IDL definitions to Python language", "", "page2.html"))
-
-aux1 = insFld(foldersTree, gFld("Python Commands", "", "meshpy_doc/main.html"))
-         insDoc(aux1, gLnk("Package List", "", "meshpy_doc/namespaces.html"))
-         insDoc(aux1, gLnk("Data Structures", "", "meshpy_doc/annotated.html"))
-         insDoc(aux1, gLnk("Namespace Members", "", "meshpy_doc/namespacemembers.html"))
-         insDoc(aux1, gLnk("File List", "", "meshpy_doc/files.html"))
-
-aux1 = insFld(foldersTree, gFld("Adding meshers in SMESH", ""))
-        insDoc(aux1, gLnk("Using Plugin mechanism in SMESH", "", "PluginMeshers.html"))
index 8bc4e84d31ef6d0ece2d528311afd997ef14b85c..65dc0f7994ad44d796f6ab20fe0f8eb92f7d3346 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # generate dependencies for idl file :
 #
@@ -34,7 +53,7 @@ $(IDL_FILES:%=$(top_builddir)/idl/salome/%):$(IDL_FILES:%=$(top_srcdir)/idl/%)
 
 lib: pyidl
 
-PYTHON_BUILD_SITE=$(top_builddir)/lib/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
+PYTHON_BUILD_SITE=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/@PACKAGE@
 
 pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py)
 
index b6367b75ddec63826c7e21e57a168988ad956e69..2479147dbc22d5e51aa9414236eb44154a1c0073 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -286,6 +286,20 @@ module StdMeshers
   {
   };
 
+  /*!
+   * StdMeshers_QuadraticMesh: interface of "QuadraticMesh" hypothesis.
+   * This is an auxiliary 1D hypothesis whose presence forces construction 
+   * of quadratic edges.
+   * If the 2D mesher sees that all boundary edges are quadratic ones,
+   * it generates quadratic faces, else it generates linear faces using
+   * medium nodes as if they were vertex ones.
+   * The 3D mesher generates quadratic volumes only if all boundary faces
+   * are quadratic ones, else it fails.
+   */
+  interface StdMeshers_QuadraticMesh : SMESH::SMESH_Hypothesis
+  {
+  };
+
 
   /*!
    * StdMeshers_Regular_1D: interface of "Wire discretisation" algorithm
index edf3b7477c9f4cf37a082cb03044829d281348cd..b32b3d22f8775b4ecfc6255788de654fffa6b549 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -27,6 +27,7 @@
 
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
+#include "GEOM_Gen.idl"
 #include "SMESH_Mesh.idl"
 
 #include "GEOM_Gen.idl"
index bc6edfb72418dbf02fc75f4913085d9f6b087f13..2f608b954329189f01fb3ab681a10fc1df522ccc 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -59,6 +59,16 @@ module SMESH
 
     SMESH_Pattern GetPattern();
 
+    /*!
+      Set the current mode
+     */
+    void SetEmbeddedMode( in boolean theMode );
+
+    /*!
+      Get the current mode
+     */
+    boolean IsEmbeddedMode();
+
     /*!
       Set the current study
      */
@@ -103,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 37657674bf4f41da09810991f347e283cfa83f62..2ef815f1bff633c2833db5cc900c66ac2dd01c29 100644 (file)
@@ -14,7 +14,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -84,6 +84,16 @@ module SMESH
      * Returns the mesh object this group belongs to
      */
     SMESH_Mesh GetMesh();
+
+    /*!
+     * Sets group color number
+     */
+    void SetColorNumber( in long color );
+
+    /*!
+     * Returns group color number
+     */
+    long GetColorNumber();
   }; 
 
   /*!
index 69832b9ed37f854750ebba69bb4c9084b9e8c660..b4fdd1c814433d16c3fe9f3765695f9ed58ccb5a 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 8e1321197a08d2ecb820a0b040711691ef9e35a3..5134fe24b38f938f852555e625abe4111b1f546a 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
-
 #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 ;
@@ -60,7 +60,14 @@ module SMESH
       MOVE_NODE,
       CHANGE_ELEMENT_NODES,
       CHANGE_POLYHEDRON_NODES,
-      RENUMBER
+      RENUMBER,
+      ADD_QUADEDGE,
+      ADD_QUADTRIANGLE,
+      ADD_QUADQUADRANGLE,
+      ADD_QUADTETRAHEDRON,
+      ADD_QUADPYRAMID,
+      ADD_QUADPENTAHEDRON,
+      ADD_QUADHEXAHEDRON
     };
 
   struct log_block
@@ -95,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)
@@ -110,7 +126,8 @@ module SMESH
     HYP_INCOMPATIBLE, // hypothesis does not fit algo
     HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
     HYP_ALREADY_EXIST,// such hypothesis already exist
-    HYP_BAD_DIM       // bad dimension
+    HYP_BAD_DIM,      // bad dimension
+    HYP_BAD_SUBSHAPE  // shape is neither the main one, nor its subshape, nor a group
   };
 
   /*!
@@ -154,7 +171,6 @@ module SMESH
     long_array GetIDs();
   };
 
-  interface SMESH_GroupBase;
   interface SMESH_Group;
   interface SMESH_GroupOnGeom;
   interface SMESH_subMesh;
@@ -221,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
@@ -326,6 +348,11 @@ module SMESH
     SMESH_MeshEditor GetMeshEditor()
       raises (SALOME::SALOME_Exception);
 
+    /*! Check group names for duplications.
+     *  Consider maximum group name length stored in MED file.
+     */
+    boolean HasDuplicatedGroupNamesMED();
+
     /*!
      * Export Mesh to different MED Formats
      * @params
@@ -373,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);
 
@@ -421,10 +475,97 @@ 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
      */
     string Dump();
+
+    /*!
+     * Get mesh pointer
+     */
+    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
@@ -499,13 +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);
+
+    long AddEdge(in long_array IDsOfNodes);
 
-    boolean AddEdge(in long_array IDsOfNodes);
+    long AddFace(in long_array IDsOfNodes);
 
-    boolean AddFace(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.
@@ -513,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);
 
     /*!
@@ -522,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);
 
@@ -625,6 +768,10 @@ module SMESH
                                    in double          MaxAspectRatio,
                                    in Smooth_Method   Method);
 
+    void ConvertToQuadratic(in boolean theForce3d);
+
+    boolean ConvertFromQuadratic();
+
     void RenumberNodes();
 
     void RenumberElements();
@@ -779,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..a844b3c497f773f3879421035fe60e4a255bcbb1 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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
diff --git a/resources/SMESHCatalog.xml b/resources/SMESHCatalog.xml
deleted file mode 100644 (file)
index 90d1873..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version='1.0' encoding='us-ascii' ?>
-<!-- XML component catalog -->
-<begin-catalog>
-
-<!-- Path prefix information -->
-
-<path-prefix-list>
-</path-prefix-list>
-
-<!-- Component list -->
-<component-list>
-       <component>
-               <!-- Component identification -->
-               <component-name>SMESH</component-name>
-               <component-username>Mesh</component-username>
-               <component-type>MESH</component-type>
-               <component-author>NRI</component-author>
-               <component-version>3.2.0a1</component-version>
-               <component-comment>Mesh component</component-comment>
-               <component-multistudy>1</component-multistudy>
-               <component-icone>ModuleMesh.png</component-icone>
-               <component-impltype>1</component-impltype>
-
-            <component-interface-list>
-                <component-interface-name>SMESH</component-interface-name>
-                <component-interface-comment></component-interface-comment>
-                <component-service-list>
-                    <component-service>
-                        <service-name>CreateHypothesis</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>string</inParameter-type>
-                                <inParameter-name>anHyp</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>long</inParameter-type>
-                                <inParameter-name>studyId</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                           <outParameter>
-                                <outParameter-type>SMESH_Hypothesis</outParameter-type>
-                                <outParameter-name>aHyp</outParameter-name>
-                                <outParameter-comment></outParameter-comment>
-                           </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                    <component-service>
-                        <service-name>Init</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>GEOM_Gen</inParameter-type>
-                                <inParameter-name>geomEngine</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>long</inParameter-type>
-                                <inParameter-name>studyId</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                           <outParameter>
-                               <outParameter-type>SMESH_Mesh</outParameter-type>
-                               <outParameter-name>aMesh</outParameter-name>
-                               <outParameter-comment></outParameter-comment>
-                           </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                    <component-service>
-                        <service-name>Compute</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>SMESH_Mesh</inParameter-type>
-                                <inParameter-name>aMesh</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aSubShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                            <outParameter>
-                                <outParameter-type>boolean</outParameter-type>
-                                <outParameter-name>res</outParameter-name>
-                                <outParameter-comment>Result</outParameter-comment>
-                            </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                    <component-service>
-                        <service-name>IsReadyToCompute</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>SMESH_Mesh</inParameter-type>
-                                <inParameter-name>aMesh</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aSubShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                                <outParameter-type>boolean</outParameter-type>
-                                <outParameter-name>res</outParameter-name>
-                                <outParameter-comment>Result</outParameter-comment>
-                       </outParameter-list>
-                    </component-service>
-                </component-service-list>
-                <component-interface-name>SMESH_Mesh</component-interface-name>
-                <component-interface-comment></component-interface-comment>
-                <component-service-list>
-                    <component-service>
-                        <service-name>AddHypothesis</service-name>
-                        <service-author></service-author>
-                        <service-version></service-version>
-                        <service-comment></service-comment>
-                        <service-by-default>1</service-by-default>
-                        <inParameter-list>
-                            <inParameter>
-                                <inParameter-type>GEOM_Shape</inParameter-type>
-                                <inParameter-name>aSubShape</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                            <inParameter>
-                                <inParameter-type>SMESH_Hypothesis</inParameter-type>
-                                <inParameter-name>aHyp</inParameter-name>
-                                <inParameter-comment></inParameter-comment>
-                            </inParameter>
-                        </inParameter-list>
-                        <outParameter-list>
-                            <outParameter>
-                                <outParameter-type>boolean</outParameter-type>
-                                <outParameter-name>res</outParameter-name>
-                                <outParameter-comment>Result</outParameter-comment>
-                            </outParameter>
-                       </outParameter-list>
-                    </component-service>
-                </component-service-list>
-            </component-interface-list>
-       <constraint>hostname = localhost</constraint>
-       </component>
-</component-list>
-</begin-catalog>
index 5c0cee6b3c2fa022cc7f06b79459fcff13efc0ec..32702d21c026a95809424f46c0e267069cae9360 100644 (file)
                 icon-id="mesh_algo_quad.png"
                 dim="2"/>
 
+    <hypothesis type="QuadraticMesh"
+                label-id="Quadratic Mesh"
+                icon-id="mesh_algo_quad.png"
+                dim="1"
+                auxiliary="true"/>                
+
     <hypothesis type="MaxElementArea"
                 label-id="Max. Element Area"
                 icon-id="mesh_hypo_area.png"
     <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>
index ae39c7e0a2a3a27a7fde1c3555b5bc65749f7b23..95dae88e7763e0aa05936a255103fad549cc5f6d 100755 (executable)
Binary files a/resources/mesh_conv_to_quad.png and b/resources/mesh_conv_to_quad.png differ
index 184498a5007be6f2c0b682802497ddbc16931f23..8e744d86ab85151a84ef09becfc5752a9d571c5c 100644 (file)
Binary files a/resources/mesh_quad_edge.png and b/resources/mesh_quad_edge.png differ
index d7dcfb2663377c571d4213f416d243316e61d858..d4af5e82910754e05b38f19f678f1cd5e3812af3 100644 (file)
Binary files a/resources/mesh_quad_hexahedron.png and b/resources/mesh_quad_hexahedron.png differ
index 1a5f7d8db04c20ac2f112d9a9ed854fe7135860f..b6e451ce05d9576861614a6727d00996496346a1 100644 (file)
Binary files a/resources/mesh_quad_pentahedron.png and b/resources/mesh_quad_pentahedron.png differ
index 2de86738f56d927315d5f8a23f41dd2dbb27d189..a553ee40ad0a3a0912704211855318e5c6fdbafb 100644 (file)
Binary files a/resources/mesh_quad_pyramid.png and b/resources/mesh_quad_pyramid.png differ
index ebab66c77e82b32957d8eba6c620d5eb2c40c4cc..57acd7a4293bd8c26a9e2657b90aa455fed064aa 100644 (file)
Binary files a/resources/mesh_quad_quadrangle.png and b/resources/mesh_quad_quadrangle.png differ
index d9c2daece1c4714a6bb87195f445056fdf10b755..f386add11c8bf1c2d6f1563c1ea9f6cfec2f521d 100644 (file)
Binary files a/resources/mesh_quad_tetrahedron.png and b/resources/mesh_quad_tetrahedron.png differ
index d617c4e3332ac63f66264156c9d6a60134215d56..141a01706b371bd33b8a06bcb7cbc7a05ea587d1 100644 (file)
Binary files a/resources/mesh_quad_triangle.png and b/resources/mesh_quad_triangle.png differ
index 092eae3c049d4e0190e7bee44dd45172f8234d25..81d265938450f7b91888e851a2a6c9ec5a6afbab 100755 (executable)
Binary files a/resources/mesh_tree_algo_netgen_2d.png and b/resources/mesh_tree_algo_netgen_2d.png differ
index eeaf98afece4d66609123909c91ddcac3e70ba34..99a84a1ef0d36abd3cb1e90c22a4d09bdd3abf30 100644 (file)
Binary files a/resources/mesh_tree_algo_netgen_2d3d.png and b/resources/mesh_tree_algo_netgen_2d3d.png differ
index ad5e9f3c4c3bde47d12ecc2b38ad11c3f05c041e..43bd81e386bbdfcfa72f1798808f76261147ebf0 100644 (file)
Binary files a/resources/mesh_tree_hypo_netgen.png and b/resources/mesh_tree_hypo_netgen.png differ
index cd813c86ac35ddd35ad0169fc285870902fbb093..c72e4af456f863ee28d413159524f4afe10c7feb 100644 (file)
Binary files a/resources/mesh_tree_hypo_netgen_2d.png and b/resources/mesh_tree_hypo_netgen_2d.png differ
index 5cc836126d34b059f8f880a74793d9b3a8650d67..3416e9751e5ce9e4b2fd85160c6ab7385df1b9aa 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -43,10 +43,10 @@ LIB_SRC = SMESH_Controls.cxx
 BIN = SMESHControls
 BIN_SRC        = 
 
-CPPFLAGS+=$(OCC_INCLUDES) $(BOOST_CPPFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+=$(OCC_INCLUDES) $(BOOST_CPPFLAGS) $(KERNEL_CXXFLAGS)
 
-LDFLAGS+=$(OCC_KERNEL_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSMDS -lTKBRep -lTKG3d
+LDFLAGS+=$(OCC_KERNEL_LIBS) $(KERNEL_LDFLAGS) -lOpUtil -lSMDS -lTKBRep -lTKG3d
 
-LDFLAGSFORBIN += -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace -lSALOMEBasics $(OCC_KERNEL_LIBS) -lTKBRep -lTKG3d
+LDFLAGSFORBIN += -lSMDS $(KERNEL_LDFLAGS) -lOpUtil -lSALOMELocalTrace -lSALOMEBasics $(OCC_KERNEL_LIBS) -lTKBRep -lTKG3d
 
 @CONCLUDE@
index 0c8d145a366e5fd29eaae0fe8e2209349d03deff..e36685db8662e13c8fb88ae5098a7638b4b3fd54 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "SMESH_ControlsDef.hxx"
 
index 717f8e66ae41e82d0d06fdeef300d432aca0ff2d..bad6ae8f9feed3f30c7c82908c37552ff537caea 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "SMESH_ControlsDef.hxx"
 
@@ -46,6 +46,8 @@
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
 #include "SMDS_VolumeTool.hxx"
+#include "SMDS_QuadraticFaceOfNodes.hxx"
+#include "SMDS_QuadraticEdge.hxx"
 
 
 /*
@@ -87,32 +89,69 @@ namespace{
       return 0;
 
     const SMDS_MeshElement* anEdge = theMesh->FindElement( theId );
-    if ( anEdge == 0 || anEdge->GetType() != SMDSAbs_Edge || anEdge->NbNodes() != 2 )
+    if ( anEdge == 0 || anEdge->GetType() != SMDSAbs_Edge/* || anEdge->NbNodes() != 2 */)
       return 0;
 
-    TColStd_MapOfInteger aMap;
-
-    int aResult = 0;
-    SMDS_ElemIteratorPtr anIter = anEdge->nodesIterator();
-    if ( anIter != 0 ) {
-      while( anIter->more() ) {
-       const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-       if ( aNode == 0 )
-         return 0;
-       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 ) )
-             aResult++;
-         }
-       }
+    // for each pair of nodes in anEdge (there are 2 pairs in a quadratic edge)
+    // count elements containing both nodes of the pair.
+    // Note that there may be such cases for a quadratic edge (a horizontal line):
+    //
+    //  Case 1          Case 2
+    //  |     |      |        |      |
+    //  |     |      |        |      |
+    //  +-----+------+  +-----+------+ 
+    //  |            |  |            |
+    //  |            |  |            |
+    // result sould be 2 in both cases
+    //
+    int aResult0 = 0, aResult1 = 0;
+     // last node, it is a medium one in a quadratic edge
+    const SMDS_MeshNode* aLastNode = anEdge->GetNode( anEdge->NbNodes() - 1 );
+    const SMDS_MeshNode* aNode0 = anEdge->GetNode( 0 );
+    const SMDS_MeshNode* aNode1 = anEdge->GetNode( 1 );
+    if ( aNode1 == aLastNode ) aNode1 = 0;
+
+    SMDS_ElemIteratorPtr anElemIter = aLastNode->GetInverseElementIterator();
+    while( anElemIter->more() ) {
+      const SMDS_MeshElement* anElem = anElemIter->next();
+      if ( anElem != 0 && anElem->GetType() != SMDSAbs_Edge ) {
+        SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
+        while ( anIter->more() ) {
+          if ( const SMDS_MeshElement* anElemNode = anIter->next() ) {
+            if ( anElemNode == aNode0 ) {
+              aResult0++;
+              if ( !aNode1 ) break; // not a quadratic edge
+            }
+            else if ( anElemNode == aNode1 )
+              aResult1++;
+          }
+        }
       }
     }
+    int aResult = max ( aResult0, aResult1 );
+
+//     TColStd_MapOfInteger aMap;
+
+//     SMDS_ElemIteratorPtr anIter = anEdge->nodesIterator();
+//     if ( anIter != 0 ) {
+//       while( anIter->more() ) {
+//     const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
+//     if ( aNode == 0 )
+//       return 0;
+//     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 ) )
+//           aResult++;
+//       }
+//     }
+//       }
+//     }
 
     return aResult;
   }
@@ -154,23 +193,41 @@ bool NumericalFunctor::GetPoints(const int theId,
 }
 
 bool NumericalFunctor::GetPoints(const SMDS_MeshElement* anElem,
-                                 TSequenceOfXYZ& theRes )
+                                 TSequenceOfXYZ&         theRes )
 {
   theRes.clear();
 
   if ( anElem == 0)
     return false;
 
+  theRes.reserve( anElem->NbNodes() );
+
   // Get nodes of the element
-  SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
-  if ( anIter != 0 )
-  {
-    while( anIter->more() )
-    {
-      const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-      if ( aNode != 0 ){
+  SMDS_ElemIteratorPtr anIter;
+
+  if ( anElem->IsQuadratic() ) {
+    switch ( anElem->GetType() ) {
+    case SMDSAbs_Edge:
+      anIter = static_cast<const SMDS_QuadraticEdge*>
+        (anElem)->interlacedNodesElemIterator();
+      break;
+    case SMDSAbs_Face:
+      anIter = static_cast<const SMDS_QuadraticFaceOfNodes*>
+        (anElem)->interlacedNodesElemIterator();
+      break;
+    default:
+      anIter = anElem->nodesIterator();
+      //return false;
+    }
+  }
+  else {
+    anIter = anElem->nodesIterator();
+  }
+
+  if ( anIter ) {
+    while( anIter->more() ) {
+      if ( const SMDS_MeshNode* aNode = static_cast<const SMDS_MeshNode*>( anIter->next() ))
         theRes.push_back( gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
-      }
     }
   }
 
@@ -189,6 +246,7 @@ void  NumericalFunctor::SetPrecision( const long thePrecision )
 
 double NumericalFunctor::GetValue( long theId )
 {
+  myCurrElement = myMesh->FindElement( theId );
   TSequenceOfXYZ P;
   if ( GetPoints( theId, P ))
   {
@@ -285,6 +343,7 @@ double AspectRatio::GetValue( const TSequenceOfXYZ& P )
   // According to "Mesh quality control" by Nadir Bouhamau referring to
   // Pascal Jean Frey and Paul-Louis George. Maillages, applications aux elements finis.
   // Hermes Science publications, Paris 1999 ISBN 2-7462-0024-4
+  // PAL10872
 
   int nbNodes = P.size();
 
@@ -426,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:{
@@ -840,22 +900,21 @@ SMDSAbs_ElementType Skew::GetType() const
 */
 double Area::GetValue( const TSequenceOfXYZ& P )
 {
-  double aArea = 0;
-  if ( P.size() == 3 )
-    return getArea( P( 1 ), P( 2 ), P( 3 ) );
-  else if (P.size() > 3)
-    aArea = getArea( P( 1 ), P( 2 ), P( 3 ) );
-  else
-    return 0;
-
-  for (int i=4; i<=P.size(); i++)
-    aArea += getArea(P(1),P(i-1),P(i));
-  return aArea;
+  gp_Vec aVec1( P(2) - P(1) );
+  gp_Vec aVec2( P(3) - P(1) );
+  gp_Vec SumVec = aVec1 ^ aVec2;
+  for (int i=4; i<=P.size(); i++) {
+    gp_Vec aVec1( P(i-1) - P(1) );
+    gp_Vec aVec2( P(i) - P(1) );
+    gp_Vec tmp = aVec1 ^ aVec2;
+    SumVec.Add(tmp);
+  }
+  return SumVec.Magnitude() * 0.5;
 }
 
 double Area::GetBadRate( double Value, int /*nbNodes*/ ) const
 {
-  // meaningless as it is not quality control functor
+  // meaningless as it is not quality control functor
   return Value;
 }
 
@@ -871,7 +930,11 @@ SMDSAbs_ElementType Area::GetType() const
 */
 double Length::GetValue( const TSequenceOfXYZ& P )
 {
-  return ( P.size() == 2 ? getDistance( P( 1 ), P( 2 ) ) : 0 );
+  switch ( P.size() ) {
+  case 2:  return getDistance( P( 1 ), P( 2 ) );
+  case 3:  return getDistance( P( 1 ), P( 2 ) ) + getDistance( P( 2 ), P( 3 ) );
+  default: return 0.;
+  }
 }
 
 double Length::GetBadRate( double Value, int /*nbNodes*/ ) const
@@ -894,7 +957,10 @@ double Length2D::GetValue( long theElementId)
 {
   TSequenceOfXYZ P;
 
+  //cout<<"Length2D::GetValue"<<endl;
   if (GetPoints(theElementId,P)){
+    //for(int jj=1; jj<=P.size(); jj++)
+    //  cout<<"jj="<<jj<<" P("<<P(jj).X()<<","<<P(jj).Y()<<","<<P(jj).Z()<<")"<<endl;
 
     double  aVal;// = GetValue( P );
     const SMDS_MeshElement* aElem = myMesh->FindElement( theElementId );
@@ -908,7 +974,11 @@ double Length2D::GetValue( long theElementId)
     case SMDSAbs_Edge:
       if (len == 2){
        aVal = getDistance( P( 1 ), P( 2 ) );
-       break;
+        break;
+      }
+      else if (len == 3){ // quadratic edge
+       aVal = getDistance(P( 1 ),P( 3 )) + getDistance(P( 3 ),P( 2 ));
+        break;
       }
     case SMDSAbs_Face:
       if (len == 3){ // triangles
@@ -926,6 +996,22 @@ double Length2D::GetValue( long theElementId)
        aVal = Max(Max(L1,L2),Max(L3,L4));
        break;
       }
+      if (len == 6){ // quadratic triangles
+       double L1 = getDistance(P( 1 ),P( 2 )) + getDistance(P( 2 ),P( 3 ));
+       double L2 = getDistance(P( 3 ),P( 4 )) + getDistance(P( 4 ),P( 5 ));
+       double L3 = getDistance(P( 5 ),P( 6 )) + getDistance(P( 6 ),P( 1 ));
+       aVal = Max(L1,Max(L2,L3));
+        //cout<<"L1="<<L1<<" L2="<<L2<<"L3="<<L3<<" aVal="<<aVal<<endl;
+       break;
+      }
+      else if (len == 8){ // quadratic quadrangles
+       double L1 = getDistance(P( 1 ),P( 2 )) + getDistance(P( 2 ),P( 3 ));
+       double L2 = getDistance(P( 3 ),P( 4 )) + getDistance(P( 4 ),P( 5 ));
+       double L3 = getDistance(P( 5 ),P( 6 )) + getDistance(P( 6 ),P( 7 ));
+       double L4 = getDistance(P( 7 ),P( 8 )) + getDistance(P( 8 ),P( 1 ));
+       aVal = Max(Max(L1,L2),Max(L3,L4));
+       break;
+      }
     case SMDSAbs_Volume:
       if (len == 4){ // tetraidrs
        double L1 = getDistance(P( 1 ),P( 2 ));
@@ -987,6 +1073,63 @@ double Length2D::GetValue( long theElementId)
 
       }
 
+      if (len == 10){ // quadratic tetraidrs
+       double L1 = getDistance(P( 1 ),P( 5 )) + getDistance(P( 5 ),P( 2 ));
+       double L2 = getDistance(P( 2 ),P( 6 )) + getDistance(P( 6 ),P( 3 ));
+       double L3 = getDistance(P( 3 ),P( 7 )) + getDistance(P( 7 ),P( 1 ));
+       double L4 = getDistance(P( 1 ),P( 8 )) + getDistance(P( 8 ),P( 4 ));
+       double L5 = getDistance(P( 2 ),P( 9 )) + getDistance(P( 9 ),P( 4 ));
+       double L6 = getDistance(P( 3 ),P( 10 )) + getDistance(P( 10 ),P( 4 ));
+       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
+       break;
+      }
+      else if (len == 13){ // quadratic piramids
+       double L1 = getDistance(P( 1 ),P( 6 )) + getDistance(P( 6 ),P( 2 ));
+       double L2 = getDistance(P( 2 ),P( 7 )) + getDistance(P( 7 ),P( 3 ));
+       double L3 = getDistance(P( 3 ),P( 8 )) + getDistance(P( 8 ),P( 1 ));
+       double L4 = getDistance(P( 4 ),P( 9 )) + getDistance(P( 9 ),P( 1 ));
+       double L5 = getDistance(P( 1 ),P( 10 )) + getDistance(P( 10 ),P( 5 ));
+       double L6 = getDistance(P( 2 ),P( 11 )) + getDistance(P( 11 ),P( 5 ));
+       double L7 = getDistance(P( 3 ),P( 12 )) + getDistance(P( 12 ),P( 5 ));
+       double L8 = getDistance(P( 4 ),P( 13 )) + getDistance(P( 13 ),P( 5 ));
+       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
+       aVal = Max(aVal,Max(L7,L8));
+       break;
+      }
+      else if (len == 15){ // quadratic pentaidres
+       double L1 = getDistance(P( 1 ),P( 7 )) + getDistance(P( 7 ),P( 2 ));
+       double L2 = getDistance(P( 2 ),P( 8 )) + getDistance(P( 8 ),P( 3 ));
+       double L3 = getDistance(P( 3 ),P( 9 )) + getDistance(P( 9 ),P( 1 ));
+       double L4 = getDistance(P( 4 ),P( 10 )) + getDistance(P( 10 ),P( 5 ));
+       double L5 = getDistance(P( 5 ),P( 11 )) + getDistance(P( 11 ),P( 6 ));
+       double L6 = getDistance(P( 6 ),P( 12 )) + getDistance(P( 12 ),P( 4 ));
+       double L7 = getDistance(P( 1 ),P( 13 )) + getDistance(P( 13 ),P( 4 ));
+       double L8 = getDistance(P( 2 ),P( 14 )) + getDistance(P( 14 ),P( 5 ));
+       double L9 = getDistance(P( 3 ),P( 15 )) + getDistance(P( 15 ),P( 6 ));
+       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
+       aVal = Max(aVal,Max(Max(L7,L8),L9));
+       break;
+      }
+      else if (len == 20){ // quadratic hexaider
+       double L1 = getDistance(P( 1 ),P( 9 )) + getDistance(P( 9 ),P( 2 ));
+       double L2 = getDistance(P( 2 ),P( 10 )) + getDistance(P( 10 ),P( 3 ));
+       double L3 = getDistance(P( 3 ),P( 11 )) + getDistance(P( 11 ),P( 4 ));
+       double L4 = getDistance(P( 4 ),P( 12 )) + getDistance(P( 12 ),P( 1 ));
+       double L5 = getDistance(P( 5 ),P( 13 )) + getDistance(P( 13 ),P( 6 ));
+       double L6 = getDistance(P( 6 ),P( 14 )) + getDistance(P( 14 ),P( 7 ));
+       double L7 = getDistance(P( 7 ),P( 15 )) + getDistance(P( 15 ),P( 8 ));
+       double L8 = getDistance(P( 8 ),P( 16 )) + getDistance(P( 16 ),P( 5 ));
+       double L9 = getDistance(P( 1 ),P( 17 )) + getDistance(P( 17 ),P( 5 ));
+       double L10= getDistance(P( 2 ),P( 18 )) + getDistance(P( 18 ),P( 6 ));
+       double L11= getDistance(P( 3 ),P( 19 )) + getDistance(P( 19 ),P( 7 ));
+       double L12= getDistance(P( 4 ),P( 20 )) + getDistance(P( 20 ),P( 8 ));
+       aVal = Max(Max(Max(L1,L2),Max(L3,L4)),Max(L5,L6));
+       aVal = Max(aVal,Max(Max(L7,L8),Max(L9,L10)));
+       aVal = Max(aVal,Max(L11,L12));
+       break;
+
+      }
+
     default: aVal=-1;
     }
 
@@ -1038,38 +1181,81 @@ void Length2D::GetValues(TValues& theValues){
   SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
   for(; anIter->more(); ){
     const SMDS_MeshFace* anElem = anIter->next();
-    SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-    long aNodeId[2];
-    gp_Pnt P[3];
 
-    double aLength;
-    const SMDS_MeshElement* aNode;
-    if(aNodesIter->more()){
-      aNode = aNodesIter->next();
-      const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
-      P[0] = P[1] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
-      aNodeId[0] = aNodeId[1] = aNode->GetID();
-      aLength = 0;
-    }
-    for(; aNodesIter->more(); ){
-      aNode = aNodesIter->next();
-      const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
-      long anId = aNode->GetID();
-
-      P[2] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
+    if(anElem->IsQuadratic()) {
+      const SMDS_QuadraticFaceOfNodes* F =
+        static_cast<const SMDS_QuadraticFaceOfNodes*>(anElem);
+      // use special nodes iterator
+      SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
+      long aNodeId[4];
+      gp_Pnt P[4];
+
+      double aLength;
+      const SMDS_MeshElement* aNode;
+      if(anIter->more()){
+        aNode = anIter->next();
+        const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
+        P[0] = P[1] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
+        aNodeId[0] = aNodeId[1] = aNode->GetID();
+        aLength = 0;
+      }
+      for(; anIter->more(); ){
+        const SMDS_MeshNode* N1 = static_cast<const SMDS_MeshNode*> (anIter->next());
+        P[2] = gp_Pnt(N1->X(),N1->Y(),N1->Z());
+        aNodeId[2] = N1->GetID();
+        aLength = P[1].Distance(P[2]);
+        if(!anIter->more()) break;
+        const SMDS_MeshNode* N2 = static_cast<const SMDS_MeshNode*> (anIter->next());
+        P[3] = gp_Pnt(N2->X(),N2->Y(),N2->Z());
+        aNodeId[3] = N2->GetID();
+        aLength += P[2].Distance(P[3]);
+        Value aValue1(aLength,aNodeId[1],aNodeId[2]);
+        Value aValue2(aLength,aNodeId[2],aNodeId[3]);
+        P[1] = P[3];
+        aNodeId[1] = aNodeId[3];
+        theValues.insert(aValue1);
+        theValues.insert(aValue2);
+      }
+      aLength += P[2].Distance(P[0]);
+      Value aValue1(aLength,aNodeId[1],aNodeId[2]);
+      Value aValue2(aLength,aNodeId[2],aNodeId[0]);
+      theValues.insert(aValue1);
+      theValues.insert(aValue2);
+    }
+    else {
+      SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+      long aNodeId[2];
+      gp_Pnt P[3];
+
+      double aLength;
+      const SMDS_MeshElement* aNode;
+      if(aNodesIter->more()){
+        aNode = aNodesIter->next();
+        const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
+        P[0] = P[1] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
+        aNodeId[0] = aNodeId[1] = aNode->GetID();
+        aLength = 0;
+      }
+      for(; aNodesIter->more(); ){
+        aNode = aNodesIter->next();
+        const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode;
+        long anId = aNode->GetID();
+        
+        P[2] = gp_Pnt(aNodes->X(),aNodes->Y(),aNodes->Z());
+        
+        aLength = P[1].Distance(P[2]);
+        
+        Value aValue(aLength,aNodeId[1],anId);
+        aNodeId[1] = anId;
+        P[1] = P[2];
+        theValues.insert(aValue);
+      }
 
-      aLength = P[1].Distance(P[2]);
+      aLength = P[0].Distance(P[1]);
 
-      Value aValue(aLength,aNodeId[1],anId);
-      aNodeId[1] = anId;
-      P[1] = P[2];
+      Value aValue(aLength,aNodeId[0],aNodeId[1]);
       theValues.insert(aValue);
     }
-
-    aLength = P[0].Distance(P[1]);
-
-    Value aValue(aLength,aNodeId[0],aNodeId[1]);
-    theValues.insert(aValue);
   }
 }
 
@@ -1108,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();
+  const SMDS_MeshElement* aFaceElem = myMesh->FindElement(theElementId);
+  SMDSAbs_ElementType aType = aFaceElem->GetType();
 
-    TColStd_MapOfInteger aMap;
-    int aResult = 0;
-
-    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
@@ -1194,7 +1378,12 @@ void MultiConnection2D::GetValues(MValues& theValues){
   SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
   for(; anIter->more(); ){
     const SMDS_MeshFace* anElem = anIter->next();
-    SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+    SMDS_ElemIteratorPtr aNodesIter;
+    if ( anElem->IsQuadratic() )
+      aNodesIter = static_cast<const SMDS_QuadraticFaceOfNodes*>
+        (anElem)->interlacedNodesElemIterator();
+    else
+      aNodesIter = anElem->nodesIterator();
     long aNodeId[3];
 
     //int aNbConnects=0;
@@ -1207,7 +1396,7 @@ void MultiConnection2D::GetValues(MValues& theValues){
       const SMDS_MeshNode* aNodes = (SMDS_MeshNode*) aNode1;
       aNodeId[0] = aNodeId[1] = aNodes->GetID();
     }
-    for(; aNodesIter->more(); ){
+    for(; aNodesIter->more(); ) {
       aNode2 = (SMDS_MeshNode*) aNodesIter->next();
       long anId = aNode2->GetID();
       aNodeId[2] = anId;
@@ -1217,7 +1406,8 @@ void MultiConnection2D::GetValues(MValues& theValues){
       if (aItr != theValues.end()){
        aItr->second += 1;
        //aNbConnects = nb;
-      } else {
+      }
+      else {
        theValues[aValue] = 1;
        //aNbConnects = 1;
       }
@@ -1227,10 +1417,11 @@ void MultiConnection2D::GetValues(MValues& theValues){
     }
     Value aValue(aNodeId[0],aNodeId[2]);
     MValues::iterator aItr = theValues.find(aValue);
-    if (aItr != theValues.end()){
+    if (aItr != theValues.end()) {
       aItr->second += 1;
       //aNbConnects = nb;
-    } else {
+    }
+    else {
       theValues[aValue] = 1;
       //aNbConnects = 1;
     }
@@ -1346,41 +1537,33 @@ bool FreeEdges::IsSatisfy( long theId )
   if ( aFace == 0 || aFace->GetType() != SMDSAbs_Face || aFace->NbNodes() < 3 )
     return false;
 
-  int nbNodes = aFace->NbNodes();
-  //const SMDS_MeshNode* aNodes[ nbNodes ];
-#ifndef WNT
-  const SMDS_MeshNode* aNodes [nbNodes];
-#else
-  const SMDS_MeshNode** aNodes = (const SMDS_MeshNode **)new SMDS_MeshNode*[nbNodes];
-#endif
-  int i = 0;
-  SMDS_ElemIteratorPtr anIter = aFace->nodesIterator();
-  if ( anIter != 0 )
+  SMDS_ElemIteratorPtr anIter;
+  if ( aFace->IsQuadratic() ) {
+    anIter = static_cast<const SMDS_QuadraticFaceOfNodes*>
+      (aFace)->interlacedNodesElemIterator();
+  }
+  else {
+    anIter = aFace->nodesIterator();
+  }
+  if ( anIter == 0 )
+    return false;
+
+  int i = 0, nbNodes = aFace->NbNodes();
+  vector <const SMDS_MeshNode*> aNodes( nbNodes+1 );
+  while( anIter->more() )
   {
-    while( anIter->more() )
-    {
-      const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
-      if ( aNode == 0 )
-        return false;
-      aNodes[ i++ ] = aNode;
-    }
+    const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next();
+    if ( aNode == 0 )
+      return false;
+    aNodes[ i++ ] = aNode;
   }
+  aNodes[ nbNodes ] = aNodes[ 0 ];
 
-  for ( int i = 0; i < nbNodes - 1; i++ )
-         if ( IsFreeEdge( &aNodes[ i ], theId ) ) {
-#ifdef WNT
-               delete [] aNodes;
-#endif
+  for ( i = 0; i < nbNodes; i++ )
+    if ( IsFreeEdge( &aNodes[ i ], theId ) )
       return true;
-         }
 
-  aNodes[ 1 ] = aNodes[ nbNodes - 1 ];
-  const Standard_Boolean isFree = IsFreeEdge( &aNodes[ 0 ], theId );
-#ifdef WNT
-               delete [] aNodes;
-#endif
-//  return 
- return isFree;
+  return false;
 }
 
 SMDSAbs_ElementType FreeEdges::GetType() const
@@ -1423,7 +1606,12 @@ void FreeEdges::GetBoreders(TBorders& theBorders)
   for(; anIter->more(); ){
     const SMDS_MeshFace* anElem = anIter->next();
     long anElemId = anElem->GetID();
-    SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
+    SMDS_ElemIteratorPtr aNodesIter;
+    if ( anElem->IsQuadratic() )
+      aNodesIter = static_cast<const SMDS_QuadraticFaceOfNodes*>(anElem)->
+        interlacedNodesElemIterator();
+    else
+      aNodesIter = anElem->nodesIterator();
     long aNodeId[2];
     const SMDS_MeshElement* aNode;
     if(aNodesIter->more()){
@@ -2088,8 +2276,7 @@ static gp_XYZ getNormale( const SMDS_MeshFace* theFace )
   TColgp_Array1OfXYZ anArrOfXYZ(1,4);
   SMDS_ElemIteratorPtr aNodeItr = theFace->nodesIterator();
   int i = 1;
-  for ( ; aNodeItr->more() && i <= 4; i++ )
-  {
+  for ( ; aNodeItr->more() && i <= 4; i++ ) {
     SMDS_MeshNode* aNode = (SMDS_MeshNode*)aNodeItr->next();
     anArrOfXYZ.SetValue(i, gp_XYZ( aNode->X(), aNode->Y(), aNode->Z() ) );
   }
@@ -2097,8 +2284,7 @@ static gp_XYZ getNormale( const SMDS_MeshFace* theFace )
   gp_XYZ q1 = anArrOfXYZ.Value(2) - anArrOfXYZ.Value(1);
   gp_XYZ q2 = anArrOfXYZ.Value(3) - anArrOfXYZ.Value(1);
   n  = q1 ^ q2;
-  if ( aNbNode > 3 )
-  {
+  if ( aNbNode > 3 ) {
     gp_XYZ q3 = anArrOfXYZ.Value(4) - anArrOfXYZ.Value(1);
     n += q2 ^ q3;
   }
index fa4558db5bf7216c9f4e4bec04d1c594c913bfe0..db71dc43e128d98781fd029b957d1ee1e26577e5 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMESH_CONTROLS_HXX_
 #define _SMESH_CONTROLS_HXX_
index 9fd86a0339a0b95785423fde73ee35b6cc1bba94..c9b4dc0b9de9ab79d3bdb1dbaeeed6bb9fdee34b 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMESH_CONTROLSDEF_HXX_
 #define _SMESH_CONTROLSDEF_HXX_
@@ -135,6 +135,7 @@ namespace SMESH{
                            TSequenceOfXYZ& theRes);
     protected:
       const SMDS_Mesh* myMesh;
+      const SMDS_MeshElement* myCurrElement;
       long       myPrecision;
     };
   
index 159c1a85aa46ed101c1518b99d198a71e2510982..2225868e8fa4c4f822d17521edd09435f3bc8a4b 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "Driver_Document.h"
 
index 17a4236bc07c1edbde7f356ad1497732892b5ecb..4c3f0b8d0311f58ba9810a5504e0037b47941240 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVER_DOCUMENT
 #define _INCLUDE_DRIVER_DOCUMENT
index f656bdd5d312bb45589d783a8c597051ef7d5812..8d35c31b796107ab9f5e4cf1f6cc0fb61e00349b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 94415434aab3a59c74b1de2cf339639bdd796734..50a4a59b47ac59eec62a73d3d9a6a48adabdb0c0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index dae030df02d76a650f7779151937647aa81f4bed..50f178b983674677cec0f312736eeba7e6301ac4 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "Driver_SMDS_Mesh.h"
 
index 6a2be120d7f8116253d1c83e3d6d7c7b9429fc14..fa0ca827596bdd59b8baf71cc6082fc9ac600370 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVER_SMDS_MESH
 #define _INCLUDE_DRIVER_SMDS_MESH
index 2bf88277dc1f20d1841fb9aae392167b1bb023b0..faeeed88e9777a5cec21540505393239ab74de78 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "Driver_SMESHDS_Mesh.h"
 
index 6504e044cfc7a75fb8fea0031c985d6731450f0c..0013e86cc835281a6e9633ae90a2719d4b738883 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVER_SMESHDS_MESH
 #define _INCLUDE_DRIVER_SMESHDS_MESH
index d1c71416d6dba68068691a3178826c1d2b0fc63d..3cea30b31bd4ec89fc4f68dc73378a5fc0a51e1c 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -51,7 +51,7 @@ LIB_SERVER_IDL =
 CPPFLAGS += 
 CXXFLAGS += 
 
-LDFLAGS  += $(OCC_KERNEL_LIBS) -lTKTopAlgo -lSMESHDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil
+LDFLAGS  += $(OCC_KERNEL_LIBS) -lTKTopAlgo -lSMESHDS $(KERNEL_LDFLAGS) -lOpUtil
 
 
 @CONCLUDE@
index a36b4dd101e4955f2520ea1decf90d44c2f3241b..cd81b6e65f2b903edf65d9e7b32bbdeb0f9d5f79 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverDAT_R_SMDS_Mesh.h"
 #include "DriverDAT_W_SMDS_Mesh.h"
index a49d7dbf356c379a9892a6e7fe49785b5e456a82..431c94e0d9ee234984656382aeb0af35f60fa855 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <stdio.h>
 
index 3fb011078b19f7fddd7f3ebfe3b3bc6bd787194b..4186b8d134297366dbbfa2e3f22e2888c71369c0 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERDAT_R_SMDS_MESH
 #define _INCLUDE_DRIVERDAT_R_SMDS_MESH
index c7d9b2230c1a28feb9be9aad1168a8364bc445c4..9726bf15a9233f9bbd40c5388b0ca40f0c04f4fc 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverDAT_R_SMESHDS_Document.h"
index 6e550868493afd197232c907373087d2c357f43c..c26ca913e038859e7027536e812950b558c5104c 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERDAT_R_SMESHDS_DOCUMENT
 #define _INCLUDE_DRIVERDAT_R_SMESHDS_DOCUMENT
index a7e974f528e45741459fa7fe47737f01382f2a69..5101213c9fb670f35b83da45789b5c153dfe2107 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverDAT_R_SMESHDS_Mesh.h"
index 64fd36a1b8c5f1f2d3d217db0b4c03118724629f..0147ce4a5d0f44b61020cc8fd6919e1522c7c977 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERDAT_R_SMESHDS_MESH
 #define _INCLUDE_DRIVERDAT_R_SMESHDS_MESH
index 1f8d5ab61bd45d0ff85d58b30097a54938f08881..e48161c4eb00de56ab26260fc0fcc41b56a380e5 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <stdio.h>
 
@@ -32,7 +32,7 @@ Driver_Mesh::Status DriverDAT_W_SMDS_Mesh::Perform()
   Status aResult = DRS_OK;
 
   int nbNodes, nbCells;
-  int i;
+  //int i;
   
   char *file2Read = (char *)myFile.c_str();
   FILE* aFileId = fopen(file2Read, "w+");
@@ -52,7 +52,7 @@ Driver_Mesh::Status DriverDAT_W_SMDS_Mesh::Perform()
   nbNodes = myMesh->NbNodes();
   
   /* Combien de mailles, faces ou aretes ? */
-  int nb_of_nodes, nb_of_edges, nb_of_faces, nb_of_volumes;
+  int /*nb_of_nodes,*/ nb_of_edges, nb_of_faces, nb_of_volumes;
   nb_of_edges = myMesh->NbEdges();
   nb_of_faces = myMesh->NbFaces();
   nb_of_volumes = myMesh->NbVolumes();
index 43f13a9df94486a693ea0c9ac5c52d5b20280bfc..ce013c5b9816da71c6c38cac6b22be9c5489a805 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 1cd9699af416af72fa669d5fb048e43f8a86ec1b..37faa1d6f40c3ab13187678800cda233b26d6334 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverDAT_W_SMESHDS_Document.h"
index f9118f0e30a81e922500b332e7323c9837296968..802a2dee7774f833f217e3655256b0ac4101bbda 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERDAT_W_SMESHDS_DOCUMENT
 #define _INCLUDE_DRIVERDAT_W_SMESHDS_DOCUMENT
index e17c6cdd29247fd1107de464bf0d712fd5d353ae..7dc9fc830313e55fe903ddcebdcf27bb8b2a21b8 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverDAT_W_SMESHDS_Mesh.h"
index 35edc2b62a191ff238a21137749ebc96dbb7873b..3d18b59078d70169b02569146d5f8a12507178ea 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 41904009a351ac81e684de7d5e7f80232fcb1966..59c7d3355aea892fc3b89fec4e640c429ff744c8 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -49,11 +49,11 @@ LIB_CLIENT_IDL =
 LIB_SERVER_IDL =
 
 # additionnal information to compil and link file
-CPPFLAGS += -I${KERNEL_ROOT_DIR}/include/salome $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(KERNEL_CXXFLAGS) $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(KERNEL_CXXFLAGS)
 LDFLAGS  += -lMeshDriver $(OCC_KERNEL_LIBS)
 
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace -lSALOMEBasics
+LDFLAGSFORBIN += -lMeshDriver -lSMDS $(KERNEL_LDFLAGS) -lOpUtil -lSALOMELocalTrace -lSALOMEBasics
 
 @CONCLUDE@
 
index 47a923dbd29c0e2809ae13af41a8df7068db7670..ebd21783d30a864de549c566bd9099a05e60e2ea 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 using namespace std;
 
+//=============================================================================
+/*!
+ *  Default constructor
+ */
+//=============================================================================
+DriverMED_Family
+::DriverMED_Family():
+  myGroupAttributVal(0)
+{}
+
+
+//=============================================================================
+const ElementsSet& 
+DriverMED_Family
+::GetElements () const 
+{ 
+  return myElements; 
+}
+
+int 
+DriverMED_Family
+::GetId () const 
+{ 
+  return myId; 
+}
+
+void 
+DriverMED_Family
+::SetId (const int theId) 
+{ 
+  myId = theId; 
+}
+
+void
+DriverMED_Family
+::AddElement(const SMDS_MeshElement* theElement)
+{
+  myElements.insert(theElement); 
+}
+
+void
+DriverMED_Family
+::AddGroupName(std::string theGroupName)
+{
+  myGroupNames.insert(theGroupName); 
+}
+
+void
+DriverMED_Family
+::SetType(const SMDSAbs_ElementType theType) 
+{ 
+  myType = theType; 
+}
+
+SMDSAbs_ElementType
+DriverMED_Family
+::GetType()
+{
+  return myType; 
+}
+
+bool
+DriverMED_Family
+::MemberOf(std::string theGroupName) const
+{ 
+  return myGroupNames.find(theGroupName) != myGroupNames.end(); 
+}
+
+const MED::TStringSet& 
+DriverMED_Family
+::GetGroupNames () const 
+{ 
+  return myGroupNames; 
+}
+
+
+int 
+DriverMED_Family
+::GetGroupAttributVal() const 
+{
+  return myGroupAttributVal;
+} 
+
+void
+DriverMED_Family
+::SetGroupAttributVal( int theValue) 
+{
+  myGroupAttributVal = theValue;
+}
+
+bool
+DriverMED_Family
+::IsEmpty () const 
+{ 
+  return myElements.empty(); 
+}
+
 //=============================================================================
 /*!
  *  Split each group from list <aGroups> on some parts (families)
@@ -39,15 +136,16 @@ using namespace std;
  *  Resulting families have no common elements.
  */
 //=============================================================================
-list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
-                         (const map <int, SMESHDS_SubMesh*>& theSubMeshes,
-                          const list<SMESHDS_GroupBase*>& theGroups,
-                          const bool doGroupOfNodes,
-                          const bool doGroupOfEdges,
-                          const bool doGroupOfFaces,
-                          const bool doGroupOfVolumes)
+DriverMED_FamilyPtrList 
+DriverMED_Family
+::MakeFamilies(const SMESHDS_SubMeshPtrMap& theSubMeshes,
+              const SMESHDS_GroupBasePtrList& theGroups,
+              const bool doGroupOfNodes,
+              const bool doGroupOfEdges,
+              const bool doGroupOfFaces,
+              const bool doGroupOfVolumes)
 {
-  list<DriverMED_FamilyPtr> aFamilies;
+  DriverMED_FamilyPtrList aFamilies;
 
   string anAllNodesGroupName = "Group_Of_All_Nodes";
   string anAllEdgesGroupName = "Group_Of_All_Edges";
@@ -61,22 +159,23 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
   int aElemFamId = FIRST_ELEM_FAMILY;
 
   // Process sub-meshes
-  map<int, SMESHDS_SubMesh*>::const_iterator aSMIter = theSubMeshes.begin();
+  SMESHDS_SubMeshPtrMap::const_iterator aSMIter = theSubMeshes.begin();
   for (; aSMIter != theSubMeshes.end(); aSMIter++)
   {
-    if ( aSMIter->second->IsComplexSubmesh() )
+    const int anId = aSMIter->first;
+    SMESHDS_SubMesh* aSubMesh = aSMIter->second;
+    if ( aSubMesh->IsComplexSubmesh() )
       continue; // submesh containing other submeshs
-    list<DriverMED_FamilyPtr> aSMFams = SplitByType((*aSMIter).second, (*aSMIter).first);
-    list<DriverMED_FamilyPtr>::iterator aSMFamsIter = aSMFams.begin();
+    DriverMED_FamilyPtrList aSMFams = SplitByType(aSubMesh,anId);
+    DriverMED_FamilyPtrList::iterator aSMFamsIter = aSMFams.begin();
     for (; aSMFamsIter != aSMFams.end(); aSMFamsIter++)
     {
       DriverMED_FamilyPtr aFam2 = (*aSMFamsIter);
-
-      list<DriverMED_FamilyPtr>::iterator aFamsIter = aFamilies.begin();
+      DriverMED_FamilyPtrList::iterator aFamsIter = aFamilies.begin();
       while (aFamsIter != aFamilies.end())
       {
         DriverMED_FamilyPtr aFam1 = *aFamsIter;
-        list<DriverMED_FamilyPtr>::iterator aCurrIter = aFamsIter++;
+        DriverMED_FamilyPtrList::iterator aCurrIter = aFamsIter++;
         if (aFam1->myType == aFam2->myType)
         {
           DriverMED_FamilyPtr aCommon (new DriverMED_Family);
@@ -89,7 +188,8 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
           {
             aFamilies.erase(aCurrIter);
           }
-          if (aFam2->IsEmpty()) break;
+          if (aFam2->IsEmpty()) 
+           break;
         }
       }
       // The rest elements of family
@@ -101,30 +201,32 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
   }
 
   // Process groups
-  list<SMESHDS_GroupBase*>::const_iterator aGroupsIter = theGroups.begin();
+  SMESHDS_GroupBasePtrList::const_iterator aGroupsIter = theGroups.begin();
   for (; aGroupsIter != theGroups.end(); aGroupsIter++)
   {
     DriverMED_FamilyPtr aFam2 (new DriverMED_Family);
     aFam2->Init(*aGroupsIter);
 
-    list<DriverMED_FamilyPtr>::iterator aFamsIter = aFamilies.begin();
+    DriverMED_FamilyPtrList::iterator aFamsIter = aFamilies.begin();
     while (aFamsIter != aFamilies.end())
     {
       DriverMED_FamilyPtr aFam1 = *aFamsIter;
-      list<DriverMED_FamilyPtr>::iterator aCurrIter = aFamsIter++;
+      DriverMED_FamilyPtrList::iterator aCurrIter = aFamsIter++;
       if (aFam1->myType == aFam2->myType)
       {
         DriverMED_FamilyPtr aCommon (new DriverMED_Family);
         aFam1->Split(aFam2, aCommon);
         if (!aCommon->IsEmpty())
         {
+         aCommon->SetGroupAttributVal(0);
           aFamilies.push_back(aCommon);
         }
         if (aFam1->IsEmpty())
         {
           aFamilies.erase(aCurrIter);
         }
-        if (aFam2->IsEmpty()) break;
+        if (aFam2->IsEmpty()) 
+         break;
       }
     }
     // The rest elements of group
@@ -134,7 +236,7 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
     }
   }
 
-  list<DriverMED_FamilyPtr>::iterator aFamsIter = aFamilies.begin();
+  DriverMED_FamilyPtrList::iterator aFamsIter = aFamilies.begin();
   for (; aFamsIter != aFamilies.end(); aFamsIter++)
   {
     DriverMED_FamilyPtr aFam = *aFamsIter;
@@ -210,33 +312,33 @@ MED::PFamilyInfo
 DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper, 
                                const MED::PMeshInfo& theMeshInfo) const
 {
-  string aValue;
-
   ostringstream aStr;
-
   aStr << "FAM_" << myId;
   set<string>::const_iterator aGrIter = myGroupNames.begin();
-  for (; aGrIter != myGroupNames.end(); aGrIter++)
-  {
+  for(; aGrIter != myGroupNames.end(); aGrIter++){
     aStr << "_" << *aGrIter;
   }
 
-  aValue = aStr.str();
-  /*
-  MED::TStringVector anAttrDescs (1, "");  // 1 attribute with empty description,
-  MED::TIntVector anAttrIds (1, myId);        // Id=0,
-  MED::TIntVector anAttrVals (1, myId);       // Value=0
-  */
-  
-  MED::PFamilyInfo anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
-                                                    aValue,
-                                                    myId,
-                                                    myGroupNames);
-/*                                                  
-                                                   anAttrDescs,
-                                                   anAttrIds,
-                                                   anAttrVals);
-*/
+  MED::PFamilyInfo anInfo;
+  string aValue = aStr.str();
+  if(myId == 0){
+    anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
+                                     aValue,
+                                     myId,
+                                     myGroupNames);
+  }else{
+    MED::TStringVector anAttrDescs (1, "");  // 1 attribute with empty description,
+    MED::TIntVector anAttrIds (1, myId);        // Id=0,
+    MED::TIntVector anAttrVals (1);
+    anAttrVals[0] = myGroupAttributVal != 0? myGroupAttributVal: myId;
+    anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
+                                     aValue,
+                                     myId,
+                                     myGroupNames,
+                                     anAttrDescs,
+                                     anAttrIds,
+                                     anAttrVals);
+  }
 
 //  cout << endl;
 //  cout << "Groups: ";
@@ -279,6 +381,14 @@ void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
   // Groups list
   myGroupNames.clear();
   myGroupNames.insert(string(theGroup->GetStoreName()));
+
+  myGroupAttributVal = 0;
+  
+  if (theGroup->GetColorGroup()!=0)
+    {
+      myGroupAttributVal = theGroup->GetColorGroup();
+    }
+
 }
 
 //=============================================================================
@@ -287,10 +397,12 @@ void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
  *  on the basis of the elements type.
  */
 //=============================================================================
-list<DriverMED_FamilyPtr> DriverMED_Family::SplitByType (SMESHDS_SubMesh* theSubMesh,
-                                                         const int        theId)
+DriverMED_FamilyPtrList 
+DriverMED_Family
+::SplitByType (SMESHDS_SubMesh* theSubMesh,
+              const int        theId)
 {
-  list<DriverMED_FamilyPtr> aFamilies;
+  DriverMED_FamilyPtrList aFamilies;
   DriverMED_FamilyPtr aNodesFamily   (new DriverMED_Family);
   DriverMED_FamilyPtr anEdgesFamily  (new DriverMED_Family);
   DriverMED_FamilyPtr aFacesFamily   (new DriverMED_Family);
@@ -361,7 +473,7 @@ void DriverMED_Family::Split (DriverMED_FamilyPtr by,
                               DriverMED_FamilyPtr common)
 {
   // Elements
-  set<const SMDS_MeshElement *>::iterator anIter = by->myElements.begin();
+  ElementsSet::iterator anIter = by->myElements.begin();
   while ( anIter != by->myElements.end())
   {
     if (myElements.find(*anIter) != myElements.end())
@@ -378,7 +490,7 @@ void DriverMED_Family::Split (DriverMED_FamilyPtr by,
   {
     // Groups list
     common->myGroupNames = myGroupNames;
-    set<string>::iterator aGrNamesIter = by->myGroupNames.begin();
+    MED::TStringSet::iterator aGrNamesIter = by->myGroupNames.begin();
     for (; aGrNamesIter != by->myGroupNames.end(); aGrNamesIter++)
     {
       common->myGroupNames.insert(*aGrNamesIter);
index aaab3bd20b6b0654aa36546353f6fdb2128b2404..64ad65a566a15f542c2516c0dbe6aeb1db9b8091 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 class DriverMED_Family;
 typedef boost::shared_ptr<DriverMED_Family> DriverMED_FamilyPtr;
+typedef std::list<DriverMED_FamilyPtr> DriverMED_FamilyPtrList;
+typedef std::map<int,SMESHDS_SubMesh*> SMESHDS_SubMeshPtrMap;
+typedef std::list<SMESHDS_GroupBase*> SMESHDS_GroupBasePtrList;
+typedef std::set<const SMDS_MeshElement*> ElementsSet;
 
 class MESHDRIVERMED_EXPORT DriverMED_Family
 {
  public:
 
-  // Methods for groups storing to MED
-
-  static std::list<DriverMED_FamilyPtr> MakeFamilies (const std::map <int, SMESHDS_SubMesh*>& theSubMeshes,
-                                                     const std::list<SMESHDS_GroupBase*>& theGroups,
-                                                     const bool doGroupOfNodes,
-                                                     const bool doGroupOfEdges,
-                                                     const bool doGroupOfFaces,
-                                                     const bool doGroupOfVolumes);
-  // Split each group from list <theGroups> and each sub-mesh from list <theSubMeshes>
-  // on some parts (families) on the basis of the elements membership in other groups
-  // from <theGroups> and other sub-meshes from <theSubMeshes>.
-  // Resulting families have no common elements.
-
-  MED::PFamilyInfo GetFamilyInfo (const MED::PWrapper& theWrapper, 
-                                 const MED::PMeshInfo& theMeshInfo) const;
-  // Create TFamilyInfo for this family
-
-  const std::set<const SMDS_MeshElement *>& GetElements () const { return myElements; }
-  // Returns elements of this family
-
-  int GetId () const { return myId; }
-  // Returns a family ID
+  DriverMED_Family();
+
+  //! Methods for groups storing to MED
+  /*!
+    Split each group from list <theGroups> and each sub-mesh from list <theSubMeshes>
+    on some parts (families) on the basis of the elements membership in other groups
+    from <theGroups> and other sub-meshes from <theSubMeshes>.
+    Resulting families have no common elements.
+  */
+  static 
+  DriverMED_FamilyPtrList
+  MakeFamilies (const SMESHDS_SubMeshPtrMap& theSubMeshes,
+               const SMESHDS_GroupBasePtrList& theGroups,
+               const bool doGroupOfNodes,
+               const bool doGroupOfEdges,
+               const bool doGroupOfFaces,
+               const bool doGroupOfVolumes);
+
+  //! Create TFamilyInfo for this family
+  MED::PFamilyInfo 
+  GetFamilyInfo (const MED::PWrapper& theWrapper, 
+                const MED::PMeshInfo& theMeshInfo) const;
+
+  //! Returns elements of this family
+  const ElementsSet& GetElements () const;
+
+  //! Returns a family ID
+  int GetId () const;
+
+  //! Sets a family ID
+  void SetId (const int theId);
 
  public:
 
   // Methods for groups reading from MED
 
-  void AddElement (const SMDS_MeshElement* theElement) { myElements.insert(theElement); }
+  void AddElement(const SMDS_MeshElement* theElement);
 
-  void AddGroupName (std::string theGroupName) { myGroupNames.insert(theGroupName); }
+  const MED::TStringSet& GetGroupNames() const;
+  void AddGroupName(std::string theGroupName);
 
-  void SetType (const SMDSAbs_ElementType theType) { myType = theType; }
-  SMDSAbs_ElementType GetType () { return myType; }
+  void SetType(const SMDSAbs_ElementType theType);
+  SMDSAbs_ElementType GetType();
 
-  bool MemberOf (std::string theGroupName) const
-    { return (myGroupNames.find(theGroupName) != myGroupNames.end()); }
+  bool MemberOf(std::string theGroupName) const;
 
-  const MED::TStringSet& GetGroupNames () const { return myGroupNames; }
-
-  void SetId (const int theId) { myId = theId; }
-  // Sets a family ID
+  int GetGroupAttributVal() const;
+  void SetGroupAttributVal( int theValue);
 
  private:
+  //! Initialize the tool by SMESHDS_GroupBase
   void Init (SMESHDS_GroupBase* group);
-  // Initialize the tool by SMESHDS_GroupBase
 
-  static std::list<DriverMED_FamilyPtr> SplitByType (SMESHDS_SubMesh* theSubMesh,
-                                                    const int        theId);
-  // Split <theSubMesh> on some parts (families)
-  // on the basis of the elements type.
+  //! Split <theSubMesh> on some parts (families) on the basis of the elements type.
+  static
+  DriverMED_FamilyPtrList 
+  SplitByType(SMESHDS_SubMesh* theSubMesh,
+             const int        theId);
+
 
+  /*! Remove from <Elements> elements, common with <by>,
+    Remove from <by> elements, common with <Elements>,
+    Create family <common> from common elements, with combined groups list.
+  */
   void Split (DriverMED_FamilyPtr by,
              DriverMED_FamilyPtr common);
-  // Remove from <Elements> elements, common with <by>,
-  // Remove from <by> elements, common with <Elements>,
-  // Create family <common> from common elements, with combined groups list.
 
-  bool IsEmpty () const { return myElements.empty(); }
-  // Check, if this family has empty list of elements
+  //! Check, if this family has empty list of elements
+  bool IsEmpty () const;
+
 
  private:
   int                           myId;
   SMDSAbs_ElementType           myType;
-  std::set<const SMDS_MeshElement *> myElements;
+  ElementsSet                   myElements;
   MED::TStringSet               myGroupNames;
+  int                           myGroupAttributVal;
 };
 
 #endif
index cac48ff451784fd7cceb407730634a7c263b897c..6c9c4dabcfc873597f2fd14bed6d17e5e3518e32 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverMED_R_SMDS_Mesh.h"
index 29c7dc074fdd43ee35855d3e70d7fc2c69999fbe..6d488bed52dfb94e782875e290ceced5661721ae 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERMED_R_SMDS_MESH
 #define _INCLUDE_DRIVERMED_R_SMDS_MESH
index 9527382ad6a1c98f8adf309974e3a61e50ec1064..5843cd9cfac40acf079ede5aee8a5a71f022cdd8 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverMED_R_SMESHDS_Document.h"
index 137acbb4edf966aef4bcde52a468b8604d946f94..0672ebf37261537e1d8302762366cc36ecae9f05 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERMED_R_SMESHDS_DOCUMENT
 #define _INCLUDE_DRIVERMED_R_SMESHDS_DOCUMENT
index 44e05bf77693e714d4759da76232935d23c4761d..7e7c9b6ae3baac5b3bbde3b42e76c32278382299 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -41,6 +41,7 @@
 
 #ifdef _DEBUG_
 static int MYDEBUG = 0;
+//#define _DEXCEPT_
 #else
 static int MYDEBUG = 0;
 #endif
@@ -69,10 +70,12 @@ DriverMED_R_SMESHDS_Mesh
 ::Perform()
 {
   Status aResult = DRS_FAIL;
+#ifndef _DEXCEPT_
   try{
+#endif
     myFamilies.clear();
     if(MYDEBUG) MESSAGE("Perform - myFile : "<<myFile);
-    PWrapper aMed = CrWrapper(myFile);
+    PWrapper aMed = CrWrapper(myFile,true);
 
     aResult = DRS_EMPTY;
     if(TInt aNbMeshes = aMed->GetNbMeshes()){
@@ -80,6 +83,7 @@ DriverMED_R_SMESHDS_Mesh
        // Reading the MED mesh
        //---------------------
        PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1);
+
         string aMeshName;
         if (myMeshId != -1) {
           ostringstream aMeshNameStr;
@@ -91,6 +95,7 @@ DriverMED_R_SMESHDS_Mesh
        if(MYDEBUG) MESSAGE("Perform - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
        if(aMeshName != aMeshInfo->GetName()) continue;
         aResult = DRS_OK;
+
        //TInt aMeshDim = aMeshInfo->GetDim();
        
         // Reading MED families to the temporary structure
@@ -118,9 +123,16 @@ DriverMED_R_SMESHDS_Mesh
          }
         }
 
+       if (aMeshInfo->GetType() == MED::eSTRUCTURE){
+         bool aRes = buildMeshGrille(aMed,aMeshInfo);
+         continue;
+       }
+
         // Reading MED nodes to the corresponding SMDS structure
        //------------------------------------------------------
-       PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo);
+      PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo);
+       if(!aNodeInfo)
+         continue;
 
        PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo);
 
@@ -195,7 +207,9 @@ DriverMED_R_SMESHDS_Mesh
                 SMDS_MeshElement* anElement = NULL;
                 TInt aFamNum = aPolygoneInfo->GetFamNum(iElem);
 
+#ifndef _DEXCEPT_
                 try{
+#endif
                   if(anIsElemNum){
                    TInt anElemId = aPolygoneInfo->GetElemNum(iElem);
                     anElement = myMesh->AddPolygonalFaceWithID(aNodeIds,anElemId);
@@ -207,12 +221,13 @@ DriverMED_R_SMESHDS_Mesh
                     anElement = myMesh->AddPolygonalFace(aNodes);
                     isRenum = anIsElemNum;
                   }
+#ifndef _DEXCEPT_
                 }catch(const std::exception& exc){
                   aResult = DRS_FAIL;
                 }catch (...){
                   aResult = DRS_FAIL;
                 }
-
+#endif
                 if(!anElement){
                   aResult = DRS_WARN_SKIP_ELEM;
                 }else{
@@ -265,7 +280,9 @@ DriverMED_R_SMESHDS_Mesh
                SMDS_MeshElement* anElement = NULL;
                TInt aFamNum = aPolyedreInfo->GetFamNum(iElem);
                
+#ifndef _DEXCEPT_
                try{
+#endif
                  if(anIsElemNum){
                    TInt anElemId = aPolyedreInfo->GetElemNum(iElem);
                    anElement = myMesh->AddPolyhedralVolumeWithID(aNodeIds,aQuantities,anElemId);
@@ -277,12 +294,13 @@ DriverMED_R_SMESHDS_Mesh
                    anElement = myMesh->AddPolyhedralVolume(aNodes,aQuantities);
                    isRenum = anIsElemNum;
                  }
+#ifndef _DEXCEPT_
                }catch(const std::exception& exc){
                  aResult = DRS_FAIL;
                }catch(...){
                  aResult = DRS_FAIL;
                }
-               
+#endif         
                if(!anElement){
                  aResult = DRS_WARN_SKIP_ELEM;
                }else{
@@ -302,238 +320,388 @@ DriverMED_R_SMESHDS_Mesh
               break;
             }
            default: {
-             PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom);
-             EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX;
-             TInt aNbElems = aCellInfo->GetNbElem();
-             if(MYDEBUG) MESSAGE("Perform - anEntity = "<<anEntity<<"; anIsElemNum = "<<anIsElemNum);
-             if(MYDEBUG) MESSAGE("Perform - aGeom = "<<aGeom<<"; aNbElems = "<<aNbElems);
-             
-             for(int iElem = 0; iElem < aNbElems; iElem++){
-               TInt aNbNodes = -1;
-               switch(aGeom){
-               case eSEG2:
-               case eSEG3:
-                 aNbNodes = 2;
-                 break;
-               case eTRIA3:
-               case eTRIA6:
-                 aNbNodes = 3;
-                 break;
-                 break;
-               case eQUAD4:
-               case eQUAD8:
-                 aNbNodes = 4;
-                 break;
-               case eTETRA4:
-               case eTETRA10:
-                 aNbNodes = 4;
-                 break;
-               case ePYRA5:
-               case ePYRA13:
-                 aNbNodes = 5;
-                 break;
-               case ePENTA6:
-               case ePENTA15:
-                 aNbNodes = 6;
-                 break;
-               case eHEXA8:
-               case eHEXA20:
-                 aNbNodes = 8;
-                 break;
-               }
-               TNodeIds aNodeIds(aNbNodes);
-               bool anIsValidConnect = false;
-               TCConnSlice aConnSlice = aCellInfo->GetConnSlice(iElem);
-               try{
+              PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom);
+              EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX;
+              TInt aNbElems = aCellInfo->GetNbElem();
+              if(MYDEBUG) MESSAGE("Perform - anEntity = "<<anEntity<<"; anIsElemNum = "<<anIsElemNum);
+              if(MYDEBUG) MESSAGE("Perform - aGeom = "<<aGeom<<"; aNbElems = "<<aNbElems);
+
+              for(int iElem = 0; iElem < aNbElems; iElem++){
+                TInt aNbNodes = -1;
+                switch(aGeom){
+                case eSEG2:    aNbNodes = 2;  break;
+                case eSEG3:    aNbNodes = 3;  break;
+                case eTRIA3:   aNbNodes = 3;  break;
+                case eTRIA6:   aNbNodes = 6;  break;
+                case eQUAD4:   aNbNodes = 4;  break;
+                case eQUAD8:   aNbNodes = 8;  break;
+                case eTETRA4:  aNbNodes = 4;  break;
+                case eTETRA10: aNbNodes = 10; break;
+                case ePYRA5:   aNbNodes = 5;  break;
+                case ePYRA13:  aNbNodes = 13; break;
+                case ePENTA6:  aNbNodes = 6;  break;
+                case ePENTA15: aNbNodes = 15; break;
+                case eHEXA8:   aNbNodes = 8;  break;
+                case eHEXA20:  aNbNodes = 20; break;
+                default:;
+                }
+                vector<TInt> aNodeIds(aNbNodes);
+                bool anIsValidConnect = false;
+                TCConnSlice aConnSlice = aCellInfo->GetConnSlice(iElem);
+#ifndef _DEXCEPT_
+                try{
+#endif
 #ifdef _EDF_NODE_IDS_
-                 if(anIsNodeNum)
-                   for(int iNode = 0; iNode < aNbNodes; iNode++)
-                     aNodeIds[iNode] = aNodeInfo->GetElemNum(aConnSlice[iNode] - 1);
-                 else
-                   for(int iNode = 0; iNode < aNbNodes; iNode++)
-                     aNodeIds[iNode] = aConnSlice[iNode];
+                  if(anIsNodeNum)
+                    for(int iNode = 0; iNode < aNbNodes; iNode++)
+                      aNodeIds[iNode] = aNodeInfo->GetElemNum(aConnSlice[iNode] - 1);
+                  else
+                    for(int iNode = 0; iNode < aNbNodes; iNode++)
+                      aNodeIds[iNode] = aConnSlice[iNode];
 #else
-                 for(int iNode = 0; iNode < aNbNodes; iNode++)
-                   aNodeIds[iNode] = aConnSlice[iNode];
+                  for(int iNode = 0; iNode < aNbNodes; iNode++)
+                    aNodeIds[iNode] = aConnSlice[iNode];
 #endif
-                 anIsValidConnect = true;
-               }catch(const std::exception& exc){
-                 //INFOS("Follow exception was cought:\n\t"<<exc.what());
-                 aResult = DRS_FAIL;
-               }catch(...){
-                 //INFOS("Unknown exception was cought !!!");
-                 aResult = DRS_FAIL;
-               }
-               
-               if(!anIsValidConnect)
-                 continue;
-               
-               bool isRenum = false;
-               SMDS_MeshElement* anElement = NULL;
-               TInt aFamNum = aCellInfo->GetFamNum(iElem);
-               try{
-                 //MESSAGE("Try to create element # " << iElem << " with id = "
-                 //        << aCellInfo->GetElemNum(iElem));
-                 switch(aGeom){
-                 case eSEG2:
-                 case eSEG3:
-                   if(anIsElemNum)
-                     anElement = myMesh->AddEdgeWithID(aNodeIds[0],
-                                                       aNodeIds[1],
-                                                       aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddEdge(FindNode(myMesh,aNodeIds[0]),
-                                                 FindNode(myMesh,aNodeIds[1]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 case eTRIA3:
-                 case eTRIA6:
-                   aNbNodes = 3;
-                   if(anIsElemNum)
-                     anElement = myMesh->AddFaceWithID(aNodeIds[0],
-                                                       aNodeIds[1],
-                                                       aNodeIds[2],
-                                                       aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
-                                                 FindNode(myMesh,aNodeIds[1]),
-                                                 FindNode(myMesh,aNodeIds[2]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 case eQUAD4:
-                 case eQUAD8:
-                   aNbNodes = 4;
-                   // There is some differnce between SMDS and MED
-                   if(anIsElemNum)
-                     anElement = myMesh->AddFaceWithID(aNodeIds[0],
-                                                       aNodeIds[1],
-                                                       aNodeIds[2],
-                                                       aNodeIds[3],
-                                                       aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
-                                                 FindNode(myMesh,aNodeIds[1]),
-                                                 FindNode(myMesh,aNodeIds[2]),
-                                                 FindNode(myMesh,aNodeIds[3]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 case eTETRA4:
-                 case eTETRA10:
-                   aNbNodes = 4;
-                   if(anIsElemNum)
-                     anElement = myMesh->AddVolumeWithID(aNodeIds[0],
-                                                         aNodeIds[1],
-                                                         aNodeIds[2],
-                                                         aNodeIds[3],
-                                                         aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
-                                                   FindNode(myMesh,aNodeIds[1]),
-                                                   FindNode(myMesh,aNodeIds[2]),
-                                                   FindNode(myMesh,aNodeIds[3]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 case ePYRA5:
-                 case ePYRA13:
-                   aNbNodes = 5;
-                   // There is some differnce between SMDS and MED
-                   if(anIsElemNum)
-                     anElement = myMesh->AddVolumeWithID(aNodeIds[0],
-                                                         aNodeIds[1],
-                                                         aNodeIds[2],
-                                                         aNodeIds[3],
-                                                         aNodeIds[4],
-                                                         aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
-                                                   FindNode(myMesh,aNodeIds[1]),
-                                                   FindNode(myMesh,aNodeIds[2]),
-                                                   FindNode(myMesh,aNodeIds[3]),
-                                                   FindNode(myMesh,aNodeIds[4]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 case ePENTA6:
-                 case ePENTA15:
-                   aNbNodes = 6;
-                   if(anIsElemNum)
-                     anElement = myMesh->AddVolumeWithID(aNodeIds[0],
-                                                         aNodeIds[1],
-                                                         aNodeIds[2],
-                                                         aNodeIds[3],
-                                                         aNodeIds[4],
-                                                         aNodeIds[5],
-                                                         aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
-                                                   FindNode(myMesh,aNodeIds[1]),
-                                                   FindNode(myMesh,aNodeIds[2]),
-                                                   FindNode(myMesh,aNodeIds[3]),
-                                                   FindNode(myMesh,aNodeIds[4]),
-                                                   FindNode(myMesh,aNodeIds[5]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 case eHEXA8:
-                 case eHEXA20:
-                   aNbNodes = 8;
-                   if(anIsElemNum)
-                     anElement = myMesh->AddVolumeWithID(aNodeIds[0],
-                                                         aNodeIds[1],
-                                                         aNodeIds[2],
-                                                         aNodeIds[3],
-                                                         aNodeIds[4],
-                                                         aNodeIds[5],
-                                                         aNodeIds[6],
-                                                         aNodeIds[7],
-                                                         aCellInfo->GetElemNum(iElem));
-                   if (!anElement) {
-                     anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
-                                                   FindNode(myMesh,aNodeIds[1]),
-                                                   FindNode(myMesh,aNodeIds[2]),
-                                                   FindNode(myMesh,aNodeIds[3]),
-                                                   FindNode(myMesh,aNodeIds[4]),
-                                                   FindNode(myMesh,aNodeIds[5]),
-                                                   FindNode(myMesh,aNodeIds[6]),
-                                                   FindNode(myMesh,aNodeIds[7]));
-                     isRenum = anIsElemNum;
-                   }
-                   break;
-                 }
-               }catch(const std::exception& exc){
-                 //INFOS("Follow exception was cought:\n\t"<<exc.what());
-                 aResult = DRS_FAIL;
-               }catch(...){
-                 //INFOS("Unknown exception was cought !!!");
-                 aResult = DRS_FAIL;
-               }
-               
-               if (!anElement) {
-                 aResult = DRS_WARN_SKIP_ELEM;
-               }
-               else {
-                 if (isRenum) {
-                   anIsElemNum = eFAUX;
-                   takeNumbers = false;
-                   if (aResult < DRS_WARN_RENUMBER)
-                     aResult = DRS_WARN_RENUMBER;
-                 }
-                 if ( checkFamilyID ( aFamily, aFamNum )) {
-                   // Save reference to this element from its family
-                   myFamilies[aFamNum]->AddElement(anElement);
-                   myFamilies[aFamNum]->SetType(anElement->GetType());
-                 }
-               }
-             }
-           }}
-         }
-       }
+                  anIsValidConnect = true;
+#ifndef _DEXCEPT_
+                }catch(const std::exception& exc){
+                  //INFOS("Follow exception was cought:\n\t"<<exc.what());
+                  aResult = DRS_FAIL;
+                }catch(...){
+                  //INFOS("Unknown exception was cought !!!");
+                  aResult = DRS_FAIL;
+                }
+#endif          
+                if(!anIsValidConnect)
+                  continue;
+
+                bool isRenum = false;
+                SMDS_MeshElement* anElement = NULL;
+                TInt aFamNum = aCellInfo->GetFamNum(iElem);
+#ifndef _DEXCEPT_
+                try{
+#endif
+                  //MESSAGE("Try to create element # " << iElem << " with id = "
+                  //        << aCellInfo->GetElemNum(iElem));
+                  switch(aGeom){
+                  case eSEG2:
+                    if(anIsElemNum)
+                      anElement = myMesh->AddEdgeWithID(aNodeIds[0],
+                                                        aNodeIds[1],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddEdge(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eSEG3:
+                    if(anIsElemNum)
+                      anElement = myMesh->AddEdgeWithID(aNodeIds[0],
+                                                        aNodeIds[1],
+                                                        aNodeIds[2],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddEdge(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]),
+                                                  FindNode(myMesh,aNodeIds[2]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eTRIA3:
+                    aNbNodes = 3;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddFaceWithID(aNodeIds[0],
+                                                        aNodeIds[1],
+                                                        aNodeIds[2],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]),
+                                                  FindNode(myMesh,aNodeIds[2]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eTRIA6:
+                    aNbNodes = 6;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddFaceWithID(aNodeIds[0], aNodeIds[1],
+                                                        aNodeIds[2], aNodeIds[3],
+                                                        aNodeIds[4], aNodeIds[5],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]),
+                                                  FindNode(myMesh,aNodeIds[2]),
+                                                  FindNode(myMesh,aNodeIds[3]),
+                                                  FindNode(myMesh,aNodeIds[4]),
+                                                  FindNode(myMesh,aNodeIds[5]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eQUAD4:
+                    aNbNodes = 4;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddFaceWithID(aNodeIds[0], aNodeIds[1],
+                                                        aNodeIds[2], aNodeIds[3],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]),
+                                                  FindNode(myMesh,aNodeIds[2]),
+                                                  FindNode(myMesh,aNodeIds[3]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eQUAD8:
+                    aNbNodes = 8;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddFaceWithID(aNodeIds[0], aNodeIds[1],
+                                                        aNodeIds[2], aNodeIds[3],
+                                                        aNodeIds[4], aNodeIds[5],
+                                                        aNodeIds[6], aNodeIds[7],
+                                                        aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddFace(FindNode(myMesh,aNodeIds[0]),
+                                                  FindNode(myMesh,aNodeIds[1]),
+                                                  FindNode(myMesh,aNodeIds[2]),
+                                                  FindNode(myMesh,aNodeIds[3]),
+                                                  FindNode(myMesh,aNodeIds[4]),
+                                                  FindNode(myMesh,aNodeIds[5]),
+                                                  FindNode(myMesh,aNodeIds[6]),
+                                                  FindNode(myMesh,aNodeIds[7]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eTETRA4:
+                    aNbNodes = 4;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0], aNodeIds[1],
+                                                          aNodeIds[2], aNodeIds[3],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eTETRA10:
+                    aNbNodes = 10;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0], aNodeIds[1],
+                                                          aNodeIds[2], aNodeIds[3],
+                                                          aNodeIds[4], aNodeIds[5],
+                                                          aNodeIds[6], aNodeIds[7],
+                                                          aNodeIds[8], aNodeIds[9],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                    FindNode(myMesh,aNodeIds[4]),
+                                                    FindNode(myMesh,aNodeIds[5]),
+                                                    FindNode(myMesh,aNodeIds[6]),
+                                                    FindNode(myMesh,aNodeIds[7]),
+                                                    FindNode(myMesh,aNodeIds[8]),
+                                                    FindNode(myMesh,aNodeIds[9]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case ePYRA5:
+                    aNbNodes = 5;
+                    // There is some differnce between SMDS and MED
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0], aNodeIds[1],
+                                                          aNodeIds[2], aNodeIds[3],
+                                                          aNodeIds[4],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                    FindNode(myMesh,aNodeIds[4]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case ePYRA13:
+                    aNbNodes = 13;
+                    // There is some differnce between SMDS and MED
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0], aNodeIds[1],
+                                                          aNodeIds[2], aNodeIds[3],
+                                                          aNodeIds[4], aNodeIds[5],
+                                                          aNodeIds[6], aNodeIds[7],
+                                                          aNodeIds[8], aNodeIds[9],
+                                                          aNodeIds[10], aNodeIds[11],
+                                                          aNodeIds[12],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                    FindNode(myMesh,aNodeIds[4]),
+                                                    FindNode(myMesh,aNodeIds[5]),
+                                                    FindNode(myMesh,aNodeIds[6]),
+                                                    FindNode(myMesh,aNodeIds[7]),
+                                                    FindNode(myMesh,aNodeIds[8]),
+                                                    FindNode(myMesh,aNodeIds[9]),
+                                                    FindNode(myMesh,aNodeIds[10]),
+                                                    FindNode(myMesh,aNodeIds[11]),
+                                                    FindNode(myMesh,aNodeIds[12]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case ePENTA6:
+                    aNbNodes = 6;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0],
+                                                          aNodeIds[1],
+                                                          aNodeIds[2],
+                                                          aNodeIds[3],
+                                                          aNodeIds[4],
+                                                          aNodeIds[5],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                    FindNode(myMesh,aNodeIds[4]),
+                                                    FindNode(myMesh,aNodeIds[5]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case ePENTA15:
+                    aNbNodes = 15;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0], aNodeIds[1],
+                                                          aNodeIds[2], aNodeIds[3],
+                                                          aNodeIds[4], aNodeIds[5],
+                                                          aNodeIds[6], aNodeIds[7],
+                                                          aNodeIds[8], aNodeIds[9],
+                                                          aNodeIds[10], aNodeIds[11],
+                                                          aNodeIds[12], aNodeIds[13],
+                                                          aNodeIds[14],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                  FindNode(myMesh,aNodeIds[4]),
+                                                    FindNode(myMesh,aNodeIds[5]),
+                                                    FindNode(myMesh,aNodeIds[6]),
+                                                    FindNode(myMesh,aNodeIds[7]),
+                                                    FindNode(myMesh,aNodeIds[8]),
+                                                    FindNode(myMesh,aNodeIds[9]),
+                                                    FindNode(myMesh,aNodeIds[10]),
+                                                    FindNode(myMesh,aNodeIds[11]),
+                                                    FindNode(myMesh,aNodeIds[12]),
+                                                    FindNode(myMesh,aNodeIds[13]),
+                                                    FindNode(myMesh,aNodeIds[14]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eHEXA8:
+                    aNbNodes = 8;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0],
+                                                          aNodeIds[1],
+                                                          aNodeIds[2],
+                                                          aNodeIds[3],
+                                                          aNodeIds[4],
+                                                          aNodeIds[5],
+                                                          aNodeIds[6],
+                                                          aNodeIds[7],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                    FindNode(myMesh,aNodeIds[4]),
+                                                    FindNode(myMesh,aNodeIds[5]),
+                                                    FindNode(myMesh,aNodeIds[6]),
+                                                    FindNode(myMesh,aNodeIds[7]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  case eHEXA20:
+                    aNbNodes = 20;
+                    if(anIsElemNum)
+                      anElement = myMesh->AddVolumeWithID(aNodeIds[0], aNodeIds[1],
+                                                          aNodeIds[2], aNodeIds[3],
+                                                          aNodeIds[4], aNodeIds[5],
+                                                          aNodeIds[6], aNodeIds[7],
+                                                          aNodeIds[8], aNodeIds[9],
+                                                          aNodeIds[10], aNodeIds[11],
+                                                          aNodeIds[12], aNodeIds[13],
+                                                          aNodeIds[14], aNodeIds[15],
+                                                          aNodeIds[16], aNodeIds[17],
+                                                          aNodeIds[18], aNodeIds[19],
+                                                          aCellInfo->GetElemNum(iElem));
+                    if (!anElement) {
+                      anElement = myMesh->AddVolume(FindNode(myMesh,aNodeIds[0]),
+                                                    FindNode(myMesh,aNodeIds[1]),
+                                                    FindNode(myMesh,aNodeIds[2]),
+                                                    FindNode(myMesh,aNodeIds[3]),
+                                                    FindNode(myMesh,aNodeIds[4]),
+                                                    FindNode(myMesh,aNodeIds[5]),
+                                                    FindNode(myMesh,aNodeIds[6]),
+                                                    FindNode(myMesh,aNodeIds[7]),
+                                                    FindNode(myMesh,aNodeIds[8]),
+                                                    FindNode(myMesh,aNodeIds[9]),
+                                                    FindNode(myMesh,aNodeIds[10]),
+                                                    FindNode(myMesh,aNodeIds[11]),
+                                                    FindNode(myMesh,aNodeIds[12]),
+                                                    FindNode(myMesh,aNodeIds[13]),
+                                                    FindNode(myMesh,aNodeIds[14]),
+                                                    FindNode(myMesh,aNodeIds[15]),
+                                                    FindNode(myMesh,aNodeIds[16]),
+                                                    FindNode(myMesh,aNodeIds[17]),
+                                                    FindNode(myMesh,aNodeIds[18]),
+                                                    FindNode(myMesh,aNodeIds[19]));
+                      isRenum = anIsElemNum;
+                    }
+                    break;
+                  }
+#ifndef _DEXCEPT_
+                }catch(const std::exception& exc){
+                  //INFOS("Follow exception was cought:\n\t"<<exc.what());
+                  aResult = DRS_FAIL;
+                }catch(...){
+                  //INFOS("Unknown exception was cought !!!");
+                  aResult = DRS_FAIL;
+                }
+#endif          
+                if (!anElement) {
+                  aResult = DRS_WARN_SKIP_ELEM;
+                }
+                else {
+                  if (isRenum) {
+                    anIsElemNum = eFAUX;
+                    takeNumbers = false;
+                    if (aResult < DRS_WARN_RENUMBER)
+                      aResult = DRS_WARN_RENUMBER;
+                  }
+                  if ( checkFamilyID ( aFamily, aFamNum )) {
+                    // Save reference to this element from its family
+                    myFamilies[aFamNum]->AddElement(anElement);
+                    myFamilies[aFamNum]->SetType(anElement->GetType());
+                  }
+                }
+              }
+            }}
+          }
+        }
       }
     }
+#ifndef _DEXCEPT_
   }catch(const std::exception& exc){
     INFOS("Follow exception was cought:\n\t"<<exc.what());
     aResult = DRS_FAIL;
@@ -541,6 +709,7 @@ DriverMED_R_SMESHDS_Mesh
     INFOS("Unknown exception was cought !!!");
     aResult = DRS_FAIL;
   }
+#endif
   if(MYDEBUG) MESSAGE("Perform - aResult status = "<<aResult);
   return aResult;
 }
@@ -723,3 +892,86 @@ bool DriverMED_R_SMESHDS_Mesh::checkFamilyID(DriverMED_FamilyPtr & aFamily, int
   return ( aFamily->GetId() == anID );
 }
 
+
+/*! \brief Reading the structured mesh and convert to non structured (by filling of smesh structure for non structured mesh)
+ * \param theWrapper  - PWrapper const pointer
+ * \param theMeshInfo - PMeshInfo const pointer
+ * \return TRUE, if successfully. Else FALSE
+ */
+bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper,
+                                              const MED::PMeshInfo& theMeshInfo)
+{
+  bool res = true;
+
+  MED::PGrilleInfo aGrilleInfo = theWrapper->GetPGrilleInfo(theMeshInfo);
+  MED::TInt aNbNodes = aGrilleInfo->GetNbNodes();
+  MED::TInt aNbCells = aGrilleInfo->GetNbCells();
+  MED::TInt aMeshDim = theMeshInfo->GetDim();
+  DriverMED_FamilyPtr aFamily;
+  for(MED::TInt iNode=0;iNode < aNbNodes; iNode++){
+    double aCoords[3] = {0.0, 0.0, 0.0};
+    const SMDS_MeshNode* aNode;
+    MED::TNodeCoord aMEDNodeCoord = aGrilleInfo->GetCoord(iNode);
+    for(MED::TInt iDim=0;iDim<aMeshDim;iDim++)
+      aCoords[(int)iDim] = aMEDNodeCoord[(int)iDim];
+    aNode = myMesh->AddNodeWithID(aCoords[0],aCoords[1],aCoords[2],(int)iNode);
+  }
+
+  /* not implemented FAMILY
+     
+  TInt aFamNum = aNodeInfo->GetFamNum(iElem);
+  if ( checkFamilyID ( aFamily, aFamNum ))
+    {
+      aFamily->AddElement(aNode);
+      aFamily->SetType(SMDSAbs_Node);
+    }
+    
+  */
+
+  SMDS_MeshElement* anElement = NULL;
+  MED::TIntVector aNodeIds;
+  for(MED::TInt iCell=0;iCell < aNbCells; iCell++){
+    aNodeIds = aGrilleInfo->GetConn(iCell);
+    switch(aGrilleInfo->GetGeom()){
+    case MED::eSEG2:
+      if(aNodeIds.size() != 2){
+       res = false;
+       EXCEPTION(runtime_error,"buildMeshGrille Error. Incorrect size of ids 2!="<<aNodeIds.size());
+      }
+      anElement = myMesh->AddEdgeWithID(aNodeIds[0],
+                                       aNodeIds[1],
+                                       iCell);
+      break;
+    case MED::eQUAD4:
+      if(aNodeIds.size() != 4){
+       res = false;
+       EXCEPTION(runtime_error,"buildMeshGrille Error. Incorrect size of ids 4!="<<aNodeIds.size());
+      }
+      anElement = myMesh->AddFaceWithID(aNodeIds[0],
+                                       aNodeIds[2],
+                                       aNodeIds[3],
+                                       aNodeIds[1],
+                                       iCell);
+      break;
+    case MED::eHEXA8:
+      if(aNodeIds.size() != 8){
+       res = false;
+       EXCEPTION(runtime_error,"buildMeshGrille Error. Incorrect size of ids 8!="<<aNodeIds.size());
+      }
+      anElement = myMesh->AddVolumeWithID(aNodeIds[0],
+                                         aNodeIds[2],
+                                         aNodeIds[3],
+                                         aNodeIds[1],
+                                         aNodeIds[4],
+                                         aNodeIds[6],
+                                         aNodeIds[7],
+                                         aNodeIds[5],
+                                         iCell);
+      break;
+    default:
+      break;
+    }
+  }
+
+  return res;
+}
index f83ce8ac3504648de0cbdf1968f5eaa820576606..4bd85556e509acf673d4c45873b95a68702215df 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -62,6 +62,9 @@ class MESHDRIVERMED_EXPORT DriverMED_R_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
    */
   bool checkFamilyID(DriverMED_FamilyPtr & aFamily, int anID) const;
 
+  bool buildMeshGrille(const MED::PWrapper& theWrapper,
+                      const MED::PMeshInfo& theMeshInfo);
+
  private:
   std::string myMeshName;
   std::map<int, DriverMED_FamilyPtr> myFamilies;
index d48e08547e136a6e1ae3a92913a89864f224ccaf..8a26e88527fe88521d77e205717403ab53d32584 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverMED_W_SMDS_Mesh.h"
index 5b348e6b475bc33efa054427abd6c4702d7840ec..b36b663e9c24fc652e1c6741c7a205b94bef2605 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERMED_W_SMDS_MESH
 #define _INCLUDE_DRIVERMED_W_SMDS_MESH
index d0537c23a7bdfe00fa9bd0da74ca6a3911110799..44353fd49e8bc1669348af0493d0cfc31584b7e4 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 0efe1709b2809ed424a0942480a459889fa26474..681a99ae4d1724ba4f2022cfa383ba4144fc9f19 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERMED_W_SMESHDS_DOCUMENT
 #define _INCLUDE_DRIVERMED_W_SMESHDS_DOCUMENT
index 22b33cf63a5c195834cfa3ef4167fede8c21300b..634accfba901519605222d0dd4e09473207e7f69 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -393,39 +393,90 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
 #ifdef _ELEMENTS_BY_DIM_
       SMDS_MED_ENTITY = eARETE;
 #endif
+      // count edges of diff types
+      int aNbSeg3 = 0, aNbSeg2 = 0;
       SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
-      TInt aNbConnectivity = MED::GetNbNodes(eSEG2);
-      MED::TIntVector anElemNums(aNbElems);
-      MED::TIntVector aFamilyNums(aNbElems);
-      MED::TIntVector aConnectivity(aNbElems*aNbConnectivity);
-
-      for(TInt iElem = 0, iConn = 0; anIter->more(); iElem++, iConn+=aNbConnectivity){
+      while ( anIter->more() )
+        if ( anIter->next()->NbNodes() == 3 )
+          ++aNbSeg3;
+      aNbSeg2 = aNbElems - aNbSeg3;
+
+      TInt aNbSeg2Conn = MED::GetNbNodes(eSEG2);
+      MED::TIntVector aSeg2ElemNums, aSeg2FamilyNums, aSeg2Conn;
+      aSeg2ElemNums  .reserve( aNbSeg2 );
+      aSeg2FamilyNums.reserve( aNbSeg2 );
+      aSeg2Conn      .reserve( aNbSeg2*aNbSeg2Conn );
+
+      TInt aNbSeg3Conn = MED::GetNbNodes(eSEG3);
+      MED::TIntVector aSeg3ElemNums, aSeg3FamilyNums, aSeg3Conn;
+      aSeg3ElemNums  .reserve( aNbSeg3 );
+      aSeg3FamilyNums.reserve( aNbSeg3 );
+      aSeg3Conn      .reserve( aNbSeg3*aNbSeg3Conn );
+
+      anIter = myMesh->edgesIterator();
+      while ( anIter->more() ) {
        const SMDS_MeshEdge* anElem = anIter->next();
-       SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
-       for(TInt iNode = 0; iNode < aNbConnectivity && aNodesIter->more(); iNode++){
-         const SMDS_MeshElement* aNode = aNodesIter->next();
+       TInt aNbNodes = anElem->NbNodes();
+
+       TInt aNbConnectivity;
+       MED::TIntVector* anElemNums;
+        MED::TIntVector* aFamilyNums;
+       MED::TIntVector* aConnectivity;
+        switch(aNbNodes){
+        case 2:
+          aNbConnectivity = aNbSeg2Conn;
+          anElemNums      = &aSeg2ElemNums;
+          aFamilyNums     = &aSeg2FamilyNums;
+          aConnectivity   = &aSeg2Conn;
+          break;
+        case 3:
+          aNbConnectivity = aNbSeg3Conn;
+          anElemNums      = &aSeg3ElemNums;
+          aFamilyNums     = &aSeg3FamilyNums;
+          aConnectivity   = &aSeg3Conn;
+          break;
+        default:
+          break;
+        }
+
+        for(TInt iNode = 0; iNode < aNbNodes; iNode++) {
+         const SMDS_MeshElement* aNode = anElem->GetNode( iNode );
 #ifdef _EDF_NODE_IDS_
-         aConnectivity[iConn+iNode] = aNodeIdMap[aNode->GetID()];
+         aConnectivity->push_back( aNodeIdMap[aNode->GetID()] );
 #else
-         aConnectivity[iConn+iNode] = aNode->GetID();
+         aConnectivity->push_back( aNode->GetID() );
 #endif
-       }
-       anElemNums[iElem] = anElem->GetID();
+        }
 
-        if (anElemFamMap.find(anElem) != anElemFamMap.end())
-          aFamilyNums[iElem] = anElemFamMap[anElem];
+       anElemNums->push_back(anElem->GetID());
+
+        map<const SMDS_MeshElement*,int>::iterator edge_fam = anElemFamMap.find( anElem );
+        if ( edge_fam != anElemFamMap.end() )
+          aFamilyNums->push_back( edge_fam->second );
         else
-          aFamilyNums[iElem] = myEdgesDefaultFamilyId;
+          aFamilyNums->push_back( myFacesDefaultFamilyId );
       }
       
-      PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
-                                             SMDS_MED_ENTITY,
-                                             eSEG2,
-                                             aConnectivity,
-                                             SMDS_MED_CONNECTIVITY,
-                                             aFamilyNums,
-                                             anElemNums);
-      myMed->SetCellInfo(aCellInfo);
+      if ( aNbSeg2 ) {
+        PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                                SMDS_MED_ENTITY,
+                                                eSEG2,
+                                                aSeg2Conn,
+                                                SMDS_MED_CONNECTIVITY,
+                                                aSeg2FamilyNums,
+                                                aSeg2ElemNums);
+        myMed->SetCellInfo(aCellInfo);
+      }
+      if ( aNbSeg3 ) {
+        PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                                SMDS_MED_ENTITY,
+                                                eSEG3,
+                                                aSeg3Conn,
+                                                SMDS_MED_CONNECTIVITY,
+                                                aSeg3FamilyNums,
+                                                aSeg3ElemNums);
+        myMed->SetCellInfo(aCellInfo);
+      }
     }
 
     // Storing SMDS Faces
@@ -442,6 +493,14 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
       MED::TIntVector aTriaConn;
       aTriaConn.reserve(aNbElems*aNbTriaConn);
 
+      TInt aNbTria6Conn = MED::GetNbNodes(eTRIA6);
+      MED::TIntVector anTria6ElemNums; 
+      anTria6ElemNums.reserve(aNbElems);
+      MED::TIntVector aTria6FamilyNums;
+      aTria6FamilyNums.reserve(aNbElems);
+      MED::TIntVector aTria6Conn;
+      aTria6Conn.reserve(aNbElems*aNbTria6Conn);
+
       TInt aNbQuadConn = MED::GetNbNodes(eQUAD4);
       MED::TIntVector aQuadElemNums;
       aQuadElemNums.reserve(aNbElems);
@@ -450,6 +509,14 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
       MED::TIntVector aQuadConn;
       aQuadConn.reserve(aNbElems*aNbQuadConn);
 
+      TInt aNbQuad8Conn = MED::GetNbNodes(eQUAD8);
+      MED::TIntVector aQuad8ElemNums;
+      aQuad8ElemNums.reserve(aNbElems);
+      MED::TIntVector aQuad8FamilyNums;
+      aQuad8FamilyNums.reserve(aNbElems);
+      MED::TIntVector aQuad8Conn;
+      aQuad8Conn.reserve(aNbElems*aNbQuad8Conn);
+
       MED::TIntVector aPolygoneElemNums;
       aPolygoneElemNums.reserve(aNbElems);
       MED::TIntVector aPolygoneInds;
@@ -473,7 +540,8 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
           anElemNums = &aPolygoneElemNums;
           aFamilyNums = &aPolygoneFamilyNums;
           aConnectivity = &aPolygoneConn;
-        } else {
+        }
+        else {
           switch(aNbNodes){
           case 3:
             aNbConnectivity = aNbTriaConn;
@@ -487,6 +555,18 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
             aFamilyNums = &aQuadFamilyNums;
             aConnectivity = &aQuadConn;
             break;
+          case 6:
+            aNbConnectivity = aNbTria6Conn;
+            anElemNums = &anTria6ElemNums;
+            aFamilyNums = &aTria6FamilyNums;
+            aConnectivity = &aTria6Conn;
+            break;
+          case 8:
+            aNbConnectivity = aNbQuad8Conn;
+            anElemNums = &aQuad8ElemNums;
+            aFamilyNums = &aQuad8FamilyNums;
+            aConnectivity = &aQuad8Conn;
+            break;
           default:
             break;
           }
@@ -550,6 +630,28 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
        MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<eQUAD4<<"; aNbElems = "<<aNbElems);
        myMed->SetCellInfo(aCellInfo);
       }
+      if(TInt aNbElems = anTria6ElemNums.size()){
+       PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                               SMDS_MED_ENTITY,
+                                               eTRIA6,
+                                               aTria6Conn,
+                                               SMDS_MED_CONNECTIVITY,
+                                               aTria6FamilyNums,
+                                               anTria6ElemNums);
+       MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<eTRIA6<<"; aNbElems = "<<aNbElems);
+       myMed->SetCellInfo(aCellInfo);
+      }
+      if(TInt aNbElems = aQuad8ElemNums.size()){
+       PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                               SMDS_MED_ENTITY,
+                                               eQUAD8,
+                                               aQuad8Conn,
+                                               SMDS_MED_CONNECTIVITY,
+                                               aQuad8FamilyNums,
+                                               aQuad8ElemNums);
+       MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<eQUAD8<<"; aNbElems = "<<aNbElems);
+       myMed->SetCellInfo(aCellInfo);
+      }
       if(TInt aNbElems = aPolygoneElemNums.size()){
         // add one element in connectivities,
         // referenced by the last element in indices
@@ -606,6 +708,38 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
       MED::TIntVector aHexaConn;
       aHexaConn.reserve(aNbElems*aNbHexaConn);
 
+      TInt aNbTetra10Conn = MED::GetNbNodes(eTETRA10);
+      MED::TIntVector anTetra10ElemNums; 
+      anTetra10ElemNums.reserve(aNbElems);
+      MED::TIntVector aTetra10FamilyNums;
+      aTetra10FamilyNums.reserve(aNbElems);
+      MED::TIntVector aTetra10Conn;
+      aTetra10Conn.reserve(aNbElems*aNbTetra10Conn);
+
+      TInt aNbPyra13Conn = MED::GetNbNodes(ePYRA13);
+      MED::TIntVector anPyra13ElemNums; 
+      anPyra13ElemNums.reserve(aNbElems);
+      MED::TIntVector aPyra13FamilyNums;
+      aPyra13FamilyNums.reserve(aNbElems);
+      MED::TIntVector aPyra13Conn;
+      aPyra13Conn.reserve(aNbElems*aNbPyra13Conn);
+
+      TInt aNbPenta15Conn = MED::GetNbNodes(ePENTA15);
+      MED::TIntVector anPenta15ElemNums; 
+      anPenta15ElemNums.reserve(aNbElems);
+      MED::TIntVector aPenta15FamilyNums;
+      aPenta15FamilyNums.reserve(aNbElems);
+      MED::TIntVector aPenta15Conn;
+      aPenta15Conn.reserve(aNbElems*aNbPenta15Conn);
+
+      TInt aNbHexa20Conn = MED::GetNbNodes(eHEXA20);
+      MED::TIntVector aHexa20ElemNums;
+      aHexa20ElemNums.reserve(aNbElems);
+      MED::TIntVector aHexa20FamilyNums;
+      aHexa20FamilyNums.reserve(aNbElems);
+      MED::TIntVector aHexa20Conn;
+      aHexa20Conn.reserve(aNbElems*aNbHexa20Conn);
+
       MED::TIntVector aPolyedreElemNums;
       aPolyedreElemNums.reserve(aNbElems);
       MED::TIntVector aPolyedreInds;
@@ -653,7 +787,8 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
           TInt aPrevPos = aPolyedreInds.back();
           aPolyedreInds.push_back(aPrevPos + aNbFaces);
 
-        } else {
+        }
+        else {
           TInt aNbNodes = anElem->NbNodes();
           SMDS_ElemIteratorPtr aNodesIter = anElem->nodesIterator();
           TInt aNbConnectivity;
@@ -682,6 +817,30 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
             anElemNums = &aHexaElemNums;
             aFamilyNums = &aHexaFamilyNums;
             aConnectivity = &aHexaConn;
+           break;
+          case 10:
+            aNbConnectivity = aNbTetra10Conn;
+            anElemNums = &anTetra10ElemNums;
+            aFamilyNums = &aTetra10FamilyNums;
+            aConnectivity = &aTetra10Conn;
+            break;
+          case 13:
+            aNbConnectivity = aNbPyra13Conn;
+            anElemNums = &anPyra13ElemNums;
+            aFamilyNums = &aPyra13FamilyNums;
+            aConnectivity = &aPyra13Conn;
+            break;
+          case 15:
+            aNbConnectivity = aNbPenta15Conn;
+            anElemNums = &anPenta15ElemNums;
+            aFamilyNums = &aPenta15FamilyNums;
+            aConnectivity = &aPenta15Conn;
+            break;
+          case 20:
+            aNbConnectivity = aNbHexa20Conn;
+            anElemNums = &aHexa20ElemNums;
+            aFamilyNums = &aHexa20FamilyNums;
+            aConnectivity = &aHexa20Conn;
           }
 
           TInt aSize = aConnectivity->size();
@@ -762,6 +921,51 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
        MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<eHEXA8<<"; aNbElems = "<<aNbElems);
        myMed->SetCellInfo(aCellInfo);
       }
+      if(TInt aNbElems = anTetra10ElemNums.size()){
+       PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                               SMDS_MED_ENTITY,
+                                               eTETRA10,
+                                               aTetra10Conn,
+                                               SMDS_MED_CONNECTIVITY,
+                                               aTetra10FamilyNums,
+                                               anTetra10ElemNums);
+       MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<eTETRA10<<"; aNbElems = "<<aNbElems);
+       myMed->SetCellInfo(aCellInfo);
+      }
+      if(TInt aNbElems = anPyra13ElemNums.size()){
+       PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                               SMDS_MED_ENTITY,
+                                               ePYRA13,
+                                               aPyra13Conn,
+                                               SMDS_MED_CONNECTIVITY,
+                                               aPyra13FamilyNums,
+                                               anPyra13ElemNums);
+       MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<ePYRA13<<"; aNbElems = "<<aNbElems);
+       myMed->SetCellInfo(aCellInfo);
+      }
+      if(TInt aNbElems = anPenta15ElemNums.size()){
+       PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                               SMDS_MED_ENTITY,
+                                               ePENTA15,
+                                               aPenta15Conn,
+                                               SMDS_MED_CONNECTIVITY,
+                                               aPenta15FamilyNums,
+                                               anPenta15ElemNums);
+       MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<ePENTA15<<"; aNbElems = "<<aNbElems);
+       myMed->SetCellInfo(aCellInfo);
+      }
+      if(TInt aNbElems = aHexa20ElemNums.size()){
+       PCellInfo aCellInfo = myMed->CrCellInfo(aMeshInfo,
+                                               SMDS_MED_ENTITY,
+                                               eHEXA20,
+                                               aHexa20Conn,
+                                               SMDS_MED_CONNECTIVITY,
+                                               aHexa20FamilyNums,
+                                               aHexa20ElemNums);
+       MESSAGE("Perform - anEntity = "<<SMDS_MED_ENTITY<<"; aGeom = "<<eHEXA20<<"; aNbElems = "<<aNbElems);
+       myMed->SetCellInfo(aCellInfo);
+      }
+
       if(TInt aNbElems = aPolyedreElemNums.size()){
         // add one element in connectivities,
         // referenced by the last element in faces
@@ -780,9 +984,11 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
        myMed->SetPolyedreInfo(aCellInfo);
       }
     }
-  }catch(const std::exception& exc){
+  }
+  catch(const std::exception& exc) {
     INFOS("Follow exception was cought:\n\t"<<exc.what());
-  }catch(...){
+  }
+  catch(...) {
     INFOS("Unknown exception was cought !!!");
   }
 
index fa1e608da24198d3a3962d0047560d398e985998..80f79229893c93003dce191abdcba74c5320ce6e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 7d6c3cd21d250cd97ba0138c8fa1c3b499c1c346..0bde26f7975624b3afec9b9fe0cad03149161abd 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverMED_R_SMESHDS_Mesh.h"
 #include "DriverMED_W_SMESHDS_Mesh.h"
index a908156549134a2fb74864186bee5994038f5c8d..587ca8fe2e80a5c0cf908b6b2097bc85be8b8673 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -59,11 +59,11 @@ LIB_CLIENT_IDL =
 LIB_SERVER_IDL =
 
 # additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${MED_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS += $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += -lMeshDriver -L${MED_ROOT_DIR}/lib/salome -lMEDWrapper
+CPPFLAGS += $(OCC_INCLUDES) $(MED_CXXFLAGS) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(OCC_CXXFLAGS) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS)
+LDFLAGS  += -lMeshDriver $(MED_LDFLAGS) -lMEDWrapper
 
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -lSMESHDS -L${KERNEL_ROOT_DIR}/lib/salome -L${MED_ROOT_DIR}/lib/salome -lMEDWrapper -lMEDWrapperBase -lMEDWrapper_V2_1 -lmed_V2_1 -lMEDWrapper_V2_2 -lOpUtil -lSALOMELocalTrace -lSALOMEBasics
+LDFLAGSFORBIN += -lMeshDriver -lSMDS -lSMESHDS $(KERNEL_LDFLAGS) $(MED_LDFLAGS) -lMEDWrapper -lMEDWrapperBase -lMEDWrapper_V2_1 -lmed_V2_1 -lMEDWrapper_V2_2 -lOpUtil -lSALOMELocalTrace -lSALOMEBasics
 
 @CONCLUDE@
 
index 2064453af0c8a91a3abbe646b226a305acbe1d33..16e9cabf4b62d7e7114cbf859fca15236d8b2494 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <stdio.h>
 #include <gp_Pnt.hxx>
index 078e88e185a0c3f1df7fb959b8b74c888d6e6db5..5253bf0748c276ad5abded9928a3b05f088d163f 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERSTL_R_SMDS_MESH
 #define _INCLUDE_DRIVERSTL_R_SMDS_MESH
index 04ce4058a724f18879cecfc256a2859fab3c57ec..8b2ed581bfee5bf73162243e4a8ff48ad04796d9 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <stdio.h>
 
@@ -228,7 +228,7 @@ Driver_Mesh::Status DriverSTL_W_SMDS_Mesh::writeBinary() const
   }
 
   // write number of triangles
-  unsigned int NBT = nbTri;
+  //unsigned int NBT = nbTri;
   aFile.Write((Standard_Address)sval,LABEL_SIZE);
   writeInteger(nbTri,aFile);  
 
index 30fb26ec68f17841e08abaf3355a034d8ea98226..e320415ffa794f9069367b6b3e80a70c632d9238 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 558ae2d3123ae4fd914df82d64fb6ab4867b12df..76c594f62d187ae832a4637463a96de93e83e948 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -49,11 +49,11 @@ LIB_CLIENT_IDL =
 LIB_SERVER_IDL =
 
 # additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(OCC_INCLUDES) $(KERNEL_CXXFLAGS) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(OCC_CXXFLAGS) $(KERNEL_CXXFLAGS)
 LDFLAGS  += $(OCC_KERNEL_LIBS) -lMeshDriver -lTKSTL -lTKTopAlgo -lTKMesh
 
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace -lSALOMEBasics $(OCC_KERNEL_LIBS) -lTKSTL -lTKTopAlgo -lTKMesh -lTKBO
+LDFLAGSFORBIN += -lMeshDriver -lSMDS $(KERNEL_LDFLAGS) -lOpUtil -lSALOMELocalTrace -lSALOMEBasics $(OCC_KERNEL_LIBS) -lTKSTL -lTKTopAlgo -lTKMesh -lTKBO
 
 @CONCLUDE@
 
index 78dc0df71a389924973613b4068bd13aa3410880..95a2e2d6b41e14b76fcf8b2843a745d26f463f0a 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 //#include "DriverSTL_R_SMDS_Mesh.h"
 #include "DriverSTL_W_SMDS_Mesh.h"
index 12c091632e06d569d32d85bbf77864339de311d2..77a439a7d194bc237384b831601ea8270ddf715e 100644 (file)
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 #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;
@@ -64,11 +73,21 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
        SMDS_MeshElement* anElement = NULL;
        const TElementLab& aLabel = anIter->first;
        const TRecord& aRec = anIter->second;
-       if(IsBeam(aRec.fe_descriptor_id)){
-         anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
-                                           aRec.node_labels[1],
-                                           aLabel);
-       }else if(IsFace(aRec.fe_descriptor_id)){
+       if(IsBeam(aRec.fe_descriptor_id)) {
+          switch ( aRec.node_labels.size() ) {
+          case 2: // edge with two nodes
+            anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
+                                              aRec.node_labels[1],
+                                              aLabel);
+            break;
+          case 3: // quadratic edge (with 3 nodes)
+            anElement = myMesh->AddEdgeWithID(aRec.node_labels[0],
+                                              aRec.node_labels[2],
+                                              aRec.node_labels[1],
+                                              aLabel);
+          }
+       }
+        else if(IsFace(aRec.fe_descriptor_id)) {
          switch(aRec.fe_descriptor_id){
          case 71: // TRI3
          case 72:
@@ -76,43 +95,75 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
            
          case 41: // Plane Stress Linear Triangle - TRI3
          case 91: // Thin Shell Linear Triangle - TRI3
+           anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
+                                             aRec.node_labels[1],
+                                             aRec.node_labels[2],
+                                             aLabel);
+           break;
            
          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[4],
+                                             aRec.node_labels[1],
+                                             aRec.node_labels[3],
+                                             aRec.node_labels[5],
                                              aLabel);
            break;
            
          case 44: // Plane Stress Linear Quadrilateral - QUAD4
          case 94: // Thin Shell   Linear Quadrilateral -  QUAD4
+           anElement = myMesh->AddFaceWithID(aRec.node_labels[0],
+                                             aRec.node_labels[1],
+                                             aRec.node_labels[2],
+                                             aRec.node_labels[3],
+                                             aLabel);
+           break;
            
          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[4],
+                                             aRec.node_labels[6],
+                                             aRec.node_labels[1],
                                              aRec.node_labels[3],
+                                             aRec.node_labels[5],
+                                             aRec.node_labels[7],
                                              aLabel);
            break;
          }
-       }else if(IsVolume(aRec.fe_descriptor_id)){
+       }
+        else if(IsVolume(aRec.fe_descriptor_id)){
          switch(aRec.fe_descriptor_id){
            
          case 111: // Solid Linear Tetrahedron - TET4
-         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],
                                                aLabel);
            break;
+
+         case 118: // Solid Quadratic Tetrahedron - TET10
+           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
+                                               aRec.node_labels[4],
+                                               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;
            
          case 112: // Solid Linear Prism - PRISM6
-           
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
                                                aRec.node_labels[2],
                                                aRec.node_labels[1],
@@ -123,13 +174,25 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
            break;
            
          case 113: // Solid Quadratic Prism - PRISM15
-           
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
                                                aRec.node_labels[4],
                                                aRec.node_labels[2],
+
                                                aRec.node_labels[9],
                                                aRec.node_labels[13],
                                                aRec.node_labels[11],
+
+                                               aRec.node_labels[5],
+                                               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],
                                                aLabel);
            break;
            
@@ -146,26 +209,142 @@ Driver_Mesh::Status DriverUNV_R_SMDS_Mesh::Perform()
            break;
 
          case 116: // Solid Quadratic Brick - HEX20
-           
            anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
                                                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[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],
+                                               aLabel);
+           break;
+
+         case 114: // pyramid of 13 nodes (quadratic) - PIRA13
+           anElement = myMesh->AddVolumeWithID(aRec.node_labels[0],
+                                               aRec.node_labels[6],
+                                               aRec.node_labels[4],
+                                               aRec.node_labels[2],
+                                               aRec.node_labels[7],
+                                               aRec.node_labels[5],
+                                               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);
       }
     }
-  }catch(const std::exception& exc){
+    {
+      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());
-  }catch(...){
+  }
+  catch(...){
     INFOS("Unknown exception was cought !!!");
   }
   return aResult;
index bdcdfc31f9c79ae15e44deacc5533c63fcf2ed4f..5925fffff91900284557aa4e78b108c80f5da541 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERUNV_R_SMDS_MESH
 #define _INCLUDE_DRIVERUNV_R_SMDS_MESH
 #include "SMESH_DriverUNV.hxx"
 
 #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 MESHDRIVERUNV_EXPORT 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 0e1b871fcd7e0a6f668565c2ac9f178c9c8be26d..b5560b4dc7eae3c77f5648e59b58a36ee2ce077a 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverUNV_R_SMESHDS_Document.h"
index 79de1b838381fb01700595100c08e1d21acb7299..d998476606c57319e123ec1766d05a426f56926c 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERUNV_R_SMESHDS_DOCUMENT
 #define _INCLUDE_DRIVERUNV_R_SMESHDS_DOCUMENT
index e4fcbf3e0e6d8d466dc6c818d42e2385423ffa77..64a0e1a2156d42327d459cb34f2edbcca0f40530 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverUNV_R_SMESHDS_Mesh.h"
index ef1ceede492264f1ce453398d8867709df049c8b..6381ddd08544be12881b7c130b075f0a7c2f4b45 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERUNV_R_SMESHDS_MESH
 #define _INCLUDE_DRIVERUNV_R_SMESHDS_MESH
index 3fe3b18ef78fb22e3bb88dbdd4a9048a3e8b9b9d..eeb2ff4b8285f45e61723de3f63d2787d612ce2f 100644 (file)
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <algorithm>
 
 #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,12 +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());
          }
-         aRec.fe_descriptor_id = 11;
          aDataSet2412.insert(TDataSet::value_type(aLabel,aRec));
        }
        MESSAGE("Perform - aDataSet2412.size() = "<<aDataSet2412.size());
@@ -106,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());
@@ -118,6 +135,12 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
          case 4:
            aRec.fe_descriptor_id = 44;
            break;
+         case 6:
+           aRec.fe_descriptor_id = 42;
+           break;
+         case 8:
+           aRec.fe_descriptor_id = 45;
+           break;
          default:
            continue;
          }
@@ -160,6 +183,30 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
            anId = 115;
            break;
          }
+         case 10: {
+           static int anIds[] = {0,4,2,9,5,3, 1,6,8, 7};
+           aConn = anIds;
+           anId = 118;
+           break;
+         }
+         case 13: {
+           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,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,6, 4,2, 12,18,16,14,7, 5, 3, 1, 19,17,15,13,8, 11,10,9};
+           aConn = anIds;
+           anId = 116;
+           break;
+         }
          default:
            continue;
          }
@@ -177,9 +224,79 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform()
       }
       UNV2412::Write(out_stream,aDataSet2412);
     }
-  }catch(const std::exception& exc){
+    {
+      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());
-  }catch(...){
+  }
+  catch(...){
     INFOS("Unknown exception was cought !!!");
   }
   return aResult;
index e40be15643181f4ae7f3f182b1ac296d0ff4fb03..1f2c1f2ad56c98c31ef6c8b39e66b4878a86bfb6 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERUNV_W_SMDS_MESH
 #define _INCLUDE_DRIVERUNV_W_SMDS_MESH
 #include "SMESH_DriverUNV.hxx"
 
 #include "Driver_SMDS_Mesh.h"
+#include "SMESHDS_GroupBase.hxx"
+#include <list>
+
+
+typedef std::list<SMESHDS_GroupBase*> TGroupList;
 
 class MESHDRIVERUNV_EXPORT 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 0e73e1cae851d06e6238bb101f15f79631c011b9..f2070fabdd81363f7f9fe2c077dc223dcfee4067 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverUNV_W_SMESHDS_Document.h"
index d1641017287199aeb569d0254b3cc820d792ebfd..10575d3a85d09c2d379133f759b3947aa2b3c11d 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERUNV_W_SMESHDS_DOCUMENT
 #define _INCLUDE_DRIVERUNV_W_SMESHDS_DOCUMENT
index 2cbfe4dc9c697b7937d29ba76629af61389e4088..c9c7d3ee709cf8ff1c6e0afe1c68ee87f9e45919 100644 (file)
@@ -15,6 +15,6 @@
 //  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 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "DriverUNV_W_SMESHDS_Mesh.h"
index 8d9263d008ceee5d09030a23d5adc1f63f292468..fc1f5e6505cd2d13ad8d0d07a9d9984308baf75e 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _INCLUDE_DRIVERUNV_W_SMESHDS_MESH
 #define _INCLUDE_DRIVERUNV_W_SMESHDS_MESH
index debe7da044e5fdc3003b148b3f942c48bbd9bee5..e637046b65859dbdd7847437b40ee20de206f702 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -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 SMESH_DriverUNV.hxx
+       UNV_Utilities.cxx UNV2411_Structure.cxx UNV2412_Structure.cxx UNV2417_Structure.cxx SMESH_DriverUNV.hxx
 
 # Executables targets
 BIN = UNV_Test
@@ -61,11 +61,11 @@ LIB_CLIENT_IDL =
 LIB_SERVER_IDL =
 
 # additionnal information to compil and link file
-CPPFLAGS += -I${KERNEL_ROOT_DIR}/include/salome $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(KERNEL_CXXFLAGS) $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(KERNEL_CXXFLAGS)
 LDFLAGS  += -lMeshDriver $(OCC_KERNEL_LIBS)
 
-LDFLAGSFORBIN += -lMeshDriver -lSMDS -L${KERNEL_ROOT_DIR}/lib/salome -lOpUtil -lSALOMELocalTrace -lSALOMEBasics
+LDFLAGSFORBIN += -lMeshDriver -lSMDS $(KERNEL_LDFLAGS) -lOpUtil -lSALOMELocalTrace -lSALOMEBasics
 
 @CONCLUDE@
 
index 9b78920fce9c64ac6da96141b07a424f2e35bb47..35d19442ad3555e88283e8ad58cf240f6325be82 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <fstream>     
 #include <stdio.h>     
index ee4134251f7267ee8cb51ea25c15cce66c35ff43..8503e6446c5dfedc7cad1818a8ad4df398ddb4a4 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef UNV2411_Structure_HeaderFile
 #define UNV2411_Structure_HeaderFile
index 0160d7b68ab3f112fc03d403f54a47a45915d112..ef41a99907e7d66d29b4b010b16319eda134ac8c 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <fstream>     
 #include <iomanip>
@@ -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;
@@ -142,9 +142,10 @@ void UNV2412::Write(std::ofstream& out_stream, const TDataSet& theDataSet)
 
 bool UNV2412::IsBeam(int theFeDescriptorId){
   switch (theFeDescriptorId){
-  case 11:
-  case 21:
-  case 22:
+  case 11: // edge with 2 nodes
+  case 21: 
+  case 22: // edge with 3 nodes
+  case 23: // curved beam
   case 24:
   case 25:
     return true;
@@ -197,6 +198,8 @@ bool UNV2412::IsVolume(int theFeDescriptorId){
   case 116: // Solid Quadratic Brick - HEX20
 
   case 117: // Solid Cubic Brick
+
+  case 114: // pyramid of 13 nodes (quadratic)
     return true;
   }
   return false;
index 8c4003d3737d6523e1dc56dfc4427dd9829e96c3..8e1d50f48e6fd7684e720f9e68a6cfe9c0f7c5be 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef UNV2412_Structure_HeaderFile
 #define UNV2412_Structure_HeaderFile
index 0156b5051a489fc060f57698057ffb777eb4c041..4c7a43329978d809fcb3483e278617d94e5fad70 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "UNV2411_Structure.hxx"
 #include "UNV2412_Structure.hxx"
index 0781e5a4c349cf12338aaa63f05af81960b8a4d3..0d65092bd4888aa50d8c8e8c1b40032b94c6130a 100644 (file)
@@ -1,10 +1,21 @@
-//  Copyright (C) 2003  CEA/DEN, EDF R&D
+// 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
 //
-//
-//  File   : VISU_DatConvertor.cxx
-//  Author : Alexey PETROV
-//  Module : VISU
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "UNV_Utilities.hxx"
 
index f87837ace96e79aefd94ec1a1cb70dfae80d3564..59af2c4fe70e66dd01008fd11bf01f2224d539cc 100644 (file)
@@ -1,10 +1,21 @@
-//  Copyright (C) 2003  CEA/DEN, EDF R&D
+// 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
 //
-//
-//  File   : VISU_DatConvertor.hxx
-//  Author : Alexey PETROV
-//  Module : VISU
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef MED_Utilities_HeaderFile
 #define MED_Utilities_HeaderFile
index d1c4033578716d4b86d52a8b6fdb4b2e951f386f..aea95bcfb1cb0c83a754b70256f89f87314d31d5 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/ or email : webmaster.salome@opencascade.com
+#
 #  File   : Makefile.in
 #  Author : 
 #  Module : SMESH
@@ -23,8 +42,8 @@ LIB_CLIENT_IDL =
 LIB_SERVER_IDL = 
 
 # additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(OCC_INCLUDES) $(KERNEL_CXXFLAGS)
+CXXFLAGS += $(OCC_CXXFLAGS) $(KERNEL_CXXFLAGS)
 
 ifeq ($(F77),gfortran)
 LDFLAGS += -lgfortran
index d2b4b3693a9174148e4f1dd241fd3cda31eca6ca..9f47233228e25340a546a08b4fd49c56389e35b6 100755 (executable)
@@ -67,6 +67,7 @@ void deltacpu_( R & dtcpu )
   return;
 }
 
+
 void  aptrte( Z   nutysu, R      aretmx,
              Z   nblf,   Z  *   nudslf,  R2 * uvslf,
              Z   nbpti,  R2 *   uvpti,
index c4bbfd85f299748acf51519564c8bd9b39b065d5..e9ce507781b824334cde328a537ffa6dd1287764 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -31,9 +31,11 @@ VPATH=.:@srcdir@
 
 @COMMENCE@
 
+MED_CXXFLAGS=@MED_CXXFLAGS@
+
 SUBDIRS = \
        SMDS SMESHDS Controls Driver DriverMED DriverDAT DriverUNV DriverSTL \
-       SMESH SMESH_I OBJECT SMESHFiltersSelection SMESHGUI SMESH_SWIG \
+       SMESH SMESH_I SMESHClient OBJECT SMESHFiltersSelection SMESHGUI SMESH_SWIG \
        MEFISTO2 StdMeshers StdMeshers_I StdMeshersGUI
 
 @MODULE@
index fc2e0476a8fa8e9adb482379f9cb36f3859aae4e..dd6e419c77a96abeecadd735aedd546753161734 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/ or email : webmaster.salome@opencascade.com
+#
 # -* Makefile *- 
 #
 # Author : Nadir Bouhamou (CEA)
index 577190928e950793aacc465e1b78d44010c9d502..a17bcf1b7fb751c5837c55af722e4869f50845f9 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -57,11 +57,11 @@ BIN_SRC =
 # additionnal information to compil and link file
 NETGEN_INCLUDES=@NETGEN_INCLUDES@
 
-CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${GEOM_ROOT_DIR}/include/salome $(NETGEN_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${GEOM_ROOT_DIR}/include/salome $(NETGEN_INCLUDES)
+CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) \
+           $(GEOM_CXXFLAGS) $(NETGEN_INCLUDES) $(BOOST_CPPFLAGS)
+CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) \
+           $(GEOM_CXXFLAGS) $(NETGEN_INCLUDES)
 
-LDFLAGS+= $(HDF5_LIBS) -lSMESHimpl -lSMESHEngine -lStdMeshers -lStdMeshersEngine -lNETGEN -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lSalomeGenericObj
+LDFLAGS+= $(HDF5_LIBS) -lSMESHimpl -lSMESHEngine -lStdMeshers -lStdMeshersEngine -lNETGEN $(KERNEL_LDFLAGS) $(GEOM_LDFLAGS) -lSalomeGenericObj
 
 @CONCLUDE@
index 7c2f7a9bc7aed4da5eb8ebf6f6407161a96982c9..ca46afd0e08e9be5006f30115c6ca70c5359622c 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //=============================================================================
 // File      : NETGENPlugin_NETGEN_3D.cxx
index dd67278fb32853b95574b58a03bd0c2cfeb8bdd7..f640b15d068c36e4e970c7a162f44ede1f20217a 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //=============================================================================
 // File      : NETGENPlugin_NETGEN_3D.hxx
index 489d6822e6a5fb8d4fdf8f5494818f72b88786fc..0429bc9c191b296e9e686c5a066bc7371af9d438 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 724fafa5557450bb8727af59af207335c976cf71..ad0c59b4b21878bd3d4764f10ca3671bf774d284 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 7ec0e06f53fb599971dcfc2d415dd3fb6b731286..4401a1e54688edb130bc6984779bafe4cd8f6cc8 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index a3f6297d78e107735df7fc5a17a9c165ba8f287b..544555e331364e8b96338ffb6cad3a13ad318f05 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/ or email : webmaster.salome@opencascade.com
+#
 # 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 8cf070ccf99b7651d97d2ff073892930dbf1bab7..aeddd7b2b2bbf2cefcf065753035778fc05616ae 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -31,28 +31,109 @@ VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
 
 @COMMENCE@
 
-EXPORT_HEADERS = SMESH_Actor.h SMESH_Object.h SMESH_ObjectDef.h SMESH_ActorUtils.h
+EXPORT_HEADERS = \
+       SMESH_Actor.h \
+        SMESH_Object.h \
+       SMESH_ObjectDef.h \
+       SMESH_ActorUtils.h
 
 
 # Libraries targets
 
 LIB = libSMESHObject.la
-LIB_SRC = SMESH_Object.cxx SMESH_DeviceActor.cxx SMESH_Actor.cxx \
-         SMESH_ExtractGeometry.cxx SMESH_ActorUtils.cxx
+LIB_SRC = \
+          SMESH_Object.cxx \
+          SMESH_DeviceActor.cxx \
+          SMESH_Actor.cxx \
+         SMESH_ExtractGeometry.cxx \
+          SMESH_ActorUtils.cxx
 
 LIB_CLIENT_IDL = SALOME_Exception.idl \
                 SALOME_GenericObj.idl \
+                SALOME_Comm.idl \
+                MED.idl \
                 SMESH_Mesh.idl \
-                SMESH_Group.idl
+                SMESH_Group.idl \
+                 SALOMEDS.idl \
+                SMESH_Gen.idl \
+                 GEOM_Gen.idl \
+                SMESH_Hypothesis.idl
 
 
 # Executables targets
 BIN = 
 BIN_SRC        =
 
-CPPFLAGS+=$(OCC_INCLUDES) $(VTK_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-         $(BOOST_CPPFLAGS) $(QT_INCLUDES)
-LDFLAGS+=$(OCC_KERNEL_LIBS) $(VTK_LIBS) -L${KERNEL_ROOT_DIR}/lib/salome -L${GUI_ROOT_DIR}/lib/salome -lSMDS \
-         -lSalomeApp -lSalomeObject -lSMESHControls
+CPPFLAGS+= \
+        $(KERNEL_CXXFLAGS) \
+        $(GUI_CXXFLAGS) \
+       $(OCC_INCLUDES) \
+        $(VTK_INCLUDES) \
+        $(BOOST_CPPFLAGS) \
+        $(QT_INCLUDES) \
+       $(MED_CXXFLAGS)
+LDFLAGS+= \
+       $(KERNEL_LDFLAGS) \
+        $(GUI_LDFLAGS) \
+       $(OCC_KERNEL_LIBS) \
+        $(VTK_LIBS) \
+       $(MED_LDFLAGS) \
+        -lSMDS \
+        -lSMESHClient \
+        -lSalomeApp \
+        -lSalomeObject \
+        -lSMESHControls
+
+LDFLAGSFORBIN += \
+       $(GEOM_LDFLAGS) \
+       $(MED_LDFLAGS) \
+       $(LDFLAGS) \
+       -lqtx \
+        -lsuit \
+       -lstd \
+       -lCAM \
+       -lLightApp \
+       -lObjBrowser \
+       -lSalomePrs \
+       -lSalomeDS \
+       -lTOOLSDS \
+       -lSalomeDSImpl \
+       -lSalomeDSClient \
+       -lSalomeHDFPersist \
+        -lSalomeResourcesManager \
+       -lSalomeLifeCycleCORBA \
+        -lSalomeNotification \
+        -lSalomeContainer \
+       -lSalomeCatalog \
+       -lSalomeSession \
+       -lRegistry \
+       -lNMTTools \
+       -lNMTDS \
+       -lmed_V2_1 \
+        -lMEDWrapper \
+        -lMEDWrapperBase \
+        -lMEDWrapper_V2_1 \
+        -lMEDWrapper_V2_2 \
+       -lPlot2d \
+       -lGLViewer \
+       -lOCCViewer \
+       -lVTKViewer \
+       -lSVTK \
+       -lSOCC \
+       -lSPlot2d \
+       -lSUPERVGraph \
+       -lPyInterp \
+       -lPythonConsole \
+       -lLogWindow \
+       -lLightApp \
+       -lSalomeContainer \
+       -lToolsGUI \
+        -lSalomeNS \
+       -lEvent \
+       -lSalomeGenericObj \
+        -lSALOMELocalTrace \
+       -lwith_loggerTraceCollector \
+        -lSALOMEBasics \
+        -lOpUtil
 
 @CONCLUDE@
index 5b21ac70adb8da25319fd6ec0baa8a7e9c455991..53c8758f3a0621d9c2185ff5a4a40e1d5aabd02e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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] );
@@ -150,6 +150,8 @@ SMESH_ActorDef::SMESH_ActorDef()
   aFilter->RegisterCellsWithType(VTK_TRIANGLE);
   aFilter->RegisterCellsWithType(VTK_POLYGON);
   aFilter->RegisterCellsWithType(VTK_QUAD);
+  aFilter->RegisterCellsWithType(VTK_QUADRATIC_TRIANGLE);
+  aFilter->RegisterCellsWithType(VTK_QUADRATIC_QUAD);
 
   my3DActor = SMESH_DeviceActor::New();
   my3DActor->SetUserMatrix(aMatrix);
@@ -164,6 +166,8 @@ SMESH_ActorDef::SMESH_ActorDef()
   aFilter->RegisterCellsWithType(VTK_HEXAHEDRON);
   aFilter->RegisterCellsWithType(VTK_WEDGE);
   aFilter->RegisterCellsWithType(VTK_PYRAMID);
+  aFilter->RegisterCellsWithType(VTK_QUADRATIC_TETRA);
+  aFilter->RegisterCellsWithType(VTK_QUADRATIC_HEXAHEDRON);
   aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
 
   //Definition 1D divice of the actor
@@ -185,6 +189,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   aFilter = my1DActor->GetExtractUnstructuredGrid();
   aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   aFilter->RegisterCellsWithType(VTK_LINE);
+  aFilter->RegisterCellsWithType(VTK_QUADRATIC_EDGE);
 
   my1DProp = vtkProperty::New();
   my1DProp->DeepCopy(myEdgeProp);
@@ -210,6 +215,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   aFilter = my1DExtActor->GetExtractUnstructuredGrid();
   aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   aFilter->RegisterCellsWithType(VTK_LINE);
+  aFilter->RegisterCellsWithType(VTK_QUADRATIC_EDGE);
 
 
   //Definition 0D divice of the actor
@@ -263,8 +269,6 @@ SMESH_ActorDef::SMESH_ActorDef()
   myHighlitableActor->PickableOff();
   myHighlitableActor->SetRepresentation(SMESH_DeviceActor::eWireframe);
 
-  SetShrinkFactor( SMESH::GetFloat( "SMESH:shrink_coeff", 0.75 ) );
-
   myName = "";
   myIO = NULL;
 
@@ -744,17 +748,19 @@ 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);
 
-  //SetIsShrunkable(theGrid->GetNumberOfCells() > 10);
-  SetIsShrunkable(true);
-
   SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
   if( !mgr )
     return false;
 
+  //SetIsShrunkable(theGrid->GetNumberOfCells() > 10);
+  SetIsShrunkable(true);
+
+  SetShrinkFactor( SMESH::GetFloat( "SMESH:shrink_coeff", 0.75 ) );
+
   int aMode = mgr->integerValue( "SMESH", "display_mode" );
   SetRepresentation(-1);
   
@@ -776,7 +782,7 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
 }
 
 
-float* SMESH_ActorDef::GetBounds(){
+vtkFloatingPointType* SMESH_ActorDef::GetBounds(){
   return myNodeActor->GetBounds();
 }
 
@@ -835,15 +841,17 @@ bool SMESH_ActorDef::IsInfinitive(){
 
 
 void SMESH_ActorDef::SetIsShrunkable(bool theShrunkable){
+  if ( myIsShrinkable == theShrunkable )
+    return;
   myIsShrinkable = 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);
@@ -890,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);
 }
 
@@ -1015,6 +1023,7 @@ void SMESH_ActorDef::SetEntityMode(unsigned int theMode){
   if(myEntityMode & eEdges){
     if (MYDEBUG) MESSAGE("EDGES");
     aFilter->RegisterCellsWithType(VTK_LINE);
+    aFilter->RegisterCellsWithType(VTK_QUADRATIC_EDGE);
   }
 
   if(myEntityMode & eFaces){
@@ -1022,6 +1031,8 @@ void SMESH_ActorDef::SetEntityMode(unsigned int theMode){
     aFilter->RegisterCellsWithType(VTK_TRIANGLE);
     aFilter->RegisterCellsWithType(VTK_POLYGON);
     aFilter->RegisterCellsWithType(VTK_QUAD);
+    aFilter->RegisterCellsWithType(VTK_QUADRATIC_TRIANGLE);
+    aFilter->RegisterCellsWithType(VTK_QUADRATIC_QUAD);
   }
 
   if(myEntityMode & eVolumes){
@@ -1031,6 +1042,8 @@ void SMESH_ActorDef::SetEntityMode(unsigned int theMode){
     aFilter->RegisterCellsWithType(VTK_HEXAHEDRON);
     aFilter->RegisterCellsWithType(VTK_WEDGE);
     aFilter->RegisterCellsWithType(VTK_PYRAMID);
+    aFilter->RegisterCellsWithType(VTK_QUADRATIC_TETRA);
+    aFilter->RegisterCellsWithType(VTK_QUADRATIC_HEXAHEDRON);
     aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
   }
   aFilter->Update();
@@ -1135,6 +1148,8 @@ void SMESH_ActorDef::SetRepresentation(int theMode){
 
 
 void SMESH_ActorDef::SetPointRepresentation(bool theIsPointsVisible){
+  if ( myIsPointsVisible == theIsPointsVisible )
+    return;
   myIsPointsVisible = theIsPointsVisible;
   SetRepresentation(GetRepresentation());
 }
@@ -1175,12 +1190,16 @@ void SMESH_ActorDef::UpdateHighlight(){
 
 
 void SMESH_ActorDef::highlight(bool theHighlight){
+  if ( myIsHighlighted == theHighlight )
+    return;
   myIsHighlighted = theHighlight;
   UpdateHighlight();
 }
 
 
 void SMESH_ActorDef::SetPreSelected(bool thePreselect){ 
+  if ( myIsPreselected == thePreselect )
+    return;
   myIsPreselected = thePreselect; 
   UpdateHighlight();
 }
@@ -1250,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);
@@ -1268,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);
@@ -1345,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);
@@ -1356,7 +1375,7 @@ void SMESH_ActorDef::SetNodeSize(float theVal){
   Modified();
 }
 
-float SMESH_ActorDef::GetNodeSize(){
+vtkFloatingPointType SMESH_ActorDef::GetNodeSize(){
   return myNodeProp->GetPointSize();
 }
 
@@ -1429,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]},
@@ -1456,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;
@@ -1466,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];
@@ -1474,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;
@@ -1486,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);
 }
@@ -1598,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 8114f529b850daae319babc199a32499cf76e335..04dd4ceaded1aa10efba45ecead63f1591a44031 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -50,29 +50,29 @@ class SMESHOBJECT_EXPORT 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 SMESHOBJECT_EXPORT 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 SMESHOBJECT_EXPORT 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 5df608124a5b293f8f6437a0e05d74f75052adcc..c1e55d41558f025ab4882e601c0356be2b8ce310 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -79,7 +79,8 @@ class vtkTimeStamp;
 class SMESH_DeviceActor;
 
 
-class SMESHOBJECT_EXPORT SMESH_ActorDef : public SMESH_Actor{
+class SMESH_ActorDef : public SMESH_Actor
+{
   friend class SMESH_VisualObj;
   friend class SMESH_Actor;
 
@@ -100,35 +101,35 @@ class SMESHOBJECT_EXPORT 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 SMESHOBJECT_EXPORT 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 SMESHOBJECT_EXPORT 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..e498c2f722bd26300b24d1c3c5d5976873b23417 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "SMESH_ActorUtils.h"
@@ -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 32a27fa334c15bec64a836cfc052413b38b86524..7231cdb840e646322c99b65a56328d7f5ee54080 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESH_ACTORUTILS_H
 #define SMESH_ACTORUTILS_H
 #include <qcolor.h>
 #include <qstring.h>
 
+#include "VTKViewer.h"
+
 class vtkUnstructuredGrid;
 
-namespace SMESH{
-  
-  float SMESHOBJECT_EXPORT GetFloat( const QString& theValue, float theDefault = 0 );
-  float SMESHOBJECT_EXPORT GetFloat( const QString& theName, const QString& theSection, float theDefault = 0 );
+namespace SMESH
+{
+SMESHOBJECT_EXPORT  
+  vtkFloatingPointType 
+  GetFloat( const QString& theValue, 
+           vtkFloatingPointType theDefault = 0 );
+
+SMESHOBJECT_EXPORT
+  vtkFloatingPointType 
+  GetFloat( const QString& theName, 
+           const QString& theSection, 
+           vtkFloatingPointType theDefault = 0 );
+
+SMESHOBJECT_EXPORT
+  QColor 
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           const QColor&t = QColor() );
 
-  QColor SMESHOBJECT_EXPORT GetColor( const QString& theSect, const QString& theName, const QColor&t = QColor() );
-  void   SMESHOBJECT_EXPORT GetColor( const QString& theSect, const QString& theName, int&, int&, int&, const QColor&t = QColor() );
-  void   SMESHOBJECT_EXPORT GetColor( const QString& theSect, const QString& theName, float&, float&, float&, const QColor&t = QColor() );
+SMESHOBJECT_EXPORT
+  void
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           int&, 
+           int&, 
+           int&, 
+           const QColor&t = QColor() );
 
-  void WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, const char* theFileName);
+SMESHOBJECT_EXPORT
+  void
+  GetColor( const QString& theSect, 
+           const QString& theName, 
+           vtkFloatingPointType&, 
+           vtkFloatingPointType&, 
+           vtkFloatingPointType&, 
+           const QColor&t = QColor() );
 
+SMESHOBJECT_EXPORT
+  void 
+  WriteUnstructuredGrid(vtkUnstructuredGrid* theGrid, 
+                       const char* theFileName);
 }
 
 #endif
index 3548aaefe33244b272a83704f958bab77908bf22..0b3a424c459e1514510fde43d87fbbce56d6f295 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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,18 +576,29 @@ void SMESH_DeviceActor::UnShrink() {
 }
 
 
-void SMESH_DeviceActor::SetRepresentation(EReperesent theMode){
+void
+SMESH_DeviceActor
+::SetRepresentation(EReperesent theMode)
+{
   switch(theMode){
   case ePoint:
     myGeomFilter->SetInside(true);
+    myGeomFilter->SetWireframeMode(false);
     GetProperty()->SetRepresentation(0);
     break;
+  case eWireframe:
+    myGeomFilter->SetInside(false);
+    myGeomFilter->SetWireframeMode(true);
+    GetProperty()->SetRepresentation(theMode);
+    break;
   case eInsideframe:
     myGeomFilter->SetInside(true);
+    myGeomFilter->SetWireframeMode(true);
     GetProperty()->SetRepresentation(1);
     break;
-  default :
+  case eSurface:
     myGeomFilter->SetInside(false);
+    myGeomFilter->SetWireframeMode(false);
     GetProperty()->SetRepresentation(theMode);
   }
   myRepresentation = theMode;
@@ -564,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())
   {
@@ -575,7 +622,10 @@ void SMESH_DeviceActor::SetVisibility(int theMode){
 }
 
 
-int SMESH_DeviceActor::GetVisibility(){
+int
+SMESH_DeviceActor
+::GetVisibility()
+{
   if(!GetUnstructuredGrid()->GetNumberOfCells()){
     vtkLODActor::SetVisibility(false);
   }
@@ -583,7 +633,10 @@ int SMESH_DeviceActor::GetVisibility(){
 }
 
 
-int SMESH_DeviceActor::GetNodeObjId(int theVtkID){
+int
+SMESH_DeviceActor
+::GetNodeObjId(int theVtkID)
+{
   vtkIdType anID = theVtkID;
 
   if(IsImplicitFunctionUsed())
@@ -594,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;
@@ -624,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);
@@ -634,31 +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);
@@ -669,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 c6ee8b9238baf6771856fd7a2596f5f8f7727940..16664fe0c9e65b4bf63a4e1489bf11837066ab9a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -66,7 +66,7 @@ class SMESHOBJECT_EXPORT 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 SMESHOBJECT_EXPORT 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 SMESHOBJECT_EXPORT 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..acd4a6f5fe2fcc2e9b196cf18f6c1d8c81dceae1 100644 (file)
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #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 c557718f94cd2d8aeeecc1df1affa517dcceb144..97435e05ebf8d17c8999f83357441dfbd7838e2c 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SALOME_ExtractGeometry_HeaderFile
 #define SALOME_ExtractGeometry_HeaderFile
@@ -25,6 +25,7 @@
 #include <vtkExtractGeometry.h>
 #include <vector>
 
+#include "VTKViewer.h"
 
 class SMESHOBJECT_EXPORT SMESH_ExtractGeometry : public vtkExtractGeometry{
 public:
index 93a67a582c1a2ef0923f044ec2cdedb742b4add9..4fdbcf0e6348c45895821f20eedf6a1fec85d2bb 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include "SMDS_Mesh.hxx"
 #include "SMESH_Actor.h"
 #include "SMESH_ControlsDef.hxx"
-#include <VTKViewer_ExtractUnstructuredGrid.h>
+#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>
 
@@ -69,271 +71,6 @@ static int MYDEBUGWITHFILES = 0;
 #endif
 
 
-namespace{
-
-  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);
-  }
-
-
-  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);
-  }
-
-
-  inline void AddNodesWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::double_array& aCoords = theSeq[theId].coords;
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(3*aNbElems != aCoords.length())
-      EXCEPTION(runtime_error,"AddNodesWithID - 3*aNbElems != aCoords.length()");
-    for(CORBA::Long aCoordId = 0; anElemId < aNbElems; anElemId++, aCoordId+=3){
-      SMDS_MeshElement* anElem = theMesh->AddNodeWithID(aCoords[aCoordId],
-                                                       aCoords[aCoordId+1],
-                                                       aCoords[aCoordId+2],
-                                                       anIndexes[anElemId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddNodeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddEdgesWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(3*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 3*aNbElems != aCoords.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=3){
-      SMDS_MeshElement* anElem = theMesh->AddEdgeWithID(anIndexes[anIndexId+1],
-                                                       anIndexes[anIndexId+2],
-                                                       anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddEdgeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddTriasWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(4*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=4){
-      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
-                                                       anIndexes[anIndexId+2],
-                                                       anIndexes[anIndexId+3],
-                                                       anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddQuadsWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(5*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 4*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
-      SMDS_MeshElement* anElem = theMesh->AddFaceWithID(anIndexes[anIndexId+1],
-                                                       anIndexes[anIndexId+2],
-                                                       anIndexes[anIndexId+3],
-                                                       anIndexes[anIndexId+4],
-                                                       anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddFaceWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPolygonsWithID(SMDS_Mesh* theMesh, 
-                                SMESH::log_array_var& theSeq,
-                                CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anIndexId = 0, aNbElems = theSeq[theId].number;
-
-    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) {
-      int aFaceId = anIndexes[anIndexId++];
-
-      int aNbNodes = anIndexes[anIndexId++];
-      std::vector<int> nodes_ids (aNbNodes);
-      for (int i = 0; i < aNbNodes; i++) {
-        nodes_ids[i] = anIndexes[anIndexId++];
-      }
-
-      SMDS_MeshElement* anElem = theMesh->AddPolygonalFaceWithID(nodes_ids, aFaceId);
-      if (!anElem)
-       EXCEPTION(runtime_error, "SMDS_Mesh::FindElement - cannot AddPolygonalFaceWithID for ID = "
-                  << anElemId);
-    }
-  }
-
-
-  inline void AddTetrasWithID(SMDS_Mesh* theMesh, 
-                             SMESH::log_array_var& theSeq,
-                             CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(5*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 5*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=5){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPiramidsWithID(SMDS_Mesh* theMesh, 
-                               SMESH::log_array_var& theSeq,
-                               CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(6*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 6*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=6){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId+5],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPrismsWithID(SMDS_Mesh* theMesh, 
-                             SMESH::log_array_var& theSeq,
-                             CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(7*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 7*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=7){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId+5],
-                                                         anIndexes[anIndexId+6],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddHexasWithID(SMDS_Mesh* theMesh, 
-                            SMESH::log_array_var& theSeq,
-                            CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anElemId = 0, aNbElems = theSeq[theId].number;
-    if(9*aNbElems != anIndexes.length())
-      EXCEPTION(runtime_error,"AddEdgeWithID - 9*aNbElems != anIndexes.length()");
-    for(CORBA::Long anIndexId = 0; anElemId < aNbElems; anElemId++, anIndexId+=9){
-      SMDS_MeshElement* anElem = theMesh->AddVolumeWithID(anIndexes[anIndexId+1],
-                                                         anIndexes[anIndexId+2],
-                                                         anIndexes[anIndexId+3],
-                                                         anIndexes[anIndexId+4],
-                                                         anIndexes[anIndexId+5],
-                                                         anIndexes[anIndexId+6],
-                                                         anIndexes[anIndexId+7],
-                                                         anIndexes[anIndexId+8],
-                                                         anIndexes[anIndexId]);
-      if(!anElem)
-       EXCEPTION(runtime_error,"SMDS_Mesh::FindElement - cannot AddVolumeWithID for ID = "<<anElemId);
-    }
-  }
-
-
-  inline void AddPolyhedronsWithID (SMDS_Mesh* theMesh, 
-                                    SMESH::log_array_var& theSeq,
-                                    CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long anIndexId = 0, aNbElems = theSeq[theId].number;
-
-    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) {
-      int aFaceId = anIndexes[anIndexId++];
-
-      int aNbNodes = anIndexes[anIndexId++];
-      std::vector<int> nodes_ids (aNbNodes);
-      for (int i = 0; i < aNbNodes; i++) {
-        nodes_ids[i] = anIndexes[anIndexId++];
-      }
-
-      int aNbFaces = anIndexes[anIndexId++];
-      std::vector<int> quantities (aNbFaces);
-      for (int i = 0; i < aNbFaces; i++) {
-        quantities[i] = anIndexes[anIndexId++];
-      }
-
-      SMDS_MeshElement* anElem =
-        theMesh->AddPolyhedralVolumeWithID(nodes_ids, quantities, aFaceId);
-      if (!anElem)
-       EXCEPTION(runtime_error, "SMDS_Mesh::FindElement - cannot AddPolyhedralVolumeWithID for ID = "
-                  << anElemId);
-    }
-  }
-
-
-  inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh, 
-                                     SMESH::log_array_var& theSeq,
-                                     CORBA::Long theId)
-  {
-    const SMESH::long_array& anIndexes = theSeq[theId].indexes;
-    CORBA::Long iind = 0, aNbElems = theSeq[theId].number;
-
-    for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++)
-    {
-      // find element
-      const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]);
-      // nb nodes
-      int nbNodes = anIndexes[iind++];
-      // nodes
-      std::vector<const SMDS_MeshNode*> aNodes (nbNodes);
-      for (int iNode = 0; iNode < nbNodes; iNode++) {
-        aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]);
-      }
-      // nb faces
-      int nbFaces = anIndexes[iind++];
-      // quantities
-      std::vector<int> quantities (nbFaces);
-      for (int iFace = 0; iFace < nbFaces; iFace++) {
-        quantities[iFace] = anIndexes[iind++];
-      }
-      // change
-      theMesh->ChangePolyhedronNodes(elem, aNodes, quantities);
-    }
-  }
-
-
-}
 /*
   Class       : SMESH_VisualObjDef
   Description : Base class for all mesh objects to be visuilised
@@ -350,12 +87,16 @@ static inline vtkIdType getCellType( const SMDSAbs_ElementType theType,
   switch( theType )
   {
     case SMDSAbs_Edge: 
-      return theNbNodes == 2 ? VTK_LINE : VTK_EMPTY_CELL;
+      if( theNbNodes == 2 )         return VTK_LINE;
+      else if ( theNbNodes == 3 )   return VTK_QUADRATIC_EDGE;
+      else return VTK_EMPTY_CELL;
 
     case SMDSAbs_Face  :
       if (thePoly && theNbNodes>2 ) return VTK_POLYGON;
       else if ( theNbNodes == 3 )   return VTK_TRIANGLE;
       else if ( theNbNodes == 4 )   return VTK_QUAD;
+      else if ( theNbNodes == 6 )   return VTK_QUADRATIC_TRIANGLE;
+      else if ( theNbNodes == 8 )   return VTK_QUADRATIC_QUAD;
       else return VTK_EMPTY_CELL;
       
     case SMDSAbs_Volume:
@@ -364,6 +105,15 @@ static inline vtkIdType getCellType( const SMDSAbs_ElementType theType,
       else if ( theNbNodes == 5 )   return VTK_PYRAMID;
       else if ( theNbNodes == 6 )   return VTK_WEDGE;
       else if ( theNbNodes == 8 )   return VTK_HEXAHEDRON;
+      else if ( theNbNodes == 10 )  {
+        return VTK_QUADRATIC_TETRA;
+      }
+      else if ( theNbNodes == 20 )  {
+        return VTK_QUADRATIC_HEXAHEDRON;
+      }
+      else if ( theNbNodes==13 || theNbNodes==15 )  {
+        return VTK_CONVEX_POINT_SET;
+      }
       else return VTK_EMPTY_CELL;
 
     default: return VTK_EMPTY_CELL;
@@ -485,42 +235,6 @@ void SMESH_VisualObjDef::buildNodePrs()
   aPoints->Delete();
 
   myGrid->SetCells( 0, 0, 0 );
-
-  // Create cells
-  /*
-  int nbPoints = aPoints->GetNumberOfPoints();
-  vtkIdList *anIdList = vtkIdList::New();
-  anIdList->SetNumberOfIds( 1 );
-
-  vtkCellArray *aCells = vtkCellArray::New();
-  aCells->Allocate( 2 * nbPoints, 0 );
-
-  vtkUnsignedCharArray* aCellTypesArray = vtkUnsignedCharArray::New();
-  aCellTypesArray->SetNumberOfComponents( 1 );
-  aCellTypesArray->Allocate( nbPoints );
-
-  for( vtkIdType aCellId = 0; aCellId < nbPoints; aCellId++ )
-  {
-    anIdList->SetId( 0, aCellId );
-    aCells->InsertNextCell( anIdList );
-    aCellTypesArray->InsertNextValue( VTK_VERTEX );
-  }
-
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
-  aCellLocationsArray->SetNumberOfComponents( 1 );
-  aCellLocationsArray->SetNumberOfTuples( nbPoints );
-
-  aCells->InitTraversal();
-  for( vtkIdType i = 0, *pts, npts; aCells->GetNextCell( npts, pts ); i++ )
-    aCellLocationsArray->SetValue( i, aCells->GetTraversalLocation( npts ) );
-
-  myGrid->SetCells( aCellTypesArray, aCellLocationsArray, aCells );
-
-  aCellLocationsArray->Delete();
-  aCellTypesArray->Delete();
-  aCells->Delete();
-  anIdList->Delete(); 
-  */
 }
 
 //=================================================================================
@@ -651,11 +365,34 @@ void SMESH_VisualObjDef::buildElemPrs()
            static int anIds[] = {0,1,2,3,4,5};
            for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
 
-         } else if (aNbNodes == 8) {
+         }
+          else if (aNbNodes == 8) {
            static int anIds[] = {0,3,2,1,4,7,6,5};
            for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
 
-         } else {
+         }
+          else if (aNbNodes == 10) {
+           static int anIds[] = {0,2,1,3,6,5,4,7,9,8};
+           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
+         }
+          else if (aNbNodes == 13) {
+           static int anIds[] = {0,3,2,1,4,8,7,6,5,9,12,11,10};
+           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
+         }
+          else if (aNbNodes == 15) {
+           static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
+           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
+           //for (int k = 0; k < aNbNodes; k++) {
+            //  int nn = aConnectivities[k];
+            //  const SMDS_MeshNode* N = static_cast<const SMDS_MeshNode*> (aConnect[nn]);
+            //  cout<<"k="<<k<<"  N("<<N->X()<<","<<N->Y()<<","<<N->Z()<<")"<<endl;
+            //}
+         }
+          else if (aNbNodes == 20) {
+           static int anIds[] = {0,3,2,1,4,7,6,5,11,10,9,8,15,14,13,12,16,19,18,17};
+           for (int k = 0; k < aNbNodes; k++) aConnectivities.push_back(anIds[k]);
+         }
+          else {
           }
 
          if (aConnectivities.size() > 0) {
@@ -681,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 );
   
@@ -748,14 +485,11 @@ bool SMESH_VisualObjDef::GetEdgeNodes( const int theElemId,
 // function : SMESH_MeshObj
 // purpose  : Constructor
 //=================================================================================
-SMESH_MeshObj::SMESH_MeshObj(SMESH::SMESH_Mesh_ptr theMesh)
+SMESH_MeshObj::SMESH_MeshObj(SMESH::SMESH_Mesh_ptr theMesh):
+  myClient(SalomeApp_Application::orb(),theMesh)
 {
   if ( MYDEBUG ) 
-    MESSAGE("SMESH_MeshObj - theMesh->_is_nil() = "<<theMesh->_is_nil());
-    
-  myMeshServer = SMESH::SMESH_Mesh::_duplicate( theMesh );
-  myMeshServer->Register();
-  myMesh = new SMDS_Mesh();
+    MESSAGE("SMESH_MeshObj - this = "<<this<<"; theMesh->_is_nil() = "<<theMesh->_is_nil());
 }
 
 //=================================================================================
@@ -764,8 +498,8 @@ SMESH_MeshObj::SMESH_MeshObj(SMESH::SMESH_Mesh_ptr theMesh)
 //=================================================================================
 SMESH_MeshObj::~SMESH_MeshObj()
 {
-  myMeshServer->Destroy();
-  delete myMesh;
+  if ( MYDEBUG ) 
+    MESSAGE("SMESH_MeshObj - this = "<<this<<"\n");
 }
 
 //=================================================================================
@@ -775,110 +509,8 @@ SMESH_MeshObj::~SMESH_MeshObj()
 void SMESH_MeshObj::Update( int theIsClear )
 {
   // Update SMDS_Mesh on client part
-  
-  try
-  {
-    SMESH::log_array_var aSeq = myMeshServer->GetLog( theIsClear );
-    CORBA::Long aLength = aSeq->length();
-    
-    if( MYDEBUG ) MESSAGE( "Update: length of the script is "<<aLength );
-    
-    if( !aLength )
-      return;
-
-    for ( CORBA::Long anId = 0; anId < aLength; anId++)
-    {
-      const SMESH::double_array& aCoords = aSeq[anId].coords;
-      const SMESH::long_array& anIndexes = aSeq[anId].indexes;
-      CORBA::Long anElemId = 0, aNbElems = aSeq[anId].number;
-      CORBA::Long aCommand = aSeq[anId].commandType;
-
-      switch(aCommand)
-      {
-        case SMESH::ADD_NODE       : AddNodesWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_EDGE       : AddEdgesWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_TRIANGLE   : AddTriasWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_QUADRANGLE : AddQuadsWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_POLYGON    : AddPolygonsWithID   ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_TETRAHEDRON: AddTetrasWithID     ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_PYRAMID    : AddPiramidsWithID   ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_PRISM      : AddPrismsWithID     ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_HEXAHEDRON : AddHexasWithID      ( myMesh, aSeq, anId ); break;
-        case SMESH::ADD_POLYHEDRON : AddPolyhedronsWithID( myMesh, aSeq, anId ); break;
-
-        case SMESH::REMOVE_NODE:
-          for( ; anElemId < aNbElems; anElemId++ )
-            myMesh->RemoveNode( FindNode( myMesh, anIndexes[anElemId] ) );
-        break;
-        
-        case SMESH::REMOVE_ELEMENT:
-          for( ; anElemId < aNbElems; anElemId++ )
-            myMesh->RemoveElement( FindElement( myMesh, anIndexes[anElemId] ) );
-        break;
-
-        case SMESH::MOVE_NODE:
-          for(CORBA::Long aCoordId=0; anElemId < aNbElems; anElemId++, aCoordId+=3)
-          {
-            SMDS_MeshNode* node =
-              const_cast<SMDS_MeshNode*>( FindNode( myMesh, anIndexes[anElemId] ));
-            node->setXYZ( aCoords[aCoordId], aCoords[aCoordId+1], aCoords[aCoordId+2] );
-          }
-        break;
-
-        case SMESH::CHANGE_ELEMENT_NODES:
-          for ( CORBA::Long i = 0; anElemId < aNbElems; anElemId++ )
-          {
-            // find element
-            const SMDS_MeshElement* elem = FindElement( myMesh, anIndexes[i++] );
-            // nb nodes
-            int nbNodes = anIndexes[i++];
-            // nodes
-            //ASSERT( nbNodes < 9 );
-            const SMDS_MeshNode** aNodes = new const SMDS_MeshNode*[ nbNodes ];
-            for ( int iNode = 0; iNode < nbNodes; iNode++ )
-              aNodes[ iNode ] = FindNode( myMesh, anIndexes[i++] );
-            // change
-            myMesh->ChangeElementNodes( elem, aNodes, nbNodes );
-          }
-          break;
-
-        case SMESH::CHANGE_POLYHEDRON_NODES:
-          ChangePolyhedronNodes(myMesh, aSeq, anId);
-          break;
-        case SMESH::RENUMBER:
-          for(CORBA::Long i=0; anElemId < aNbElems; anElemId++, i+=3)
-          {
-            myMesh->Renumber( anIndexes[i], anIndexes[i+1], anIndexes[i+2] );
-          }
-          break;
-          
-        default:;
-      }
-    }
-  }
-  catch ( SALOME::SALOME_Exception& exc )
-  {
-    INFOS("Following exception was cought:\n\t"<<exc.details.text);
-  }
-  catch( const std::exception& exc)
-  {
-    INFOS("Following exception was cought:\n\t"<<exc.what());
-  }
-  catch(...)
-  {
-    INFOS("Unknown exception was cought !!!");
-  }
-  
-  if ( MYDEBUG )
-  {
-    MESSAGE("Update - myMesh->NbNodes() = "<<myMesh->NbNodes());
-    MESSAGE("Update - myMesh->NbEdges() = "<<myMesh->NbEdges());
-    MESSAGE("Update - myMesh->NbFaces() = "<<myMesh->NbFaces());
-    MESSAGE("Update - myMesh->NbVolumes() = "<<myMesh->NbVolumes());
-  }
-
-  // Fill unstructured grid
-  buildPrs();
+  if ( myClient.Update(theIsClear) )
+    buildPrs();  // Fill unstructured grid
 }
 
 //=================================================================================
@@ -887,7 +519,7 @@ void SMESH_MeshObj::Update( int theIsClear )
 //=================================================================================
 int SMESH_MeshObj::GetElemDimension( const int theObjId )
 {
-  const SMDS_MeshElement* anElem = myMesh->FindElement( theObjId );
+  const SMDS_MeshElement* anElem = myClient->FindElement( theObjId );
   if ( anElem == 0 )
     return 0;
 
@@ -911,22 +543,22 @@ int SMESH_MeshObj::GetNbEntities( const SMDSAbs_ElementType theType) const
   {
     case SMDSAbs_Node:
     {
-      return myMesh->NbNodes();
+      return myClient->NbNodes();
     }
     break;
     case SMDSAbs_Edge:
     {
-      return myMesh->NbEdges();
+      return myClient->NbEdges();
     }
     break;
     case SMDSAbs_Face:
     {
-      return myMesh->NbFaces();
+      return myClient->NbFaces();
     }
     break;
     case SMDSAbs_Volume:
     {
-      return myMesh->NbVolumes();
+      return myClient->NbVolumes();
     }
     break;
     default:
@@ -943,25 +575,25 @@ int SMESH_MeshObj::GetEntities( const SMDSAbs_ElementType theType, TEntityList&
   {
     case SMDSAbs_Node:
     {
-      SMDS_NodeIteratorPtr anIter = myMesh->nodesIterator();
+      SMDS_NodeIteratorPtr anIter = myClient->nodesIterator();
       while ( anIter->more() ) theObjs.push_back( anIter->next() );
     }
     break;
     case SMDSAbs_Edge:
     {
-      SMDS_EdgeIteratorPtr anIter = myMesh->edgesIterator();
+      SMDS_EdgeIteratorPtr anIter = myClient->edgesIterator();
       while ( anIter->more() ) theObjs.push_back( anIter->next() );
     }
     break;
     case SMDSAbs_Face:
     {
-      SMDS_FaceIteratorPtr anIter = myMesh->facesIterator();
+      SMDS_FaceIteratorPtr anIter = myClient->facesIterator();
       while ( anIter->more() ) theObjs.push_back( anIter->next() );
     }
     break;
     case SMDSAbs_Volume:
     {
-      SMDS_VolumeIteratorPtr anIter = myMesh->volumesIterator();
+      SMDS_VolumeIteratorPtr anIter = myClient->volumesIterator();
       while ( anIter->more() ) theObjs.push_back( anIter->next() );
     }
     break;
@@ -987,7 +619,7 @@ void SMESH_MeshObj::UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor
 //=================================================================================
 bool SMESH_MeshObj::IsNodePrs() const
 {
-  return myMesh->NbEdges() == 0 &&myMesh->NbFaces() == 0 &&myMesh->NbVolumes() == 0 ;
+  return myClient->NbEdges() == 0 &&myClient->NbFaces() == 0 && myClient->NbVolumes() == 0 ;
 }
 
 
@@ -1256,15 +888,3 @@ bool SMESH_subMeshObj::IsNodePrs() const
 {
   return mySubMeshServer->GetNumberOfElements() == 0;
 }
-
-
-
-
-
-
-
-
-
-
-
-
index 5d7a1580a7a77f5de28ca1e4510fc298ad6736c5..9e2f49dcf6b9971793e781decf2492d129fc2491 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index fb0ca9771dcf70d052a739d679a9cd4b9bc2b76f..327664867ac33ef01ec31c06cff08f7fd10ffbe3 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #ifndef SMESH_OBJECTDEF_H
 #define SMESH_OBJECTDEF_H
 
+#include "SMESH_Controls.hxx"
+#include "SMESH_Object.h"
+#include "SMESH_Client.hxx"
+
 // IDL Headers
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
@@ -37,9 +41,6 @@
 #include <map>
 #include <list>
 
-#include "SMESH_Controls.hxx"
-#include "SMESH_Object.h"
-
 class vtkPoints;
 class SALOME_ExtractUnstructuredGrid;
 
@@ -121,13 +122,11 @@ public:
 
   virtual void              UpdateFunctor( const SMESH::Controls::FunctorPtr& theFunctor );
   
-  SMESH::SMESH_Mesh_ptr     GetMeshServer() { return myMeshServer.in(); }
-  SMDS_Mesh*                GetMesh() const { return myMesh; }
+  SMESH::SMESH_Mesh_ptr     GetMeshServer() { return myClient.GetMeshServer(); }
+  SMDS_Mesh*                GetMesh() const { return myClient.GetMesh(); }
 
 protected:
-
-  SMESH::SMESH_Mesh_var     myMeshServer;
-  SMDS_Mesh*                myMesh;
+  SMESH_Client              myClient;
 };
 
 
index 32fc0da594ce0fb06586ccb95aa82997d9797f72..01df90ab4c84aba8c7f94ebd4ce641102300b8a4 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -29,6 +29,7 @@ top_srcdir=@top_srcdir@
 top_builddir=../..
 srcdir=@srcdir@
 VPATH=.:@srcdir@:@top_srcdir@/idl
+KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@
 
 
 @COMMENCE@
@@ -59,21 +60,10 @@ LIB_SRC = \
        SMDS_FaceOfEdges.cxx \
        SMDS_FaceOfNodes.cxx \
        SMDS_PolygonalFaceOfNodes.cxx \
-       SMDS_VolumeTool.cxx
-#      SMDS_Tria3OfNodes.cxx \
-#      SMDS_HexahedronOfNodes.cxx
-
-#SMDSControl_BoundaryEdges.cxx \
-#SMDSControl_BoundaryFaces.cxx \
-#SMDSControl.cxx \
-#SMDSControl_MeshBoundary.cxx \
-#SMDSEdit_Transform.cxx \
-#SMDS_MeshNodeIDFactory.cxx \
-#SMDS_MeshPrism.cxx \
-#SMDS_MeshPyramid.cxx \
-#SMDS_MeshQuadrangle.cxx \
-#SMDS_MeshTetrahedron.cxx \
-#SMDS_MeshTriangle.cxx \
+       SMDS_VolumeTool.cxx \
+       SMDS_QuadraticEdge.cxx \
+       SMDS_QuadraticFaceOfNodes.cxx \
+       SMDS_QuadraticVolumeOfNodes.cxx
 
 
 LIB_CLIENT_IDL = 
@@ -114,26 +104,16 @@ EXPORT_HEADERS= \
        SMDS_FaceOfNodes.hxx \
        SMDS_PolygonalFaceOfNodes.hxx \
        SMDS_VolumeTool.hxx \
+       SMDS_QuadraticEdge.hxx \
+       SMDS_QuadraticFaceOfNodes.hxx \
+       SMDS_QuadraticVolumeOfNodes.hxx \
+       SMDS_SetIterator.hxx \
        SMESH_SMDS.hxx
-#      SMDS_Tria3OfNodes.hxx \
-#      SMDS_HexahedronOfNodes.hxx
-
-#SMDSControl_BoundaryEdges.hxx \
-#SMDSControl_BoundaryFaces.hxx \
-#SMDSControl.hxx \
-#SMDSControl_MeshBoundary.hxx \
-#SMDSEdit_Transform.hxx \
-#SMDS_MeshPrism.hxx \
-#SMDS_MeshPyramid.hxx \
-#SMDS_MeshQuadrangle.hxx \
-#SMDS_MeshTetrahedron.hxx \
-#SMDS_MeshTriangle.hxx \
-#SMDS_MeshNodeIDFactory.hxx
 
 # additionnal information to compil and link file
-CPPFLAGS += -I${KERNEL_ROOT_DIR}/include/salome $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome
-LDFLAGS  += -L${KERNEL_ROOT_DIR}/lib/salome $(OCC_KERNEL_LIBS)
+CPPFLAGS += $(KERNEL_CXXFLAGS) $(OCC_INCLUDES) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(KERNEL_CXXFLAGS)
+LDFLAGS  += $(KERNEL_LDFLAGS) $(OCC_KERNEL_LIBS)
 
 
 # additional file to be cleaned
index c474a4e55ccbeaa48a8b9278eb70c11784659904..fed89972f798f7448b7689e3913580c9ffa80761 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org or email : webmaster@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 82c92b3980a553b55acf98ede2265bcb53e985ec..836b01e3af48ee1f5639b073c2a0c49d4f6ca866 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index a8d85c256ebcdcf45bafe23b2ad049d592dd697a..a89e77400414581543c99a57c1497c0e9e5afc0c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index c8432afddf0e0865c92f6132415fa577836628cb..624113cf0eeecd9f70f109cdb4599fb0124c8794 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include <boost/shared_ptr.hpp>
 
 class SMDS_MeshElement;
+class SMDS_MeshNode;
+class SMDS_MeshEdge;
+class SMDS_MeshFace;
+class SMDS_MeshVolume;
 
 typedef SMDS_Iterator<const SMDS_MeshElement *> SMDS_ElemIterator;
 typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshElement *> > SMDS_ElemIteratorPtr;
 
+typedef SMDS_Iterator<const SMDS_MeshNode *> SMDS_NodeIterator;
+typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshNode *> > SMDS_NodeIteratorPtr;
+
+typedef SMDS_Iterator<const SMDS_MeshEdge *> SMDS_EdgeIterator;
+typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshEdge *> > SMDS_EdgeIteratorPtr;
+
+typedef SMDS_Iterator<const SMDS_MeshFace *> SMDS_FaceIterator;
+typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshFace *> > SMDS_FaceIteratorPtr;
+
+typedef SMDS_Iterator<const SMDS_MeshVolume *> SMDS_VolumeIterator;
+typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshVolume *> > SMDS_VolumeIteratorPtr;
+
 #endif
index 640c55d30194f44cd2835f4164abfaed5bc93a3b..2e5651fff3079a4fe7065b4fbc37aa36443bf5a6 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
@@ -155,3 +155,29 @@ SMDS_FaceOfEdges::SMDS_FaceOfEdges(const SMDS_MeshEdge* edge1,
 
 }*/
 
+
+int SMDS_FaceOfEdges::NbNodes() const
+{
+  return myEdges[0]->NbNodes() + myEdges[1]->NbNodes() + myEdges[2]->NbNodes() +
+    ( myNbEdges == 4 ? myEdges[3]->NbNodes() : 0 ) - myNbEdges;
+}
+
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_FaceOfEdges::GetNode(const int ind) const
+{
+  int index = WrappedIndex( ind );
+  for ( int i = 0; i < myNbEdges; ++i ) {
+    if ( index >= myEdges[ i ]->NbNodes() )
+      index -= myEdges[ i ]->NbNodes();
+    else
+      return myEdges[ i ]->GetNode( index );
+  }
+  return 0;
+}
+
index a314697e3818e053cd978108a9018d11ae19e018..4a0a8850ce0599b6c21d79caf4bb8076453bee36 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMDS_FaceOfEdges_HeaderFile
 #define _SMDS_FaceOfEdges_HeaderFile
@@ -44,10 +44,21 @@ class SMDS_EXPORT SMDS_FaceOfEdges:public SMDS_MeshFace
                          const SMDS_MeshEdge* edge4);
                
        SMDSAbs_ElementType GetType() const;
+       int NbNodes() const;
        int NbEdges() const;
        int NbFaces() const;
 //     friend bool operator<(const SMDS_FaceOfEdges& e1, const SMDS_FaceOfEdges& e2);
 
+
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
   protected:
        SMDS_ElemIteratorPtr
                elementsIterator(SMDSAbs_ElementType type) const;
index aa687082475c0633983a49b859093ecbd6b5bdca..0ad564ef79012272ce087a206b007b63e3473c28 100644 (file)
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
 #endif
 
+#include "SMDS_SetIterator.hxx"
 #include "SMDS_FaceOfNodes.hxx"
 #include "SMDS_IteratorOfElements.hxx"
 #include "SMDS_MeshNode.hxx"
@@ -68,25 +69,11 @@ void SMDS_FaceOfNodes::Print(ostream & OS) const
 //purpose  : 
 //=======================================================================
 
-class SMDS_FaceOfNodes_MyIterator:public SMDS_ElemIterator
+class SMDS_FaceOfNodes_MyIterator:public SMDS_NodeArrayElemIterator
 {
-  const SMDS_MeshNode* const *mySet;
-  int myLength;
-  int index;
  public:
   SMDS_FaceOfNodes_MyIterator(const SMDS_MeshNode* const *s, int l):
-    mySet(s),myLength(l),index(0) {}
-
-  bool more()
-  {
-    return index<myLength;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
+    SMDS_NodeArrayElemIterator( s, & s[ l ] ) {}
 };
 
 SMDS_ElemIteratorPtr SMDS_FaceOfNodes::elementsIterator
@@ -147,6 +134,18 @@ bool SMDS_FaceOfNodes::ChangeNodes(const SMDS_MeshNode* nodes[],
   return true;
 }
 
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_FaceOfNodes::GetNode(const int ind) const
+{
+  return myNodes[ WrappedIndex( ind )];
+}
+
 /*bool operator<(const SMDS_FaceOfNodes& f1, const SMDS_FaceOfNodes& f2)
 {
        set<SMDS_MeshNode> set1,set2;
index 1ce06047ca6f18b592903d380f29dc15216c2797..7779c6ffd3baaf402297ed7c4e49792211f41040 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMDS_FaceOfNodes_HeaderFile
 #define _SMDS_FaceOfNodes_HeaderFile
@@ -46,6 +46,16 @@ class SMDS_EXPORT SMDS_FaceOfNodes:public SMDS_MeshFace
        int NbEdges() const;
        int NbFaces() const;
        int NbNodes() const;
+
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
   protected:
        SMDS_ElemIteratorPtr
                elementsIterator(SMDSAbs_ElementType type) const;
index c97e64f7a25b1dee95ed0ea190e0bab4de8412ca..835f17bc6db76cb4ba4a923f6eb6c8041a7af95d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 7c6a2fa04cec3267bf5f66302788cb24197ceceb..d928efe584c3e8042ed3fd9ef4c3aa0b6bf5cb20 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 21824c1e7271da3f0e9185dc83c5e56798a372fe..5d17b6fa2cb5fca2af784b078f27e67f05b065c0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMDS_Iterator_HeaderFile
 #define _SMDS_Iterator_HeaderFile
index 472ae0d54058883c21e4c9545ec8343ef980d695..77a00c80247bded651d377c1c63874a1dad94de3 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
index ba44c1841fb786980514603fe3b5dc6aa6b6abd9..02569d81a72dead398b6dcfad9c49e16ebc7041c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "SMESH_SMDS.hxx"
 
index 6381e547e626174de6c68a803cc0fee451c26efe..26a998117dc5fda2cd2acc490f44fbd73cb62ca5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
@@ -31,6 +31,9 @@
 #include "SMDS_FaceOfEdges.hxx"
 #include "SMDS_PolyhedralVolumeOfNodes.hxx"
 #include "SMDS_PolygonalFaceOfNodes.hxx"
+#include "SMDS_QuadraticEdge.hxx"
+#include "SMDS_QuadraticFaceOfNodes.hxx"
+#include "SMDS_QuadraticVolumeOfNodes.hxx"
 
 #include <algorithm>
 #include <map>
@@ -138,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;
@@ -190,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;
   }
@@ -241,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;
   }
@@ -273,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);
 
@@ -310,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);
 
@@ -371,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);
@@ -453,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);
@@ -539,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);
@@ -637,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);
@@ -694,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);
 
@@ -735,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);
 
@@ -778,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);
 
@@ -821,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);
   }
@@ -882,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);
   }
@@ -941,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;
@@ -969,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;
@@ -1084,19 +1105,32 @@ bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
       if ( edge )
         Ok = const_cast<SMDS_MeshEdge*>( edge )->ChangeNodes( nodes[0], nodes[1] );
     }
+    else if ( nbnodes == 3 ) {
+      const SMDS_QuadraticEdge* edge = dynamic_cast<const SMDS_QuadraticEdge*>( elem );
+      if ( edge )
+        Ok = const_cast<SMDS_QuadraticEdge*>( edge )->ChangeNodes( nodes[0], nodes[1], nodes[2] );
+    }
     break;
   }
   case SMDSAbs_Face: {
     const SMDS_FaceOfNodes* face = dynamic_cast<const SMDS_FaceOfNodes*>( elem );
     if ( face ) {
       Ok = const_cast<SMDS_FaceOfNodes*>( face )->ChangeNodes( nodes, nbnodes );
-    } else {
-      /// ??? begin
-      const SMDS_PolygonalFaceOfNodes* face = dynamic_cast<const SMDS_PolygonalFaceOfNodes*>(elem);
-      if (face) {
-        Ok = const_cast<SMDS_PolygonalFaceOfNodes*>(face)->ChangeNodes(nodes, nbnodes);
+    }
+    else {
+      const SMDS_QuadraticFaceOfNodes* QF =
+        dynamic_cast<const SMDS_QuadraticFaceOfNodes*>( elem );
+      if ( QF ) {
+        Ok = const_cast<SMDS_QuadraticFaceOfNodes*>( QF )->ChangeNodes( nodes, nbnodes );
+      }
+      else {
+        /// ??? begin
+        const SMDS_PolygonalFaceOfNodes* face = dynamic_cast<const SMDS_PolygonalFaceOfNodes*>(elem);
+        if (face) {
+          Ok = const_cast<SMDS_PolygonalFaceOfNodes*>(face)->ChangeNodes(nodes, nbnodes);
+        }
+        /// ??? end
       }
-      /// ??? end
     }
     break;
   }
@@ -1109,8 +1143,15 @@ bool SMDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
   //}
   case SMDSAbs_Volume: {
     const SMDS_VolumeOfNodes* vol = dynamic_cast<const SMDS_VolumeOfNodes*>( elem );
-    if ( vol )
+    if ( vol ) {
       Ok = const_cast<SMDS_VolumeOfNodes*>( vol )->ChangeNodes( nodes, nbnodes );
+    }
+    else {
+      const SMDS_QuadraticVolumeOfNodes* QV = dynamic_cast<const SMDS_QuadraticVolumeOfNodes*>( elem );
+      if ( QV ) {
+        Ok = const_cast<SMDS_QuadraticVolumeOfNodes*>( QV )->ChangeNodes( nodes, nbnodes );
+      }
+    }
     break;
   }
   default:
@@ -1200,6 +1241,7 @@ bool SMDS_Mesh::ChangePolyhedronNodes (const SMDS_MeshElement * elem,
   return Ok;
 }
 
+
 //=======================================================================
 //function : FindEdge
 //purpose  :
@@ -1207,54 +1249,96 @@ bool SMDS_Mesh::ChangePolyhedronNodes (const SMDS_MeshElement * elem,
 
 const SMDS_MeshEdge* SMDS_Mesh::FindEdge(int idnode1, int idnode2) const
 {
-       const SMDS_MeshNode * node1=FindNode(idnode1);
-       const SMDS_MeshNode * node2=FindNode(idnode2);
-       if((node1==NULL)||(node2==NULL)) return NULL;
-       return FindEdge(node1,node2);
+  const SMDS_MeshNode * node1=FindNode(idnode1);
+  const SMDS_MeshNode * node2=FindNode(idnode2);
+  if((node1==NULL)||(node2==NULL)) return NULL;
+  return FindEdge(node1,node2);
 }
 
 //#include "Profiler.h"
 const SMDS_MeshEdge* SMDS_Mesh::FindEdge(const SMDS_MeshNode * node1,
                                          const SMDS_MeshNode * node2)
 {
-       const SMDS_MeshEdge * toReturn=NULL;
-       //PROFILER_Init();
-       //PROFILER_Set();
-       SMDS_ElemIteratorPtr it1=node1->edgesIterator();
-       //PROFILER_Get(0);
-       //PROFILER_Set();
-       while(it1->more())
-       {
-               const SMDS_MeshEdge * e=static_cast<const SMDS_MeshEdge *>
-                       (it1->next());
-               SMDS_ElemIteratorPtr it2=e->nodesIterator();
-               while(it2->more())
-               {
-                       if(it2->next()->GetID()==node2->GetID())
-                       {
-                               toReturn=e;
-                               break;
-                       }
-               }
-       }
-       //PROFILER_Get(1);
-       return toReturn;
+  const SMDS_MeshEdge * toReturn=NULL;
+  //PROFILER_Init();
+  //PROFILER_Set();
+  SMDS_ElemIteratorPtr it1=node1->edgesIterator();
+  //PROFILER_Get(0);
+  //PROFILER_Set();
+  while(it1->more()) {
+    const SMDS_MeshEdge * e=static_cast<const SMDS_MeshEdge *> (it1->next());
+    SMDS_ElemIteratorPtr it2=e->nodesIterator();
+    while(it2->more()) {
+      if(it2->next()->GetID()==node2->GetID()) {
+        toReturn = e;
+        break;
+      }
+    }
+  }
+  //PROFILER_Get(1);
+  return toReturn;
 }
 
 
+//=======================================================================
+//function : FindEdgeOrCreate
+//purpose  :
+//=======================================================================
+
 SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
-       const SMDS_MeshNode * node2) 
+                                           const SMDS_MeshNode * node2) 
+{
+  if ( !node1 || !node2) return 0;
+  SMDS_MeshEdge * toReturn=NULL;
+  toReturn=const_cast<SMDS_MeshEdge*>(FindEdge(node1,node2));
+  if(toReturn==NULL) {
+    toReturn=new SMDS_MeshEdge(node1,node2);
+    myEdges.Add(toReturn);
+  } 
+  return toReturn;
+}
+
+
+//=======================================================================
+//function : FindEdge
+//purpose  :
+//=======================================================================
+
+const SMDS_MeshEdge* SMDS_Mesh::FindEdge(int idnode1, int idnode2,
+                                         int idnode3) const
 {
-       SMDS_MeshEdge * toReturn=NULL;
-       toReturn=const_cast<SMDS_MeshEdge*>(FindEdge(node1,node2));
-       if(toReturn==NULL)      
-       {
-          toReturn=new SMDS_MeshEdge(node1,node2);
-          myEdges.Add(toReturn);
-       } 
-       return toReturn;
+  const SMDS_MeshNode * node1=FindNode(idnode1);
+  const SMDS_MeshNode * node2=FindNode(idnode2);
+  const SMDS_MeshNode * node3=FindNode(idnode3);
+  return FindEdge(node1,node2,node3);
+}
+
+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()) {
+    const SMDS_MeshEdge * e = static_cast<const SMDS_MeshEdge *> (it1->next());
+    SMDS_ElemIteratorPtr it2 = e->nodesIterator();
+    int tmp = 0;
+    while(it2->more()) {
+      int nID = it2->next()->GetID();
+      if( nID==node2->GetID() || nID==node3->GetID() ) {
+        tmp++;
+        if(tmp==2) {
+          toReturn = e;
+          break;
+        }
+      }
+    }
+  }
+  return toReturn;
 }
 
+
 //=======================================================================
 //function : FindFace
 //purpose  :
@@ -1263,118 +1347,219 @@ SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_MeshNode * node1,
 const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
        int idnode3) const
 {
-       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);
+  const SMDS_MeshNode * node1=FindNode(idnode1);
+  const SMDS_MeshNode * node2=FindNode(idnode2);
+  const SMDS_MeshNode * node3=FindNode(idnode3);
+  return FindFace(node1, node2, node3);
 }
 
-const SMDS_MeshFace* SMDS_Mesh::FindFace(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3)
+const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
+                                         const SMDS_MeshNode *node2,
+                                         const SMDS_MeshNode *node3)
 {
-       const SMDS_MeshFace * face;
-       const SMDS_MeshElement * node;
-       bool node2found, node3found;
-
-       SMDS_ElemIteratorPtr it1=node1->facesIterator();
-       while(it1->more())
-       {
-               face=static_cast<const SMDS_MeshFace*>(it1->next());
-               if(face->NbNodes()!=3) continue;
-               SMDS_ElemIteratorPtr it2=face->nodesIterator();
-               node2found=false;
-               node3found=false;
-               while(it2->more())
-               {
-                       node=it2->next();
-                       if(node->GetID()==node2->GetID()) node2found=true;
-                       if(node->GetID()==node3->GetID()) node3found=true;
-               }
-               if(node2found&&node3found)
-                       return face;
-       }
-       return NULL;
+  if ( !node1 || !node2 || !node3 ) return 0;
+  const SMDS_MeshFace * face;
+  const SMDS_MeshElement * node;
+  bool node2found, node3found;
+
+  SMDS_ElemIteratorPtr it1 = node1->facesIterator();
+  while(it1->more()) {
+    face = static_cast<const SMDS_MeshFace*>(it1->next());
+    if(face->NbNodes()!=3) continue;
+    SMDS_ElemIteratorPtr it2 = face->nodesIterator();
+    node2found = false;
+    node3found = false;
+    while(it2->more()) {
+      node = it2->next();
+      if(node->GetID()==node2->GetID()) node2found = true;
+      if(node->GetID()==node3->GetID()) node3found = true;
+    }
+    if( node2found && node3found )
+      return face;
+  }
+  return NULL;
 }
 
-SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3)
+SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(const SMDS_MeshNode *node1,
+                                           const SMDS_MeshNode *node2,
+                                           const SMDS_MeshNode *node3)
 {
-       SMDS_MeshFace * toReturn=NULL;
-       toReturn=const_cast<SMDS_MeshFace*>(FindFace(node1,node2,node3));
-       if(toReturn==NULL)
-       {
-         toReturn=createTriangle(node1,node2,node3);
-       }
-       return toReturn;
+  SMDS_MeshFace * toReturn=NULL;
+  toReturn = const_cast<SMDS_MeshFace*>(FindFace(node1,node2,node3));
+  if(toReturn==NULL) {
+    toReturn = createTriangle(node1,node2,node3);
+  }
+  return toReturn;
 }
 
+
 //=======================================================================
 //function : FindFace
 //purpose  :
 //=======================================================================
 
-const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2, int idnode3,
-       int idnode4) const
+const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
+                                         int idnode3, int idnode4) const
 {
-       const SMDS_MeshNode * node1=FindNode(idnode1);
-       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);
+  const SMDS_MeshNode * node1=FindNode(idnode1);
+  const SMDS_MeshNode * node2=FindNode(idnode2);
+  const SMDS_MeshNode * node3=FindNode(idnode3);
+  const SMDS_MeshNode * node4=FindNode(idnode4);
+  return FindFace(node1, node2, node3, node4);
 }
 
-const SMDS_MeshFace* SMDS_Mesh::FindFace(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3,
-               const SMDS_MeshNode *node4)
+const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
+                                         const SMDS_MeshNode *node2,
+                                         const SMDS_MeshNode *node3,
+                                         const SMDS_MeshNode *node4)
 {
-       const SMDS_MeshFace * face;
-       const SMDS_MeshElement * node;
-       bool node2found, node3found, node4found;
-       SMDS_ElemIteratorPtr it1=node1->facesIterator();
-       while(it1->more())
-       {
-               face=static_cast<const SMDS_MeshFace *>(it1->next());
-               if(face->NbNodes()!=4) continue;
-               SMDS_ElemIteratorPtr it2=face->nodesIterator();
-               node2found=false;
-               node3found=false;
-               node4found=false;
-               while(it2->more())
-               {
-                       node=it2->next();
-                       if(node->GetID()==node2->GetID()) node2found=true;
-                       if(node->GetID()==node3->GetID()) node3found=true;
-                       if(node->GetID()==node4->GetID()) node4found=true;
-               }
-               if(node2found&&node3found&&node4found)
-                       return face;
-       }
-       return NULL;
+  if( (node1==NULL) || (node2==NULL) || (node3==NULL) || (node4==NULL) )
+    return NULL;
+  const SMDS_MeshFace * face;
+  const SMDS_MeshElement * node;
+  bool node2found, node3found, node4found;
+  SMDS_ElemIteratorPtr it1 = node1->facesIterator();
+  while(it1->more()) {
+    face = static_cast<const SMDS_MeshFace *>(it1->next());
+    if(face->NbNodes()!=4) continue;
+    SMDS_ElemIteratorPtr it2 = face->nodesIterator();
+    node2found = false;
+    node3found = false;
+    node4found = false;
+    while(it2->more()) {
+      node=it2->next();
+      if(node->GetID()==node2->GetID()) node2found = true;
+      if(node->GetID()==node3->GetID()) node3found = true;
+      if(node->GetID()==node4->GetID()) node4found = true;
+    }
+    if( node2found && node3found && node4found )
+      return face;
+  }
+  return NULL;
 }
 
-SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(
-               const SMDS_MeshNode *node1,
-               const SMDS_MeshNode *node2,
-               const SMDS_MeshNode *node3,
-               const SMDS_MeshNode *node4)
+SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(const SMDS_MeshNode *node1,
+                                           const SMDS_MeshNode *node2,
+                                           const SMDS_MeshNode *node3,
+                                           const SMDS_MeshNode *node4)
 {
-       SMDS_MeshFace * toReturn=NULL;
-       toReturn=const_cast<SMDS_MeshFace*>(FindFace(node1,node2,node3,node4));
-       if(toReturn==NULL)
-       {
-         toReturn=createQuadrangle(node1,node2,node3,node4);
-       }
-       return toReturn;
+  SMDS_MeshFace * toReturn=NULL;
+  toReturn=const_cast<SMDS_MeshFace*>(FindFace(node1,node2,node3,node4));
+  if(toReturn==NULL) {
+    toReturn=createQuadrangle(node1,node2,node3,node4);
+  }
+  return toReturn;
+}
+
+
+//=======================================================================
+//function : FindFace
+//purpose  :quadratic triangle
+//=======================================================================
+
+const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
+                                         int idnode3, int idnode4,
+                                         int idnode5, int idnode6) const
+{
+  const SMDS_MeshNode * node1 = FindNode(idnode1);
+  const SMDS_MeshNode * node2 = FindNode(idnode2);
+  const SMDS_MeshNode * node3 = FindNode(idnode3);
+  const SMDS_MeshNode * node4 = FindNode(idnode4);
+  const SMDS_MeshNode * node5 = FindNode(idnode5);
+  const SMDS_MeshNode * node6 = FindNode(idnode6);
+  return FindFace(node1, node2, node3, node4, node5, node6);
+}
+
+const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
+                                         const SMDS_MeshNode *node2,
+                                         const SMDS_MeshNode *node3,
+                                         const SMDS_MeshNode *node4,
+                                         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();
+  while(it1->more()) {
+    face = static_cast<const SMDS_MeshFace*>(it1->next());
+    if(face->NbNodes()!=6) continue;
+    SMDS_ElemIteratorPtr it2 = face->nodesIterator();
+    int tmp = 0;
+    while(it2->more()) {
+      node = it2->next();
+      if(node->GetID()==node2->GetID()) tmp++;
+      if(node->GetID()==node3->GetID()) tmp++;
+      if(node->GetID()==node4->GetID()) tmp++;
+      if(node->GetID()==node5->GetID()) tmp++;
+      if(node->GetID()==node6->GetID()) tmp++;
+    }
+    if( tmp==5 )
+      return static_cast<const SMDS_MeshFace*>(face);
+  }
+  return NULL;
+}
+
+
+//=======================================================================
+//function : FindFace
+//purpose  : quadratic quadrangle
+//=======================================================================
+
+const SMDS_MeshFace* SMDS_Mesh::FindFace(int idnode1, int idnode2,
+                                         int idnode3, int idnode4,
+                                         int idnode5, int idnode6,
+                                         int idnode7, int idnode8) const
+{
+  const SMDS_MeshNode * node1 = FindNode(idnode1);
+  const SMDS_MeshNode * node2 = FindNode(idnode2);
+  const SMDS_MeshNode * node3 = FindNode(idnode3);
+  const SMDS_MeshNode * node4 = FindNode(idnode4);
+  const SMDS_MeshNode * node5 = FindNode(idnode5);
+  const SMDS_MeshNode * node6 = FindNode(idnode6);
+  const SMDS_MeshNode * node7 = FindNode(idnode7);
+  const SMDS_MeshNode * node8 = FindNode(idnode8);
+  return FindFace(node1, node2, node3, node4, node5, node6, node7, node8);
+}
+
+const SMDS_MeshFace* SMDS_Mesh::FindFace(const SMDS_MeshNode *node1,
+                                         const SMDS_MeshNode *node2,
+                                         const SMDS_MeshNode *node3,
+                                         const SMDS_MeshNode *node4,
+                                         const SMDS_MeshNode *node5,
+                                         const SMDS_MeshNode *node6,
+                                         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();
+  while(it1->more()) {
+    face = static_cast<const SMDS_MeshFace *>(it1->next());
+    if(face->NbNodes()!=8) continue;
+    SMDS_ElemIteratorPtr it2 = face->nodesIterator();
+    int tmp = 0;
+    while(it2->more()) {
+      node = it2->next();
+      if(node->GetID()==node2->GetID()) tmp++;
+      if(node->GetID()==node3->GetID()) tmp++;
+      if(node->GetID()==node4->GetID()) tmp++;
+      if(node->GetID()==node5->GetID()) tmp++;
+      if(node->GetID()==node6->GetID()) tmp++;
+      if(node->GetID()==node7->GetID()) tmp++;
+      if(node->GetID()==node8->GetID()) tmp++;
+    }
+    if( tmp==7 )
+      return face;
+  }
+  return NULL;
 }
 
+
 //=======================================================================
 //function : FindElement
 //purpose  :
@@ -1382,7 +1567,7 @@ SMDS_MeshFace* SMDS_Mesh::FindFaceOrCreate(
 
 const SMDS_MeshElement* SMDS_Mesh::FindElement(int IDelem) const
 {
-       return myElementIDFactory->MeshElement(IDelem);
+  return myElementIDFactory->MeshElement(IDelem);
 }
 
 //=======================================================================
@@ -1411,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();
@@ -2075,6 +2262,57 @@ void SMDS_Mesh::RemoveElement(const SMDS_MeshElement *        elem,
   delete s1;
 }
 
+  
+///////////////////////////////////////////////////////////////////////////////
+///@param elem The element to delete
+///////////////////////////////////////////////////////////////////////////////
+void SMDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elem)
+{
+  SMDSAbs_ElementType aType = elem->GetType();
+  if (aType == SMDSAbs_Node) {
+    // only free node can be removed by this method
+    const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>(elem);
+    SMDS_ElemIteratorPtr itFe = n->GetInverseElementIterator();
+    if (!itFe->more()) { // free node
+      myNodes.Remove(const_cast<SMDS_MeshNode*>(n));
+      myNodeIDFactory->ReleaseID(elem->GetID());
+      delete elem;
+    }
+  } else {
+    if (hasConstructionEdges() || hasConstructionFaces())
+      // this methods is only for meshes without descendants
+      return;
+
+    // Remove element from <InverseElements> of its nodes
+    SMDS_ElemIteratorPtr itn = elem->nodesIterator();
+    while (itn->more()) {
+      SMDS_MeshNode * n = static_cast<SMDS_MeshNode *>
+        (const_cast<SMDS_MeshElement *>(itn->next()));
+      n->RemoveInverseElement(elem);
+    }
+
+    // in meshes without descendants elements are always free
+    switch (aType) {
+    case SMDSAbs_Edge:
+      myEdges.Remove(static_cast<SMDS_MeshEdge*>
+                     (const_cast<SMDS_MeshElement*>(elem)));
+      break;
+    case SMDSAbs_Face:
+      myFaces.Remove(static_cast<SMDS_MeshFace*>
+                     (const_cast<SMDS_MeshElement*>(elem)));
+      break;
+    case SMDSAbs_Volume:
+      myVolumes.Remove(static_cast<SMDS_MeshVolume*>
+                       (const_cast<SMDS_MeshElement*>(elem)));
+      break;
+    default:
+      break;
+    }
+    myElementIDFactory->ReleaseID(elem->GetID());
+    delete elem;
+  }
+}
+
 /*!
  * Checks if the element is present in mesh.
  * Useful to determine dead pointers.
@@ -2200,4 +2438,573 @@ SMDSAbs_ElementType SMDS_Mesh::GetElementType( const int id, const bool iselem )
   }
   else
     return elem->GetType();
-}
\ No newline at end of file
+}
+
+
+
+//********************************************************************
+//********************************************************************
+//********                                                   *********
+//*****       Methods for addition of quadratic elements        ******
+//********                                                   *********
+//********************************************************************
+//********************************************************************
+
+//=======================================================================
+//function : AddEdgeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(int n1, int n2, int n12, int ID) 
+{
+  return SMDS_Mesh::AddEdgeWithID
+    ((SMDS_MeshNode*) myNodeIDFactory->MeshElement(n1),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n2),
+     (SMDS_MeshNode*) myNodeIDFactory->MeshElement(n12),
+     ID);
+}
+
+//=======================================================================
+//function : AddEdge
+//purpose  : 
+//=======================================================================
+SMDS_MeshEdge* SMDS_Mesh::AddEdge(const SMDS_MeshNode* n1,
+                                 const SMDS_MeshNode* n2,
+                                  const SMDS_MeshNode* n12)
+{
+  return SMDS_Mesh::AddEdgeWithID(n1, n2, n12, myElementIDFactory->GetFreeID());
+}
+
+//=======================================================================
+//function : AddEdgeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
+                                       const SMDS_MeshNode * n2, 
+                                       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;
+    node1 = const_cast<SMDS_MeshNode*>(n1);
+    node2 = const_cast<SMDS_MeshNode*>(n2);
+    node12 = const_cast<SMDS_MeshNode*>(n12);
+    node1->AddInverseElement(edge);
+    node2->AddInverseElement(edge);
+    node12->AddInverseElement(edge);
+    myEdges.Add(edge);
+    return edge;
+  } 
+  else {
+    delete edge;
+    return NULL;
+  }
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshNode * n1,
+                                 const SMDS_MeshNode * n2,
+                                 const SMDS_MeshNode * n3,
+                                  const SMDS_MeshNode * n12,
+                                  const SMDS_MeshNode * n23,
+                                  const SMDS_MeshNode * n31)
+{
+  return SMDS_Mesh::AddFaceWithID(n1,n2,n3,n12,n23,n31,
+                                  myElementIDFactory->GetFreeID());
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
+                                        int n12,int n23,int n31, int 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);
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
+                                        const SMDS_MeshNode * n2,
+                                        const SMDS_MeshNode * n3,
+                                        const SMDS_MeshNode * n12,
+                                        const SMDS_MeshNode * n23,
+                                        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);
+  myFaces.Add(face);
+
+  if (!registerElement(ID, face)) {
+    RemoveElement(face, false);
+    face = NULL;
+  }
+  return face;
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMDS_Mesh::AddFace(const SMDS_MeshNode * n1,
+                                 const SMDS_MeshNode * n2,
+                                 const SMDS_MeshNode * n3,
+                                 const SMDS_MeshNode * n4,
+                                  const SMDS_MeshNode * n12,
+                                  const SMDS_MeshNode * n23,
+                                  const SMDS_MeshNode * n34,
+                                  const SMDS_MeshNode * n41)
+{
+  return SMDS_Mesh::AddFaceWithID(n1,n2,n3,n4,n12,n23,n34,n41,
+                                  myElementIDFactory->GetFreeID());
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
+                                        int n12,int n23,int n34,int n41, int 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);
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
+                                        const SMDS_MeshNode * n2,
+                                        const SMDS_MeshNode * n3,
+                                        const SMDS_MeshNode * n4,
+                                        const SMDS_MeshNode * n12,
+                                        const SMDS_MeshNode * n23,
+                                        const SMDS_MeshNode * n34, 
+                                        const SMDS_MeshNode * n41, 
+                                        int ID)
+{
+  if ( !n1 || !n2 || !n3 || !n4 || !n12 || !n23 || !n34 || !n41) return 0;
+  if(hasConstructionEdges()) {
+    // creation quadratic edges - not implemented
+  }
+  SMDS_QuadraticFaceOfNodes* face =
+    new SMDS_QuadraticFaceOfNodes(n1,n2,n3,n4,n12,n23,n34,n41);
+  myFaces.Add(face);
+
+  if (!registerElement(ID, face)) {
+    RemoveElement(face, false);
+    face = NULL;
+  }
+  return face;
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
+                                     const SMDS_MeshNode * n2, 
+                                     const SMDS_MeshNode * n3,
+                                     const SMDS_MeshNode * n4,
+                                      const SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n31,
+                                      const SMDS_MeshNode * n14, 
+                                      const SMDS_MeshNode * n24,
+                                      const SMDS_MeshNode * n34)
+{
+  int ID = myElementIDFactory->GetFreeID();
+  SMDS_MeshVolume * v = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n12, n23,
+                                                   n31, n14, n24, n34, ID);
+  if(v==NULL) myElementIDFactory->ReleaseID(ID);
+  return v;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+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)
+{
+  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
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                            const SMDS_MeshNode * n2,
+                                            const SMDS_MeshNode * n3,
+                                            const SMDS_MeshNode * n4,
+                                            const SMDS_MeshNode * n12,
+                                            const SMDS_MeshNode * n23,
+                                            const SMDS_MeshNode * n31,
+                                            const SMDS_MeshNode * n14, 
+                                            const SMDS_MeshNode * n24,
+                                            const SMDS_MeshNode * n34,
+                                            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);
+  myVolumes.Add(volume);
+
+  if (!registerElement(ID, volume)) {
+    RemoveElement(volume, false);
+    volume = NULL;
+  }
+  return volume;
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
+                                     const SMDS_MeshNode * n2, 
+                                     const SMDS_MeshNode * n3,
+                                     const SMDS_MeshNode * n4,
+                                      const SMDS_MeshNode * n5, 
+                                      const SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n34,
+                                      const SMDS_MeshNode * n41,
+                                      const SMDS_MeshNode * n15, 
+                                      const SMDS_MeshNode * n25,
+                                      const SMDS_MeshNode * n35,
+                                      const SMDS_MeshNode * n45)
+{
+  int ID = myElementIDFactory->GetFreeID();
+  SMDS_MeshVolume * v =
+    SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n12, n23, n34, n41,
+                               n15, n25, n35, n45, ID);
+  if(v==NULL) myElementIDFactory->ReleaseID(ID);
+  return v;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5,
+                                            int n12,int n23,int n34,int n41,
+                                            int n15,int n25,int n35,int n45, int 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
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                            const SMDS_MeshNode * n2,
+                                            const SMDS_MeshNode * n3,
+                                            const SMDS_MeshNode * n4,
+                                            const SMDS_MeshNode * n5, 
+                                            const SMDS_MeshNode * n12,
+                                            const SMDS_MeshNode * n23,
+                                            const SMDS_MeshNode * n34,
+                                            const SMDS_MeshNode * n41,
+                                            const SMDS_MeshNode * n15, 
+                                            const SMDS_MeshNode * n25,
+                                            const SMDS_MeshNode * n35,
+                                            const SMDS_MeshNode * n45,
+                                            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,
+                                    n34,n41,n15,n25,n35,n45);
+  myVolumes.Add(volume);
+
+  if (!registerElement(ID, volume)) {
+    RemoveElement(volume, false);
+    volume = NULL;
+  }
+  return volume;
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::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 * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n31, 
+                                      const SMDS_MeshNode * n45,
+                                      const SMDS_MeshNode * n56,
+                                      const SMDS_MeshNode * n64, 
+                                      const SMDS_MeshNode * n14,
+                                      const SMDS_MeshNode * n25,
+                                      const SMDS_MeshNode * n36)
+{
+  int ID = myElementIDFactory->GetFreeID();
+  SMDS_MeshVolume * v =
+    SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n12, n23, n31,
+                               n45, n56, n64, n14, n25, n36, ID);
+  if(v==NULL) myElementIDFactory->ReleaseID(ID);
+  return v;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
+                                            int n4, int n5, int n6,
+                                            int n12,int n23,int n31,
+                                            int n45,int n56,int n64,
+                                            int n14,int n25,int n36, int 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
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                            const SMDS_MeshNode * n2,
+                                            const SMDS_MeshNode * n3,
+                                            const SMDS_MeshNode * n4,
+                                            const SMDS_MeshNode * n5, 
+                                            const SMDS_MeshNode * n6, 
+                                            const SMDS_MeshNode * n12,
+                                            const SMDS_MeshNode * n23,
+                                            const SMDS_MeshNode * n31, 
+                                            const SMDS_MeshNode * n45,
+                                            const SMDS_MeshNode * n56,
+                                            const SMDS_MeshNode * n64, 
+                                            const SMDS_MeshNode * n14,
+                                            const SMDS_MeshNode * n25,
+                                            const SMDS_MeshNode * n36,
+                                            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,
+                                    n45,n56,n64,n14,n25,n36);
+  myVolumes.Add(volume);
+
+  if (!registerElement(ID, volume)) {
+    RemoveElement(volume, false);
+    volume = NULL;
+  }
+  return volume;
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::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 SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n34,
+                                      const SMDS_MeshNode * n41, 
+                                      const SMDS_MeshNode * n56,
+                                      const SMDS_MeshNode * n67,
+                                      const SMDS_MeshNode * n78,
+                                      const SMDS_MeshNode * n85, 
+                                      const SMDS_MeshNode * n15,
+                                      const SMDS_MeshNode * n26,
+                                      const SMDS_MeshNode * n37,
+                                      const SMDS_MeshNode * n48)
+{
+  int ID = myElementIDFactory->GetFreeID();
+  SMDS_MeshVolume * v =
+    SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, n12, n23, n34, n41,
+                               n56, n67, n78, n85, n15, n26, n37, n48, ID);
+  if(v==NULL) myElementIDFactory->ReleaseID(ID);
+  return v;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
+                                            int n5, int n6, int n7, int n8,
+                                            int n12,int n23,int n34,int n41,
+                                            int n56,int n67,int n78,int n85,
+                                            int n15,int n26,int n37,int n48, int 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
+//=======================================================================
+SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                            const SMDS_MeshNode * n2,
+                                            const SMDS_MeshNode * n3,
+                                            const SMDS_MeshNode * n4,
+                                            const SMDS_MeshNode * n5, 
+                                            const SMDS_MeshNode * n6, 
+                                            const SMDS_MeshNode * n7,
+                                            const SMDS_MeshNode * n8, 
+                                            const SMDS_MeshNode * n12,
+                                            const SMDS_MeshNode * n23,
+                                            const SMDS_MeshNode * n34,
+                                            const SMDS_MeshNode * n41, 
+                                            const SMDS_MeshNode * n56,
+                                            const SMDS_MeshNode * n67,
+                                            const SMDS_MeshNode * n78,
+                                            const SMDS_MeshNode * n85, 
+                                            const SMDS_MeshNode * n15,
+                                            const SMDS_MeshNode * n26,
+                                            const SMDS_MeshNode * n37,
+                                            const SMDS_MeshNode * n48,
+                                            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 =
+    new SMDS_QuadraticVolumeOfNodes(n1,n2,n3,n4,n5,n6,n7,n8,n12,n23,n34,n41,
+                                    n56,n67,n78,n85,n15,n26,n37,n48);
+  myVolumes.Add(volume);
+
+  if (!registerElement(ID, volume)) {
+    RemoveElement(volume, false);
+    volume = NULL;
+  }
+  return volume;
+}
+
index 7225b716272eb249f9b14bd54d524a85b3e46626..2cdf3749b9f46c8ec8b0cd08c993f7e4990ce695 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include <set>
 #include <list>
 
-typedef SMDS_Iterator<const SMDS_MeshNode *> SMDS_NodeIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshNode *> > SMDS_NodeIteratorPtr;
-typedef SMDS_Iterator<const SMDS_MeshEdge *> SMDS_EdgeIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshEdge *> > SMDS_EdgeIteratorPtr;
-typedef SMDS_Iterator<const SMDS_MeshFace *> SMDS_FaceIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshFace *> > SMDS_FaceIteratorPtr;
-typedef SMDS_Iterator<const SMDS_MeshVolume *> SMDS_VolumeIterator;
-typedef boost::shared_ptr<SMDS_Iterator<const SMDS_MeshVolume *> > SMDS_VolumeIteratorPtr;
-
 class SMDS_EXPORT SMDS_Mesh:public SMDS_MeshObject{
 public:
   
@@ -75,6 +66,16 @@ public:
   virtual SMDS_MeshEdge* AddEdge(const SMDS_MeshNode * n1,
                                 const SMDS_MeshNode * n2);
   
+  // 2d order edge with 3 nodes: n12 - node between n1 and n2
+  virtual SMDS_MeshEdge* AddEdgeWithID(int n1, int n2, int n12, int ID);
+  virtual SMDS_MeshEdge* AddEdgeWithID(const SMDS_MeshNode * n1,
+                                      const SMDS_MeshNode * n2, 
+                                      const SMDS_MeshNode * n12, 
+                                      int ID);
+  virtual SMDS_MeshEdge* AddEdge(const SMDS_MeshNode * n1,
+                                 const SMDS_MeshNode * n2,
+                                 const SMDS_MeshNode * n12);
+
   virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int ID);
   virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
                                       const SMDS_MeshNode * n2,
@@ -111,6 +112,44 @@ public:
                                  const SMDS_MeshEdge * e3,
                                  const SMDS_MeshEdge * e4);
 
+  // 2d order triangle of 6 nodes
+  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3,
+                                       int n12,int n23,int n31, int ID);
+  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
+                                      const SMDS_MeshNode * n2,
+                                      const SMDS_MeshNode * n3, 
+                                      const SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n31, 
+                                      int ID);
+  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
+                                const SMDS_MeshNode * n2,
+                                const SMDS_MeshNode * n3,
+                                 const SMDS_MeshNode * n12,
+                                const SMDS_MeshNode * n23,
+                                const SMDS_MeshNode * n31);
+
+  // 2d order quadrangle
+  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int n4,
+                                       int n12,int n23,int n34,int n41, int ID);
+  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
+                                      const SMDS_MeshNode * n2,
+                                      const SMDS_MeshNode * n3,
+                                      const SMDS_MeshNode * n4, 
+                                      const SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n34,
+                                      const SMDS_MeshNode * n41, 
+                                      int ID);
+  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
+                                const SMDS_MeshNode * n2,
+                                const SMDS_MeshNode * n3,
+                                const SMDS_MeshNode * n4,
+                                 const SMDS_MeshNode * n12,
+                                const SMDS_MeshNode * n23,
+                                const SMDS_MeshNode * n34,
+                                const SMDS_MeshNode * n41);
+
   virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int ID);
   virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
                                           const SMDS_MeshNode * n2,
@@ -205,6 +244,153 @@ public:
                                      const SMDS_MeshFace * f5,
                                      const SMDS_MeshFace * f6);
 
+  // 2d order tetrahedron of 10 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
+                                           int n12,int n23,int n31,
+                                           int n14,int n24,int n34, int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n31,
+                                          const SMDS_MeshNode * n14, 
+                                          const SMDS_MeshNode * n24,
+                                          const SMDS_MeshNode * n34, 
+                                          int ID);
+  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
+                                    const SMDS_MeshNode * n2,
+                                    const SMDS_MeshNode * n3,
+                                    const SMDS_MeshNode * n4,
+                                     const SMDS_MeshNode * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n31,
+                                     const SMDS_MeshNode * n14, 
+                                     const SMDS_MeshNode * n24,
+                                     const SMDS_MeshNode * n34);
+
+  // 2d order pyramid of 13 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int n5,
+                                           int n12,int n23,int n34,int n41,
+                                           int n15,int n25,int n35,int n45,
+                                           int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4,
+                                          const SMDS_MeshNode * n5, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n34,
+                                          const SMDS_MeshNode * n41, 
+                                          const SMDS_MeshNode * n15,
+                                          const SMDS_MeshNode * n25,
+                                          const SMDS_MeshNode * n35,
+                                          const SMDS_MeshNode * n45, 
+                                          int ID);
+  virtual 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 * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n34,
+                                     const SMDS_MeshNode * n41, 
+                                     const SMDS_MeshNode * n15,
+                                     const SMDS_MeshNode * n25,
+                                     const SMDS_MeshNode * n35,
+                                     const SMDS_MeshNode * n45);
+
+  // 2d order Pentahedron with 15 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3,
+                                           int n4, int n5, int n6,
+                                           int n12,int n23,int n31,
+                                           int n45,int n56,int n64,
+                                           int n14,int n25,int n36,
+                                           int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4,
+                                          const SMDS_MeshNode * n5,
+                                          const SMDS_MeshNode * n6, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n31, 
+                                          const SMDS_MeshNode * n45,
+                                          const SMDS_MeshNode * n56,
+                                          const SMDS_MeshNode * n64, 
+                                          const SMDS_MeshNode * n14,
+                                          const SMDS_MeshNode * n25,
+                                          const SMDS_MeshNode * n36, 
+                                          int ID);
+  virtual 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 * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n31, 
+                                     const SMDS_MeshNode * n45,
+                                     const SMDS_MeshNode * n56,
+                                     const SMDS_MeshNode * n64, 
+                                     const SMDS_MeshNode * n14,
+                                     const SMDS_MeshNode * n25,
+                                     const SMDS_MeshNode * n36);
+
+  // 2d oreder Hexahedrons with 20 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
+                                           int n5, int n6, int n7, int n8,
+                                           int n12,int n23,int n34,int n41,
+                                           int n56,int n67,int n78,int n85,
+                                           int n15,int n26,int n37,int n48,
+                                           int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4,
+                                          const SMDS_MeshNode * n5,
+                                          const SMDS_MeshNode * n6,
+                                          const SMDS_MeshNode * n7,
+                                          const SMDS_MeshNode * n8, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n34,
+                                          const SMDS_MeshNode * n41, 
+                                          const SMDS_MeshNode * n56,
+                                          const SMDS_MeshNode * n67,
+                                          const SMDS_MeshNode * n78,
+                                          const SMDS_MeshNode * n85, 
+                                          const SMDS_MeshNode * n15,
+                                          const SMDS_MeshNode * n26,
+                                          const SMDS_MeshNode * n37,
+                                          const SMDS_MeshNode * n48, 
+                                          int ID);
+  virtual 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 SMDS_MeshNode * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n34,
+                                     const SMDS_MeshNode * n41, 
+                                     const SMDS_MeshNode * n56,
+                                     const SMDS_MeshNode * n67,
+                                     const SMDS_MeshNode * n78,
+                                     const SMDS_MeshNode * n85, 
+                                     const SMDS_MeshNode * n15,
+                                     const SMDS_MeshNode * n26,
+                                     const SMDS_MeshNode * n37,
+                                     const SMDS_MeshNode * n48);
+
   virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<int> nodes_ids,
                                                  const int        ID);
 
@@ -236,6 +422,12 @@ public:
   virtual void RemoveEdge(const SMDS_MeshEdge * edge);
   virtual void RemoveFace(const SMDS_MeshFace * face);
   virtual void RemoveVolume(const SMDS_MeshVolume * volume);
+
+  /*! Remove only the given element and only if it is free.
+   *  Method does not work for meshes with descendants.
+   *  Implemented for fast cleaning of meshes.
+   */
+  virtual void RemoveFreeElement(const SMDS_MeshElement * elem);
   
   virtual bool RemoveFromParent();
   virtual bool RemoveSubMesh(const SMDS_Mesh * aMesh);
@@ -252,11 +444,19 @@ public:
 
   const SMDS_MeshNode *FindNode(int idnode) const;
   const SMDS_MeshEdge *FindEdge(int idnode1, int idnode2) const;
+  const SMDS_MeshEdge *FindEdge(int idnode1, int idnode2, int idnode3) const;
   const SMDS_MeshFace *FindFace(int idnode1, int idnode2, int idnode3) const;
   const SMDS_MeshFace *FindFace(int idnode1, int idnode2, int idnode3, int idnode4) const;
+  const SMDS_MeshFace *FindFace(int idnode1, int idnode2, int idnode3,
+                                int idnode4, int idnode5, int idnode6) const;
+  const SMDS_MeshFace *FindFace(int idnode1, int idnode2, int idnode3, int idnode4,
+                                int idnode5, int idnode6, int idnode7, int idnode8) const;
   const SMDS_MeshElement *FindElement(int IDelem) const;
   static const SMDS_MeshEdge* FindEdge(const SMDS_MeshNode * n1,
                                        const SMDS_MeshNode * n2);
+  static const SMDS_MeshEdge* FindEdge(const SMDS_MeshNode * n1,
+                                       const SMDS_MeshNode * n2,
+                                       const SMDS_MeshNode * n3);
   static const SMDS_MeshFace* FindFace(const SMDS_MeshNode *n1,
                                        const SMDS_MeshNode *n2,
                                        const SMDS_MeshNode *n3);
@@ -264,6 +464,20 @@ public:
                                        const SMDS_MeshNode *n2,
                                        const SMDS_MeshNode *n3,
                                        const SMDS_MeshNode *n4);
+  static const SMDS_MeshFace* FindFace(const SMDS_MeshNode *n1,
+                                       const SMDS_MeshNode *n2,
+                                       const SMDS_MeshNode *n3,
+                                       const SMDS_MeshNode *n4,
+                                       const SMDS_MeshNode *n5,
+                                       const SMDS_MeshNode *n6);
+  static const SMDS_MeshFace* FindFace(const SMDS_MeshNode *n1,
+                                       const SMDS_MeshNode *n2,
+                                       const SMDS_MeshNode *n3,
+                                       const SMDS_MeshNode *n4,
+                                       const SMDS_MeshNode *n5,
+                                       const SMDS_MeshNode *n6,
+                                       const SMDS_MeshNode *n7,
+                                       const SMDS_MeshNode *n8);
 
   const SMDS_MeshFace *FindFace(std::vector<int> nodes_ids) const;
   static const SMDS_MeshFace* FindFace(std::vector<const SMDS_MeshNode *> nodes);
index 66c8ae3d5cf36edf2e0ff37545f40a6e4d2e4b43..ee79fcd2c46636a2ec3b596c984c5b38e7db2b99 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -135,6 +135,18 @@ bool operator<(const SMDS_MeshEdge & e1, const SMDS_MeshEdge & e2)
        else return false;
 }
 
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_MeshEdge::GetNode(const int ind) const
+{
+  return myNodes[ WrappedIndex( ind )];
+}
+
 //=======================================================================
 //function : ChangeNodes
 //purpose  : 
index c5c5102ed7eb04ce3d23eb9ddc6310eb2ef10fea..10a1f66d85b3159bb5a557e3df8d82098f390417 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -46,12 +46,22 @@ class SMDS_EXPORT SMDS_MeshEdge:public SMDS_MeshElement
        int NbNodes() const;
        int NbEdges() const;
        friend bool operator<(const SMDS_MeshEdge& e1, const SMDS_MeshEdge& e2);
+
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
   protected:
        SMDS_ElemIteratorPtr
                elementsIterator(SMDSAbs_ElementType type) const;
 
-  private:
-       const SMDS_MeshNode* myNodes[2];
+  protected:
+       const SMDS_MeshNode* myNodes[3];
 
 };
 #endif
index 8d4d9b75dc2e0bb913603c73ac5a5fefb72f9887..e6f84076bf2f71cf7f24deac1b7a53649e589d57 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
@@ -192,3 +192,46 @@ bool operator<(const SMDS_MeshElement& e1, const SMDS_MeshElement& e2)
        }
         return false;
 }
+
+bool SMDS_MeshElement::IsValidIndex(const int ind) const
+{
+  return ( ind>-1 && ind<NbNodes() );
+}
+
+const SMDS_MeshNode* SMDS_MeshElement::GetNode(const int ind) const
+{
+  SMDS_ElemIteratorPtr it = nodesIterator();
+  int i = 0, index = WrappedIndex( ind );
+  while ( index != i++ )
+    it->next();
+  if ( it->more() )
+    return static_cast<const SMDS_MeshNode*> (it->next());
+  return 0;
+}
+
+bool SMDS_MeshElement::IsQuadratic() const
+{
+  return false;
+}
+
+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 b3de99645d05d5b1a52f4688a09e1449f3ccd856..42e0db2844c62f6897c1269b23984829eff753c8 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -46,32 +46,71 @@ class SMDS_MeshFace;
 ///////////////////////////////////////////////////////////////////////////////
 class SMDS_EXPORT SMDS_MeshElement:public SMDS_MeshObject
 {
+public:
 
-  public:
-       SMDS_ElemIteratorPtr nodesIterator() const;
-       SMDS_ElemIteratorPtr edgesIterator() const;
-       SMDS_ElemIteratorPtr facesIterator() const;
-       virtual SMDS_ElemIteratorPtr
-               elementsIterator(SMDSAbs_ElementType type) const;
+  SMDS_ElemIteratorPtr nodesIterator() const;
+  SMDS_ElemIteratorPtr edgesIterator() const;
+  SMDS_ElemIteratorPtr facesIterator() const;
+  virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const;
 
-       virtual int NbNodes() const;
-       virtual int NbEdges() const;
-       virtual int NbFaces() const;
-       int GetID() const;
+  virtual int NbNodes() const;
+  virtual int NbEdges() const;
+  virtual int NbFaces() const;
+  int GetID() const;
 
-       ///Return the type of the current element
-       virtual SMDSAbs_ElementType GetType() const = 0;
-       virtual bool IsPoly() const { return false; };
+  ///Return the type of the current element
+  virtual SMDSAbs_ElementType GetType() const = 0;
+  virtual bool IsPoly() const { return false; };
+  virtual bool IsQuadratic() const;
 
-       friend SMDS_EXPORT std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
-       friend SMDS_EXPORT bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
+  virtual bool IsMediumNode(const SMDS_MeshNode* node) const;
 
-  protected:
-       SMDS_MeshElement(int ID=-1);
-       virtual void Print(std::ostream & OS) const;
-       
-  private:
-       int myID;
+  friend SMDS_EXPORT std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *);
+  friend SMDS_EXPORT bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement*elem);
+
+  // ===========================
+  //  Access to nodes by index
+  // ===========================
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
+  /*!
+   * \brief Return true if index of node is valid (0 <= ind < NbNodes())
+    * \param ind - node index
+    * \retval bool - index check result
+   */
+  virtual bool IsValidIndex(const int ind) const;
+
+  /*!
+   * \brief Return a valid node index, fixing the given one if necessary
+    * \param ind - node index
+    * \retval int - valid node index
+   */
+  int WrappedIndex(const int ind) const {
+    if ( ind < 0 ) return -( ind % NbNodes());
+    if ( ind >= NbNodes() ) return ind % NbNodes();
+    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;
+
+private:
+  int myID;
 };
 
 #endif
index 8fc09230bcb723997876679cd22bcffa8b939bb7..cac5fc1c6f7ca387218772d3f7c5f2e3b670ca2f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 02c5309b3d3c57bf8927e3d7440c451897a2e993..b78358f30060866f806050a92b9aa5e502528362 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index b7014293af806d0fca34a72f82dfae5b7fd11eaa..e67103e8b4b633a15db444f348b756d338010b15 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "SMDS_MeshFace.hxx"
 
index bd3c3f17adaff88a4408871b3692ef496c22b790..dbc5698e8f64b385d8aa75c7b2c79d19acc6e80a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 0cb481c501c0c38f13c2bd9d966c274625c271fd..adbde5081d5613c7b2afe9fadfcd529120272b9a 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org or email : webmaster@opencascade.org 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index c3f3278d13c0ab0743c9fc01578fada4b661d6cb..f23b601b7a48d1e4fdd9dfe369cfd9872aa62e28 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org or email : webmaster@opencascade.org 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -50,6 +50,8 @@ class SMDS_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;
@@ -62,16 +64,27 @@ class SMDS_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 536b2f7835974448c9f8af4f2dc8a1297508e09b..989e42be33d85bb5244680f546aefd49547a9d8f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index ade5a31a0256e3ce94845f8ed3c85c75708d1f21..8e57247dad9b3876094e99cb614bc1af5d98c9b3 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 06ab12173d871505c7ab482c4937e6796ea01b2c..1d968dcbbf710571ec9f267f81970322d5182e39 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
index 1a245b1ef970935f0f9c6f52b546692fb948ec2f..86a032efdc3d5bbf33e8302b8b0ef4d8159ce74a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -54,6 +54,15 @@ class SMDS_EXPORT SMDS_MeshNode:public SMDS_MeshElement
        void setXYZ(double x, double y, double z);
        friend bool operator<(const SMDS_MeshNode& e1, const SMDS_MeshNode& e2);
 
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int) const { return this; }
+
   protected:
        SMDS_ElemIteratorPtr
                elementsIterator(SMDSAbs_ElementType type) const;
index b822b80988e50464acee3e32bee29023ddb9b8f2..262bb59ec30183949d36b493dd3ab640bf5d4ebd 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index da7c926573a793d857af960fd76e490f0bd34637..50af0db8f6796cf03e549472e8a4971158648b26 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 561f0dccb02375ee5bd1a03f3f33a6a1976b8619..7300675e288aebe7e4163f9e0c38ca0c0d9196a4 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d988febe5241d88b840ba07ea3de66c37abaf4ba..33bc8c48b8e084749b3a5e04a8b07d747309dea7 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 38abf18c2f225e598249640cce2e308602e7f43a..897cd69934d94a4bbf916b0c1b3fbaa4229de7bb 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
@@ -26,7 +26,7 @@
 #include "SMDS_PolygonalFaceOfNodes.hxx"
 
 #include "SMDS_IteratorOfElements.hxx"
-//#include "SMDS_MeshNode.hxx"
+#include "SMDS_SetIterator.hxx"
 #include "utilities.h"
 
 using namespace std;
@@ -128,28 +128,11 @@ void SMDS_PolygonalFaceOfNodes::Print(ostream & OS) const
 //function : elementsIterator
 //purpose  : 
 //=======================================================================
-class SMDS_PolygonalFaceOfNodes_MyIterator:public SMDS_ElemIterator
+class SMDS_PolygonalFaceOfNodes_MyIterator:public SMDS_NodeVectorElemIterator
 {
-  //const SMDS_MeshNode* const *mySet;
-  const std::vector<const SMDS_MeshNode *> mySet;
-  //int myLength;
-  int index;
  public:
-  //SMDS_PolygonalFaceOfNodes_MyIterator(const SMDS_MeshNode* const *s, int l):
-  //  mySet(s),myLength(l),index(0) {}
-  SMDS_PolygonalFaceOfNodes_MyIterator(const std::vector<const SMDS_MeshNode *> s):
-    mySet(s),index(0) {}
-
-  bool more()
-  {
-    return index < mySet.size();
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
+  SMDS_PolygonalFaceOfNodes_MyIterator(const vector<const SMDS_MeshNode *>& s):
+    SMDS_NodeVectorElemIterator( s.begin(), s.end() ) {}
 };
 
 SMDS_ElemIteratorPtr SMDS_PolygonalFaceOfNodes::elementsIterator
@@ -172,3 +155,16 @@ SMDS_ElemIteratorPtr SMDS_PolygonalFaceOfNodes::elementsIterator
   }
   return SMDS_ElemIteratorPtr();
 }
+
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_PolygonalFaceOfNodes::GetNode(const int ind) const
+{
+  return myNodes[ WrappedIndex( ind )];
+}
+
index 59f204b692ce4d607bf5b2becbe0903e461af0d1..13c1536b795c99621cfbe0bfd0ed15e4434726a2 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMDS_PolygonalFaceOfNodes_HeaderFile
 #define _SMDS_PolygonalFaceOfNodes_HeaderFile
@@ -52,6 +52,15 @@ class SMDS_EXPORT SMDS_PolygonalFaceOfNodes:public SMDS_MeshFace
 
   virtual void Print (std::ostream & OS) const;
 
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
  protected:
   virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const;
 
index 84ce2134d879b2ea16b9a6cf4c2e760cffcfde03..1c4fd4761bf1d4868ecf248247c3e8fd1fdcd5bb 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
index dd6c927120fbd7d63cd52d9fcba700ccac8f3570..ddac4c65958c8f7e977b56f778ec3b18a472bf07 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 926aa4bf97d7efa266ac2f6564b15fa2cc38c952..bd9a7a24b0e03673c7d107c8cb293a15e6a54f6f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 034cb85a712dc0dc501246f79385a89a6cda0085..742bde4c3977baa31dae00d593451967cdf48317 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 6c6099602be90e5c7358ac9ae5441a6e09796a6c..ab6e2dbf8b780170aa9be23176543657842ebf47 100644 (file)
 #ifndef _SMDS_QuadraticEdge_HeaderFile
 #define _SMDS_QuadraticEdge_HeaderFile
 
+#include "SMESH_SMDS.hxx"
+
 #include "SMDS_MeshEdge.hxx"
 #include <iostream>
 
-class SMDS_WNT_EXPORT SMDS_QuadraticEdge: public SMDS_MeshEdge
+class SMDS_EXPORT SMDS_QuadraticEdge: public SMDS_MeshEdge
 {
 
 public:
index d174e813e3022f0414500948a87a647574ccb7e1..9328f9844dcefbd5303f598cd63c593d15702c11 100644 (file)
 #ifndef _SMDS_QuadraticFaceOfNodes_HeaderFile
 #define _SMDS_QuadraticFaceOfNodes_HeaderFile
 
+#include "SMESH_SMDS.hxx"
+
 #include "SMDS_MeshFace.hxx"
 
-class SMDS_WNT_EXPORT SMDS_QuadraticFaceOfNodes:public SMDS_MeshFace
+class SMDS_EXPORT SMDS_QuadraticFaceOfNodes:public SMDS_MeshFace
 {
 public:
   SMDS_QuadraticFaceOfNodes (const SMDS_MeshNode * n1,
index 23f4369d3ca6fd8d1af9c361060e03c216f49321..c03735fee19291810f2f81bef4e6cf058dc390d2 100644 (file)
 #ifndef _SMDS_QuadraticVolumeOfNodes_HeaderFile
 #define _SMDS_QuadraticVolumeOfNodes_HeaderFile
 
+#include "SMESH_SMDS.hxx"
+
 #include "SMDS_MeshVolume.hxx"
 
-class SMDS_WNT_EXPORT SMDS_QuadraticVolumeOfNodes: public SMDS_MeshVolume
+class SMDS_EXPORT SMDS_QuadraticVolumeOfNodes: public SMDS_MeshVolume
 {
 public:
   // tetrahedron of 10 nodes
index 7ce582f915ab4f75fe315c00460c46d8868cd56b..399663d2f4998464753b56756e908ee77acad2d9 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index f0e880b2c9d9ea20b44f91af46d1cec6a2ebe68d..560cab0948af9adbb569e337f0b3b0445daff400 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 8c0631bfc3e0cf6cb758ec06482168a552e95347..5384a8ce5a98307cb731a084f1850f06a4f01b6b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 022f76ad364f416469d9207bdb7a21cd00ea20ac..e39e3fc2d5c4645d1e2b3a988de1c527842511b3 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 3abe55197131cceaec3a3e9d75b7a686712f3761..f06ba302c2fb693d56f8300c5f1226e00da168fa 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 51e71f86c5596dd50d302f716fa5a00490c655d3..2d1dc94e6f5a98835f700c8115a1c42395f62ad3 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 540bc3192459bd9bda940d2143c40046158483ab..2bf783ab3c47c090dd1d6088131d9f1833bba0ab 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index cd893f484a87e45a70059e678810ce358bb25271..0428095da1cdc839f6395a7cdf9c8facd8872384 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
@@ -25,6 +25,7 @@
 
 #include "SMDS_VolumeOfNodes.hxx"
 #include "SMDS_MeshNode.hxx"
+#include "SMDS_SetIterator.hxx"
 #include "utilities.h"
 
 using namespace std;
@@ -170,29 +171,14 @@ int SMDS_VolumeOfNodes::NbEdges() const
         return 0;
 }
 
-class SMDS_VolumeOfNodes_MyIterator:public SMDS_ElemIterator
+class SMDS_VolumeOfNodes_MyIterator:public SMDS_NodeArrayElemIterator
 {
-  const SMDS_MeshNode* const* mySet;
-  int myLength;
-  int index;
  public:
   SMDS_VolumeOfNodes_MyIterator(const SMDS_MeshNode* const* s, int l):
-    mySet(s),myLength(l),index(0) {}
-
-  bool more()
-  {
-    return index<myLength;
-  }
-
-  const SMDS_MeshElement* next()
-  {
-    index++;
-    return mySet[index-1];
-  }
+    SMDS_NodeArrayElemIterator( s, & s[ l ]) {}
 };
 
-SMDS_ElemIteratorPtr SMDS_VolumeOfNodes::
-       elementsIterator(SMDSAbs_ElementType type) const
+SMDS_ElemIteratorPtr SMDS_VolumeOfNodes::elementsIterator(SMDSAbs_ElementType type) const
 {
   switch(type)
   {
@@ -210,3 +196,15 @@ SMDSAbs_ElementType SMDS_VolumeOfNodes::GetType() const
 {
        return SMDSAbs_Volume;
 }
+
+/*!
+ * \brief Return node by its index
+ * \param ind - node index
+ * \retval const SMDS_MeshNode* - the node
+ * 
+ * Index is wrapped if it is out of a valid range
+ */
+const SMDS_MeshNode* SMDS_VolumeOfNodes::GetNode(const int ind) const
+{
+  return myNodes[ WrappedIndex( ind )];
+}
index bcefccef0f0b612df9e911ad6981ca0d2616e4bd..6c18c170f14b471798a8aae89dd21ffdd93a79ba 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -71,6 +71,16 @@ class SMDS_EXPORT SMDS_VolumeOfNodes:public SMDS_MeshVolume
        int NbNodes() const;
        int NbEdges() const;
        SMDSAbs_ElementType GetType() const;    
+
+  /*!
+   * \brief Return node by its index
+    * \param ind - node index
+    * \retval const SMDS_MeshNode* - the node
+   * 
+   * Index is wrapped if it is out of a valid range
+   */
+  virtual const SMDS_MeshNode* GetNode(const int ind) const;
+
   protected:
        SMDS_ElemIteratorPtr
                elementsIterator(SMDSAbs_ElementType type) const;
index 381b262ee334a19aef0bdaecace677be468baac4..7ee1f81f206e0ebc18ee290fdab2c2241885fd0b 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File      : SMDS_VolumeTool.cxx
 // Created   : Tue Jul 13 12:22:13 2004
@@ -185,6 +185,184 @@ static int Hexa_RE [6][5] = { // REVERSED -> EXTERNAL
   { 1, 2, 6, 5, 1 }};
 static int Hexa_nbN [] = { 4, 4, 4, 4, 4, 4 };
 
+
+/*
+//           N3
+//           +
+//          /|\
+//        7/ | \8
+//        /  |4 \                    QUADRATIC
+//    N0 +---|---+ N1                TETRAHEDRON
+//       \   +9  /
+//        \  |  /
+//        6\ | /5
+//          \|/
+//           +
+//           N2
+*/
+static int QuadTetra_F [4][7] = { // FORWARD == EXTERNAL
+  { 0, 4, 1, 5, 2, 6, 0 },        // All faces have external normals
+  { 0, 7, 3, 8, 1, 4, 0 },
+  { 1, 8, 3, 9, 2, 5, 1 },
+  { 0, 6, 2, 9, 3, 7, 0 }}; 
+static int QuadTetra_R [4][7] = { // REVERSED
+  { 0, 4, 1, 5, 2, 6, 0 },        // All faces but a bottom have external normals
+  { 0, 4, 1, 8, 3, 7, 0 },
+  { 1, 5, 2, 9, 3, 8, 1 },
+  { 0, 7, 3, 9, 2, 6, 0 }};
+static int QuadTetra_RE [4][7] = { // REVERSED -> FORWARD (EXTERNAL)
+  { 0, 6, 2, 5, 1, 4, 0 },              // All faces have external normals
+  { 0, 4, 1, 8, 3, 7, 0 },
+  { 1, 5, 2, 9, 3, 8, 1 },
+  { 0, 7, 3, 9, 2, 6, 0 }};
+static int QuadTetra_nbN [] = { 6, 6, 6, 6 };
+
+//
+//     QUADRATIC
+//     PYRAMID
+//
+//            +4
+//
+//            
+//       10+-----+11
+//         |     |        9 - middle point for (0,4) etc.
+//         |     |
+//        9+-----+12
+//
+//            6
+//      1+----+----+2
+//       |         |
+//       |         |
+//      5+         +7
+//       |         |
+//       |         |
+//      0+----+----+3
+//            8
+static int QuadPyram_F [5][9] = {  // FORWARD == EXTERNAL
+  { 0, 5, 1, 6, 2, 7, 3, 8, 0 },   // All faces have external normals
+  { 0, 9, 4, 10,1, 5, 0, 4, 4 },
+  { 1, 10,4, 11,2, 6, 1, 4, 4 },
+  { 2, 11,4, 12,3, 7, 2, 4, 4 },
+  { 3, 12,4, 9, 0, 8, 3, 4, 4 }}; 
+static int QuadPyram_R [5][9] = {  // REVERSED
+  { 0, 5, 1, 6, 2, 7, 3, 8, 0 },   // All faces but a bottom have external normals
+  { 0, 5, 1, 10,4, 9, 0, 4, 4 },
+  { 1, 6, 2, 11,4, 10,1, 4, 4 },
+  { 2, 7, 3, 12,4, 11,2, 4, 4 },
+  { 3, 8, 0, 9, 4, 12,3, 4, 4 }}; 
+static int QuadPyram_RE [5][9] = { // REVERSED -> FORWARD (EXTERNAL)
+  { 0, 8, 3, 7, 2, 6, 1, 5, 0 },   // All faces but a bottom have external normals
+  { 0, 5, 1, 10,4, 9, 0, 4, 4 },
+  { 1, 6, 2, 11,4, 10,1, 4, 4 },
+  { 2, 7, 3, 12,4, 11,2, 4, 4 },
+  { 3, 8, 0, 9, 4, 12,3, 4, 4 }}; 
+static int QuadPyram_nbN [] = { 8, 6, 6, 6, 6 };
+
+/*   
+//            + N4
+//           /|\
+//         9/ | \10
+//         /  |  \
+//        /   |   \
+//    N3 +----+----+ N5
+//       |    |11  |
+//       |    |    |
+//       |    +13  |                QUADRATIC
+//       |    |    |                PENTAHEDRON
+//       |    |    |
+//       |    |    |
+//       |    |    |
+//     12+    |    +14
+//       |    |    |
+//       |    |    |
+//       |    + N1 |
+//       |   / \   |               
+//       | 6/   \7 |
+//       | /     \ |
+//       |/       \|
+//    N0 +---------+ N2
+//            8
+*/
+static int QuadPenta_F [5][9] = {  // FORWARD
+  { 0, 6, 1, 7, 2, 8, 0, 0, 0 },   // Top face has an internal normal, other - external
+  { 3, 9, 4, 10,5, 11,3, 3, 3 },   // 0 is bottom, 1 is top face
+  { 0, 8, 2, 14,5, 11,3, 12,0 },
+  { 1, 13,4, 10,5, 14,2, 7, 1 },
+  { 0, 12,3, 9, 4, 13,1, 6, 0 }}; 
+static int QuadPenta_R [5][9] = { // REVERSED
+  { 0, 6, 1, 7, 2, 8, 0, 0, 0 },  // Bottom face has an internal normal, other - external
+  { 3, 9, 4, 10,5, 11,3, 3, 3 },  // 0 is bottom, 1 is top face
+  { 0, 12,3, 11,5, 14,2, 8, 0 },
+  { 1, 7, 2, 14,5, 10,4, 13,1 },
+  { 0, 6, 1, 13,4, 9, 3, 12,0 }}; 
+static int QuadPenta_FE [5][9] = { // FORWARD -> EXTERNAL
+  { 0, 6, 1, 7, 2, 8, 0, 0, 0 },
+  { 3,11, 5, 10,4, 9, 3, 3, 3 },
+  { 0, 8, 2, 14,5, 11,3, 12,0 },
+  { 1, 13,4, 10,5, 14,2, 7, 1 },
+  { 0, 12,3, 9, 4, 13,1, 6, 0 }}; 
+static int QuadPenta_RE [5][9] = { // REVERSED -> EXTERNAL
+  { 0, 8, 2, 7, 1, 6, 0, 0, 0 },
+  { 3, 9, 4, 10,5, 11,3, 3, 3 },
+  { 0, 12,3, 11,5, 14,2, 8, 0 },
+  { 1, 7, 2, 14,5, 10,4, 13,1 },
+  { 0, 6, 1, 13,4, 9, 3, 12,0 }}; 
+static int QuadPenta_nbN [] = { 6, 6, 8, 8, 8 };
+
+/*
+//                 13
+//         N5+-----+-----+N6
+//          /|          /|
+//       12+ |       14+ |
+//        /  |        /  |
+//     N4+-----+-----+N7 |           QUADRATIC
+//       |   | 15    |   |           HEXAHEDRON
+//       |   |       |   |
+//       | 17+       |   +18
+//       |   |       |   |
+//       |   |       |   |
+//       |   |       |   |
+//     16+   |       +19 |
+//       |   |       |   |
+//       |   |     9 |   |
+//       | N1+-----+-|---+N2
+//       |  /        |  /
+//       | +8        | +10
+//       |/          |/
+//     N0+-----+-----+N3
+//             11
+*/
+static int QuadHexa_F [6][9] = {  // FORWARD
+  { 0, 8, 1, 9, 2, 10,3, 11,0 },  // opposite faces are neighbouring,
+  { 4, 12,5, 13,6, 14,7, 15,4 },  // odd face(1,3,5) normal is internal, even(0,2,4) - external
+  { 1, 8, 0, 16,4, 12,5, 17,1 },  // same index nodes of opposite faces are linked
+  { 2, 10,3, 19,7, 14,6, 18,2 }, 
+  { 0, 11,3, 19,7, 15,4, 16,0 }, 
+  { 1, 9, 2, 18,6, 13,5, 17,1 }};
+// static int Hexa_R [6][5] = { // REVERSED
+//   { 0, 3, 2, 1, 0 },         // opposite faces are neighbouring,
+//   { 4, 7, 6, 5, 4 },         // odd face(1,3,5) normal is external, even(0,2,4) - internal
+//   { 1, 5, 4, 0, 1 },         // same index nodes of opposite faces are linked
+//   { 2, 6, 7, 3, 2 }, 
+//   { 0, 4, 7, 3, 0 }, 
+//   { 1, 5, 6, 2, 1 }};
+static int QuadHexa_FE [6][9] = {  // FORWARD -> EXTERNAL
+  { 0, 8, 1, 9, 2, 10,3, 11,0 },   // opposite faces are neighbouring,
+  { 4, 15,7, 14,6, 13,5, 12,4 },   // all face normals are external,
+  { 0, 16,4, 12,5, 17,1, 8, 0 },   // links in opposite faces: 0-0, 1-3, 2-2, 3-1
+  { 3, 10,2, 18,6, 14,7, 19,3 }, 
+  { 0, 11,3, 19,7, 15,4, 16,0 },
+  { 1, 17,5, 13,6, 18,2, 9, 1 }};
+static int QuadHexa_RE [6][9] = {  // REVERSED -> EXTERNAL
+  { 0, 11,3, 10,2, 9, 1, 8, 0 },   // opposite faces are neighbouring,
+  { 4, 12,5, 13,6, 14,7, 15,4 },   // all face normals are external,
+  { 0, 8, 1, 17,5, 12,4, 16,0 },   // links in opposite faces: 0-0, 1-3, 2-2, 3-1
+  { 3, 19,7, 14,6, 18,2, 10,3 }, 
+  { 0, 16,4, 15,7, 19,3, 11,0 },
+  { 1, 9, 2, 18,6, 13,5, 17,1 }};
+static int QuadHexa_nbN [] = { 8, 8, 8, 8, 8, 8 };
+
+
 // ========================================================
 // to perform some calculations without linkage to CASCADE
 // ========================================================
@@ -323,12 +501,17 @@ bool SMDS_VolumeTool::Set (const SMDS_MeshElement* theVolume)
         MESSAGE("Warning: bad volumic element");
         return false;
       }
-    } else {
+    }
+    else {
       switch ( myVolumeNbNodes ) {
       case 4:
       case 5:
       case 6:
-      case 8: {
+      case 8:
+      case 10:
+      case 13:
+      case 15:
+      case 20: {
         // define volume orientation
         XYZ botNormal;
         GetFaceNormal( 0, botNormal.x, botNormal.y, botNormal.z );
@@ -387,6 +570,34 @@ void SMDS_VolumeTool::Inverse ()
     SWAP_NODES( myVolumeNodes, 1, 3 );
     SWAP_NODES( myVolumeNodes, 5, 7 );
     break;
+
+  case 10:
+    SWAP_NODES( myVolumeNodes, 1, 2 );
+    SWAP_NODES( myVolumeNodes, 4, 6 );
+    SWAP_NODES( myVolumeNodes, 8, 9 );
+    break;
+  case 13:
+    SWAP_NODES( myVolumeNodes, 1, 3 );
+    SWAP_NODES( myVolumeNodes, 5, 8 );
+    SWAP_NODES( myVolumeNodes, 6, 7 );
+    SWAP_NODES( myVolumeNodes, 10, 12 );
+    break;
+  case 15:
+    SWAP_NODES( myVolumeNodes, 1, 2 );
+    SWAP_NODES( myVolumeNodes, 4, 5 );
+    SWAP_NODES( myVolumeNodes, 6, 8 );
+    SWAP_NODES( myVolumeNodes, 9, 11 );
+    SWAP_NODES( myVolumeNodes, 13, 14 );
+    break;
+  case 20:
+    SWAP_NODES( myVolumeNodes, 1, 3 );
+    SWAP_NODES( myVolumeNodes, 5, 7 );
+    SWAP_NODES( myVolumeNodes, 8, 11 );
+    SWAP_NODES( myVolumeNodes, 9, 10 );
+    SWAP_NODES( myVolumeNodes, 12, 15 );
+    SWAP_NODES( myVolumeNodes, 13, 14 );
+    SWAP_NODES( myVolumeNodes, 17, 19 );
+    break;
   default:;
   }
 }
@@ -402,14 +613,25 @@ SMDS_VolumeTool::VolumeType SMDS_VolumeTool::GetVolumeType() const
     return POLYHEDA;
 
   if ( myVolume ) {
-    static const VolumeType types[] = {
-      TETRA,     // myVolumeNbNodes = 4
-      PYRAM,     // myVolumeNbNodes = 5
-      PENTA,     // myVolumeNbNodes = 6
-      UNKNOWN,   // myVolumeNbNodes = 7
-      HEXA       // myVolumeNbNodes = 8
-    };
-    return types[ myVolumeNbNodes - 4 ];
+//    static const VolumeType types[] = {
+//      TETRA,     // myVolumeNbNodes = 4
+//      PYRAM,     // myVolumeNbNodes = 5
+//      PENTA,     // myVolumeNbNodes = 6
+//      UNKNOWN,   // myVolumeNbNodes = 7
+//      HEXA       // myVolumeNbNodes = 8
+//    };
+//    return types[ myVolumeNbNodes - 4 ];
+    switch(myVolumeNbNodes) {
+    case 4: return TETRA; break;
+    case 5: return PYRAM; break;
+    case 6: return PENTA; break;
+    case 8: return HEXA; break;
+    case 10: return QUAD_TETRA; break;
+    case 13: return QUAD_PYRAM; break;
+    case 15: return QUAD_PENTA; break;
+    case 20: return QUAD_HEXA; break;
+    default: break;
+    }
   }
 
   return UNKNOWN;
@@ -491,7 +713,7 @@ double SMDS_VolumeTool::GetSize() const
   else 
   {
     const static int ind[] = {
-      0, 1, 3, 6, 11 };
+      0, 1, 3, 6, 11, 19, 32, 46, 66};
     const static int vtab[][4] = {
       // tetrahedron
       { 0, 1, 2, 3 },
@@ -507,15 +729,80 @@ double SMDS_VolumeTool::GetSize() const
       { 4, 1, 6, 5 },
       { 1, 3, 6, 2 },
       { 4, 6, 3, 7 },
-      { 1, 4, 6, 3 }
+      { 1, 4, 6, 3 },
+
+      // quadratic tetrahedron
+      { 0, 4, 6, 7 },
+      { 1, 5, 4, 8 },
+      { 2, 6, 5, 9 },
+      { 7, 8, 9, 3 },
+      { 4, 6, 7, 9 },
+      { 4, 5, 6, 9 },
+      { 4, 7, 8, 9 },
+      { 4, 5, 9, 8 },
+
+      // quadratic pyramid
+      { 0, 5, 8, 9 },
+      { 1, 5,10, 6 },
+      { 2, 6,11, 7 },
+      { 3, 7,12, 8 },
+      { 4, 9,11,10 },
+      { 4, 9,12,11 },
+      { 10, 5, 9, 8 },
+      { 10, 8, 9,12 },
+      { 10, 8,12, 7 },
+      { 10, 7,12,11 },
+      { 10, 7,11, 6 },
+      { 10, 5, 8, 6 },
+      { 10, 6, 8, 7 },
+
+      // quadratic pentahedron
+      { 12, 0, 8, 6 },
+      { 12, 8, 7, 6 },
+      { 12, 8, 2, 7 },
+      { 12, 6, 7, 1 },
+      { 12, 1, 7,13 },
+      { 12, 7, 2,13 },
+      { 12, 2,14,13 },
+
+      { 12, 3, 9,11 },
+      { 12,11, 9,10 },
+      { 12,11,10, 5 },
+      { 12, 9, 4,10 },
+      { 12,14, 5,10 },
+      { 12,14,10, 4 },
+      { 12,14, 4,13 },
+
+      // quadratic hexahedron
+      { 16, 0,11, 8 },
+      { 16,11, 9, 8 },
+      { 16, 8, 9, 1 },
+      { 16,11, 3,10 },
+      { 16,11,10, 9 },
+      { 16,10, 2, 9 },
+      { 16, 3,19, 2 },
+      { 16, 2,19,18 },
+      { 16, 2,18,17 },
+      { 16, 2,17, 1 },
+
+      { 16, 4,12,15 },
+      { 16,12, 5,13 },
+      { 16,12,13,15 },
+      { 16,13, 6,14 },
+      { 16,13,14,15 },
+      { 16,14, 7,15 },
+      { 16, 6, 5,17 },
+      { 16,18, 6,17 },
+      { 16,18, 7, 6 },
+      { 16,18,19, 7 },
+
     };
 
     int type = GetVolumeType();
     int n1 = ind[type];
     int n2 = ind[type+1];
 
-    for (int i = n1; i <  n2; i++)
-    {
+    for (int i = n1; i <  n2; i++) {
       V -= getTetraVolume( myVolumeNodes[ vtab[i][0] ],
                            myVolumeNodes[ vtab[i][1] ],
                            myVolumeNodes[ vtab[i][2] ],
@@ -647,12 +934,16 @@ bool SMDS_VolumeTool::IsFaceExternal( int faceIndex )
   switch ( myVolumeNbNodes ) {
   case 4:
   case 5:
+  case 10:
+  case 13:
     // only the bottom of a reversed tetrahedron can be internal
     return ( myVolForward || faceIndex != 0 );
   case 6:
+  case 15:
     // in a forward pentahedron, the top is internal, in a reversed one - bottom
     return ( myVolForward ? faceIndex != 1 : faceIndex != 0 );
-  case 8: {
+  case 8:
+  case 20: {
     // in a forward hexahedron, even face normal is external, odd - internal
     bool odd = faceIndex % 2;
     return ( myVolForward ? !odd : odd );
@@ -679,7 +970,8 @@ bool SMDS_VolumeTool::GetFaceNormal (int faceIndex, double & X, double & Y, doub
   XYZ aVec13( p3 - p1 );
   XYZ cross = aVec12.Crossed( aVec13 );
 
-  if ( myFaceNbNodes == 4 ) {
+  //if ( myFaceNbNodes == 4 ) {
+  if ( myFaceNbNodes >3 ) {
     XYZ p4 ( myFaceNodes[3] );
     XYZ aVec14( p4 - p1 );
     XYZ cross2 = aVec13.Crossed( aVec14 );
@@ -815,7 +1107,7 @@ bool SMDS_VolumeTool::IsLinked (const SMDS_MeshNode* theNode1,
 bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
                                 const int theNode2Index) const
 {
-  if (myVolume->IsPoly()) {
+  if ( myVolume->IsPoly() ) {
     return IsLinked(myVolumeNodes[theNode1Index], myVolumeNodes[theNode2Index]);
   }
 
@@ -853,6 +1145,57 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index,
     default:;
     }
     break;
+  case 10:
+    {
+      switch ( minInd ) {
+      case 0: if( maxInd==4 ||  maxInd==6 ||  maxInd==7 ) return true;
+      case 1: if( maxInd==4 ||  maxInd==5 ||  maxInd==8 ) return true;
+      case 2: if( maxInd==5 ||  maxInd==6 ||  maxInd==9 ) return true;
+      case 3: if( maxInd==7 ||  maxInd==8 ||  maxInd==9 ) return true;
+      default:;
+      }
+      break;
+    }
+  case 13:
+    {
+      switch ( minInd ) {
+      case 0: if( maxInd==5 ||  maxInd==8 ||  maxInd==9 ) return true;
+      case 1: if( maxInd==5 ||  maxInd==6 ||  maxInd==10 ) return true;
+      case 2: if( maxInd==6 ||  maxInd==7 ||  maxInd==11 ) return true;
+      case 3: if( maxInd==7 ||  maxInd==8 ||  maxInd==12 ) return true;
+      case 4: if( maxInd==9 ||  maxInd==10 ||  maxInd==11 ||  maxInd==12 ) return true;
+      default:;
+      }
+      break;
+    }
+  case 15:
+    {
+      switch ( minInd ) {
+      case 0: if( maxInd==6 ||  maxInd==8 ||  maxInd==12 ) return true;
+      case 1: if( maxInd==6 ||  maxInd==7 ||  maxInd==13 ) return true;
+      case 2: if( maxInd==7 ||  maxInd==8 ||  maxInd==14 ) return true;
+      case 3: if( maxInd==9 ||  maxInd==11 ||  maxInd==12 ) return true;
+      case 4: if( maxInd==9 ||  maxInd==10 ||  maxInd==13 ) return true;
+      case 5: if( maxInd==10 ||  maxInd==11 ||  maxInd==14 ) return true;
+      default:;
+      }
+      break;
+    }
+  case 20:
+    {
+      switch ( minInd ) {
+      case 0: if( maxInd==8 ||  maxInd==11 ||  maxInd==16 ) return true;
+      case 1: if( maxInd==8 ||  maxInd==9 ||  maxInd==17 ) return true;
+      case 2: if( maxInd==9 ||  maxInd==10 ||  maxInd==18 ) return true;
+      case 3: if( maxInd==10 ||  maxInd==11 ||  maxInd==19 ) return true;
+      case 4: if( maxInd==12 ||  maxInd==15 ||  maxInd==16 ) return true;
+      case 5: if( maxInd==12 ||  maxInd==13 ||  maxInd==17 ) return true;
+      case 6: if( maxInd==13 ||  maxInd==14 ||  maxInd==18 ) return true;
+      case 7: if( maxInd==14 ||  maxInd==15 ||  maxInd==19 ) return true;
+      default:;
+      }
+      break;
+    }
   default:;
   }
   return false;
@@ -894,8 +1237,7 @@ bool SMDS_VolumeTool::IsFreeFace( int faceIndex )
   typedef map< const SMDS_MeshElement*, int > TElemIntMap;
   TElemIntMap volNbShared;
   TElemIntMap::iterator vNbIt;
-  for ( int iNode = 0; iNode < nbFaceNodes; iNode++ )
-  {
+  for ( int iNode = 0; iNode < nbFaceNodes; iNode++ ) {
     const SMDS_MeshNode* n = nodes[ iNode ];
     SMDS_ElemIteratorPtr eIt = n->GetInverseElementIterator();
     while ( eIt->more() ) {
@@ -903,10 +1245,12 @@ bool SMDS_VolumeTool::IsFreeFace( int faceIndex )
       if ( elem != myVolume && elem->GetType() == SMDSAbs_Volume ) {
         int nbShared = 1;
         vNbIt = volNbShared.find( elem );
-        if ( vNbIt == volNbShared.end() )
+        if ( vNbIt == volNbShared.end() ) {
           volNbShared.insert ( TElemIntMap::value_type( elem, nbShared ));
-        else
+        }
+        else {
           nbShared = ++(*vNbIt).second;
+        }
         if ( nbShared > maxNbShared )
           maxNbShared = nbShared;
       }
@@ -922,8 +1266,7 @@ bool SMDS_VolumeTool::IsFreeFace( int faceIndex )
   if ( IsFaceExternal( faceIndex ))
     intNormal = XYZ( -intNormal.x, -intNormal.y, -intNormal.z );
   XYZ p0 ( nodes[0] ), baryCenter;
-  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ )
-  {
+  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ ) {
     int nbShared = (*vNbIt).second;
     if ( nbShared >= 3 ) {
       SMDS_VolumeTool volume( (*vNbIt).first );
@@ -935,20 +1278,20 @@ bool SMDS_VolumeTool::IsFreeFace( int faceIndex )
     // remove a volume from volNbShared map
     volNbShared.erase( vNbIt );
   }
+
   // here volNbShared contains only volumes laying on the
   // opposite side of the face
-  if ( volNbShared.empty() )
+  if ( volNbShared.empty() ) {
     return free; // is free
+  }
 
   // check if the whole area of a face is shared
   bool isShared[] = { false, false, false, false }; // 4 triangle parts of a quadrangle
-  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ )
-  {
+  for ( vNbIt = volNbShared.begin(); vNbIt != volNbShared.end(); vNbIt++ ) {
     SMDS_VolumeTool volume( (*vNbIt).first );
     bool prevLinkShared = false;
     int nbSharedLinks = 0;
-    for ( int iNode = 0; iNode < nbFaceNodes; iNode++ )
-    {
+    for ( int iNode = 0; iNode < nbFaceNodes; iNode++ ) {
       bool linkShared = volume.IsLinked( nodes[ iNode ], nodes[ iNode + 1] );
       if ( linkShared )
         nbSharedLinks++;
@@ -1059,7 +1402,8 @@ bool SMDS_VolumeTool::setFace( int faceIndex )
     }
     myFaceNodes[ myFaceNbNodes ] = myFaceNodes[ 0 ]; // last = first
 
-  } else {
+  }
+  else {
     // choose face node indices
     switch ( myVolumeNbNodes ) {
     case 4:
@@ -1090,6 +1434,34 @@ bool SMDS_VolumeTool::setFace( int faceIndex )
       else
         myFaceNodeIndices = Hexa_F[ faceIndex ];
       break;
+    case 10:
+      myFaceNbNodes = QuadTetra_nbN[ faceIndex ];
+      if ( myExternalFaces )
+        myFaceNodeIndices = myVolForward ? QuadTetra_F[ faceIndex ] : QuadTetra_RE[ faceIndex ];
+      else
+        myFaceNodeIndices = myVolForward ? QuadTetra_F[ faceIndex ] : QuadTetra_R[ faceIndex ];
+      break;
+    case 13:
+      myFaceNbNodes = QuadPyram_nbN[ faceIndex ];
+      if ( myExternalFaces )
+        myFaceNodeIndices = myVolForward ? QuadPyram_F[ faceIndex ] : QuadPyram_RE[ faceIndex ];
+      else
+        myFaceNodeIndices = myVolForward ? QuadPyram_F[ faceIndex ] : QuadPyram_R[ faceIndex ];
+      break;
+    case 15:
+      myFaceNbNodes = QuadPenta_nbN[ faceIndex ];
+      if ( myExternalFaces )
+        myFaceNodeIndices = myVolForward ? QuadPenta_FE[ faceIndex ] : QuadPenta_RE[ faceIndex ];
+      else
+        myFaceNodeIndices = myVolForward ? QuadPenta_F[ faceIndex ] : QuadPenta_R[ faceIndex ];
+      break;
+    case 20:
+      myFaceNbNodes = QuadHexa_nbN[ faceIndex ];
+      if ( myExternalFaces )
+        myFaceNodeIndices = myVolForward ? QuadHexa_FE[ faceIndex ] : QuadHexa_RE[ faceIndex ];
+      else
+        myFaceNodeIndices = QuadHexa_F[ faceIndex ];
+      break;
     default:
       return false;
     }
@@ -1118,6 +1490,10 @@ SMDS_VolumeTool::VolumeType SMDS_VolumeTool::GetType(int nbNodes)
   case 5: return PYRAM;
   case 6: return PENTA;
   case 8: return HEXA;
+  case 10: return QUAD_TETRA;
+  case 13: return QUAD_PYRAM;
+  case 15: return QUAD_PENTA;
+  case 20: return QUAD_HEXA;
   default:return UNKNOWN;
   }
 }
@@ -1130,10 +1506,14 @@ SMDS_VolumeTool::VolumeType SMDS_VolumeTool::GetType(int nbNodes)
 int SMDS_VolumeTool::NbFaces( VolumeType type )
 {
   switch ( type ) {
-  case TETRA: return 4;
-  case PYRAM: return 5;
-  case PENTA: return 5;
-  case HEXA : return 6;
+  case TETRA     :
+  case QUAD_TETRA: return 4;
+  case PYRAM     :
+  case QUAD_PYRAM: return 5;
+  case PENTA     :
+  case QUAD_PENTA: return 5;
+  case HEXA      :
+  case QUAD_HEXA : return 6;
   default:    return 0;
   }
 }
@@ -1155,6 +1535,10 @@ const int* SMDS_VolumeTool::GetFaceNodesIndices(VolumeType type,
   case PYRAM: return Pyramid_F[ faceIndex ];
   case PENTA: return external ? Penta_FE[ faceIndex ] : Penta_F[ faceIndex ];
   case HEXA:  return external ? Hexa_FE[ faceIndex ] : Hexa_F[ faceIndex ];
+  case QUAD_TETRA: return QuadTetra_F[ faceIndex ];
+  case QUAD_PYRAM: return QuadPyram_F[ faceIndex ];
+  case QUAD_PENTA: return external ? QuadPenta_FE[ faceIndex ] : QuadPenta_F[ faceIndex ];
+  case QUAD_HEXA:  return external ? QuadHexa_FE[ faceIndex ] : QuadHexa_F[ faceIndex ];
   default:;
   }
   return 0;
@@ -1173,6 +1557,10 @@ int SMDS_VolumeTool::NbFaceNodes(VolumeType type,
   case PYRAM: return Pyramid_nbN[ faceIndex ];
   case PENTA: return Penta_nbN[ faceIndex ];
   case HEXA:  return Hexa_nbN[ faceIndex ];
+  case QUAD_TETRA: return QuadTetra_nbN[ faceIndex ];
+  case QUAD_PYRAM: return QuadPyram_nbN[ faceIndex ];
+  case QUAD_PENTA: return QuadPenta_nbN[ faceIndex ];
+  case QUAD_HEXA:  return QuadHexa_nbN[ faceIndex ];
   default:;
   }
   return 0;
index 357475a810160babe5d6b2791300e2e887b7cf35..5385eb2dcc1a2c3485db69a622de162df82afd14 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -51,7 +51,8 @@ class SMDS_EXPORT SMDS_VolumeTool
 {
  public:
 
-  enum VolumeType { UNKNOWN = -1, TETRA = 0, PYRAM, PENTA, HEXA, POLYHEDA };
+  enum VolumeType { UNKNOWN = -1, TETRA = 0, PYRAM, PENTA, HEXA, QUAD_TETRA,
+                    QUAD_PYRAM, QUAD_PENTA, QUAD_HEXA, POLYHEDA };
 
   SMDS_VolumeTool ();
   ~SMDS_VolumeTool ();
index 383bf2182ae9f0101cb1a18e4bf8bc5d31f3f33f..64b82fd2b700dfdbbd3d560a6431ba9adb531c15 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -39,6 +39,7 @@ EXPORT_HEADERS= \
        SMESH_Mesh.hxx \
        SMESH_subMesh.hxx \
        SMESH_Hypothesis.hxx \
+       SMESH_HypoFilter.hxx \
        SMESH_Algo.hxx \
        SMESH_1D_Algo.hxx \
        SMESH_2D_Algo.hxx \
@@ -51,6 +52,7 @@ EXPORT_HEADERS= \
        SMESH_DataMapOfElemPtrSequenceOfElemPtr.hxx \
        SMESH_SequenceOfElemPtr.hxx \
        SMESH_SequenceOfNode.hxx \
+       SMESH_MesherHelper.hxx \
        SMESH_SMESH.hxx
 
 EXPORT_PYSCRIPTS =
@@ -69,7 +71,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 = 
 
@@ -80,11 +83,11 @@ BIN =
 BIN_SRC = 
 
 # additionnal information to compile and link file
-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
+CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) \
+           $(MED_CXXFLAGS) $(GEOM_CXX_FLAGS) $(BOOST_CPPFLAGS)
+CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) \
+           $(MED_CXXFLAGS) $(GEOM_CXX_FLAGS)
+LDFLAGS+= $(KERNEL_LDFLAGS) $(GEOM_LDFLAGS) $(MED_LDFLAGS) -lNMTTools -lSMESHDS -lMeshDriverDAT -lMeshDriverSTL -lMeshDriverMED -lMeshDriverUNV @CAS_LDPATH@ -lTKShHealing
 
 @CONCLUDE@
 
index 7a3e9d8133fbe521d31335b03e154ce0777920ce..12241937930861b46a8c211d4258bf642bad1724 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 653b37c0ca2352d71d04cd2d3595d1e3eda34bb6..c7582b1b486d4a97bc731a3ec215c00b16ee92aa 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 1e11fc42a34ebe5c9743448758179ca5072dba7f..84d0db4919d13a02a0ed2e0576807231b00a1166 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -28,7 +28,7 @@
 
 #include "SMESH_2D_Algo.hxx"
 #include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
+#include <TopExp.hxx>
 
 #include "utilities.h"
 
@@ -81,13 +81,14 @@ int SMESH_2D_Algo::NumberOfWires(const TopoDS_Shape& S)
 int SMESH_2D_Algo::NumberOfPoints(SMESH_Mesh& aMesh, const TopoDS_Wire& W)
 {
   int nbPoints = 0;
-  for (TopExp_Explorer exp(W,TopAbs_EDGE); exp.More(); exp.Next())
-    {
-      const TopoDS_Edge& E = TopoDS::Edge(exp.Current());
-      int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-      //SCRUTE(nb);
-      nbPoints += nb +1; // internal points plus 1 vertex of 2 (last point ?)
-    }
-  //SCRUTE(nbPoints);
+  for (TopExp_Explorer exp(W,TopAbs_EDGE); exp.More(); exp.Next()) {
+    const TopoDS_Edge& E = TopoDS::Edge(exp.Current());
+    int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
+    if(_quadraticMesh)
+      nb = nb/2;
+    nbPoints += nb + 1; // internal points plus 1 vertex of 2 (last point ?)
+  }
   return nbPoints;
 }
+
+
index dce6fbcfdee900c27f6beb11bd99f0df70e0ab38..1156854e7f1dee1fdd328d60cfced24a4a9cf94e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -32,7 +32,8 @@
 #include "SMESH_SMESH.hxx"
 
 #include "SMESH_Algo.hxx"
-#include <TopoDS_Wire.hxx>
+#include "SMESH_subMesh.hxx"
+#include "TopoDS_Wire.hxx"
 
 class SMESH_EXPORT SMESH_2D_Algo:
   public SMESH_Algo
@@ -43,6 +44,7 @@ public:
 
   int NumberOfWires(const TopoDS_Shape& S);
   int NumberOfPoints(SMESH_Mesh& aMesh,const TopoDS_Wire& W);
+
 };
 
 #endif
index 3e1e5a407428b1fc1eb576872f101df112a0d20c..ed3004ff0e60b6a0ab43688a48eb3d9f5aa4e925 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -28,7 +28,6 @@
 
 #include "SMESH_3D_Algo.hxx"
 #include "SMESH_Gen.hxx"
-#include "SMESH_subMesh.hxx"
 
 #include "utilities.h"
 
@@ -57,3 +56,5 @@ SMESH_3D_Algo::SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen)
 SMESH_3D_Algo::~SMESH_3D_Algo()
 {
 }
+
+
index cf96d86add09e7b8c97b66a0d7032b2b1c8aa1c6..2939c27b3fa82be15f0e852be29ce234eb3b17d0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -39,6 +39,7 @@ class SMESH_EXPORT SMESH_3D_Algo:
 public:
   SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~SMESH_3D_Algo();
+
 };
 
 #endif
index f468b926c9175fc1097f171942791e91a6b04674..8f4b62f39e9f1619a61eb731dc9b600bc0a14b36 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -70,6 +70,7 @@ SMESH_Algo::SMESH_Algo(int hypId, int studyId,
        gen->_mapAlgo[hypId] = this;
 
         _onlyUnaryInput = _requireDescretBoundary = true;
+        _quadraticMesh = false;
 }
 
 //=============================================================================
@@ -103,18 +104,17 @@ const vector < string > &SMESH_Algo::GetCompatibleHypothesis()
  */
 //=============================================================================
 
-const list <const SMESHDS_Hypothesis *> & SMESH_Algo::GetUsedHypothesis(
-       SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
+const list <const SMESHDS_Hypothesis *> &
+SMESH_Algo::GetUsedHypothesis(SMESH_Mesh &         aMesh,
+                              const TopoDS_Shape & aShape,
+                              const bool           ignoreAuxiliary)
 {
   _usedHypList.clear();
-  if ( !_compatibleHypothesis.empty() )
+  SMESH_HypoFilter filter;
+  if ( InitCompatibleHypoFilter( filter, ignoreAuxiliary ))
   {
-    SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( _compatibleHypothesis[0] ));
-    for ( int i = 1; i < _compatibleHypothesis.size(); ++i )
-      filter.Or( filter.HasName( _compatibleHypothesis[ i ] ));
-
     aMesh.GetHypotheses( aShape, filter, _usedHypList, true );
-    if ( _usedHypList.size() > 1 )
+    if ( ignoreAuxiliary && _usedHypList.size() > 1 )
       _usedHypList.clear();    //only one compatible hypothesis allowed
   }
   return _usedHypList;
@@ -128,18 +128,16 @@ const list <const SMESHDS_Hypothesis *> & SMESH_Algo::GetUsedHypothesis(
  */
 //=============================================================================
 
-const list<const SMESHDS_Hypothesis *> & SMESH_Algo::GetAppliedHypothesis(
-       SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
+const list<const SMESHDS_Hypothesis *> &
+SMESH_Algo::GetAppliedHypothesis(SMESH_Mesh &         aMesh,
+                                 const TopoDS_Shape & aShape,
+                                 const bool           ignoreAuxiliary)
 {
   _appliedHypList.clear();
-  if ( !_compatibleHypothesis.empty() )
-  {
-    SMESH_HypoFilter filter( SMESH_HypoFilter::HasName( _compatibleHypothesis[0] ));
-    for ( int i = 1; i < _compatibleHypothesis.size(); ++i )
-      filter.Or( filter.HasName( _compatibleHypothesis[ i ] ));
-    
+  SMESH_HypoFilter filter;
+  if ( InitCompatibleHypoFilter( filter, ignoreAuxiliary ))
     aMesh.GetHypotheses( aShape, filter, _appliedHypList, false );
-  }
+
   return _appliedHypList;
 }
 
@@ -345,3 +343,28 @@ bool SMESH_Algo::GetNodeParamOnEdge(const SMESHDS_Mesh* theMesh,
 
   return theParams.size() > 1;
 }
+
+//================================================================================
+/*!
+ * \brief Make filter recognize only compatible hypotheses
+ * \param theFilter - the filter to initialize
+ * \param ignoreAuxiliary - make filter ignore compatible auxiliary hypotheses
+ */
+//================================================================================
+
+bool SMESH_Algo::InitCompatibleHypoFilter( SMESH_HypoFilter & theFilter,
+                                           const bool         ignoreAuxiliary) const
+{
+  if ( !_compatibleHypothesis.empty() )
+  {
+    theFilter.Init( theFilter.HasName( _compatibleHypothesis[0] ));
+    for ( int i = 1; i < _compatibleHypothesis.size(); ++i )
+      theFilter.Or( theFilter.HasName( _compatibleHypothesis[ i ] ));
+
+    if ( ignoreAuxiliary )
+      theFilter.AndNot( theFilter.IsAuxiliary() );
+
+    return true;
+  }
+  return false;
+}
index 9bdb7d09a06306007e25c4370cba235230c8fcbe..bb39baa01eaf04c26fb29d26fca73356fbee2776 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Edge.hxx>
+#include <gp_XY.hxx>
 
 #include <string>
 #include <vector>
 #include <list>
+#include <map>
 
 class SMESH_Gen;
 class SMESH_Mesh;
+class SMESH_HypoFilter;
 class TopoDS_Face;
 class TopoDS_Shape;
 class SMESHDS_Mesh;
+class SMDS_MeshNode;
 
 class SMESH_EXPORT SMESH_Algo:public SMESH_Hypothesis
 {
@@ -60,13 +64,27 @@ class SMESH_EXPORT SMESH_Algo:public SMESH_Hypothesis
        virtual bool Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) = 0;
 
        virtual const std::list <const SMESHDS_Hypothesis *> &
-               GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
+               GetUsedHypothesis(SMESH_Mesh &         aMesh,
+                                  const TopoDS_Shape & aShape,
+                                  const bool           ignoreAuxiliary=true);
 
        const list <const SMESHDS_Hypothesis *> &
-               GetAppliedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
+               GetAppliedHypothesis(SMESH_Mesh &         aMesh,
+                                     const TopoDS_Shape & aShape,
+                                     const bool           ignoreAuxiliary=true);
 
        static double EdgeLength(const TopoDS_Edge & E);
 
+
+  /*!
+   * \brief Make filter recognize only compatible hypotheses
+    * \param theFilter - the filter to initialize
+    * \param ignoreAuxiliary - make filter ignore compatible auxiliary hypotheses
+    * \retval bool - true if the algo has compatible hypotheses
+   */
+  bool InitCompatibleHypoFilter( SMESH_HypoFilter & theFilter,
+                                 const bool         ignoreAuxiliary) const;
+
   /*!
    * \brief Fill vector of node parameters on geometrical edge, including vertex nodes
     * \param theMesh - The mesh containing nodes
@@ -123,6 +141,9 @@ class SMESH_EXPORT SMESH_Algo:public SMESH_Hypothesis
         std::vector<std::string> _compatibleHypothesis;
         std::list<const SMESHDS_Hypothesis *> _appliedHypList;
         std::list<const SMESHDS_Hypothesis *> _usedHypList;
+
+  // quadratic mesh creation required
+  bool _quadraticMesh;
 };
 
 #endif
index 431208fcf1d4ed2689cdea1206052afbff7aa1b0..3a086833078bde24a5d663f8842d59ce382554dc 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 // File      : SMESH_Pattern.hxx
 // Created   : Mon Aug  2 10:30:00 2004
index f641ba64c5ead2510cc896a6cd4ba92530d62104..50eb417cef3949cde7529420eb68a0b7d22cfb8e 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 // File      : SMESH_Block.hxx
 // Created   : Tue Nov 30 12:42:18 2004
index 4cec8043fc606fdb85e2afce95171606cebe5495..1fee866c64b70930d05fa673c6a255923cf4659f 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File:      SMESH_DataMapOfElemPtrSequenceOfElemPtr.hxx
 // Created:   26.09.05 17:41:10
index c5a611a29665559d8e7f5b6ec2fcb4d5065a3b1a..1febbb03a9c115e3def980976eb6cb06f5c914e6 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -102,33 +102,24 @@ SMESH_Gen::~SMESH_Gen()
  */
 //=============================================================================
 
-SMESH_Mesh* SMESH_Gen::CreateMesh(int studyId)
-throw(SALOME_Exception)
+SMESH_Mesh* SMESH_Gen::CreateMesh(int theStudyId, bool theIsEmbeddedMode)
+  throw(SALOME_Exception)
 {
-        Unexpect aCatch(SalomeException);
-       MESSAGE("SMESH_Gen::CreateMesh");
-//   if (aShape.ShapeType() == TopAbs_COMPOUND)
-//     {
-//       INFOS("Mesh Compound not yet implemented!");
-//       throw(SALOME_Exception(LOCALIZED("Mesh Compound not yet implemented!")));
-//     }
+  Unexpect aCatch(SalomeException);
+  MESSAGE("SMESH_Gen::CreateMesh");
 
-       // Get studyContext, create it if it does'nt exist, with a SMESHDS_Document
-
-       StudyContextStruct *myStudyContext = GetStudyContext(studyId);
-
-       // create a new SMESH_mesh object
-
-       SMESH_Mesh *mesh = new SMESH_Mesh(_localId++,
-               studyId,
-               this,
-               myStudyContext->myDocument);
-       myStudyContext->mapMesh[_localId] = mesh;
+  // Get studyContext, create it if it does'nt exist, with a SMESHDS_Document
+  StudyContextStruct *aStudyContext = GetStudyContext(theStudyId);
 
-       // associate a TopoDS_Shape to the mesh
+  // create a new SMESH_mesh object
+  SMESH_Mesh *aMesh = new SMESH_Mesh(_localId++,
+                                    theStudyId,
+                                    this,
+                                    theIsEmbeddedMode,
+                                    aStudyContext->myDocument);
+  aStudyContext->mapMesh[_localId] = aMesh;
 
-//mesh->ShapeToMesh(aShape);
-       return mesh;
+  return aMesh;
 }
 
 //=============================================================================
@@ -633,13 +624,14 @@ SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
   if ( algoList.empty() )
     return NULL;
 
-  if (algoList.size() > 1 ) { // check if there is one algo several times
-    list <const SMESHDS_Hypothesis * >::iterator algo = algoList.begin();
-    for ( ; algo != algoList.end(); ++algo )
-      if ( (*algo) != algoList.front() &&
-           (*algo)->GetName() != algoList.front()->GetName() )
-        return NULL;
-  }
+  // Now it is checked in SMESH_Mesh::GetHypotheses()
+//   if (algoList.size() > 1 ) { // check if there is one algo several times
+//     list <const SMESHDS_Hypothesis * >::iterator algo = algoList.begin();
+//     for ( ; algo != algoList.end(); ++algo )
+//       if ( (*algo) != algoList.front() &&
+//            (*algo)->GetName() != algoList.front()->GetName() )
+//         return NULL;
+//   }
 
   return const_cast<SMESH_Algo*> ( static_cast<const SMESH_Algo* >( algoList.front() ));
 }
@@ -702,37 +694,20 @@ void SMESH_Gen::Close(int studyId)
 
 int SMESH_Gen::GetShapeDim(const TopAbs_ShapeEnum & aShapeType)
 {
-       int shapeDim = -1;                      // Shape dimension: 0D, 1D, 2D, 3D
-       int type = aShapeType;//.ShapeType();
-       switch (type)
-       {
-       case TopAbs_COMPOUND:
-       case TopAbs_COMPSOLID:
-       case TopAbs_SOLID:
-       case TopAbs_SHELL:
-       {
-               shapeDim = 3;
-               break;
-       }
-               //    case TopAbs_SHELL:
-       case TopAbs_FACE:
-       {
-               shapeDim = 2;
-               break;
-       }
-       case TopAbs_WIRE:
-       case TopAbs_EDGE:
-       {
-               shapeDim = 1;
-               break;
-       }
-       case TopAbs_VERTEX:
-       {
-               shapeDim = 0;
-               break;
-       }
-       }
-       return shapeDim;
+  static vector<int> dim;
+  if ( dim.empty() )
+  {
+    dim.resize( TopAbs_SHAPE, -1 );
+    dim[ TopAbs_COMPOUND ]  = 3;
+    dim[ TopAbs_COMPSOLID ] = 3;
+    dim[ TopAbs_SOLID ]     = 3;
+    dim[ TopAbs_SHELL ]     = 3;
+    dim[ TopAbs_FACE  ]     = 2;
+    dim[ TopAbs_WIRE ]      = 1;
+    dim[ TopAbs_EDGE ]      = 1;
+    dim[ TopAbs_VERTEX ]    = 0;
+  }
+  return dim[ aShapeType ];
 }
 
 //=============================================================================
index 04b1bcb3456fb6d4d4e173438d6adc0c3baa7031..c2b8729c6f5403980b80b40c51209bc9f12a8580 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -62,7 +62,7 @@ class SMESH_EXPORT  SMESH_Gen
 
 //  SMESH_Hypothesis *CreateHypothesis(const char *anHyp, int studyId)
 //    throw(SALOME_Exception);
-  SMESH_Mesh* CreateMesh(int studyId)
+  SMESH_Mesh* CreateMesh(int theStudyId, bool theIsEmbeddedMode)
     throw(SALOME_Exception);
   bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
 
index 49cade1223924104ee1c0c85f9a352a78249b56e..c0a777b61326a6909efff62deb11eea1fbc8b8d0 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 604d55f20ea61f5963bdfd4656359312c1bf75fd..1b13bc57859985b2efbf44f4820e7f935b151b3d 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -55,6 +55,9 @@ class SMESH_EXPORT  SMESH_Group
 
   SMESHDS_GroupBase * GetGroupDS () { return myGroupDS; }
 
+  void SetColorNumber (int theColorNumber) { myColorNumber = theColorNumber; }
+  int GetColorNumber() const { return myColorNumber; }
+
  private:
   SMESH_Group (const SMESH_Group& theOther);
   // prohibited copy constructor
@@ -63,7 +66,7 @@ class SMESH_EXPORT  SMESH_Group
 
   SMESHDS_GroupBase * myGroupDS;
   std::string         myName;
-
+  int                 myColorNumber;
 };
 
 #endif
index ff14016d8dae8ae62af359d12b7862aaf5b3db77..fe0bcd46684dd9267311df7bfe260f4e3a95f714 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -75,6 +75,17 @@ bool SMESH_HypoFilter::ApplicablePredicate::IsOk(const SMESH_Hypothesis* aHyp,
   return SMESH_subMesh::IsApplicableHypotesis( aHyp, (TopAbs_ShapeEnum)_shapeType );
 };
 
+//=======================================================================
+//function : IsAuxiliaryPredicate::IsOk
+//purpose  : 
+//=======================================================================
+
+bool SMESH_HypoFilter::IsAuxiliaryPredicate::IsOk(const SMESH_Hypothesis* aHyp,
+                                                  const TopoDS_Shape&     /*aShape*/) const
+{
+  return aHyp->IsAuxiliary();
+};
+
 //=======================================================================
 //function : ApplicablePredicate::ApplicablePredicate
 //purpose  : 
@@ -190,6 +201,17 @@ SMESH_HypoPredicate* SMESH_HypoFilter::IsAlgo()
   return new TypePredicate( MORE, SMESHDS_Hypothesis::PARAM_ALGO );
 }
 
+//=======================================================================
+//function : IsAuxiliary
+//purpose  : 
+//=======================================================================
+
+SMESH_HypoPredicate* SMESH_HypoFilter::IsAuxiliary()
+{
+  return new IsAuxiliaryPredicate();
+}
+
+
 //=======================================================================
 //function : IsGlobal
 //purpose  : 
@@ -287,6 +309,7 @@ SMESH_HypoFilter & SMESH_HypoFilter::Init  ( SMESH_HypoPredicate* aPredicate, bo
   list<SMESH_HypoPredicate*>::const_iterator pred = myPredicates.begin();
   for ( ; pred != myPredicates.end(); ++pred )
     delete *pred;
+  myPredicates.clear();
 
   add( notNagate ? AND : AND_NOT, aPredicate );
   return *this;
index 24ece73b4153120ffa5a93773dd8fc04a06e0fb5..ca883167ef71e953dcb919e0f22f89de0c86f0ee 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -53,7 +53,7 @@ class SMESH_EXPORT SMESH_HypoPredicate {
   friend class SMESH_HypoFilter;
 };
 
-class SMESH_HypoFilter: public SMESH_HypoPredicate
+class SMESH_EXPORT SMESH_HypoFilter: public SMESH_HypoPredicate
 {
  public:
   // Create and add predicates.
@@ -69,6 +69,7 @@ class SMESH_HypoFilter: public SMESH_HypoPredicate
 
   // Create predicates
   static SMESH_HypoPredicate* IsAlgo();
+  static SMESH_HypoPredicate* IsAuxiliary();
   static SMESH_HypoPredicate* IsApplicableTo(const TopoDS_Shape& theShape);
   static SMESH_HypoPredicate* IsAssignedTo(const TopoDS_Shape& theShape);
   static SMESH_HypoPredicate* Is(const SMESH_Hypothesis* theHypo);
@@ -160,6 +161,11 @@ class SMESH_HypoFilter: public SMESH_HypoPredicate
               const TopoDS_Shape&     aShape) const;
   };
         
+  struct IsAuxiliaryPredicate : public SMESH_HypoPredicate {
+    bool IsOk(const SMESH_Hypothesis* aHyp,
+              const TopoDS_Shape&     aShape) const;
+  };
+        
 };
 
 
index 6cad0b0fd8ab12e3735942c9a01eb0b92672c0b9..36564d322c4f8a04a5017a2f175f00a4ee31c593 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -72,13 +72,14 @@ SMESH_Hypothesis::~SMESH_Hypothesis()
 
 int SMESH_Hypothesis::GetDim() const
 {
-  int dim = -1;
+  int dim = 0;
   switch (_type)
     {
     case ALGO_1D: dim = 1; break;
     case ALGO_2D: dim = 2; break;
     case ALGO_3D: dim = 3; break;
-    case PARAM_ALGO: dim = _param_algo_dim; break;
+    case PARAM_ALGO:
+      dim = ( _param_algo_dim < 0 ) ? -_param_algo_dim : _param_algo_dim; break;
     }
   return dim;
 }
@@ -124,14 +125,15 @@ void SMESH_Hypothesis::NotifySubMeshesHypothesisModification()
        itm++)
     {
       SMESH_Mesh* mesh = (*itm).second;
-      const list<SMESH_subMesh*>& subMeshes =
-        mesh->GetSubMeshUsingHypothesis(this);
+      mesh->NotifySubMeshesHypothesisModification( this );
+//       const list<SMESH_subMesh*>& subMeshes =
+//      mesh->GetSubMeshUsingHypothesis(this);
 
-      //for all subMeshes using hypothesis
+//       //for all subMeshes using hypothesis
        
-      list<SMESH_subMesh*>::const_iterator its;
-      for (its = subMeshes.begin(); its != subMeshes.end(); its++)
-       (*its)->ComputeStateEngine(SMESH_subMesh::MODIF_HYP);
+//       list<SMESH_subMesh*>::const_iterator its;
+//       for (its = subMeshes.begin(); its != subMeshes.end(); its++)
+//     (*its)->ComputeStateEngine(SMESH_subMesh::MODIF_HYP);
     }
 }
 
index 79e439ef1f45a3753964b727f72d6913521a9261..6f4cf02545002dc8ef8360309a05b88d2a2997ef 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -51,18 +51,19 @@ public:
     HYP_INCOMPATIBLE, // hypothesis does not fit algo
     HYP_NOTCONFORM,   // not conform mesh is produced appling a hypothesis
     HYP_ALREADY_EXIST,// such hypothesis already exist
-    HYP_BAD_DIM       // bad dimension
+    HYP_BAD_DIM,      // bad dimension
+    HYP_BAD_SUBSHAPE  // shape is neither the main one, nor its subshape, nor a group
   };
   static bool IsStatusFatal(Hypothesis_Status theStatus)
   { return theStatus >= HYP_UNKNOWN_FATAL; }
 
   SMESH_Hypothesis(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~SMESH_Hypothesis();
-  int GetDim() const;
+  virtual int GetDim() const;
   int GetStudyId() const;
-  void NotifySubMeshesHypothesisModification();
-  int GetShapeType() const;
-  const char* GetLibName() const;
+  virtual void NotifySubMeshesHypothesisModification();
+  virtual int GetShapeType() const;
+  virtual const char* GetLibName() const;
   void  SetLibName(const char* theLibName);
 
   /*!
@@ -73,6 +74,17 @@ public:
    */
   virtual bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape)=0;
 
+  /*!
+   * \brief Return true if me is an auxiliary hypothesis
+    * \retval bool - auxiliary or not
+   * 
+   * An auxiliary hypothesis is optional, i.e. an algorithm
+   * can work without it and another hypothesis of the same
+   * dimention can be assigned to the shape
+   */
+  virtual bool IsAuxiliary() const
+  { return GetType() == PARAM_ALGO && _param_algo_dim <= 0; }
+
 protected:
   SMESH_Gen* _gen;
   int _studyId;
index 838d1f6a88ae3ce32ba5bbd8bff99e401b887884..678e995c969f67e706d36ad9ddfce8564eff137b 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File:      SMESH_IndexedDataMapOfShapeIndexedMapOfShape.hxx
 // Created:   20.09.05 09:51:12
index a4b5f80af0208839134f0186cbbaf490fe628adb..bb88ca0bd9ffee65dcde1fb812833c3f7d068292 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -63,6 +63,9 @@
 
 #include "Utils_ExceptHandlers.hxx"
 
+// maximum stored group name length in MED file
+#define MAX_MED_GROUP_NAME_LENGTH 80
+
 #ifdef _DEBUG_
 static int MYDEBUG = 0;
 #else
@@ -76,17 +79,21 @@ static int MYDEBUG = 0;
  */
 //=============================================================================
 
-SMESH_Mesh::SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen, SMESHDS_Document * myDocument)
-: _groupId( 0 )
+SMESH_Mesh::SMESH_Mesh(int theLocalId, 
+                      int theStudyId, 
+                      SMESH_Gen* theGen,
+                      bool theIsEmbeddedMode,
+                      SMESHDS_Document* theDocument):
+  _groupId( 0 )
 {
   INFOS("SMESH_Mesh::SMESH_Mesh(int localId)");
-       _id = localId;
-       _studyId = studyId;
-       _gen = gen;
-       _myDocument = myDocument;
-       _idDoc = _myDocument->NewMesh();
-       _myMeshDS = _myDocument->GetMesh(_idDoc);
-       _isShapeToMesh = false;
+  _id = theLocalId;
+  _studyId = theStudyId;
+  _gen = theGen;
+  _myDocument = theDocument;
+  _idDoc = theDocument->NewMesh(theIsEmbeddedMode);
+  _myMeshDS = theDocument->GetMesh(_idDoc);
+  _isShapeToMesh = false;
 }
 
 //=============================================================================
@@ -149,7 +156,7 @@ void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape)
   // fill _mapAncestors
   _mapAncestors.Clear();
   int desType, ancType;
-  for ( desType = TopAbs_EDGE; desType > TopAbs_COMPOUND; desType-- )
+  for ( desType = TopAbs_VERTEX; desType > TopAbs_COMPOUND; desType-- )
     for ( ancType = desType - 1; ancType >= TopAbs_COMPOUND; ancType-- )
       TopExp::MapShapesAndAncestors ( aShape,
                                      (TopAbs_ShapeEnum) desType,
@@ -177,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;
 }
@@ -235,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;
@@ -245,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;
 }
@@ -267,6 +304,9 @@ SMESH_Hypothesis::Hypothesis_Status
   if(MYDEBUG) MESSAGE("SMESH_Mesh::AddHypothesis");
 
   SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+  if ( !subMesh || !subMesh->GetId())
+    return SMESH_Hypothesis::HYP_BAD_SUBSHAPE;
+
   SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
   if ( subMeshDS && subMeshDS->IsComplexSubmesh() ) // group of sub-shapes and maybe of not sub-
   {
@@ -520,45 +560,62 @@ const SMESH_Hypothesis * SMESH_Mesh::GetHypothesis(const TopoDS_Shape &    aSubS
 //purpose  : 
 //=======================================================================
 
-bool SMESH_Mesh::GetHypotheses(const TopoDS_Shape &                aSubShape,
-                               const SMESH_HypoFilter&             aFilter,
-                               list <const SMESHDS_Hypothesis * >& aHypList,
-                               const bool                          andAncestors) const
+//================================================================================
+/*!
+ * \brief Return hypothesis assigned to the shape
+  * \param aSubShape - the shape to check
+  * \param aFilter - the hypothesis filter
+  * \param aHypList - the list of the found hypotheses
+  * \param andAncestors - flag to check hypos assigned to ancestors of the shape
+  * \retval int - number of unique hypos in aHypList
+ */
+//================================================================================
+
+int SMESH_Mesh::GetHypotheses(const TopoDS_Shape &                aSubShape,
+                              const SMESH_HypoFilter&             aFilter,
+                              list <const SMESHDS_Hypothesis * >& aHypList,
+                              const bool                          andAncestors) const
 {
-  int nbHyp = 0;
+  set<string> hypTypes; // to exclude same type hypos from the result list
+  int nbHyps = 0;
+
+  // fill in hypTypes
+  list<const SMESHDS_Hypothesis*>::const_iterator hyp;
+  for ( hyp = aHypList.begin(); hyp != aHypList.end(); hyp++ )
+    if ( hypTypes.insert( (*hyp)->GetName() ).second )
+      nbHyps++;
+
+  // get hypos from aSubShape
   {
     const list<const SMESHDS_Hypothesis*>& hypList = _myMeshDS->GetHypothesis(aSubShape);
-    list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-    for ( ; hyp != hypList.end(); hyp++ )
-      if ( aFilter.IsOk (static_cast<const SMESH_Hypothesis*>( *hyp ), aSubShape)) {
+    for ( hyp = hypList.begin(); hyp != hypList.end(); hyp++ )
+      if ( aFilter.IsOk (static_cast<const SMESH_Hypothesis*>( *hyp ), aSubShape) &&
+           hypTypes.insert( (*hyp)->GetName() ).second )
+      {
         aHypList.push_back( *hyp );
-        nbHyp++;
+        nbHyps++;
       }
   }
-  // get hypos from shape of one type only: if any hypo is found on edge, do
-  // not look up on faces
-  if ( !nbHyp && andAncestors )
+
+  // get hypos from ancestors of aSubShape
+  if ( andAncestors )
   {
     TopTools_MapOfShape map;
     TopTools_ListIteratorOfListOfShape it( GetAncestors( aSubShape ));
-    int shapeType = it.More() ? it.Value().ShapeType() : TopAbs_SHAPE;
     for (; it.More(); it.Next() )
     {
-      if ( nbHyp && shapeType != it.Value().ShapeType() )
-        break;
-      shapeType = it.Value().ShapeType();
-      if ( !map.Add( it.Value() ))
+     if ( !map.Add( it.Value() ))
         continue;
       const list<const SMESHDS_Hypothesis*>& hypList = _myMeshDS->GetHypothesis(it.Value());
-      list<const SMESHDS_Hypothesis*>::const_iterator hyp = hypList.begin();
-      for ( ; hyp != hypList.end(); hyp++ )
-        if (aFilter.IsOk( static_cast<const SMESH_Hypothesis*>( *hyp ), it.Value() )) {
-        aHypList.push_back( *hyp );
-        nbHyp++;
-      }
+      for ( hyp = hypList.begin(); hyp != hypList.end(); hyp++ )
+        if (aFilter.IsOk( static_cast<const SMESH_Hypothesis*>( *hyp ), it.Value() ) &&
+            hypTypes.insert( (*hyp)->GetName() ).second ) {
+          aHypList.push_back( *hyp );
+          nbHyps++;
+        }
     }
   }
-  return nbHyp;
+  return nbHyps;
 }
 
 //=============================================================================
@@ -616,28 +673,31 @@ SMESH_Gen *SMESH_Mesh::GetGen()
 //=============================================================================
 
 SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape)
-throw(SALOME_Exception)
+  throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
   SMESH_subMesh *aSubMesh;
   int index = _myMeshDS->ShapeToIndex(aSubShape);
-  
+
   // for submeshes on GEOM Group
   if ( !index && aSubShape.ShapeType() == TopAbs_COMPOUND ) {
     TopoDS_Iterator it( aSubShape );
     if ( it.More() )
       index = _myMeshDS->AddCompoundSubmesh( aSubShape, it.Value().ShapeType() );
   }
+//   if ( !index )
+//     return NULL; // neither sub-shape nor a group
 
-  if (_mapSubMesh.find(index) != _mapSubMesh.end())
-    {
-      aSubMesh = _mapSubMesh[index];
-    }
+  map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.find(index);
+  if ( i_sm != _mapSubMesh.end())
+  {
+    aSubMesh = i_sm->second;
+  }
   else
-    {
-      aSubMesh = new SMESH_subMesh(index, this, _myMeshDS, aSubShape);
-      _mapSubMesh[index] = aSubMesh;
-    }
+  {
+    aSubMesh = new SMESH_subMesh(index, this, _myMeshDS, aSubShape);
+    _mapSubMesh[index] = aSubMesh;
+  }
   return aSubMesh;
 }
 
@@ -649,20 +709,17 @@ throw(SALOME_Exception)
 //=============================================================================
 
 SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
-throw(SALOME_Exception)
+  throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-  bool isFound = false;
   SMESH_subMesh *aSubMesh = NULL;
   
   int index = _myMeshDS->ShapeToIndex(aSubShape);
-  if (_mapSubMesh.find(index) != _mapSubMesh.end())
-    {
-      aSubMesh = _mapSubMesh[index];
-      isFound = true;
-    }
-  if (!isFound)
-    aSubMesh = NULL;
+
+  map <int, SMESH_subMesh *>::iterator i_sm = _mapSubMesh.find(index);
+  if ( i_sm != _mapSubMesh.end())
+    aSubMesh = i_sm->second;
+
   return aSubMesh;
 }
 
@@ -690,15 +747,17 @@ throw(SALOME_Exception)
 //=======================================================================
 
 bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
-                                  const TopoDS_Shape & aSubShape)
+                                  const SMESH_subMesh* aSubMesh)
 {
   SMESH_Hypothesis* hyp = static_cast<SMESH_Hypothesis*>(anHyp);
-  // check if anHyp is applicable to aSubShape
-  SMESH_subMesh * subMesh = GetSubMeshContaining( aSubShape );
-  if ( !subMesh || !subMesh->IsApplicableHypotesis( hyp ))
+
+  // check if anHyp can be used to mesh aSubMesh
+  if ( !aSubMesh || !aSubMesh->IsApplicableHypotesis( hyp ))
     return false;
 
-  SMESH_Algo *algo = _gen->GetAlgo(*this, aSubShape);
+  const TopoDS_Shape & aSubShape = const_cast<SMESH_subMesh*>( aSubMesh )->GetSubShape();
+
+  SMESH_Algo *algo = _gen->GetAlgo(*this, aSubShape );
 
   // algorithm
   if (anHyp->GetType() > SMESHDS_Hypothesis::PARAM_ALGO)
@@ -708,17 +767,19 @@ bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
   if (algo)
   {
     // look trough hypotheses used by algo
-    const list <const SMESHDS_Hypothesis * >&usedHyps =
-      algo->GetUsedHypothesis(*this, aSubShape);
-    return ( find( usedHyps.begin(), usedHyps.end(), anHyp ) != usedHyps.end() );
+    SMESH_HypoFilter hypoKind;
+    if ( algo->InitCompatibleHypoFilter( hypoKind, !hyp->IsAuxiliary() )) {
+      list <const SMESHDS_Hypothesis * > usedHyps;
+      if ( GetHypotheses( aSubShape, hypoKind, usedHyps, true ))
+        return ( find( usedHyps.begin(), usedHyps.end(), anHyp ) != usedHyps.end() );
+    }
   }
 
   // look through all assigned hypotheses
-  SMESH_HypoFilter filter( SMESH_HypoFilter::Is( hyp ));
-  return GetHypothesis( aSubShape, filter, true );
+  //SMESH_HypoFilter filter( SMESH_HypoFilter::Is( hyp ));
+  return false; //GetHypothesis( aSubShape, filter, true );
 }
 
-
 //=============================================================================
 /*!
  *
@@ -726,28 +787,100 @@ bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
 //=============================================================================
 
 const list < SMESH_subMesh * >&
-       SMESH_Mesh::GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
-throw(SALOME_Exception)
+SMESH_Mesh::GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
+  throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-       if(MYDEBUG) MESSAGE("SMESH_Mesh::GetSubMeshUsingHypothesis");
-       map < int, SMESH_subMesh * >::iterator itsm;
-       _subMeshesUsingHypothesisList.clear();
-       for (itsm = _mapSubMesh.begin(); itsm != _mapSubMesh.end(); itsm++)
-       {
-               SMESH_subMesh *aSubMesh = (*itsm).second;
-               if ( IsUsedHypothesis ( anHyp, aSubMesh->GetSubShape() ))
-                       _subMeshesUsingHypothesisList.push_back(aSubMesh);
-       }
-       return _subMeshesUsingHypothesisList;
+  if(MYDEBUG) MESSAGE("SMESH_Mesh::GetSubMeshUsingHypothesis");
+  map < int, SMESH_subMesh * >::iterator itsm;
+  _subMeshesUsingHypothesisList.clear();
+  for (itsm = _mapSubMesh.begin(); itsm != _mapSubMesh.end(); itsm++)
+  {
+    SMESH_subMesh *aSubMesh = (*itsm).second;
+    if ( IsUsedHypothesis ( anHyp, aSubMesh ))
+      _subMeshesUsingHypothesisList.push_back(aSubMesh);
+  }
+  return _subMeshesUsingHypothesisList;
+}
+
+//=======================================================================
+//function : NotifySubMeshesHypothesisModification
+//purpose  : Say all submeshes using theChangedHyp that it has been modified
+//=======================================================================
+
+void SMESH_Mesh::NotifySubMeshesHypothesisModification(const SMESH_Hypothesis* theChangedHyp)
+{
+  Unexpect aCatch(SalomeException);
+
+  const SMESH_Hypothesis* hyp = static_cast<const SMESH_Hypothesis*>(theChangedHyp);
+
+  const SMESH_Algo *foundAlgo = 0;
+  SMESH_HypoFilter algoKind( SMESH_HypoFilter::IsAlgo() );
+  SMESH_HypoFilter compatibleHypoKind;
+  list <const SMESHDS_Hypothesis * > usedHyps;
+
+
+  map < int, SMESH_subMesh * >::iterator itsm;
+  for (itsm = _mapSubMesh.begin(); itsm != _mapSubMesh.end(); itsm++)
+  {
+    SMESH_subMesh *aSubMesh = (*itsm).second;
+    if ( aSubMesh->IsApplicableHypotesis( hyp ))
+    {
+      const TopoDS_Shape & aSubShape = aSubMesh->GetSubShape();
+
+      if ( !foundAlgo ) // init filter for algo search
+        algoKind.And( algoKind.IsApplicableTo( aSubShape ));
+      
+      const SMESH_Algo *algo = static_cast<const SMESH_Algo*>
+        ( GetHypothesis( aSubShape, algoKind, true ));
+
+      if ( algo )
+      {
+        bool sameAlgo = ( algo == foundAlgo );
+        if ( !sameAlgo && foundAlgo )
+          sameAlgo = ( strcmp( algo->GetName(), foundAlgo->GetName() ) == 0);
+
+        if ( !sameAlgo ) { // init filter for used hypos search
+          if ( !algo->InitCompatibleHypoFilter( compatibleHypoKind, !hyp->IsAuxiliary() ))
+            continue; // algo does not use any hypothesis
+          foundAlgo = algo;
+        }
+
+        // check if hyp is used by algo
+        usedHyps.clear();
+        if ( GetHypotheses( aSubShape, compatibleHypoKind, usedHyps, true ) &&
+             find( usedHyps.begin(), usedHyps.end(), hyp ) != usedHyps.end() )
+        {
+          aSubMesh->ComputeStateEngine(SMESH_subMesh::MODIF_HYP);
+
+          if ( algo->GetDim() == 1 && IsPropagationHypothesis( aSubShape ))
+            CleanMeshOnPropagationChain( aSubShape );
+        }
+      }
+    }
+  }
 }
 
 //=============================================================================
-/*!
- *
+/*! Export* methods.
+ *  To store mesh contents on disk in different formats.
  */
 //=============================================================================
 
+bool SMESH_Mesh::HasDuplicatedGroupNamesMED()
+{
+  set<string> aGroupNames;
+  for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
+    SMESH_Group* aGroup = it->second;
+    string aGroupName = aGroup->GetName();
+    aGroupName.resize(MAX_MED_GROUP_NAME_LENGTH);
+    if (!aGroupNames.insert(aGroupName).second)
+      return true;
+  }
+
+  return false;
+}
+
 void SMESH_Mesh::ExportMED(const char *file, 
                           const char* theMeshName, 
                           bool theAutoGroups,
@@ -755,6 +888,7 @@ void SMESH_Mesh::ExportMED(const char *file,
   throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
+
   DriverMED_W_SMESHDS_Mesh myWriter;
   myWriter.SetFile    ( file, MED::EVersion(theVersion) );
   myWriter.SetMesh    ( _myMeshDS   );
@@ -772,15 +906,28 @@ void SMESH_Mesh::ExportMED(const char *file,
     myWriter.AddGroupOfVolumes();
   }
 
+  // Pass groups to writer. Provide unique group names.
+  set<string> aGroupNames;
+  char aString [256];
+  int maxNbIter = 10000; // to guarantee cycle finish
   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 ) {
-      aGroupDS->SetStoreName( aGroup->GetName() );
+      string aGroupName0 = aGroup->GetName();
+      aGroupName0.resize(MAX_MED_GROUP_NAME_LENGTH);
+      string aGroupName = aGroupName0;
+      for (int i = 1; !aGroupNames.insert(aGroupName).second && i < maxNbIter; i++) {
+        sprintf(&aString[0], "GR_%d_%s", i, aGroupName0.c_str());
+        aGroupName = aString;
+        aGroupName.resize(MAX_MED_GROUP_NAME_LENGTH);
+      }
+      aGroupDS->SetStoreName( aGroupName.c_str() );
       myWriter.AddGroup( aGroupDS );
     }
   }
 
+  // Perform export
   myWriter.Perform();
 }
 
@@ -801,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();
 }
 
@@ -831,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;
 }
 
 //=============================================================================
@@ -842,26 +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();
-    if (!curFace->IsPoly() && curFace->NbNodes() == 3) Nb++;
+    const SMDS_MeshFace* curFace = itFaces->next();
+    int nbnod = curFace->NbNodes();
+    if ( !curFace->IsPoly() && 
+        ( order == ORDER_ANY && (nbnod==3 || nbnod==6) ||
+           order == ORDER_LINEAR && nbnod==3 ||
+           order == ORDER_QUADRATIC && nbnod==6 ) )
+      Nb++;
   }
   return Nb;
 }
@@ -869,17 +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();
-    if (!curFace->IsPoly() && curFace->NbNodes() == 4) Nb++;
+    const SMDS_MeshFace* curFace = itFaces->next();
+    int nbnod = curFace->NbNodes();
+    if ( !curFace->IsPoly() && 
+        ( order == ORDER_ANY && (nbnod==4 || nbnod==8) ||
+           order == ORDER_LINEAR && nbnod==4 ||
+           order == ORDER_QUADRATIC && nbnod==8 ) )
+      Nb++;
   }
   return Nb;
 }
@@ -902,64 +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();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 4) Nb++;
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
+    if ( !curVolume->IsPoly() && 
+        ( order == ORDER_ANY && (nbnod==4 || nbnod==10) ||
+           order == ORDER_LINEAR && nbnod==4 ||
+           order == ORDER_QUADRATIC && nbnod==10 ) )
+      Nb++;
   }
   return Nb;
 }
 
-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();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 8) Nb++;
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
+    if ( !curVolume->IsPoly() && 
+        ( order == ORDER_ANY && (nbnod==8 || nbnod==20) ||
+           order == ORDER_LINEAR && nbnod==8 ||
+           order == ORDER_QUADRATIC && nbnod==20 ) )
+      Nb++;
   }
   return Nb;
 }
 
-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();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 5) Nb++;
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
+    if ( !curVolume->IsPoly() && 
+        ( order == ORDER_ANY && (nbnod==5 || nbnod==13) ||
+           order == ORDER_LINEAR && nbnod==5 ||
+           order == ORDER_QUADRATIC && nbnod==13 ) )
+      Nb++;
   }
   return Nb;
 }
 
-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();
-    if (!curVolume->IsPoly() && curVolume->NbNodes() == 6) Nb++;
+    const SMDS_MeshVolume* curVolume = itVolumes->next();
+    int nbnod = curVolume->NbNodes();
+    if ( !curVolume->IsPoly() && 
+        ( order == ORDER_ANY && (nbnod==6 || nbnod==15) ||
+           order == ORDER_LINEAR && nbnod==6 ||
+           order == ORDER_QUADRATIC && nbnod==15 ) )
+      Nb++;
   }
   return Nb;
 }
@@ -1152,7 +1361,7 @@ void SMESH_Mesh::CleanMeshOnPropagationChain (const TopoDS_Shape& theMainEdge)
     SMESH_subMesh *subMesh = GetSubMesh(anEdge);
     SMESHDS_SubMesh *subMeshDS = subMesh->GetSubMeshDS();
     if (subMeshDS && subMeshDS->NbElements() > 0) {
-      subMesh->ComputeStateEngine(SMESH_subMesh::CLEANDEP);
+      subMesh->ComputeStateEngine(SMESH_subMesh::CLEAN);
     }
   }
 }
index 246bbbca86ef4051a7e6b37bee41dedd41c032f6..35bd13d506d37437e38541e17558adc3e0d86581 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -81,8 +81,11 @@ class SMESH_EXPORT SMESH_Mesh
   SMESH_Mesh();
   SMESH_Mesh(const SMESH_Mesh&);
 public:
-  SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen,
-            SMESHDS_Document * myDocument);
+  SMESH_Mesh(int theLocalId, 
+            int theStudyId, 
+            SMESH_Gen* theGen,
+            bool theIsEmbeddedMode,
+            SMESHDS_Document* theDocument);
   
   virtual ~SMESH_Mesh();
   
@@ -112,10 +115,10 @@ public:
                                          const SMESH_HypoFilter& aFilter,
                                          const bool              andAncestors) const;
   
-  bool GetHypotheses(const TopoDS_Shape &                aSubShape,
-                     const SMESH_HypoFilter&             aFilter,
-                     list <const SMESHDS_Hypothesis * >& aHypList,
-                     const bool                          andAncestors) const;
+  int GetHypotheses(const TopoDS_Shape &                aSubShape,
+                    const SMESH_HypoFilter&             aFilter,
+                    list <const SMESHDS_Hypothesis * >& aHypList,
+                    const bool                          andAncestors) const;
 
   const list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
   
@@ -136,12 +139,15 @@ public:
   SMESH_subMesh *GetSubMeshContaining(const int aShapeID)
     throw(SALOME_Exception);
   
+  void NotifySubMeshesHypothesisModification(const SMESH_Hypothesis* theChangedHyp);
+  // Say all submeshes that theChangedHyp has been modified
+
   const list < SMESH_subMesh * >&
   GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
     throw(SALOME_Exception);
   
-  bool IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
-                       const TopoDS_Shape & aSubShape);
+  bool IsUsedHypothesis(SMESHDS_Hypothesis *  anHyp,
+                       const SMESH_subMesh * aSubMesh);
   // Return True if anHyp is used to mesh aSubShape
   
   bool IsNotConformAllowed() const;
@@ -152,7 +158,12 @@ public:
   const TopTools_ListOfShape& GetAncestors(const TopoDS_Shape& theSubShape) const;
   // return list of ancestors of theSubShape in the order
   // that lower dimention shapes come first.
-  
+
+  /*! Check group names for duplications.
+   *  Consider maximum group name length stored in MED file.
+   */
+  bool HasDuplicatedGroupNamesMED();
+
   void ExportMED(const char *file, 
                 const char* theMeshName = NULL, 
                 bool theAutoGroups = true, 
@@ -165,25 +176,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 572fa86c739a8b5e887066ea43f4533d1524c0bb..5e35f719ce6020cae14d4acf51d90b1f29b23406 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include "SMDS_PolyhedralVolumeOfNodes.hxx"
 #include "SMDS_FacePosition.hxx"
 #include "SMDS_SpacePosition.hxx"
+#include "SMDS_QuadraticFaceOfNodes.hxx"
 
 #include "SMESHDS_Group.hxx"
 #include "SMESHDS_Mesh.hxx"
 
 #include "SMESH_subMesh.hxx"
 #include "SMESH_ControlsDef.hxx"
+#include "SMESH_MesherHelper.hxx"
 
 #include "utilities.h"
 
@@ -64,6 +66,7 @@
 #include <GeomAdaptor_Surface.hxx>
 #include <ElCLib.hxx>
 #include <TColStd_ListOfInteger.hxx>
+#include <TopoDS_Face.hxx>
 
 #include <map>
 
@@ -75,8 +78,12 @@ typedef map<const SMDS_MeshElement*, list<const SMDS_MeshNode*> >    TElemOfNode
 typedef map<const SMDS_MeshElement*, list<const SMDS_MeshElement*> > TElemOfElemListMap;
 typedef map<const SMDS_MeshNode*, list<const SMDS_MeshNode*> >       TNodeOfNodeListMap;
 typedef TNodeOfNodeListMap::iterator                                 TNodeOfNodeListMapItr;
+//typedef map<const SMDS_MeshNode*, vector<const SMDS_MeshNode*> >     TNodeOfNodeVecMap;
+//typedef TNodeOfNodeVecMap::iterator                                  TNodeOfNodeVecMapItr;
 typedef map<const SMDS_MeshElement*, vector<TNodeOfNodeListMapItr> > TElemOfVecOfNnlmiMap;
+//typedef map<const SMDS_MeshElement*, vector<TNodeOfNodeVecMapItr> >  TElemOfVecOfMapNodesMap;
 
+typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> NLink;
 
 //=======================================================================
 //function : SMESH_MeshEditor
@@ -97,13 +104,14 @@ 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;
 
   list<int>::const_iterator it = theIDs.begin();
-  for ( ; it != theIDs.end(); it++ )
-  {
+  for ( ; it != theIDs.end(); it++ ) {
     const SMDS_MeshElement * elem;
     if ( isNodes )
       elem = aMesh->FindNode( *it );
@@ -114,16 +122,12 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
 
     // Find sub-meshes to notify about modification
     SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
-    while ( nodeIt->more() )
-    {
+    while ( nodeIt->more() ) {
       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 );
         }
       }
@@ -142,6 +146,11 @@ bool SMESH_MeshEditor::Remove (const list< int >& theIDs,
     for ( smIt = smmap.begin(); smIt != smmap.end(); smIt++ )
       (*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;
 }
 
@@ -153,12 +162,14 @@ 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;
 
-  if ( theElem->GetType() == SMDSAbs_Node )
-  {
+  if ( theElem->GetType() == SMDSAbs_Node ) {
     const SMDS_PositionPtr& aPosition =
       static_cast<const SMDS_MeshNode*>( theElem )->GetPosition();
     if ( aPosition.get() )
@@ -169,25 +180,22 @@ int SMESH_MeshEditor::FindShape (const SMDS_MeshElement * theElem)
 
   TopoDS_Shape aShape; // the shape a node is on
   SMDS_ElemIteratorPtr nodeIt = theElem->nodesIterator();
-  while ( nodeIt->more() )
-  {
+  while ( nodeIt->more() ) {
     const SMDS_MeshNode* node = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
     const SMDS_PositionPtr& aPosition = node->GetPosition();
     if ( aPosition.get() ) {
-        int aShapeID = aPosition->GetShapeId();
-        SMESHDS_SubMesh * sm = aMesh->MeshElements( aShapeID );
-        if ( sm )
-        {
-          if ( sm->Contains( theElem ))
-            return aShapeID;
-          if ( aShape.IsNull() )
-            aShape = aMesh->IndexToShape( aShapeID );
-        }
-        else
-        {
-          //MESSAGE ( "::FindShape() No SubShape for aShapeID " << aShapeID );
-        }
+      int aShapeID = aPosition->GetShapeId();
+      SMESHDS_SubMesh * sm = aMesh->MeshElements( aShapeID );
+      if ( sm ) {
+        if ( sm->Contains( theElem ))
+          return aShapeID;
+        if ( aShape.IsNull() )
+          aShape = aMesh->IndexToShape( aShapeID );
+      }
+      else {
+        //MESSAGE ( "::FindShape() No SubShape for aShapeID " << aShapeID );
       }
+    }
   }
 
   // None of nodes is on a proper shape,
@@ -197,17 +205,108 @@ int SMESH_MeshEditor::FindShape (const SMDS_MeshElement * theElem)
     return 0;
   }
   TopTools_ListIteratorOfListOfShape ancIt( GetMesh()->GetAncestors( aShape ));
-  for ( ; ancIt.More(); ancIt.Next() )
-  {
-      SMESHDS_SubMesh * sm = aMesh->MeshElements( ancIt.Value() );
-      if ( sm && sm->Contains( theElem ))
-        return aMesh->ShapeToIndex( ancIt.Value() );
+  for ( ; ancIt.More(); ancIt.Next() ) {
+    SMESHDS_SubMesh * sm = aMesh->MeshElements( ancIt.Value() );
+    if ( sm && sm->Contains( theElem ))
+      return aMesh->ShapeToIndex( ancIt.Value() );
   }
 
   //MESSAGE ("::FindShape() - SHAPE NOT FOUND")
   return 0;
 }
 
+//=======================================================================
+//function : IsMedium
+//purpose  : 
+//=======================================================================
+
+bool SMESH_MeshEditor::IsMedium(const SMDS_MeshNode*      node,
+                                const SMDSAbs_ElementType typeToCheck)
+{
+  bool isMedium = false;
+  SMDS_ElemIteratorPtr it = node->GetInverseElementIterator();
+  while (it->more()) {
+    const SMDS_MeshElement* elem = it->next();
+    isMedium = elem->IsMediumNode(node);
+    if ( typeToCheck == SMDSAbs_All || elem->GetType() == typeToCheck )
+      break;
+  }
+  return isMedium;
+}
+
+//=======================================================================
+//function : ShiftNodesQuadTria
+//purpose  : auxilary
+//           Shift nodes in the array corresponded to quadratic triangle
+//           example: (0,1,2,3,4,5) -> (1,2,0,4,5,3)
+//=======================================================================
+static void ShiftNodesQuadTria(const SMDS_MeshNode* aNodes[])
+{
+  const SMDS_MeshNode* nd1 = aNodes[0];
+  aNodes[0] = aNodes[1];
+  aNodes[1] = aNodes[2];
+  aNodes[2] = nd1;
+  const SMDS_MeshNode* nd2 = aNodes[3];
+  aNodes[3] = aNodes[4];
+  aNodes[4] = aNodes[5];
+  aNodes[5] = nd2;
+}
+
+//=======================================================================
+//function : GetNodesFromTwoTria
+//purpose  : auxilary
+//           Shift nodes in the array corresponded to quadratic triangle
+//           example: (0,1,2,3,4,5) -> (1,2,0,4,5,3)
+//=======================================================================
+static bool GetNodesFromTwoTria(const SMDS_MeshElement * theTria1,
+                                const SMDS_MeshElement * theTria2,
+                                const SMDS_MeshNode* N1[],
+                                const SMDS_MeshNode* N2[])
+{
+  SMDS_ElemIteratorPtr it = theTria1->nodesIterator();
+  int i=0;
+  while(i<6) {
+    N1[i] = static_cast<const SMDS_MeshNode*>( it->next() );
+    i++;
+  }
+  if(it->more()) return false;
+  it = theTria2->nodesIterator();
+  i=0;
+  while(i<6) {
+    N2[i] = static_cast<const SMDS_MeshNode*>( it->next() );
+    i++;
+  }
+  if(it->more()) return false;
+
+  int sames[3] = {-1,-1,-1};
+  int nbsames = 0;
+  int j;
+  for(i=0; i<3; i++) {
+    for(j=0; j<3; j++) {
+      if(N1[i]==N2[j]) {
+        sames[i] = j;
+        nbsames++;
+        break;
+      }
+    }
+  }
+  if(nbsames!=2) return false;
+  if(sames[0]>-1) {
+    ShiftNodesQuadTria(N1);
+    if(sames[1]>-1) {
+      ShiftNodesQuadTria(N1);
+    }
+  }
+  i = sames[0] + sames[1] + sames[2];
+  for(; i<2; i++) {
+    ShiftNodesQuadTria(N2);
+  }
+  // now we receive following N1 and N2 (using numeration as above image)
+  // tria1 : (1 2 4 5 9 7)  and  tria2 : (3 4 2 8 9 6) 
+  // i.e. first nodes from both arrays determ new diagonal
+  return true;
+}
+
 //=======================================================================
 //function : InverseDiag
 //purpose  : Replace two neighbour triangles with ones built on the same 4 nodes
@@ -218,73 +317,121 @@ int SMESH_MeshEditor::FindShape (const SMDS_MeshElement * theElem)
 bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshElement * theTria1,
                                     const SMDS_MeshElement * theTria2 )
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   if (!theTria1 || !theTria2)
     return false;
+
   const SMDS_FaceOfNodes* F1 = dynamic_cast<const SMDS_FaceOfNodes*>( theTria1 );
-  if (!F1) return false;
   const SMDS_FaceOfNodes* F2 = dynamic_cast<const SMDS_FaceOfNodes*>( theTria2 );
-  if (!F2) return false;
+  if (F1 && F2) {
 
-  //  1 +--+ A  theTria1: ( 1 A B ) A->2 ( 1 2 B ) 1 +--+ A
-  //    | /|    theTria2: ( B A 2 ) B->1 ( 1 A 2 )   |\ |
-  //    |/ |                                         | \|
-  //  B +--+ 2                                     B +--+ 2
+    //  1 +--+ A  theTria1: ( 1 A B ) A->2 ( 1 2 B ) 1 +--+ A
+    //    | /|    theTria2: ( B A 2 ) B->1 ( 1 A 2 )   |\ |
+    //    |/ |                                         | \|
+    //  B +--+ 2                                     B +--+ 2
 
-  // put nodes in array and find out indices of the same ones
-  const SMDS_MeshNode* aNodes [6];
-  int sameInd [] = { 0, 0, 0, 0, 0, 0 };
-  int i = 0;
-  SMDS_ElemIteratorPtr it = theTria1->nodesIterator();
-  while ( it->more() )
-  {
-    aNodes[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
-
-    if ( i > 2 ) // theTria2
-      // find same node of theTria1
-      for ( int j = 0; j < 3; j++ )
-        if ( aNodes[ i ] == aNodes[ j ]) {
-          sameInd[ j ] = i;
-          sameInd[ i ] = j;
-          break;
-        }
-    // next
-    i++;
-    if ( i == 3 ) {
-      if ( it->more() )
-        return false; // theTria1 is not a triangle
-      it = theTria2->nodesIterator();
+    // put nodes in array and find out indices of the same ones
+    const SMDS_MeshNode* aNodes [6];
+    int sameInd [] = { 0, 0, 0, 0, 0, 0 };
+    int i = 0;
+    SMDS_ElemIteratorPtr it = theTria1->nodesIterator();
+    while ( it->more() ) {
+      aNodes[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
+      
+      if ( i > 2 ) // theTria2
+        // find same node of theTria1
+        for ( int j = 0; j < 3; j++ )
+          if ( aNodes[ i ] == aNodes[ j ]) {
+            sameInd[ j ] = i;
+            sameInd[ i ] = j;
+            break;
+          }
+      // next
+      i++;
+      if ( i == 3 ) {
+        if ( it->more() )
+          return false; // theTria1 is not a triangle
+        it = theTria2->nodesIterator();
+      }
+      if ( i == 6 && it->more() )
+        return false; // theTria2 is not a triangle
     }
-    if ( i == 6 && it->more() )
-      return false; // theTria2 is not a triangle
-  }
-
-  // find indices of 1,2 and of A,B in theTria1
-  int iA = 0, iB = 0, i1 = 0, i2 = 0;
-  for ( i = 0; i < 6; i++ )
-  {
-    if ( sameInd [ i ] == 0 )
-      if ( i < 3 ) i1 = i;
-      else         i2 = i;
-    else if (i < 3)
-      if ( iA ) iB = i;
-      else      iA = i;
-  }
-  // nodes 1 and 2 should not be the same
-  if ( aNodes[ i1 ] == aNodes[ i2 ] )
-    return false;
-
-
-  // theTria1: A->2
-  aNodes[ iA ] = aNodes[ i2 ];
-  // theTria2: B->1
-  aNodes[ sameInd[ iB ]] = aNodes[ i1 ];
+    
+    // find indices of 1,2 and of A,B in theTria1
+    int iA = 0, iB = 0, i1 = 0, i2 = 0;
+    for ( i = 0; i < 6; i++ ) {
+      if ( sameInd [ i ] == 0 )
+        if ( i < 3 ) i1 = i;
+        else         i2 = i;
+      else if (i < 3)
+        if ( iA ) iB = i;
+        else      iA = i;
+    }
+    // nodes 1 and 2 should not be the same
+    if ( aNodes[ i1 ] == aNodes[ i2 ] )
+      return false;
 
-  //MESSAGE( theTria1 << theTria2 );
+    // theTria1: A->2
+    aNodes[ iA ] = aNodes[ i2 ];
+    // theTria2: B->1
+    aNodes[ sameInd[ iB ]] = aNodes[ i1 ];
 
-  GetMeshDS()->ChangeElementNodes( theTria1, aNodes, 3 );
-  GetMeshDS()->ChangeElementNodes( theTria2, &aNodes[ 3 ], 3 );
+    //MESSAGE( theTria1 << theTria2 );
+    
+    GetMeshDS()->ChangeElementNodes( theTria1, aNodes, 3 );
+    GetMeshDS()->ChangeElementNodes( theTria2, &aNodes[ 3 ], 3 );
+    
+    //MESSAGE( theTria1 << theTria2 );
 
-  //MESSAGE( theTria1 << theTria2 );
+    return true;
+  
+  } // end if(F1 && F2)
+
+  // check case of quadratic faces
+  const SMDS_QuadraticFaceOfNodes* QF1 =
+    dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (theTria1);
+  if(!QF1) return false;
+  const SMDS_QuadraticFaceOfNodes* QF2 =
+    dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (theTria2);
+  if(!QF2) return false;
+
+  //       5
+  //  1 +--+--+ 2  theTria1: (1 2 4 5 9 7) or (2 4 1 9 7 5) or (4 1 2 7 5 9)
+  //    |    /|    theTria2: (2 3 4 6 8 9) or (3 4 2 8 9 6) or (4 2 3 9 6 8)
+  //    |   / |  
+  //  7 +  +  + 6
+  //    | /9  |
+  //    |/    |
+  //  4 +--+--+ 3  
+  //       8
+  
+  const SMDS_MeshNode* N1 [6];
+  const SMDS_MeshNode* N2 [6];
+  if(!GetNodesFromTwoTria(theTria1,theTria2,N1,N2))
+    return false;
+  // now we receive following N1 and N2 (using numeration as above image)
+  // tria1 : (1 2 4 5 9 7)  and  tria2 : (3 4 2 8 9 6) 
+  // i.e. first nodes from both arrays determ new diagonal
+
+  const SMDS_MeshNode* N1new [6];
+  const SMDS_MeshNode* N2new [6];
+  N1new[0] = N1[0];
+  N1new[1] = N2[0];
+  N1new[2] = N2[1];
+  N1new[3] = N1[4];
+  N1new[4] = N2[3];
+  N1new[5] = N1[5];
+  N2new[0] = N1[0];
+  N2new[1] = N1[1];
+  N2new[2] = N2[0];
+  N2new[3] = N1[3];
+  N2new[4] = N2[5];
+  N2new[5] = N1[4];
+  // replaces nodes in faces
+  GetMeshDS()->ChangeElementNodes( theTria1, N1new, 6 );
+  GetMeshDS()->ChangeElementNodes( theTria2, N2new, 6 );
 
   return true;
 }
@@ -316,9 +463,17 @@ 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 {
+      }
+      else {
         theTria1 = elem;
       }
   }
@@ -335,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;
@@ -342,55 +500,65 @@ bool SMESH_MeshEditor::InverseDiag (const SMDS_MeshNode * theNode1,
     return false;
 
   const SMDS_FaceOfNodes* F1 = dynamic_cast<const SMDS_FaceOfNodes*>( tr1 );
-  if (!F1) return false;
+  //if (!F1) return false;
   const SMDS_FaceOfNodes* F2 = dynamic_cast<const SMDS_FaceOfNodes*>( tr2 );
-  if (!F2) return false;
-
-  //  1 +--+ A  tr1: ( 1 A B ) A->2 ( 1 2 B ) 1 +--+ A
-  //    | /|    tr2: ( B A 2 ) B->1 ( 1 A 2 )   |\ |
-  //    |/ |                                    | \|
-  //  B +--+ 2                                B +--+ 2
-
-  // put nodes in array
-  // and find indices of 1,2 and of A in tr1 and of B in tr2
-  int i, iA1 = 0, i1 = 0;
-  const SMDS_MeshNode* aNodes1 [3];
-  SMDS_ElemIteratorPtr it;
-  for (i = 0, it = tr1->nodesIterator(); it->more(); i++ ) {
-    aNodes1[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
-    if ( aNodes1[ i ] == theNode1 )
-      iA1 = i; // node A in tr1
-    else if ( aNodes1[ i ] != theNode2 )
-      i1 = i;  // node 1
-  }
-  int iB2 = 0, i2 = 0;
-  const SMDS_MeshNode* aNodes2 [3];
-  for (i = 0, it = tr2->nodesIterator(); it->more(); i++ ) {
-    aNodes2[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
-    if ( aNodes2[ i ] == theNode2 )
-      iB2 = i; // node B in tr2
-    else if ( aNodes2[ i ] != theNode1 )
-      i2 = i;  // node 2
-  }
-
-  // nodes 1 and 2 should not be the same
-  if ( aNodes1[ i1 ] == aNodes2[ i2 ] )
-    return false;
-
-  // tr1: A->2
-  aNodes1[ iA1 ] = aNodes2[ i2 ];
-  // tr2: B->1
-  aNodes2[ iB2 ] = aNodes1[ i1 ];
+  //if (!F2) return false;
+  if (F1 && F2) {
+
+    //  1 +--+ A  tr1: ( 1 A B ) A->2 ( 1 2 B ) 1 +--+ A
+    //    | /|    tr2: ( B A 2 ) B->1 ( 1 A 2 )   |\ |
+    //    |/ |                                    | \|
+    //  B +--+ 2                                B +--+ 2
+
+    // put nodes in array
+    // and find indices of 1,2 and of A in tr1 and of B in tr2
+    int i, iA1 = 0, i1 = 0;
+    const SMDS_MeshNode* aNodes1 [3];
+    SMDS_ElemIteratorPtr it;
+    for (i = 0, it = tr1->nodesIterator(); it->more(); i++ ) {
+      aNodes1[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
+      if ( aNodes1[ i ] == theNode1 )
+        iA1 = i; // node A in tr1
+      else if ( aNodes1[ i ] != theNode2 )
+        i1 = i;  // node 1
+    }
+    int iB2 = 0, i2 = 0;
+    const SMDS_MeshNode* aNodes2 [3];
+    for (i = 0, it = tr2->nodesIterator(); it->more(); i++ ) {
+      aNodes2[ i ] = static_cast<const SMDS_MeshNode*>( it->next() );
+      if ( aNodes2[ i ] == theNode2 )
+        iB2 = i; // node B in tr2
+      else if ( aNodes2[ i ] != theNode1 )
+        i2 = i;  // node 2
+    }
+    
+    // nodes 1 and 2 should not be the same
+    if ( aNodes1[ i1 ] == aNodes2[ i2 ] )
+      return false;
 
-  //MESSAGE( tr1 << tr2 );
+    // tr1: A->2
+    aNodes1[ iA1 ] = aNodes2[ i2 ];
+    // tr2: B->1
+    aNodes2[ iB2 ] = aNodes1[ i1 ];
 
-  GetMeshDS()->ChangeElementNodes( tr1, aNodes1, 3 );
-  GetMeshDS()->ChangeElementNodes( tr2, aNodes2, 3 );
+    //MESSAGE( tr1 << tr2 );
 
-  //MESSAGE( tr1 << tr2 );
+    GetMeshDS()->ChangeElementNodes( tr1, aNodes1, 3 );
+    GetMeshDS()->ChangeElementNodes( tr2, aNodes2, 3 );
 
-  return true;
+    //MESSAGE( tr1 << tr2 );
+    
+    return true;
+  }
 
+  // check case of quadratic faces
+  const SMDS_QuadraticFaceOfNodes* QF1 =
+    dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (tr1);
+  if(!QF1) return false;
+  const SMDS_QuadraticFaceOfNodes* QF2 =
+    dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (tr2);
+  if(!QF2) return false;
+  return InverseDiag(tr1,tr2);
 }
 
 //=======================================================================
@@ -406,12 +574,16 @@ bool getQuadrangleNodes(const SMDS_MeshNode *    theQuadNodes [],
                         const SMDS_MeshElement * tr1,
                         const SMDS_MeshElement * tr2 )
 {
+  if( tr1->NbNodes() != tr2->NbNodes() )
+    return false;
   // find the 4-th node to insert into tr1
   const SMDS_MeshNode* n4 = 0;
   SMDS_ElemIteratorPtr it = tr2->nodesIterator();
-  while ( !n4 && it->more() )
-  {
+  int i=0;
+  //while ( !n4 && it->more() ) {
+  while ( !n4 && i<3 ) {
     const SMDS_MeshNode * n = static_cast<const SMDS_MeshNode*>( it->next() );
+    i++;
     bool isDiag = ( n == theNode1 || n == theNode2 );
     if ( !isDiag )
       n4 = n;
@@ -419,19 +591,19 @@ bool getQuadrangleNodes(const SMDS_MeshNode *    theQuadNodes [],
   // Make an array of nodes to be in a quadrangle
   int iNode = 0, iFirstDiag = -1;
   it = tr1->nodesIterator();
-  while ( it->more() )
-  {
+  i=0;
+  //while ( it->more() ) {
+  while ( i<3 ) {
     const SMDS_MeshNode * n = static_cast<const SMDS_MeshNode*>( it->next() );
+    i++;
     bool isDiag = ( n == theNode1 || n == theNode2 );
-    if ( isDiag )
-    {
+    if ( isDiag ) {
       if ( iFirstDiag < 0 )
         iFirstDiag = iNode;
       else if ( iNode - iFirstDiag == 1 )
         theQuadNodes[ iNode++ ] = n4; // insert the 4-th node between diagonal nodes
     }
-    else if ( n == n4 )
-    {
+    else if ( n == n4 ) {
       return false; // tr1 and tr2 should not have all the same nodes
     }
     theQuadNodes[ iNode++ ] = n;
@@ -452,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;
@@ -459,20 +634,68 @@ bool SMESH_MeshEditor::DeleteDiag (const SMDS_MeshNode * theNode1,
     return false;
 
   const SMDS_FaceOfNodes* F1 = dynamic_cast<const SMDS_FaceOfNodes*>( tr1 );
-  if (!F1) return false;
+  //if (!F1) return false;
   const SMDS_FaceOfNodes* F2 = dynamic_cast<const SMDS_FaceOfNodes*>( tr2 );
-  if (!F2) return false;
+  //if (!F2) return false;
+  if (F1 && F2) {
 
-  const SMDS_MeshNode* aNodes [ 4 ];
-  if ( ! getQuadrangleNodes( aNodes, theNode1, theNode2, tr1, tr2 ))
-    return false;
+    const SMDS_MeshNode* aNodes [ 4 ];
+    if ( ! getQuadrangleNodes( aNodes, theNode1, theNode2, tr1, tr2 ))
+      return false;
+
+    //MESSAGE( endl << tr1 << tr2 );
+
+    GetMeshDS()->ChangeElementNodes( tr1, aNodes, 4 );
+    myLastCreatedElems.Append(tr1);
+    GetMeshDS()->RemoveElement( tr2 );
+
+    //MESSAGE( endl << tr1 );
 
-  //MESSAGE( endl << tr1 << tr2 );
+    return true;
+  }
 
-  GetMeshDS()->ChangeElementNodes( tr1, aNodes, 4 );
+  // check case of quadratic faces
+  const SMDS_QuadraticFaceOfNodes* QF1 =
+    dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (tr1);
+  if(!QF1) return false;
+  const SMDS_QuadraticFaceOfNodes* QF2 =
+    dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (tr2);
+  if(!QF2) return false;
+
+  //       5
+  //  1 +--+--+ 2  tr1: (1 2 4 5 9 7) or (2 4 1 9 7 5) or (4 1 2 7 5 9)
+  //    |    /|    tr2: (2 3 4 6 8 9) or (3 4 2 8 9 6) or (4 2 3 9 6 8)
+  //    |   / |  
+  //  7 +  +  + 6
+  //    | /9  |
+  //    |/    |
+  //  4 +--+--+ 3  
+  //       8
+  
+  const SMDS_MeshNode* N1 [6];
+  const SMDS_MeshNode* N2 [6];
+  if(!GetNodesFromTwoTria(tr1,tr2,N1,N2))
+    return false;
+  // now we receive following N1 and N2 (using numeration as above image)
+  // tria1 : (1 2 4 5 9 7)  and  tria2 : (3 4 2 8 9 6) 
+  // i.e. first nodes from both arrays determ new diagonal
+
+  const SMDS_MeshNode* aNodes[8];
+  aNodes[0] = N1[0];
+  aNodes[1] = N1[1];
+  aNodes[2] = N2[0];
+  aNodes[3] = N2[1];
+  aNodes[4] = N1[3];
+  aNodes[5] = N2[5];
+  aNodes[6] = N2[3];
+  aNodes[7] = N1[5];
+
+  GetMeshDS()->ChangeElementNodes( tr1, aNodes, 8 );
+  myLastCreatedElems.Append(tr1);
   GetMeshDS()->RemoveElement( tr2 );
 
-  //MESSAGE( endl << tr1 );
+  // remove middle node (9)
+  GetMeshDS()->RemoveNode( N1[4] );
 
   return true;
 }
@@ -484,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();
@@ -493,16 +719,39 @@ bool SMESH_MeshEditor::Reorient (const SMDS_MeshElement * theElem)
   switch ( theElem->GetType() ) {
 
   case SMDSAbs_Edge:
-  case SMDSAbs_Face:
-  {
-    int i = theElem->NbNodes();
-    vector<const SMDS_MeshNode*> aNodes( i );
-    while ( it->more() )
-      aNodes[ --i ]= static_cast<const SMDS_MeshNode*>( it->next() );
-    return GetMeshDS()->ChangeElementNodes( theElem, &aNodes[0], theElem->NbNodes() );
+  case SMDSAbs_Face: {
+    if(!theElem->IsQuadratic()) {
+      int i = theElem->NbNodes();
+      vector<const SMDS_MeshNode*> aNodes( i );
+      while ( it->more() )
+        aNodes[ --i ]= static_cast<const SMDS_MeshNode*>( it->next() );
+      return GetMeshDS()->ChangeElementNodes( theElem, &aNodes[0], theElem->NbNodes() );
+    }
+    else {
+      // quadratic elements
+      if(theElem->GetType()==SMDSAbs_Edge) {
+        vector<const SMDS_MeshNode*> aNodes(3);
+        aNodes[1]= static_cast<const SMDS_MeshNode*>( it->next() );
+        aNodes[0]= static_cast<const SMDS_MeshNode*>( it->next() );
+        aNodes[2]= static_cast<const SMDS_MeshNode*>( it->next() );
+        return GetMeshDS()->ChangeElementNodes( theElem, &aNodes[0], 3 );
+      }
+      else {
+        int nbn = theElem->NbNodes();
+        vector<const SMDS_MeshNode*> aNodes(nbn);
+        aNodes[0]= static_cast<const SMDS_MeshNode*>( it->next() );
+        int i=1;
+        for(; i<nbn/2; i++) {
+          aNodes[nbn/2-i]= static_cast<const SMDS_MeshNode*>( it->next() );
+        }
+        for(i=0; i<nbn/2; i++) {
+          aNodes[nbn-i-1]= static_cast<const SMDS_MeshNode*>( it->next() );
+        }
+        return GetMeshDS()->ChangeElementNodes( theElem, &aNodes[0], nbn );
+      }
+    }
   }
-  case SMDSAbs_Volume:
-  {
+  case SMDSAbs_Volume: {
     if (theElem->IsPoly()) {
       const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
         static_cast<const SMDS_PolyhedralVolumeOfNodes*>( theElem );
@@ -519,16 +768,17 @@ bool SMESH_MeshEditor::Reorient (const SMDS_MeshElement * theElem)
       for (int iface = 1; iface <= nbFaces; iface++) {
         int inode, nbFaceNodes = aPolyedre->NbFaceNodes(iface);
         quantities[iface - 1] = nbFaceNodes;
-
+        
         for (inode = nbFaceNodes; inode >= 1; inode--) {
           const SMDS_MeshNode* curNode = aPolyedre->GetFaceNode(iface, inode);
           poly_nodes.push_back(curNode);
         }
       }
-
+      
       return GetMeshDS()->ChangePolyhedronNodes( theElem, poly_nodes, quantities );
 
-    } else {
+    }
+    else {
       SMDS_VolumeTool vTool;
       if ( !vTool.Set( theElem ))
         return false;
@@ -563,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() )
@@ -573,15 +826,19 @@ bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> &       theElems,
 
   SMESHDS_Mesh * aMesh = GetMeshDS();
 
-  set< const SMDS_MeshElement * >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() != 4 )
+  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).second;
+    if ( !elem || elem->GetType() != SMDSAbs_Face )
+      continue;
+    if ( elem->NbNodes() != ( elem->IsQuadratic() ? 8 : 4 ))
       continue;
 
     // retrieve element nodes
-    const SMDS_MeshNode* aNodes [4];
+    const SMDS_MeshNode* aNodes [8];
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
     int i = 0;
     while ( itN->more() )
@@ -598,30 +855,107 @@ bool SMESH_MeshEditor::QuadToTri (set<const SMDS_MeshElement*> &       theElems,
     aBadRate2 = getBadRate( &tr3, theCrit ) + getBadRate( &tr4, theCrit );
 
     int aShapeId = FindShape( elem );
-    //MESSAGE( "aBadRate1 = " << aBadRate1 << "; aBadRate2 = " << aBadRate2
-      //      << " ShapeID = " << aShapeId << endl << elem );
+    const SMDS_MeshElement* newElem = 0;
 
-    if ( aBadRate1 <= aBadRate2 ) {
-      // tr1 + tr2 is better
-      aMesh->ChangeElementNodes( elem, aNodes, 3 );
-      //MESSAGE( endl << elem );
+    if( !elem->IsQuadratic() ) {
 
-      elem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
+      // split liner quadrangle
+
+      if ( aBadRate1 <= aBadRate2 ) {
+        // tr1 + tr2 is better
+        aMesh->ChangeElementNodes( elem, aNodes, 3 );
+        newElem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
+      }
+      else {
+        // tr3 + tr4 is better
+        aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
+        newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
+      }
     }
     else {
-      // tr3 + tr4 is better
-      aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
-      //MESSAGE( endl << elem );
 
-      elem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
-    }
-    //MESSAGE( endl << elem );
+      // 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 ];
+        } 
+      }
+      // find middle point for (0,1,2,3)
+      // and create a 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;
+      }
+      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 ) {
+        N[0] = aNodes[0];
+        N[1] = aNodes[1];
+        N[2] = aNodes[2];
+        N[3] = aNodes[4];
+        N[4] = aNodes[5];
+        N[5] = newN;
+        newElem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
+                                 aNodes[6], aNodes[7], newN );
+      }
+      else {
+        N[0] = aNodes[1];
+        N[1] = aNodes[2];
+        N[2] = aNodes[3];
+        N[3] = aNodes[5];
+        N[4] = aNodes[6];
+        N[5] = newN;
+        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( elem, aShapeId );
+      aMesh->SetMeshElementOnShape( newElem, aShapeId );
   }
-
   return true;
 }
 
@@ -632,33 +966,42 @@ 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;
 
-  if (!theQuad || theQuad->GetType() != SMDSAbs_Face || theQuad->NbNodes() != 4)
+  if (!theQuad || theQuad->GetType() != SMDSAbs_Face )
     return -1;
 
-  // retrieve element nodes
-  const SMDS_MeshNode* aNodes [4];
-  SMDS_ElemIteratorPtr itN = theQuad->nodesIterator();
-  int i = 0;
-  while (itN->more())
-    aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
+  if( theQuad->NbNodes()==4 ||
+      (theQuad->NbNodes()==8 && theQuad->IsQuadratic()) ) {
 
-  // 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 );
+    // retrieve element nodes
+    const SMDS_MeshNode* aNodes [4];
+    SMDS_ElemIteratorPtr itN = theQuad->nodesIterator();
+    int i = 0;
+    //while (itN->more())
+    while (i<4) {
+      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 );
 
-  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 );
 
-  if (aBadRate1 <= aBadRate2) // tr1 + tr2 is better
-    return 1; // diagonal 1-3
+    if (aBadRate1 <= aBadRate2) // tr1 + tr2 is better
+      return 1; // diagonal 1-3
 
-  return 2; // diagonal 2-4
+    return 2; // diagonal 2-4
+  }
+  return -1;
 }
 
 //=======================================================================
@@ -679,52 +1022,161 @@ 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;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->GetType() != SMDSAbs_Face || elem->NbNodes() != 4 )
+  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).second;
+    if ( !elem || elem->GetType() != SMDSAbs_Face )
       continue;
+    bool isquad = elem->NbNodes()==4 || elem->NbNodes()==8;
+    if(!isquad) continue;
 
-    // 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() );
+    if(elem->NbNodes()==4) {
+      // 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() );
 
-    int aShapeId = FindShape( elem );
-    const SMDS_MeshElement* newElem = 0;
-    if ( the13Diag )
-    {
-      aMesh->ChangeElementNodes( elem, aNodes, 3 );
-      newElem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
-    }
-    else
-    {
-      aMesh->ChangeElementNodes( elem, &aNodes[1], 3 );
-      newElem = aMesh->AddFace( aNodes[3], aNodes[0], aNodes[1] );
+      int aShapeId = FindShape( elem );
+      const SMDS_MeshElement* newElem = 0;
+      if ( the13Diag ) {
+        aMesh->ChangeElementNodes( elem, aNodes, 3 );
+        newElem = aMesh->AddFace( aNodes[2], aNodes[3], aNodes[0] );
+      }
+      else {
+        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 );
     }
 
-    // put a new triangle on the same shape and add to the same groups
+    // Quadratic quadrangle
 
-    if ( aShapeId )
-      aMesh->SetMeshElementOnShape( newElem, aShapeId );
+    if( elem->NbNodes()==8 && elem->IsQuadratic() ) {
 
-    AddToSameGroups( newElem, elem, aMesh );
+      // 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 a 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;
+      }
+      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);
+
+      // create a new element
+      const SMDS_MeshElement* newElem = 0;
+      const SMDS_MeshNode* N[6];
+      if ( the13Diag ) {
+        N[0] = aNodes[0];
+        N[1] = aNodes[1];
+        N[2] = aNodes[2];
+        N[3] = aNodes[4];
+        N[4] = aNodes[5];
+        N[5] = newN;
+        newElem = aMesh->AddFace(aNodes[2], aNodes[3], aNodes[0],
+                                 aNodes[6], aNodes[7], newN );
+      }
+      else {
+        N[0] = aNodes[1];
+        N[1] = aNodes[2];
+        N[2] = aNodes[3];
+        N[3] = aNodes[5];
+        N[4] = aNodes[6];
+        N[5] = 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 );
+      AddToSameGroups( newElem, elem, aMesh );
+    }
   }
 
   return true;
@@ -747,18 +1199,24 @@ double getAngle(const SMDS_MeshElement * tr1,
   if ( !SMESH::Controls::NumericalFunctor::GetPoints( tr1, P1 ) ||
        !SMESH::Controls::NumericalFunctor::GetPoints( tr2, P2 ))
     return angle;
-  gp_Vec N1 = gp_Vec( P1(2) - P1(1) ) ^ gp_Vec( P1(3) - P1(1) );
+  gp_Vec N1,N2;
+  if(!tr1->IsQuadratic())
+    N1 = gp_Vec( P1(2) - P1(1) ) ^ gp_Vec( P1(3) - P1(1) );
+  else
+    N1 = gp_Vec( P1(3) - P1(1) ) ^ gp_Vec( P1(5) - P1(1) );
   if ( N1.SquareMagnitude() <= gp::Resolution() )
     return angle;
-  gp_Vec N2 = gp_Vec( P2(2) - P2(1) ) ^ gp_Vec( P2(3) - P2(1) );
+  if(!tr2->IsQuadratic())
+    N2 = gp_Vec( P2(2) - P2(1) ) ^ gp_Vec( P2(3) - P2(1) );
+  else
+    N2 = gp_Vec( P2(3) - P2(1) ) ^ gp_Vec( P2(5) - P2(1) );
   if ( N2.SquareMagnitude() <= gp::Resolution() )
     return angle;
 
   // find the first diagonal node n1 in the triangles:
   // take in account a diagonal link orientation
   const SMDS_MeshElement *nFirst[2], *tr[] = { tr1, tr2 };
-  for ( int t = 0; t < 2; t++ )
-  {
+  for ( int t = 0; t < 2; t++ ) {
     SMDS_ElemIteratorPtr it = tr[ t ]->nodesIterator();
     int i = 0, iDiag = -1;
     while ( it->more()) {
@@ -788,7 +1246,6 @@ double getAngle(const SMDS_MeshElement * tr1,
 // class generating a unique ID for a pair of nodes
 // and able to return nodes by that ID
 // =================================================
-
 class LinkID_Gen {
  public:
 
@@ -819,6 +1276,7 @@ class LinkID_Gen {
   long                myMaxID;
 };
 
+
 //=======================================================================
 //function : TriToQuad
 //purpose  : Fuse neighbour triangles into quadrangles.
@@ -827,75 +1285,89 @@ 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() )
     return false;
 
   SMESHDS_Mesh * aMesh = GetMeshDS();
-  LinkID_Gen aLinkID_Gen( aMesh );
-
+  //LinkID_Gen aLinkID_Gen( aMesh );
 
   // Prepare data for algo: build
   // 1. map of elements with their linkIDs
   // 2. map of linkIDs with their elements
 
-  map< long, list< const SMDS_MeshElement* > > mapLi_listEl;
-  map< long, list< const SMDS_MeshElement* > >::iterator itLE;
-  map< const SMDS_MeshElement*, set< long > >  mapEl_setLi;
-  map< const SMDS_MeshElement*, set< long > >::iterator itEL;
-
-  set<const SMDS_MeshElement*>::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
-    if ( !elem || elem->NbNodes() != 3 )
-      continue;
+  //map< long, list< const SMDS_MeshElement* > > mapLi_listEl;
+  //map< long, list< const SMDS_MeshElement* > >::iterator itLE;
+  //map< const SMDS_MeshElement*, set< long > >  mapEl_setLi;
+  //map< const SMDS_MeshElement*, set< long > >::iterator itEL;
+
+  map< NLink, list< const SMDS_MeshElement* > > mapLi_listEl;
+  map< NLink, list< const SMDS_MeshElement* > >::iterator itLE;
+  map< const SMDS_MeshElement*, set< NLink > >  mapEl_setLi;
+  map< const SMDS_MeshElement*, set< NLink > >::iterator itEL;
+
+  map<int,const SMDS_MeshElement*>::iterator itElem;
+  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
+    const SMDS_MeshElement* elem = (*itElem).second;
+    //if ( !elem || elem->NbNodes() != 3 )
+    //  continue;
+    if(!elem || elem->GetType() != SMDSAbs_Face ) continue;
+    bool IsTria = elem->NbNodes()==3 || (elem->NbNodes()==6 && elem->IsQuadratic());
+    if(!IsTria) continue;
 
     // retrieve element nodes
     const SMDS_MeshNode* aNodes [4];
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
     int i = 0;
-    while ( itN->more() )
+    //while ( itN->more() )
+    while ( i<3 )
       aNodes[ i++ ] = static_cast<const SMDS_MeshNode*>( itN->next() );
     ASSERT( i == 3 );
     aNodes[ 3 ] = aNodes[ 0 ];
 
     // fill maps
-    for ( i = 0; i < 3; i++ )
-    {
-      long linkID = aLinkID_Gen.GetLinkID( aNodes[ i ], aNodes[ i+1 ] );
+    for ( i = 0; i < 3; i++ ) {
+      //long linkID = aLinkID_Gen.GetLinkID( aNodes[ i ], aNodes[ i+1 ] );
+      NLink link(( aNodes[i] < aNodes[i+1] ? aNodes[i] : aNodes[i+1] ),
+                 ( aNodes[i] < aNodes[i+1] ? aNodes[i+1] : aNodes[i] ));
       // check if elements sharing a link can be fused
-      itLE = mapLi_listEl.find( linkID );
-      if ( itLE != mapLi_listEl.end() )
-      {
+      //itLE = mapLi_listEl.find( linkID );
+      itLE = mapLi_listEl.find( link );
+      if ( itLE != mapLi_listEl.end() ) {
         if ((*itLE).second.size() > 1 ) // consider only 2 elems adjacent by a link
           continue;
         const SMDS_MeshElement* elem2 = (*itLE).second.front();
-//         if ( FindShape( elem ) != FindShape( elem2 ))
-//           continue; // do not fuse triangles laying on different shapes
+        //if ( FindShape( elem ) != FindShape( elem2 ))
+        //  continue; // do not fuse triangles laying on different shapes
         if ( getAngle( elem, elem2, aNodes[i], aNodes[i+1] ) > theMaxAngle )
           continue; // avoid making badly shaped quads
         (*itLE).second.push_back( elem );
       }
-      else
-        mapLi_listEl[ linkID ].push_back( elem );
-      mapEl_setLi [ elem ].insert( linkID );
+      else {
+        //mapLi_listEl[ linkID ].push_back( elem );
+        mapLi_listEl[ link ].push_back( elem );
+      }
+      //mapEl_setLi [ elem ].insert( linkID );
+      mapEl_setLi [ elem ].insert( link );
     }
   }
   // Clean the maps from the links shared by a sole element, ie
   // links to which only one element is bound in mapLi_listEl
 
-  for ( itLE = mapLi_listEl.begin(); itLE != mapLi_listEl.end(); itLE++ )
-  {
+  for ( itLE = mapLi_listEl.begin(); itLE != mapLi_listEl.end(); itLE++ ) {
     int nbElems = (*itLE).second.size();
     if ( nbElems < 2  ) {
       const SMDS_MeshElement* elem = (*itLE).second.front();
-      long link = (*itLE).first;
+      //long link = (*itLE).first;
+      NLink link = (*itLE).first;
       mapEl_setLi[ elem ].erase( link );
       if ( mapEl_setLi[ elem ].empty() )
         mapEl_setLi.erase( elem );
@@ -904,18 +1376,15 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
 
   // Algo: fuse triangles into quadrangles
 
-  while ( ! mapEl_setLi.empty() )
-  {
+  while ( ! mapEl_setLi.empty() ) {
     // Look for the start element:
     // the element having the least nb of shared links
 
     const SMDS_MeshElement* startElem = 0;
     int minNbLinks = 4;
-    for ( itEL = mapEl_setLi.begin(); itEL != mapEl_setLi.end(); itEL++ )
-    {
+    for ( itEL = mapEl_setLi.begin(); itEL != mapEl_setLi.end(); itEL++ ) {
       int nbLinks = (*itEL).second.size();
-      if ( nbLinks < minNbLinks )
-      {
+      if ( nbLinks < minNbLinks ) {
         startElem = (*itEL).first;
         minNbLinks = nbLinks;
         if ( minNbLinks == 1 )
@@ -925,17 +1394,16 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
 
     // search elements to fuse starting from startElem or links of elements
     // fused earlyer - startLinks
-    list< long > startLinks;
-    while ( startElem || !startLinks.empty() )
-    {
-      while ( !startElem && !startLinks.empty() )
-      {
+    //list< long > startLinks;
+    list< NLink > startLinks;
+    while ( startElem || !startLinks.empty() ) {
+      while ( !startElem && !startLinks.empty() ) {
         // Get an element to start, by a link
-        long linkId = startLinks.front();
+        //long linkId = startLinks.front();
+        NLink linkId = startLinks.front();
         startLinks.pop_front();
         itLE = mapLi_listEl.find( linkId );
-        if ( itLE != mapLi_listEl.end() )
-        {
+        if ( itLE != mapLi_listEl.end() ) {
           list< const SMDS_MeshElement* > & listElem = (*itLE).second;
           list< const SMDS_MeshElement* >::iterator itE = listElem.begin();
           for ( ; itE != listElem.end() ; itE++ )
@@ -945,69 +1413,83 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
         }
       }
 
-      if ( startElem )
-      {
+      if ( startElem ) {
         // Get candidates to be fused
-
         const SMDS_MeshElement *tr1 = startElem, *tr2 = 0, *tr3 = 0;
-        long link12, link13;
+        //long link12, link13;
+        NLink link12, link13;
         startElem = 0;
         ASSERT( mapEl_setLi.find( tr1 ) != mapEl_setLi.end() );
-        set< long >& setLi = mapEl_setLi[ tr1 ];
+        //set< long >& setLi = mapEl_setLi[ tr1 ];
+        set< NLink >& setLi = mapEl_setLi[ tr1 ];
         ASSERT( !setLi.empty() );
-        set< long >::iterator itLi;
-        for ( itLi = setLi.begin(); itLi != setLi.end(); itLi++ )
-        {
-          long linkID = (*itLi);
+        //set< long >::iterator itLi;
+        set< NLink >::iterator itLi;
+        for ( itLi = setLi.begin(); itLi != setLi.end(); itLi++ ) {
+          //long linkID = (*itLi);
+          NLink linkID = (*itLi);
           itLE = mapLi_listEl.find( linkID );
           if ( itLE == mapLi_listEl.end() )
             continue;
+
           const SMDS_MeshElement* elem = (*itLE).second.front();
           if ( elem == tr1 )
             elem = (*itLE).second.back();
           mapLi_listEl.erase( itLE );
           if ( mapEl_setLi.find( elem ) == mapEl_setLi.end())
             continue;
-          if ( tr2 )
-          {
+          if ( tr2 ) {
             tr3 = elem;
             link13 = linkID;
           }
-          else
-          {
+          else {
             tr2 = elem;
             link12 = linkID;
           }
 
           // add other links of elem to list of links to re-start from
-          set< long >& links = mapEl_setLi[ elem ];
-          set< long >::iterator it;
-          for ( it = links.begin(); it != links.end(); it++ )
-          {
-            long linkID2 = (*it);
+          //set< long >& links = mapEl_setLi[ elem ];
+          //set< long >::iterator it;
+          set< NLink >& links = mapEl_setLi[ elem ];
+          set< NLink >::iterator it;
+          for ( it = links.begin(); it != links.end(); it++ ) {
+            //long linkID2 = (*it);
+            NLink linkID2 = (*it);
             if ( linkID2 != linkID )
               startLinks.push_back( linkID2 );
           }
         }
 
         // Get nodes of possible quadrangles
-
         const SMDS_MeshNode *n12 [4], *n13 [4];
         bool Ok12 = false, Ok13 = false;
+        //const SMDS_MeshNode *linkNode1, *linkNode2;
         const SMDS_MeshNode *linkNode1, *linkNode2;
-        if ( tr2 &&
-             aLinkID_Gen.GetNodes( link12, linkNode1, linkNode2 ) &&
-             getQuadrangleNodes( n12, linkNode1, linkNode2, tr1, tr2 ))
-          Ok12 = true;
-        if ( tr3 &&
-             aLinkID_Gen.GetNodes( link13, linkNode1, linkNode2 ) &&
-             getQuadrangleNodes( n13, linkNode1, linkNode2, tr1, tr3 ))
-          Ok13 = true;
+        if(tr2) {
+          //const SMDS_MeshNode *linkNode1 = link12.first;
+          //const SMDS_MeshNode *linkNode2 = link12.second;
+          linkNode1 = link12.first;
+          linkNode2 = link12.second;
+          //if ( tr2 &&
+          //     aLinkID_Gen.GetNodes( link12, linkNode1, linkNode2 ) &&
+          //     getQuadrangleNodes( n12, linkNode1, linkNode2, tr1, tr2 ))
+          //  Ok12 = true;
+          if ( tr2 && getQuadrangleNodes( n12, linkNode1, linkNode2, tr1, tr2 ))
+            Ok12 = true;
+        }
+        if(tr3) {
+          linkNode1 = link13.first;
+          linkNode2 = link13.second;
+          //if ( tr3 &&
+          //     aLinkID_Gen.GetNodes( link13, linkNode1, linkNode2 ) &&
+          //     getQuadrangleNodes( n13, linkNode1, linkNode2, tr1, tr3 ))
+          //  Ok13 = true;
+          if ( tr3 && getQuadrangleNodes( n13, linkNode1, linkNode2, tr1, tr3 ))
+            Ok13 = true;
+        }
 
         // Choose a pair to fuse
-
-        if ( Ok12 && Ok13 )
-        {
+        if ( Ok12 && Ok13 ) {
           SMDS_FaceOfNodes quad12 ( n12[ 0 ], n12[ 1 ], n12[ 2 ], n12[ 3 ] );
           SMDS_FaceOfNodes quad13 ( n13[ 0 ], n13[ 1 ], n13[ 2 ], n13[ 3 ] );
           double aBadRate12 = getBadRate( &quad12, theCrit );
@@ -1018,24 +1500,98 @@ bool SMESH_MeshEditor::TriToQuad (set<const SMDS_MeshElement*> &       theElems,
             Ok13 = false;
         }
 
-
         // Make quadrangles
         // and remove fused elems and removed links from the maps
-
         mapEl_setLi.erase( tr1 );
-        if ( Ok12 )
-        {
+        if ( Ok12 ) {
           mapEl_setLi.erase( tr2 );
           mapLi_listEl.erase( link12 );
-          aMesh->ChangeElementNodes( tr1, n12, 4 );
-          aMesh->RemoveElement( tr2 );
+          if(tr1->NbNodes()==3) {
+            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];
+            const SMDS_MeshNode* N2 [6];
+            GetNodesFromTwoTria(tr1,tr2,N1,N2);
+            // now we receive following N1 and N2 (using numeration as above image)
+            // tria1 : (1 2 4 5 9 7)  and  tria2 : (3 4 2 8 9 6) 
+            // i.e. first nodes from both arrays determ new diagonal
+            const SMDS_MeshNode* aNodes[8];
+            aNodes[0] = N1[0];
+            aNodes[1] = N1[1];
+            aNodes[2] = N2[0];
+            aNodes[3] = N2[1];
+            aNodes[4] = N1[3];
+            aNodes[5] = N2[5];
+            aNodes[6] = N2[3];
+            aNodes[7] = N1[5];
+            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] );
+          }
         }
-        else if ( Ok13 )
-        {
+        else if ( Ok13 ) {
           mapEl_setLi.erase( tr3 );
           mapLi_listEl.erase( link13 );
-          aMesh->ChangeElementNodes( tr1, n13, 4 );
-          aMesh->RemoveElement( tr3 );
+          if(tr1->NbNodes()==3) {
+            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];
+            const SMDS_MeshNode* N2 [6];
+            GetNodesFromTwoTria(tr1,tr3,N1,N2);
+            // now we receive following N1 and N2 (using numeration as above image)
+            // tria1 : (1 2 4 5 9 7)  and  tria2 : (3 4 2 8 9 6) 
+            // i.e. first nodes from both arrays determ new diagonal
+            const SMDS_MeshNode* aNodes[8];
+            aNodes[0] = N1[0];
+            aNodes[1] = N1[1];
+            aNodes[2] = N2[0];
+            aNodes[3] = N2[1];
+            aNodes[4] = N1[3];
+            aNodes[5] = N2[5];
+            aNodes[6] = N2[3];
+            aNodes[7] = N1[5];
+            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] );
+          }
         }
 
         // Next element to fuse: the rejected one
@@ -1349,22 +1905,23 @@ void laplacianSmooth(const SMDS_MeshNode*                 theNode,
     if ( elem->GetType() != SMDSAbs_Face )
       continue;
 
-    // put all nodes in array
-    int nbNodes = 0, iNode = 0;
-    vector< const SMDS_MeshNode*> aNodes( elem->NbNodes() );
-    SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
-      aNodes[ nbNodes ] = static_cast<const SMDS_MeshNode*>( itN->next() );
-      if ( aNodes[ nbNodes ] == theNode )
-        iNode = nbNodes; // index of theNode within aNodes
-      nbNodes++;
+    for ( int i = 0; i < elem->NbNodes(); ++i ) {
+      if ( elem->GetNode( i ) == theNode ) {
+        // add linked nodes
+        int iBefore = i - 1;
+        int iAfter = i + 1;
+        if ( elem->IsQuadratic() ) {
+          int nbCorners = elem->NbNodes() / 2;
+          if ( iAfter >= nbCorners )
+            iAfter = 0; // elem->GetNode() wraps index
+          if ( iBefore == -1 )
+            iBefore = nbCorners - 1;
+        }
+        nodeSet.insert( elem->GetNode( iAfter ));
+        nodeSet.insert( elem->GetNode( iBefore ));
+        break;
+      }
     }
-    // add linked nodes
-    int iAfter = ( iNode + 1 == nbNodes ) ? 0 : iNode + 1;
-    nodeSet.insert( aNodes[ iAfter ]);
-    int iBefore = ( iNode == 0 ) ? nbNodes - 1 : iNode - 1;
-    nodeSet.insert( aNodes[ iBefore ]);
   }
 
   // compute new coodrs
@@ -1435,9 +1992,13 @@ void centroidalSmooth(const SMDS_MeshNode*                 theNode,
     gp_XYZ elemCenter(0.,0.,0.);
     SMESH::Controls::TSequenceOfXYZ aNodePoints;
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
+    int nn = elem->NbNodes();
+    if(elem->IsQuadratic()) nn = nn/2;
+    int i=0;
+    //while ( itN->more() ) {
+    while ( i<nn ) {
       const SMDS_MeshNode* aNode = static_cast<const SMDS_MeshNode*>( itN->next() );
+      i++;
       gp_XYZ aP( aNode->X(), aNode->Y(), aNode->Z() );
       aNodePoints.push_back( aP );
       if ( !theSurface.IsNull() ) { // smooth in 2D
@@ -1449,12 +2010,11 @@ void centroidalSmooth(const SMDS_MeshNode*                 theNode,
     }
     double elemArea = anAreaFunc.GetValue( aNodePoints );
     totalArea += elemArea;
-    elemCenter /= elem->NbNodes();
+    elemCenter /= nn;
     aNewXYZ += elemCenter * elemArea;
   }
   aNewXYZ /= totalArea;
   if ( !theSurface.IsNull() ) {
-    ASSERT( theUVMap.find( theNode ) != theUVMap.end() );
     theUVMap[ theNode ]->SetCoord( aNewXYZ.X(), aNewXYZ.Y() );
     aNewXYZ = theSurface->Value( aNewXYZ.X(), aNewXYZ.Y() ).XYZ();
   }
@@ -1497,18 +2057,23 @@ 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 )
     theTgtAspectRatio = 1.0;
 
+  const double disttol = 1.e-16;
+
   SMESH::Controls::AspectRatio aQualityFunc;
 
   SMESHDS_Mesh* aMesh = GetMeshDS();
@@ -1516,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() &&
@@ -1541,8 +2108,7 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
   // ===============================================
 
   set< int >::reverse_iterator fId = faceIdSet.rbegin(); // treate 0 fId at the end
-  for ( ; fId != faceIdSet.rend(); ++fId )
-  {
+  for ( ; fId != faceIdSet.rend(); ++fId ) {
     // get face surface and submesh
     Handle(Geom_Surface) surface;
     SMESHDS_SubMesh* faceSubMesh = 0;
@@ -1569,6 +2135,7 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
     // compute UV for them
     // ---------------------------------------------------------
     bool checkBoundaryNodes = false;
+    bool isQuadratic = false;
     set<const SMDS_MeshNode*> setMovableNodes;
     map< const SMDS_MeshNode*, gp_XY* > uvMap, uvMap2;
     list< gp_XY > listUV; // uvs the 2 uvMaps refer to
@@ -1583,12 +2150,11 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
     int nbElemOnFace = 0;
     itElem = theElems.begin();
      // loop on not yet smoothed elements: look for elems on a face
-    while ( itElem != theElems.end() )
-    {
+    while ( itElem != theElems.end() ) {
       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;
@@ -1598,11 +2164,17 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
       theElems.erase( itElem++ );
       nbElemOnFace++;
 
+      if ( !isQuadratic )
+        isQuadratic = elem->IsQuadratic();
+
       // get movable nodes of elem
       const SMDS_MeshNode* node;
       SMDS_TypeOfPosition posType;
       SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-      while ( itN->more() ) {
+      int nn = 0, nbn =  elem->NbNodes();
+      if(elem->IsQuadratic())
+        nbn = nbn/2;
+      while ( nn++ < nbn ) {
         node = static_cast<const SMDS_MeshNode*>( itN->next() );
         const SMDS_PositionPtr& pos = node->GetPosition();
         posType = pos.get() ? pos->GetTypeOfPosition() : SMDS_TOP_3DSPACE;
@@ -1636,7 +2208,10 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
       // get nodes to check UV
       list< const SMDS_MeshNode* > uvCheckNodes;
       itN = elem->nodesIterator();
-      while ( itN->more() ) {
+      nn = 0; nbn =  elem->NbNodes();
+      if(elem->IsQuadratic())
+        nbn = nbn/2;
+      while ( nn++ < nbn ) {
         node = static_cast<const SMDS_MeshNode*>( itN->next() );
         if ( uvMap.find( node ) == uvMap.end() )
           uvCheckNodes.push_back( node );
@@ -1657,8 +2232,7 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
       }
       // check UV on face
       list< const SMDS_MeshNode* >::iterator n = uvCheckNodes.begin();
-      for ( ; n != uvCheckNodes.end(); ++n )
-      {
+      for ( ; n != uvCheckNodes.end(); ++n ) {
         node = *n;
         gp_XY uv( 0, 0 );
         const SMDS_PositionPtr& pos = node->GetPosition();
@@ -1725,29 +2299,25 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
 
     // fix nodes on mesh boundary
 
-    if ( checkBoundaryNodes )
-    {
+    if ( checkBoundaryNodes ) {
       typedef pair<const SMDS_MeshNode*, const SMDS_MeshNode*> TLink;
       map< TLink, int > linkNbMap; // how many times a link encounters in elemsOnFace
       map< TLink, int >::iterator link_nb;
       // put all elements links to linkNbMap
       list< const SMDS_MeshElement* >::iterator elemIt = elemsOnFace.begin();
-      for ( ; elemIt != elemsOnFace.end(); ++elemIt )
-      {
-        // put elem nodes in array
-        vector< const SMDS_MeshNode* > nodes;
-        nodes.reserve( (*elemIt)->NbNodes() + 1 );
-        SMDS_ElemIteratorPtr itN = (*elemIt)->nodesIterator();
-        while ( itN->more() )
-          nodes.push_back( static_cast<const SMDS_MeshNode*>( itN->next() ));
-        nodes.push_back( nodes.front() );
+      for ( ; elemIt != elemsOnFace.end(); ++elemIt ) {
+        const SMDS_MeshElement* elem = (*elemIt);
+        int nbn =  elem->NbNodes();
+        if(elem->IsQuadratic())
+          nbn = nbn/2;
         // loop on elem links: insert them in linkNbMap
-        for ( int iN = 1; iN < nodes.size(); ++iN ) {
+        const SMDS_MeshNode* curNode, *prevNode = elem->GetNode( nbn );
+        for ( int iN = 0; iN < nbn; ++iN ) {
+          curNode = elem->GetNode( iN );
           TLink link;
-          if ( nodes[ iN-1 ]->GetID() < nodes[ iN ]->GetID() )
-            link = make_pair( nodes[ iN-1 ], nodes[ iN ] );
-          else
-            link = make_pair( nodes[ iN ], nodes[ iN-1 ] );
+          if ( curNode < prevNode ) link = make_pair( curNode , prevNode );
+          else                      link = make_pair( prevNode , curNode );
+          prevNode = curNode;
           link_nb = linkNbMap.find( link );
           if ( link_nb == linkNbMap.end() )
             linkNbMap.insert( make_pair ( link, 1 ));
@@ -1771,11 +2341,9 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
     // -----------------------------------------------------
 
     set<const SMDS_MeshNode*> nodesNearSeam; // to smooth using uvMap2
-    if ( !surface.IsNull() )
-    {
+    if ( !surface.IsNull() ) {
       TopExp_Explorer eExp( face, TopAbs_EDGE );
-      for ( ; eExp.More(); eExp.Next() )
-      {
+      for ( ; eExp.More(); eExp.Next() ) {
         TopoDS_Edge edge = TopoDS::Edge( eExp.Current() );
         if ( !BRep_Tool::IsClosed( edge, face ))
           continue;
@@ -1799,8 +2367,11 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
         // get nodes on seam and its vertices
         list< const SMDS_MeshNode* > seamNodes;
         SMDS_NodeIteratorPtr nSeamIt = sm->GetNodes();
-        while ( nSeamIt->more() )
-          seamNodes.push_back( nSeamIt->next() );
+        while ( nSeamIt->more() ) {
+          const SMDS_MeshNode* node = nSeamIt->next();
+          if ( !isQuadratic || !IsMedium( node ))
+            seamNodes.push_back( node );
+        }
         TopExp_Explorer vExp( edge, TopAbs_VERTEX );
         for ( ; vExp.More(); vExp.Next() ) {
           sm = aMesh->MeshElements( vExp.Current() );
@@ -1812,8 +2383,7 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
         }
         // loop on nodes on seam
         list< const SMDS_MeshNode* >::iterator noSeIt = seamNodes.begin();
-        for ( ; noSeIt != seamNodes.end(); ++noSeIt )
-        {
+        for ( ; noSeIt != seamNodes.end(); ++noSeIt ) {
           const SMDS_MeshNode* nSeam = *noSeIt;
           map< const SMDS_MeshNode*, gp_XY* >::iterator n_uv = uvMap.find( nSeam );
           if ( n_uv == uvMap.end() )
@@ -1829,14 +2399,15 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
 
           // collect movable nodes linked to ones on seam in nodesNearSeam
           SMDS_ElemIteratorPtr eIt = nSeam->GetInverseElementIterator();
-          while ( eIt->more() )
-          {
+          while ( eIt->more() ) {
             const SMDS_MeshElement* e = eIt->next();
             if ( e->GetType() != SMDSAbs_Face )
               continue;
             int nbUseMap1 = 0, nbUseMap2 = 0;
             SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-            while ( nIt->more() )
+            int nn = 0, nbn =  e->NbNodes();
+            if(e->IsQuadratic()) nbn = nbn/2;
+            while ( nn++ < nbn )
             {
               const SMDS_MeshNode* n =
                 static_cast<const SMDS_MeshNode*>( nIt->next() );
@@ -1858,10 +2429,10 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
             }
             // for centroidalSmooth all element nodes must
             // be on one side of a seam
-            if ( theSmoothMethod == CENTROIDAL && nbUseMap1 && nbUseMap2 )
-            {
+            if ( theSmoothMethod == CENTROIDAL && nbUseMap1 && nbUseMap2 ) {
               SMDS_ElemIteratorPtr nIt = e->nodesIterator();
-              while ( nIt->more() ) {
+              nn = 0;
+              while ( nn++ < nbn ) {
                 const SMDS_MeshNode* n =
                   static_cast<const SMDS_MeshNode*>( nIt->next() );
                 setMovableNodes.erase( n );
@@ -1884,12 +2455,10 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
     int it = -1;
     double maxRatio = -1., maxDisplacement = -1.;
     set<const SMDS_MeshNode*>::iterator nodeToMove;
-    for ( it = 0; it < theNbIterations; it++ )
-    {
+    for ( it = 0; it < theNbIterations; it++ ) {
       maxDisplacement = 0.;
       nodeToMove = setMovableNodes.begin();
-      for ( ; nodeToMove != setMovableNodes.end(); nodeToMove++ )
-      {
+      for ( ; nodeToMove != setMovableNodes.end(); nodeToMove++ ) {
         const SMDS_MeshNode* node = (*nodeToMove);
         gp_XYZ aPrevPos ( node->X(), node->Y(), node->Z() );
 
@@ -1907,7 +2476,8 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
           maxDisplacement = aDispl;
       }
       // no node movement => exit
-      if ( maxDisplacement < 1.e-16 ) {
+      //if ( maxDisplacement < 1.e-16 ) {
+      if ( maxDisplacement < disttol ) {
         MESSAGE("-- no node movement --");
         break;
       }
@@ -1915,8 +2485,7 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
       // check elements quality
       maxRatio  = 0;
       list< const SMDS_MeshElement* >::iterator elemIt = elemsOnFace.begin();
-      for ( ; elemIt != elemsOnFace.end(); ++elemIt )
-      {
+      for ( ; elemIt != elemsOnFace.end(); ++elemIt ) {
         const SMDS_MeshElement* elem = (*elemIt);
         if ( !elem || elem->GetType() != SMDSAbs_Face )
           continue;
@@ -1945,10 +2514,8 @@ void SMESH_MeshEditor::Smooth (set<const SMDS_MeshElement*> & theElems,
     // new nodes positions are computed,
     // record movement in DS and set new UV
     // ---------------------------------------
-
     nodeToMove = setMovableNodes.begin();
-    for ( ; nodeToMove != setMovableNodes.end(); nodeToMove++ )
-    {
+    for ( ; nodeToMove != setMovableNodes.end(); nodeToMove++ ) {
       SMDS_MeshNode* node = const_cast< SMDS_MeshNode* > (*nodeToMove);
       aMesh->MoveNode( node, node->X(), node->Y(), node->Z() );
       map< const SMDS_MeshNode*, gp_XY* >::iterator node_uv = uvMap.find( node );
@@ -1959,7 +2526,50 @@ 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 =
+          dynamic_cast<const SMDS_QuadraticFaceOfNodes*> (*elemIt);
+        if(QF) {
+          vector<const SMDS_MeshNode*> Ns;
+          Ns.reserve(QF->NbNodes()+1);
+          SMDS_NodeIteratorPtr anIter = QF->interlacedNodesIterator();
+          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) {
+            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 ) {
+              // we have to move i+1 node
+              aMesh->MoveNode( Ns[i+1], x, y, z );
+            }
+          }
+        }
+      }
+    }
+    
   } // loop on face ids
+
 }
 
 //=======================================================================
@@ -2000,7 +2610,9 @@ static bool isReverse(vector<const SMDS_MeshNode*> prevNodes,
 static void sweepElement(SMESHDS_Mesh*                         aMesh,
                          const SMDS_MeshElement*               elem,
                          const vector<TNodeOfNodeListMapItr> & newNodesItVec,
-                         list<const SMDS_MeshElement*>&        newElems)
+                         list<const SMDS_MeshElement*>&        newElems,
+                         const int nbSteps,
+                         SMESH_SequenceOfElemPtr& myLastCreatedElems)
 {
   // Loop on elem nodes:
   // find new nodes and detect same nodes indices
@@ -2010,32 +2622,52 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
   //const SMDS_MeshNode* prevNod[ nbNodes ], *nextNod[ nbNodes ];
   vector<const SMDS_MeshNode*> prevNod( nbNodes );
   vector<const SMDS_MeshNode*> nextNod( nbNodes );
+  vector<const SMDS_MeshNode*> midlNod( nbNodes );
 
   int iNode, nbSame = 0, iNotSameNode = 0, iSameNode = 0;
+  vector<int> sames(nbNodes);
 
-  for ( iNode = 0; iNode < nbNodes; iNode++ )
-  {
+  //bool issimple[nbNodes];
+  vector<bool> issimple(nbNodes);
+
+  for ( iNode = 0; iNode < nbNodes; iNode++ ) {
     TNodeOfNodeListMapItr nnIt = newNodesItVec[ iNode ];
     const SMDS_MeshNode*                 node         = nnIt->first;
     const list< const SMDS_MeshNode* > & listNewNodes = nnIt->second;
     if ( listNewNodes.empty() )
       return;
 
+    if(listNewNodes.size()==nbSteps) {
+      issimple[iNode] = true;
+    }
+    else {
+      issimple[iNode] = false;
+    }
+
     itNN[ iNode ] = listNewNodes.begin();
     prevNod[ iNode ] = node;
     nextNod[ iNode ] = listNewNodes.front();
+//cout<<"iNode="<<iNode<<endl;
+//cout<<" prevNod[iNode]="<< prevNod[iNode]<<" nextNod[iNode]="<< nextNod[iNode]<<endl;
     if ( prevNod[ iNode ] != nextNod [ iNode ])
       iNotSameNode = iNode;
     else {
       iSameNode = iNode;
-      nbSame++;
+      //nbSame++;
+      sames[nbSame++] = iNode;
     }
   }
+//cout<<"1 nbSame="<<nbSame<<endl;
   if ( nbSame == nbNodes || nbSame > 2) {
     MESSAGE( " Too many same nodes of element " << elem->GetID() );
     return;
   }
 
+//  if( elem->IsQuadratic() && nbSame>0 ) {
+//    MESSAGE( "Can not rotate quadratic element " << elem->GetID() );
+//    return;
+//  }
+
   int iBeforeSame = 0, iAfterSame = 0, iOpposSame = 0;
   if ( nbSame > 0 ) {
     iBeforeSame = ( iSameNode == 0 ? nbNodes - 1 : iSameNode - 1 );
@@ -2043,6 +2675,12 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
     iOpposSame  = ( iSameNode - 2 < 0  ? iSameNode + 2 : iSameNode - 2 );
   }
 
+//if(nbNodes==8)
+//cout<<" prevNod[0]="<< prevNod[0]<<" prevNod[1]="<< prevNod[1]
+//    <<" prevNod[2]="<< prevNod[2]<<" prevNod[3]="<< prevNod[4]
+//    <<" prevNod[4]="<< prevNod[4]<<" prevNod[5]="<< prevNod[5]
+//    <<" prevNod[6]="<< prevNod[6]<<" prevNod[7]="<< prevNod[7]<<endl;
+
   // check element orientation
   int i0 = 0, i2 = 2;
   if ( nbNodes > 2 && !isReverse( prevNod, nextNod, nbNodes, iNotSameNode )) {
@@ -2057,82 +2695,195 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
   }
 
   // make new elements
-  int iStep, nbSteps = newNodesItVec[ 0 ]->second.size();
-  for (iStep = 0; iStep < nbSteps; iStep++ )
-  {
+  int iStep;//, nbSteps = newNodesItVec[ 0 ]->second.size();
+  for (iStep = 0; iStep < nbSteps; iStep++ ) {
     // get next nodes
     for ( iNode = 0; iNode < nbNodes; iNode++ ) {
-      nextNod[ iNode ] = *itNN[ iNode ];
-      itNN[ iNode ]++;
+      if(issimple[iNode]) {
+        nextNod[ iNode ] = *itNN[ iNode ];
+        itNN[ iNode ]++;
+      }
+      else {
+        if( elem->GetType()==SMDSAbs_Node ) {
+          // we have to use two nodes
+          midlNod[ iNode ] = *itNN[ iNode ];
+          itNN[ iNode ]++;
+          nextNod[ iNode ] = *itNN[ iNode ];
+          itNN[ iNode ]++;
+        }
+        else if(!elem->IsQuadratic() ||
+           elem->IsQuadratic() && elem->IsMediumNode(prevNod[iNode]) ) {
+          // we have to use each second node
+          itNN[ iNode ]++;
+          nextNod[ iNode ] = *itNN[ iNode ];
+          itNN[ iNode ]++;
+        }
+        else {
+          // we have to use two nodes
+          midlNod[ iNode ] = *itNN[ iNode ];
+          itNN[ iNode ]++;
+          nextNod[ iNode ] = *itNN[ iNode ];
+          itNN[ iNode ]++;
+        }
+      }
     }
     SMDS_MeshElement* aNewElem = 0;
-    switch ( nbNodes )
-    {
-    case 0:
-      return;
-    case 1: { // NODE
-      if ( nbSame == 0 )
-        aNewElem = aMesh->AddEdge( prevNod[ 0 ], nextNod[ 0 ] );
-      break;
-    }
-    case 2: { // EDGE
-
-      if ( nbSame == 0 )
-        aNewElem = aMesh->AddFace(prevNod[ 0 ], prevNod[ 1 ],
-                                  nextNod[ 1 ], nextNod[ 0 ] );
-      else
-        aNewElem = aMesh->AddFace(prevNod[ 0 ], prevNod[ 1 ],
-                                  nextNod[ iNotSameNode ] );
-      break;
-    }
-    case 3: { // TRIANGLE
-
-      if ( nbSame == 0 )       // --- pentahedron
-        aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ],
-                                     nextNod[ i0 ], nextNod[ 1 ], nextNod[ i2 ] );
+    if(!elem->IsPoly()) {
+      switch ( nbNodes ) {
+      case 0:
+        return;
+      case 1: { // NODE
+        if ( nbSame == 0 ) {
+          if(issimple[0])
+            aNewElem = aMesh->AddEdge( prevNod[ 0 ], nextNod[ 0 ] );
+          else
+            aNewElem = aMesh->AddEdge( prevNod[ 0 ], nextNod[ 0 ], midlNod[ 0 ] );
+        }
+        break;
+      }
+      case 2: { // EDGE
+        if ( nbSame == 0 )
+          aNewElem = aMesh->AddFace(prevNod[ 0 ], prevNod[ 1 ],
+                                    nextNod[ 1 ], nextNod[ 0 ] );
+        else
+          aNewElem = aMesh->AddFace(prevNod[ 0 ], prevNod[ 1 ],
+                                    nextNod[ iNotSameNode ] );
+        break;
+      }
 
-      else if ( nbSame == 1 )  // --- pyramid
-        aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ],  prevNod[ iAfterSame ],
-                                     nextNod[ iAfterSame ], nextNod[ iBeforeSame ],
-                                     nextNod[ iSameNode ]);
+      case 3: { // TRIANGLE or quadratic edge
+        if(elem->GetType() == SMDSAbs_Face) { // TRIANGLE
 
-      else // 2 same nodes:      --- tetrahedron
-        aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ],
-                                     nextNod[ iNotSameNode ]);
-      break;
-    }
-    case 4: { // QUADRANGLE
+          if ( nbSame == 0 )       // --- pentahedron
+            aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ],
+                                         nextNod[ i0 ], nextNod[ 1 ], nextNod[ i2 ] );
 
-      if ( nbSame == 0 )       // --- hexahedron
-        aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ], prevNod[ 3 ],
-                                     nextNod[ i0 ], nextNod[ 1 ], nextNod[ i2 ], nextNod[ 3 ]);
+          else if ( nbSame == 1 )  // --- pyramid
+            aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ],  prevNod[ iAfterSame ],
+                                         nextNod[ iAfterSame ], nextNod[ iBeforeSame ],
+                                         nextNod[ iSameNode ]);
 
-      else if ( nbSame == 1 )  // --- pyramid + pentahedron
-      {
-        aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ],  prevNod[ iAfterSame ],
-                                     nextNod[ iAfterSame ], nextNod[ iBeforeSame ],
-                                     nextNod[ iSameNode ]);
-        newElems.push_back( aNewElem );
-        aNewElem = aMesh->AddVolume (prevNod[ iAfterSame ], prevNod[ iOpposSame ],
-                                     prevNod[ iBeforeSame ],  nextNod[ iAfterSame ],
-                                     nextNod[ iOpposSame ],  nextNod[ iBeforeSame ] );
-      }
-      else if ( nbSame == 2 )  // pentahedron
-      {
-        if ( prevNod[ iBeforeSame ] == nextNod[ iBeforeSame ] )
-          // iBeforeSame is same too
-          aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ], prevNod[ iOpposSame ],
-                                       nextNod[ iOpposSame ], prevNod[ iSameNode ],
-                                       prevNod[ iAfterSame ],  nextNod[ iAfterSame ]);
-        else
-          // iAfterSame is same too
-          aNewElem = aMesh->AddVolume (prevNod[ iSameNode ], prevNod[ iBeforeSame ],
-                                       nextNod[ iBeforeSame ], prevNod[ iAfterSame ],
-                                       prevNod[ iOpposSame ],  nextNod[ iOpposSame ]);
+          else // 2 same nodes:      --- tetrahedron
+            aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ],
+                                         nextNod[ iNotSameNode ]);
+        }
+        else { // quadratic edge
+          if(nbSame==0) {     // quadratic quadrangle
+            aNewElem = aMesh->AddFace(prevNod[0], nextNod[0], nextNod[1], prevNod[1],
+                                      midlNod[0], nextNod[2], midlNod[1], prevNod[2]);
+          }
+          else if(nbSame==1) { // quadratic triangle
+            if(sames[0]==2)
+              return; // medium node on axis
+            else if(sames[0]==0) {
+              aNewElem = aMesh->AddFace(prevNod[0], nextNod[1], prevNod[1],
+                                        nextNod[2], midlNod[1], prevNod[2]);
+            }
+            else { // sames[0]==1
+              aNewElem = aMesh->AddFace(prevNod[0], nextNod[0], prevNod[1],
+                                        midlNod[0], nextNod[2], prevNod[2]);
+            }
+          }
+          else
+            return;
+        }
+        break;
+      }
+      case 4: { // QUADRANGLE
+
+        if ( nbSame == 0 )       // --- hexahedron
+          aNewElem = aMesh->AddVolume (prevNod[ i0 ], prevNod[ 1 ], prevNod[ i2 ], prevNod[ 3 ],
+                                       nextNod[ i0 ], nextNod[ 1 ], nextNod[ i2 ], nextNod[ 3 ]);
+        
+        else if ( nbSame == 1 ) { // --- pyramid + pentahedron
+          aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ],  prevNod[ iAfterSame ],
+                                       nextNod[ iAfterSame ], nextNod[ iBeforeSame ],
+                                       nextNod[ iSameNode ]);
+          newElems.push_back( aNewElem );
+          aNewElem = aMesh->AddVolume (prevNod[ iAfterSame ], prevNod[ iOpposSame ],
+                                       prevNod[ iBeforeSame ],  nextNod[ iAfterSame ],
+                                       nextNod[ iOpposSame ],  nextNod[ iBeforeSame ] );
+        }
+        else if ( nbSame == 2 ) { // pentahedron
+          if ( prevNod[ iBeforeSame ] == nextNod[ iBeforeSame ] )
+            // iBeforeSame is same too
+            aNewElem = aMesh->AddVolume (prevNod[ iBeforeSame ], prevNod[ iOpposSame ],
+                                         nextNod[ iOpposSame ], prevNod[ iSameNode ],
+                                         prevNod[ iAfterSame ],  nextNod[ iAfterSame ]);
+          else
+            // iAfterSame is same too
+            aNewElem = aMesh->AddVolume (prevNod[ iSameNode ], prevNod[ iBeforeSame ],
+                                         nextNod[ iBeforeSame ], prevNod[ iAfterSame ],
+                                         prevNod[ iOpposSame ],  nextNod[ iOpposSame ]);
+        }
+        break;
+      }
+      case 6: { // quadratic triangle
+        // create pentahedron with 15 nodes
+        if(i0>0) { // reversed case
+          aNewElem = aMesh->AddVolume (prevNod[0], prevNod[2], prevNod[1],
+                                       nextNod[0], nextNod[2], nextNod[1],
+                                       prevNod[5], prevNod[4], prevNod[3],
+                                       nextNod[5], nextNod[4], nextNod[3],
+                                       midlNod[0], midlNod[2], midlNod[1]);
+        }
+        else { // not reversed case
+          aNewElem = aMesh->AddVolume (prevNod[0], prevNod[1], prevNod[2],
+                                       nextNod[0], nextNod[1], nextNod[2],
+                                       prevNod[3], prevNod[4], prevNod[5],
+                                       nextNod[3], nextNod[4], nextNod[5],
+                                       midlNod[0], midlNod[1], midlNod[2]);
+        }
+        break;
+      }
+      case 8: { // quadratic quadrangle
+        // create hexahedron with 20 nodes
+        if(i0>0) { // reversed case
+          aNewElem = aMesh->AddVolume (prevNod[0], prevNod[3], prevNod[2], prevNod[1],
+                                       nextNod[0], nextNod[3], nextNod[2], nextNod[1],
+                                       prevNod[7], prevNod[6], prevNod[5], prevNod[4],
+                                       nextNod[7], nextNod[6], nextNod[5], nextNod[4],
+                                       midlNod[0], midlNod[3], midlNod[2], midlNod[1]);
+        }
+        else { // not reversed case
+          aNewElem = aMesh->AddVolume (prevNod[0], prevNod[1], prevNod[2], prevNod[3],
+                                       nextNod[0], nextNod[1], nextNod[2], nextNod[3],
+                                       prevNod[4], prevNod[5], prevNod[6], prevNod[7],
+                                       nextNod[4], nextNod[5], nextNod[6], nextNod[7],
+                                       midlNod[0], midlNod[1], midlNod[2], midlNod[3]);
+        }
+        break;
+      }
+      default: {
+        // realized for extrusion only
+        //vector<const SMDS_MeshNode*> polyedre_nodes (nbNodes*2 + 4*nbNodes);
+        //vector<int> quantities (nbNodes + 2);
+        
+        //quantities[0] = nbNodes; // bottom of prism
+        //for (int inode = 0; inode < nbNodes; inode++) {
+        //  polyedre_nodes[inode] = prevNod[inode];
+        //}
+
+        //quantities[1] = nbNodes; // top of prism
+        //for (int inode = 0; inode < nbNodes; inode++) {
+        //  polyedre_nodes[nbNodes + inode] = nextNod[inode];
+        //}
+        
+        //for (int iface = 0; iface < nbNodes; iface++) {
+        //  quantities[iface + 2] = 4;
+        //  int inextface = (iface == nbNodes - 1) ? 0 : iface + 1;
+        //  polyedre_nodes[2*nbNodes + 4*iface + 0] = prevNod[iface];
+        //  polyedre_nodes[2*nbNodes + 4*iface + 1] = prevNod[inextface];
+        //  polyedre_nodes[2*nbNodes + 4*iface + 2] = nextNod[inextface];
+        //  polyedre_nodes[2*nbNodes + 4*iface + 3] = nextNod[iface];
+        //}
+        //aNewElem = aMesh->AddPolyhedralVolume (polyedre_nodes, quantities);
+        break;
+      }
       }
-      break;
     }
-    default: {
+
+    if(!aNewElem) {
       // realized for extrusion only
       vector<const SMDS_MeshNode*> polyedre_nodes (nbNodes*2 + 4*nbNodes);
       vector<int> quantities (nbNodes + 2);
@@ -2157,9 +2908,11 @@ static void sweepElement(SMESHDS_Mesh*                         aMesh,
       }
       aNewElem = aMesh->AddPolyhedralVolume (polyedre_nodes, quantities);
     }
-    }
-    if ( aNewElem )
+
+    if ( aNewElem ) {
       newElems.push_back( aNewElem );
+      myLastCreatedElems.Append(aNewElem);
+    }
 
     // set new prev nodes
     for ( iNode = 0; iNode < nbNodes; iNode++ )
@@ -2177,26 +2930,40 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
                        TNodeOfNodeListMap &          mapNewNodes,
                        TElemOfElemListMap &          newElemsMap,
                        TElemOfVecOfNnlmiMap &        elemNewNodesMap,
-                       set<const SMDS_MeshElement*>& elemSet)
+                       map<int,const SMDS_MeshElement*>& elemSet,
+                       const int nbSteps,
+                       SMESH_SequenceOfElemPtr& myLastCreatedElems)
 {
   ASSERT( newElemsMap.size() == elemNewNodesMap.size() );
 
   // Find nodes belonging to only one initial element - sweep them to get edges.
 
   TNodeOfNodeListMapItr nList = mapNewNodes.begin();
-  for ( ; nList != mapNewNodes.end(); nList++ )
-  {
+  for ( ; nList != mapNewNodes.end(); nList++ ) {
     const SMDS_MeshNode* node =
       static_cast<const SMDS_MeshNode*>( nList->first );
     SMDS_ElemIteratorPtr eIt = node->GetInverseElementIterator();
     int nbInitElems = 0;
-    while ( eIt->more() && nbInitElems < 2 )
-      if ( elemSet.find( eIt->next() ) != elemSet.end() )
+    const SMDS_MeshElement* el = 0;
+    SMDSAbs_ElementType highType = SMDSAbs_Edge; // count most complex elements only
+    while ( eIt->more() && nbInitElems < 2 ) {
+      el = eIt->next();
+      SMDSAbs_ElementType type = el->GetType();
+      if ( type == SMDSAbs_Volume || type < highType ) continue;
+      if ( type > highType ) {
+        nbInitElems = 0;
+        highType = type;
+      }
+      if ( elemSet.find(el->GetID()) != elemSet.end() )
         nbInitElems++;
+    }
     if ( nbInitElems < 2 ) {
-      vector<TNodeOfNodeListMapItr> newNodesItVec( 1, nList );
-      list<const SMDS_MeshElement*> newEdges;
-      sweepElement( aMesh, node, newNodesItVec, newEdges );
+      bool NotCreateEdge = el && el->IsQuadratic() && el->IsMediumNode(node);
+      if(!NotCreateEdge) {
+        vector<TNodeOfNodeListMapItr> newNodesItVec( 1, nList );
+        list<const SMDS_MeshElement*> newEdges;
+        sweepElement( aMesh, node, newNodesItVec, newEdges, nbSteps, myLastCreatedElems );
+      }
     }
   }
 
@@ -2205,62 +2972,103 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
 
   TElemOfElemListMap::iterator   itElem      = newElemsMap.begin();
   TElemOfVecOfNnlmiMap::iterator itElemNodes = elemNewNodesMap.begin();
-  for ( ; itElem != newElemsMap.end(); itElem++, itElemNodes++ )
-  {
+  for ( ; itElem != newElemsMap.end(); itElem++, itElemNodes++ ) {
     const SMDS_MeshElement* elem = itElem->first;
     vector<TNodeOfNodeListMapItr>& vecNewNodes = itElemNodes->second;
 
-    if ( elem->GetType() == SMDSAbs_Edge )
-    {
+    if ( elem->GetType() == SMDSAbs_Edge ) {
       // create a ceiling edge
-      aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
-                     vecNewNodes[ 1 ]->second.back() );
+      if (!elem->IsQuadratic()) {
+        if ( !aMesh->FindEdge( vecNewNodes[ 0 ]->second.back(),
+                               vecNewNodes[ 1 ]->second.back()))
+          myLastCreatedElems.Append(aMesh->AddEdge(vecNewNodes[ 0 ]->second.back(),
+                                                   vecNewNodes[ 1 ]->second.back()));
+      }
+      else {
+        if ( !aMesh->FindEdge( 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) );
 
-    // loop on a face nodes
     set<const SMDS_MeshNode*> aFaceLastNodes;
     int iNode, nbNodes = vecNewNodes.size();
-    for ( iNode = 0; iNode < nbNodes; iNode++ )
-    {
-      aFaceLastNodes.insert( vecNewNodes[ iNode ]->second.back() );
-      // look for free links of a face
-      int iNext = ( iNode + 1 == nbNodes ) ? 0 : iNode + 1;
-      const SMDS_MeshNode* n1 = vecNewNodes[ iNode ]->first;
-      const SMDS_MeshNode* n2 = vecNewNodes[ iNext ]->first;
-      // check if a link is free
-      if ( ! SMESH_MeshEditor::FindFaceInSet ( n1, n2, elemSet, avoidSet ))
-      {
-        hasFreeLinks = true;
-        // make an edge and a ceiling for a new edge
-        if ( !aMesh->FindEdge( n1, n2 ))
-          aMesh->AddEdge( n1, n2 );
-        n1 = vecNewNodes[ iNode ]->second.back();
-        n2 = vecNewNodes[ iNext ]->second.back();
-        if ( !aMesh->FindEdge( n1, n2 ))
-          aMesh->AddEdge( n1, n2 );
+    if(!elem->IsQuadratic()) {
+      // loop on the face nodes
+      for ( iNode = 0; iNode < nbNodes; iNode++ ) {
+        aFaceLastNodes.insert( vecNewNodes[ iNode ]->second.back() );
+        // look for free links of the face
+        int iNext = ( iNode + 1 == nbNodes ) ? 0 : iNode + 1;
+        const SMDS_MeshNode* n1 = vecNewNodes[ iNode ]->first;
+        const SMDS_MeshNode* n2 = vecNewNodes[ iNext ]->first;
+        // check if a link is free
+        if ( ! SMESH_MeshEditor::FindFaceInSet ( n1, n2, elemSet, avoidSet )) {
+          hasFreeLinks = true;
+          // make an edge and a ceiling for a new edge
+          if ( !aMesh->FindEdge( n1, n2 )) {
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
+          }
+          n1 = vecNewNodes[ iNode ]->second.back();
+          n2 = vecNewNodes[ iNext ]->second.back();
+          if ( !aMesh->FindEdge( n1, n2 )) {
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2 ));
+          }
+        }
+      }
+    }
+    else { // elem is quadratic face
+      int nbn = nbNodes/2;
+      for ( iNode = 0; iNode < nbn; iNode++ ) {
+        aFaceLastNodes.insert( vecNewNodes[ iNode ]->second.back() );
+        int iNext = ( iNode + 1 == nbn ) ? 0 : iNode + 1;
+        const SMDS_MeshNode* n1 = vecNewNodes[ iNode ]->first;
+        const SMDS_MeshNode* n2 = vecNewNodes[ iNext ]->first;
+        // check if a link is free
+        if ( ! SMESH_MeshEditor::FindFaceInSet ( n1, n2, elemSet, avoidSet )) {
+          hasFreeLinks = true;
+          // make an edge and a ceiling for a new edge
+          // find medium node
+          const SMDS_MeshNode* n3 = vecNewNodes[ iNode+nbn ]->first;
+          if ( !aMesh->FindEdge( 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 )) {
+            myLastCreatedElems.Append(aMesh->AddEdge( n1, n2, n3 ));
+          }
+        }
+      }
+      for ( iNode = nbn; iNode < 2*nbn; iNode++ ) {
+        aFaceLastNodes.insert( vecNewNodes[ iNode ]->second.back() );
       }
     }
+
     // sweep free links into faces
 
-    if ( hasFreeLinks )
-    {
+    if ( hasFreeLinks )  {
       list<const SMDS_MeshElement*> & newVolumes = itElem->second;
-      int iStep, nbSteps = vecNewNodes[0]->second.size();
+      int iStep; //, nbSteps = vecNewNodes[0]->second.size();
       int iVol, volNb, nbVolumesByStep = newVolumes.size() / nbSteps;
 
       set<const SMDS_MeshNode*> initNodeSet, faceNodeSet;
       for ( iNode = 0; iNode < nbNodes; iNode++ )
         initNodeSet.insert( vecNewNodes[ iNode ]->first );
 
-      for ( volNb = 0; volNb < nbVolumesByStep; volNb++ )
-      {
+      for ( volNb = 0; volNb < nbVolumesByStep; volNb++ ) {
         list<const SMDS_MeshElement*>::iterator v = newVolumes.begin();
         iVol = 0;
         while ( iVol++ < volNb ) v++;
@@ -2268,37 +3076,69 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
         list< int > fInd;
         SMDS_VolumeTool vTool( *v );
         int iF, nbF = vTool.NbFaces();
-        for ( iF = 0; iF < nbF; iF ++ )
+        for ( iF = 0; iF < nbF; iF ++ ) {
           if (vTool.IsFreeFace( iF ) &&
               vTool.GetFaceNodes( iF, faceNodeSet ) &&
               initNodeSet != faceNodeSet) // except an initial face
             fInd.push_back( iF );
+        }
         if ( fInd.empty() )
           continue;
 
         // create faces for all steps
-        for ( iStep = 0; iStep < nbSteps; iStep++ )
-        {
+        // if such a face has been already created by sweep of edge, assure that its orientation is OK
+        for ( iStep = 0; iStep < nbSteps; iStep++ )  {
           vTool.Set( *v );
           vTool.SetExternalNormal();
           list< int >::iterator ind = fInd.begin();
-          for ( ; ind != fInd.end(); ind++ )
-          {
+          for ( ; ind != fInd.end(); ind++ ) {
             const SMDS_MeshNode** nodes = vTool.GetFaceNodes( *ind );
-            switch ( vTool.NbFaceNodes( *ind ) ) {
-            case 3:
-              aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ); break;
-            case 4:
-              aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ); break;
+            int nbn = vTool.NbFaceNodes( *ind );
+            switch ( nbn ) {
+            case 3: { ///// triangle
+              const SMDS_MeshFace * f = aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ]);
+              if ( !f )
+                myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
+              else if ( nodes[ 1 ] != f->GetNode( f->GetNodeIndex( nodes[ 0 ] ) + 1 ))
+                aMesh->ChangeElementNodes( f, nodes, nbn );
+              break;
+            }
+            case 4: { ///// quadrangle
+              const SMDS_MeshFace * f = aMesh->FindFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ]);
+              if ( !f )
+                myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ], nodes[ 3 ] ));
+              else if ( nodes[ 1 ] != f->GetNode( f->GetNodeIndex( nodes[ 0 ] ) + 1 ))
+                aMesh->ChangeElementNodes( f, nodes, nbn );
+              break;
+            }
             default:
-              {
-                int nbPolygonNodes = vTool.NbFaceNodes( *ind );
-                vector<const SMDS_MeshNode*> polygon_nodes (nbPolygonNodes);
-                for (int inode = 0; inode < nbPolygonNodes; inode++) {
-                  polygon_nodes[inode] = nodes[inode];
+              if( (*v)->IsQuadratic() ) {
+                if(nbn==6) { /////// quadratic triangle
+                  const SMDS_MeshFace * f = aMesh->FindFace( nodes[0], nodes[2], nodes[4],
+                                                             nodes[1], nodes[3], nodes[5] );
+                  if ( !f )
+                    myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4],
+                                                             nodes[1], nodes[3], nodes[5]));
+                  else if ( nodes[ 2 ] != f->GetNode( f->GetNodeIndex( nodes[ 0 ] ) + 1 ))
+                    aMesh->ChangeElementNodes( f, nodes, nbn );
+                }
+                else {       /////// quadratic quadrangle
+                  const SMDS_MeshFace * f = aMesh->FindFace( nodes[0], nodes[2], nodes[4], nodes[6],
+                                                             nodes[1], nodes[3], nodes[5], nodes[7] );
+                  if ( !f )
+                    myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4], nodes[6],
+                                                             nodes[1], nodes[3], nodes[5], nodes[7]));
+                  else if ( nodes[ 2 ] != f->GetNode( f->GetNodeIndex( nodes[ 0 ] ) + 1 ))
+                    aMesh->ChangeElementNodes( f, nodes, nbn );
                 }
-                aMesh->AddPolygonalFace(polygon_nodes);
-                break;
+              }
+              else { //////// polygon
+                vector<const SMDS_MeshNode*> polygon_nodes ( nodes, &nodes[nbn] );
+                const SMDS_MeshFace * f = aMesh->FindFace( polygon_nodes );
+                if ( !f )
+                  myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
+                else if ( nodes[ 1 ] != f->GetNode( f->GetNodeIndex( nodes[ 0 ] ) + 1 ))
+                  aMesh->ChangeElementNodes( f, nodes, nbn );
               }
             }
           }
@@ -2312,36 +3152,48 @@ static void makeWalls (SMESHDS_Mesh*                 aMesh,
     // make a ceiling face with a normal external to a volume
 
     SMDS_VolumeTool lastVol( itElem->second.back() );
+
     int iF = lastVol.GetFaceIndex( aFaceLastNodes );
-    if ( iF >= 0 )
-    {
+    if ( iF >= 0 ) {
       lastVol.SetExternalNormal();
       const SMDS_MeshNode** nodes = lastVol.GetFaceNodes( iF );
-      switch ( lastVol.NbFaceNodes( iF ) ) {
+      int nbn = lastVol.NbFaceNodes( iF );
+      switch ( nbn ) {
       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:
-        {
-          int nbPolygonNodes = lastVol.NbFaceNodes( iF );
-          vector<const SMDS_MeshNode*> polygon_nodes (nbPolygonNodes);
-          for (int inode = 0; inode < nbPolygonNodes; inode++) {
-            polygon_nodes[inode] = nodes[inode];
+        if(itElem->second.back()->IsQuadratic()) {
+          if(nbn==6) {
+            if (!hasFreeLinks ||
+                !aMesh->FindFace(nodes[0], nodes[2], nodes[4],
+                                 nodes[1], nodes[3], nodes[5]) ) {
+              myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[2], nodes[4],
+                                                       nodes[1], nodes[3], nodes[5]));
+            }
+          }
+          else { // nbn==8
+            if (!hasFreeLinks ||
+                !aMesh->FindFace(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 {
+          vector<const SMDS_MeshNode*> polygon_nodes ( nodes, &nodes[nbn] );
           if (!hasFreeLinks || !aMesh->FindFace(polygon_nodes))
-            aMesh->AddPolygonalFace(polygon_nodes);
+            myLastCreatedElems.Append(aMesh->AddPolygonalFace(polygon_nodes));
         }
-        break;
-      }
+      } // switch
     }
-
   } // loop on swept elements
 }
 
@@ -2350,15 +3202,20 @@ 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 );
+  gp_Trsf aTrsf2;
+  aTrsf2.SetRotation( theAxis, theAngle/2. );
 
   gp_Lin aLine( theAxis );
   double aSqTol = theTol * theTol;
@@ -2370,10 +3227,9 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
   TElemOfElemListMap newElemsMap;
 
   // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
+  map<int, const SMDS_MeshElement* >::iterator itElem;
+  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem )
       continue;
     vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
@@ -2387,8 +3243,7 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
       const SMDS_MeshNode* node =
         static_cast<const SMDS_MeshNode*>( itN->next() );
       TNodeOfNodeListMapItr nIt = mapNewNodes.find( node );
-      if ( nIt == mapNewNodes.end() )
-      {
+      if ( nIt == mapNewNodes.end() ) {
         nIt = mapNewNodes.insert( make_pair( node, list<const SMDS_MeshNode*>() )).first;
         list<const SMDS_MeshNode*>& listNewNodes = nIt->second;
 
@@ -2400,19 +3255,57 @@ void SMESH_MeshEditor::RotationSweep(set<const SMDS_MeshElement*> & theElems,
         const SMDS_MeshNode * newNode = node;
         for ( int i = 0; i < theNbSteps; i++ ) {
           if ( !isOnAxis ) {
-            aTrsf.Transforms( coord[0], coord[1], coord[2] );
+            if( elem->IsQuadratic() && !elem->IsMediumNode(node) ) {
+              // create two nodes
+              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] );
+            }
+            else {
+              aTrsf.Transforms( coord[0], coord[1], coord[2] );
+            }
             newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+            myLastCreatedNodes.Append(newNode);
           }
           listNewNodes.push_back( newNode );
         }
       }
+      else {
+        // if current elem is quadratic and current node is not medium
+        // we have to check - may be it is needed to insert additional nodes
+        if( elem->IsQuadratic() && !elem->IsMediumNode(node) ) {
+          list< const SMDS_MeshNode* > & listNewNodes = nIt->second;
+          if(listNewNodes.size()==theNbSteps) {
+            listNewNodes.clear();
+            // make new nodes
+            gp_XYZ aXYZ( node->X(), node->Y(), node->Z() );
+            double coord[3];
+            aXYZ.Coord( coord[0], coord[1], coord[2] );
+            const SMDS_MeshNode * newNode = node;
+            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 );
+            }
+          }
+        }
+      }
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
+    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], theNbSteps, myLastCreatedElems );
   }
 
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
+  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, theNbSteps, myLastCreatedElems );
 
 }
 
@@ -2427,6 +3320,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();
 
@@ -2453,6 +3349,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;
 }
 
@@ -2463,7 +3360,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,
@@ -2489,27 +3386,34 @@ 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();
+
   TNodeOfNodeListMap mapNewNodes;
+  //TNodeOfNodeVecMap mapNewNodes;
   TElemOfVecOfNnlmiMap mapElemNewNodes;
+  //TElemOfVecOfMapNodesMap mapElemNewNodes;
 
   // loop on theElems
-  set< const SMDS_MeshElement* >::iterator itElem;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); 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;
 
     vector<TNodeOfNodeListMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
+    //vector<TNodeOfNodeVecMapItr> & newNodesItVec = mapElemNewNodes[ elem ];
     newNodesItVec.reserve( elem->NbNodes() );
 
     // loop on elem nodes
@@ -2520,15 +3424,34 @@ void SMESH_MeshEditor::ExtrusionSweep
       const SMDS_MeshNode* node =
         static_cast<const SMDS_MeshNode*>( itN->next() );
       TNodeOfNodeListMap::iterator nIt = mapNewNodes.find( node );
-      if ( nIt == mapNewNodes.end() )
-      {
+      //TNodeOfNodeVecMap::iterator nIt = mapNewNodes.find( node );
+      if ( nIt == mapNewNodes.end() ) {
         nIt = mapNewNodes.insert( make_pair( node, list<const SMDS_MeshNode*>() )).first;
+        //nIt = mapNewNodes.insert( make_pair( node, vector<const SMDS_MeshNode*>() )).first;
         list<const SMDS_MeshNode*>& listNewNodes = nIt->second;
+        //vector<const SMDS_MeshNode*>& vecNewNodes = nIt->second;
+        //vecNewNodes.reserve(nbsteps);
 
         // make new nodes
         double coord[] = { node->X(), node->Y(), node->Z() };
-        int nbsteps = theParams.mySteps->Length();
+        //int nbsteps = theParams.mySteps->Length();
         for ( int i = 0; i < nbsteps; i++ ) {
+          if( elem->IsQuadratic() && !elem->IsMediumNode(node) ) {
+            // create additional node
+            double x = coord[0] + theParams.myDir.X()*theParams.mySteps->Value(i+1)/2.;
+            double y = coord[1] + theParams.myDir.Y()*theParams.mySteps->Value(i+1)/2.;
+            double z = coord[2] + theParams.myDir.Z()*theParams.mySteps->Value(i+1)/2.;
+            if( theFlags & EXTRUSION_FLAG_SEW ) {
+              const SMDS_MeshNode * newNode = CreateNode(x, y, z,
+                                                         theTolerance, theParams.myNodes);
+              listNewNodes.push_back( newNode );
+            }
+            else {
+              const SMDS_MeshNode * newNode = aMesh->AddNode(x, y, z);
+              myLastCreatedNodes.Append(newNode);
+              listNewNodes.push_back( newNode );
+            }
+          }
           //aTrsf.Transforms( coord[0], coord[1], coord[2] );
           coord[0] = coord[0] + theParams.myDir.X()*theParams.mySteps->Value(i+1);
           coord[1] = coord[1] + theParams.myDir.Y()*theParams.mySteps->Value(i+1);
@@ -2537,20 +3460,63 @@ void SMESH_MeshEditor::ExtrusionSweep
             const SMDS_MeshNode * newNode = CreateNode(coord[0], coord[1], coord[2],
                                                        theTolerance, theParams.myNodes);
             listNewNodes.push_back( newNode );
+            //vecNewNodes[i]=newNode;
           }
           else {
             const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+            myLastCreatedNodes.Append(newNode);
             listNewNodes.push_back( newNode );
+            //vecNewNodes[i]=newNode;
+          }
+        }
+      }
+      else {
+        // if current elem is quadratic and current node is not medium
+        // we have to check - may be it is needed to insert additional nodes
+        if( elem->IsQuadratic() && !elem->IsMediumNode(node) ) {
+          list< const SMDS_MeshNode* > & listNewNodes = nIt->second;
+          if(listNewNodes.size()==nbsteps) {
+            listNewNodes.clear();
+            double coord[] = { node->X(), node->Y(), node->Z() };
+            for ( int i = 0; i < nbsteps; i++ ) {
+              double x = coord[0] + theParams.myDir.X()*theParams.mySteps->Value(i+1);
+              double y = coord[1] + theParams.myDir.Y()*theParams.mySteps->Value(i+1);
+              double z = coord[2] + theParams.myDir.Z()*theParams.mySteps->Value(i+1);
+              if( theFlags & EXTRUSION_FLAG_SEW ) {
+                const SMDS_MeshNode * newNode = CreateNode(x, y, z,
+                                                           theTolerance, theParams.myNodes);
+                listNewNodes.push_back( newNode );
+              }
+              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);
+              coord[1] = coord[1] + theParams.myDir.Y()*theParams.mySteps->Value(i+1);
+              coord[2] = coord[2] + theParams.myDir.Z()*theParams.mySteps->Value(i+1);
+              if( theFlags & EXTRUSION_FLAG_SEW ) {
+                const SMDS_MeshNode * newNode = CreateNode(coord[0], coord[1], coord[2],
+                                                           theTolerance, theParams.myNodes);
+                listNewNodes.push_back( newNode );
+              }
+              else {
+                const SMDS_MeshNode * newNode = aMesh->AddNode( coord[0], coord[1], coord[2] );
+                myLastCreatedNodes.Append(newNode);
+                listNewNodes.push_back( newNode );
+              }
+            }
           }
         }
       }
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
+    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem], nbsteps, myLastCreatedElems );
   }
+
   if( theFlags & EXTRUSION_FLAG_BOUNDARY ) {
-    makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems );
+    makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElems, nbsteps, myLastCreatedElems );
   }
 }
 
@@ -2604,7 +3570,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,
@@ -2612,12 +3578,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;
@@ -2757,7 +3726,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() ) {
@@ -2786,7 +3755,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;
@@ -2859,10 +3828,20 @@ SMESH_MeshEditor::Extrusion_Error
          }
 
          // make new node
+          if( elem->IsQuadratic() && !elem->IsMediumNode(node) ) {
+            // create additional node
+            double x = ( aPN1.X() + aPN0.X() )/2.;
+            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;
@@ -2871,13 +3850,47 @@ SMESH_MeshEditor::Extrusion_Error
          aDT0x = aDT1x;
        }
       }
+
+      else {
+        // if current elem is quadratic and current node is not medium
+        // we have to check - may be it is needed to insert additional nodes
+        if( elem->IsQuadratic() && !elem->IsMediumNode(node) ) {
+          list< const SMDS_MeshNode* > & listNewNodes = nIt->second;
+          if(listNewNodes.size()==aNbTP-1) {
+            vector<const SMDS_MeshNode*> aNodes(2*(aNbTP-1));
+            gp_XYZ P(node->X(), node->Y(), node->Z());
+            list< const SMDS_MeshNode* >::iterator it = listNewNodes.begin();
+            int i;
+            for(i=0; i<aNbTP-1; i++) {
+              const SMDS_MeshNode* N = *it;
+              double x = ( N->X() + P.X() )/2.;
+              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());
+            }
+            listNewNodes.clear();
+            for(i=0; i<2*(aNbTP-1); i++) {
+              listNewNodes.push_back(aNodes[i]);
+            }
+          }
+        }
+      }
+
       newNodesItVec.push_back( nIt );
     }
     // make new elements
-    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem] );
+    //sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
+    //              newNodesItVec[0]->second.size(), myLastCreatedElems );
+    sweepElement( aMesh, elem, newNodesItVec, newElemsMap[elem],
+                  aNbTP-1, myLastCreatedElems );
   }
 
-  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElements );
+  makeWalls( aMesh, mapNewNodes, newElemsMap, mapElemNewNodes, theElements,
+             aNbTP-1, myLastCreatedElems );
 
   return EXTR_OK;
 }
@@ -2887,10 +3900,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:
@@ -2908,13 +3924,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;
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
+  map<int, const SMDS_MeshElement* >::iterator itElem;
+  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem )
       continue;
 
@@ -2934,8 +3949,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
@@ -2947,8 +3964,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) );
+        }
       }
     }
   }
@@ -2959,7 +3978,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 );
   }
@@ -2983,9 +4002,8 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
     { 0, 1, 2, 3, 4, 5, 6, 7 }   // FORWARD
   };
 
-  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ )
-  {
-    const SMDS_MeshElement* elem = (*itElem);
+  for ( itElem = theElems.begin(); itElem != theElems.end(); itElem++ ) {
+    const SMDS_MeshElement* elem = (*itElem).second;
     if ( !elem || elem->GetType() == SMDSAbs_Node )
       continue;
 
@@ -3018,8 +4036,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);
           }
         }
@@ -3056,8 +4075,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);
           }
         }
@@ -3075,12 +4095,46 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
       else
         i = index[ nbNodes - 4 ];
 
+    if(elem->IsQuadratic()) {
+      static int anIds[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+      i = anIds;
+      if(needReverse) {
+        if(nbNodes==3) { // quadratic edge
+          static int anIds[] = {1,0,2};
+          i = anIds;
+        }
+        else if(nbNodes==6) { // quadratic triangle
+          static int anIds[] = {0,2,1,5,4,3};
+          i = anIds;
+        }
+        else if(nbNodes==8) { // quadratic quadrangle
+          static int anIds[] = {0,3,2,1,7,6,5,4};
+          i = anIds;
+        }
+        else if(nbNodes==10) { // quadratic tetrahedron of 10 nodes
+          static int anIds[] = {0,2,1,3,6,5,4,7,9,8};
+          i = anIds;
+        }
+        else if(nbNodes==13) { // quadratic pyramid of 13 nodes
+          static int anIds[] = {0,3,2,1,4,8,7,6,5,9,12,11,10};
+          i = anIds;
+        }
+        else if(nbNodes==15) { // quadratic pentahedron with 15 nodes
+          static int anIds[] = {0,2,1,3,5,4,8,7,6,11,10,9,12,14,13};
+          i = anIds;
+        }
+        else { // nbNodes==20 - quadratic hexahedron with 20 nodes
+          static int anIds[] = {0,3,2,1,4,7,6,5,11,10,9,8,15,14,13,12,16,19,18,17};
+          i = anIds;
+        }
+      }
+    }
+
     // find transformed nodes
     const SMDS_MeshNode* nodes[8];
     int iNode = 0;
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
+    while ( itN->more() ) {
       const SMDS_MeshNode* node =
         static_cast<const SMDS_MeshNode*>( itN->next() );
       TNodeNodeMap::iterator nodeMapIt = nodeMap.find( node );
@@ -3091,31 +4145,55 @@ void SMESH_MeshEditor::Transform (set<const SMDS_MeshElement*> & theElems,
     if ( iNode != nbNodes )
       continue; // not all nodes transformed
 
-    if ( theCopy )
-    {
+    if ( theCopy ) {
       // add a new element
       switch ( elemType ) {
       case SMDSAbs_Edge:
-        aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] );
+        if ( nbNodes == 2 )
+          myLastCreatedElems.Append(aMesh->AddEdge( nodes[ 0 ], nodes[ 1 ] ));
+        else
+          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 ] );
-        else
-          aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]);
+          myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] ));
+        else if(nbNodes==4)
+          myLastCreatedElems.Append(aMesh->AddFace( nodes[ 0 ], nodes[ 1 ], nodes[ 2 ] , nodes[ 3 ]));
+        else if(nbNodes==6)
+          myLastCreatedElems.Append(aMesh->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+                                             nodes[4], nodes[5]));
+        else // nbNodes==8
+          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)
+          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)
+          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)
+          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
+          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:;
       }
@@ -3139,6 +4217,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;
@@ -3172,7 +4253,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--;
       }
@@ -3271,6 +4355,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
@@ -3280,13 +4367,11 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
   // Fill nodeNodeMap and elems
 
   TListOfListOfNodes::iterator grIt = theGroupsOfNodes.begin();
-  for ( ; grIt != theGroupsOfNodes.end(); grIt++ )
-  {
+  for ( ; grIt != theGroupsOfNodes.end(); grIt++ ) {
     list<const SMDS_MeshNode*>& nodes = *grIt;
     list<const SMDS_MeshNode*>::iterator nIt = nodes.begin();
     const SMDS_MeshNode* nToKeep = *nIt;
-    for ( ; nIt != nodes.end(); nIt++ )
-    {
+    for ( ; nIt != nodes.end(); nIt++ ) {
       const SMDS_MeshNode* nToRemove = *nIt;
       nodeNodeMap.insert( TNodeNodeMap::value_type( nToRemove, nToKeep ));
       if ( nToRemove != nToKeep ) {
@@ -3295,15 +4380,16 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
       }
 
       SMDS_ElemIteratorPtr invElemIt = nToRemove->GetInverseElementIterator();
-      while ( invElemIt->more() )
-        elems.insert( invElemIt->next() );
+      while ( invElemIt->more() ) {
+        const SMDS_MeshElement* elem = invElemIt->next();
+          elems.insert(elem);
+      }
     }
   }
   // Change element nodes or remove an element
 
   set<const SMDS_MeshElement*>::iterator eIt = elems.begin();
-  for ( ; eIt != elems.end(); eIt++ )
-  {
+  for ( ; eIt != elems.end(); eIt++ ) {
     const SMDS_MeshElement* elem = *eIt;
     int nbNodes = elem->NbNodes();
     int aShapeId = FindShape( elem );
@@ -3318,8 +4404,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
 
     // get new seq of nodes
     SMDS_ElemIteratorPtr itN = elem->nodesIterator();
-    while ( itN->more() )
-    {
+    while ( itN->more() ) {
       const SMDS_MeshNode* n =
         static_cast<const SMDS_MeshNode*>( itN->next() );
 
@@ -3339,8 +4424,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
 
     bool isOk = true;
     int nbUniqueNodes = nodeSet.size();
-    if ( nbNodes != nbUniqueNodes ) // some nodes stick
-    {
+    if ( nbNodes != nbUniqueNodes ) { // some nodes stick
       // Polygons and Polyhedral volumes
       if (elem->IsPoly()) {
 
@@ -3365,19 +4449,23 @@ 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);
             }
             aMesh->ChangeElementNodes(elem, &polygons_nodes[inode], quantities[nbNew - 1]);
-          } else {
+          }
+          else {
             rmElemIds.push_back(elem->GetID());
           }
 
-        } else if (elem->GetType() == SMDSAbs_Volume) {
+        }
+        else if (elem->GetType() == SMDSAbs_Volume) {
           // Polyhedral volume
           if (nbUniqueNodes < 4) {
             rmElemIds.push_back(elem->GetID());
-          } else {
+          }
+          else {
             // each face has to be analized in order to check volume validity
             const SMDS_PolyhedralVolumeOfNodes* aPolyedre =
               static_cast<const SMDS_PolyhedralVolumeOfNodes*>( elem );
@@ -3412,11 +4500,13 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
               else
                 rmElemIds.push_back(elem->GetID());
 
-            } else {
+            }
+            else {
               rmElemIds.push_back(elem->GetID());
             }
           }
-        } else {
+        }
+        else {
         }
 
         continue;
@@ -3474,6 +4564,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
@@ -3487,7 +4578,96 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
         else
           isOk = false;
         break;
-      case 8: { //////////////////////////////////// HEXAHEDRON
+      case 8: { 
+        if(elem->IsQuadratic()) { // Quadratic quadrangle
+          //   1    5    2
+          //    +---+---+
+          //    |       |
+          //    |       |
+          //   4+       +6
+          //    |       |
+          //    |       |
+          //    +---+---+
+          //   0    7    3
+          isOk = false;
+          if(nbRepl==3) {
+            nbUniqueNodes = 6;
+            if( iRepl[0]==0 && iRepl[1]==1 && iRepl[2]==4 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[2];
+              uniqueNodes[2] = curNodes[3];
+              uniqueNodes[3] = curNodes[5];
+              uniqueNodes[4] = curNodes[6];
+              uniqueNodes[5] = curNodes[7];
+              isOk = true;
+            }
+            if( iRepl[0]==0 && iRepl[1]==3 && iRepl[2]==7 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[1];
+              uniqueNodes[2] = curNodes[2];
+              uniqueNodes[3] = curNodes[4];
+              uniqueNodes[4] = curNodes[5];
+              uniqueNodes[5] = curNodes[6];
+              isOk = true;
+            }
+            if( iRepl[0]==0 && iRepl[1]==4 && iRepl[2]==7 ) {
+              uniqueNodes[0] = curNodes[1];
+              uniqueNodes[1] = curNodes[2];
+              uniqueNodes[2] = curNodes[3];
+              uniqueNodes[3] = curNodes[5];
+              uniqueNodes[4] = curNodes[6];
+              uniqueNodes[5] = curNodes[0];
+              isOk = true;
+            }
+            if( iRepl[0]==1 && iRepl[1]==2 && iRepl[2]==5 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[1];
+              uniqueNodes[2] = curNodes[3];
+              uniqueNodes[3] = curNodes[4];
+              uniqueNodes[4] = curNodes[6];
+              uniqueNodes[5] = curNodes[7];
+              isOk = true;
+            }
+            if( iRepl[0]==1 && iRepl[1]==4 && iRepl[2]==5 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[2];
+              uniqueNodes[2] = curNodes[3];
+              uniqueNodes[3] = curNodes[1];
+              uniqueNodes[4] = curNodes[6];
+              uniqueNodes[5] = curNodes[7];
+              isOk = true;
+            }
+            if( iRepl[0]==2 && iRepl[1]==3 && iRepl[2]==6 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[1];
+              uniqueNodes[2] = curNodes[2];
+              uniqueNodes[3] = curNodes[4];
+              uniqueNodes[4] = curNodes[5];
+              uniqueNodes[5] = curNodes[7];
+              isOk = true;
+            }
+            if( iRepl[0]==2 && iRepl[1]==5 && iRepl[2]==6 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[1];
+              uniqueNodes[2] = curNodes[3];
+              uniqueNodes[3] = curNodes[4];
+              uniqueNodes[4] = curNodes[2];
+              uniqueNodes[5] = curNodes[7];
+              isOk = true;
+            }
+            if( iRepl[0]==3 && iRepl[1]==6 && iRepl[2]==7 ) {
+              uniqueNodes[0] = curNodes[0];
+              uniqueNodes[1] = curNodes[1];
+              uniqueNodes[2] = curNodes[2];
+              uniqueNodes[3] = curNodes[4];
+              uniqueNodes[4] = curNodes[5];
+              uniqueNodes[5] = curNodes[3];
+              isOk = true;
+            }
+          }
+          break;
+        }
+        //////////////////////////////////// HEXAHEDRON
         isOk = false;
         SMDS_VolumeTool hexa (elem);
         hexa.SetExternalNormal();
@@ -3550,6 +4730,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;
@@ -3615,6 +4796,7 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
                                                          curNodes[ i2 ],
                                                          curNodes[ i3d ],
                                                          curNodes[ i2t ]);
+            myLastCreatedElems.Append(newElem);
             if ( aShapeId )
               aMesh->SetMeshElementOnShape( newElem, aShapeId );
             isOk = true;
@@ -3691,11 +4873,13 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
           }
           aMesh->ChangePolyhedronNodes( elem, poly_nodes, quantities );
         }
-      } else {
+      }
+      else {
         // Change regular element or polygon
         aMesh->ChangeElementNodes( elem, uniqueNodes, nbUniqueNodes );
       }
-    } else {
+    }
+    else {
       // Remove invalid regular element or invalid polygon
       rmElemIds.push_back( elem->GetID() );
     }
@@ -3710,6 +4894,35 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
   Remove( rmElemIds, false );
 }
 
+
+// =================================================
+// 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.
@@ -3717,6 +4930,9 @@ void SMESH_MeshEditor::MergeNodes (TListOfListOfNodes & theGroupsOfNodes)
 
 void SMESH_MeshEditor::MergeEqualElements()
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   SMESHDS_Mesh* aMesh = GetMeshDS();
 
   SMDS_EdgeIteratorPtr   eIt = aMesh->edgesIterator();
@@ -3727,8 +4943,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;
@@ -3741,16 +4956,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() );
+        }
+      }
     }
   }
 
@@ -3767,17 +4987,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;
@@ -3791,14 +5011,53 @@ const SMDS_MeshElement*
         i1 = iNode - 1;
     }
     // find a n2 linked to n1
-    for ( iNode = 0; iNode < 2; iNode++ ) {
-      if ( iNode ) // node before n1
-        n = faceNodes[ i1 == 0 ? nbN - 1 : i1 - 1 ];
-      else         // node after n1
-        n = faceNodes[ i1 + 1 == nbN ? 0 : i1 + 1 ];
-      if ( n == n2 )
-        return elem;
+    if(!elem->IsQuadratic()) {
+      for ( iNode = 0; iNode < 2; iNode++ ) {
+        if ( iNode ) // node before n1
+          n = faceNodes[ i1 == 0 ? nbN - 1 : i1 - 1 ];
+        else         // node after n1
+          n = faceNodes[ i1 + 1 == nbN ? 0 : i1 + 1 ];
+        if ( n == n2 )
+          return elem;
+      }
     }
+    else { // analysis for quadratic elements
+      bool IsFind = false;
+      // check using only corner nodes
+      for ( iNode = 0; iNode < 2; iNode++ ) {
+        if ( iNode ) // node before n1
+          n = faceNodes[ i1 == 0 ? nbN/2 - 1 : i1 - 1 ];
+        else         // node after n1
+          n = faceNodes[ i1 + 1 == nbN/2 ? 0 : i1 + 1 ];
+        if ( n == n2 )
+          IsFind = true;
+      }
+      if(IsFind) {
+        return elem;
+      }
+      else {
+        // check using all nodes
+        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());
+          if ( faceNodes[ iNode++ ] == n1 )
+            i1 = iNode - 1;
+        }
+        for ( iNode = 0; iNode < 2; iNode++ ) {
+          if ( iNode ) // node before n1
+            n = faceNodes[ i1 == 0 ? nbN - 1 : i1 - 1 ];
+          else         // node after n1
+            n = faceNodes[ i1 + 1 == nbN ? 0 : i1 + 1 ];
+          if ( n == n2 ) {
+            return elem;
+          }
+        }
+      }
+    } // end analysis for quadratic elements
   }
   return 0;
 }
@@ -3812,9 +5071,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 );
 }
 
@@ -3842,12 +5101,12 @@ static bool findFreeBorder (const SMDS_MeshNode*                theFirstNode,
   theNodes.push_back( theFirstNode );
   theNodes.push_back( theSecondNode );
 
-  const SMDS_MeshNode* nodes [5], *nIgnore = theFirstNode, * nStart = theSecondNode;
+  //vector<const SMDS_MeshNode*> nodes;
+  const SMDS_MeshNode *nIgnore = theFirstNode, *nStart = theSecondNode;
   set < const SMDS_MeshElement* > foundElems;
   bool needTheLast = ( theLastNode != 0 );
 
-  while ( nStart != theLastNode )
-  {
+  while ( nStart != theLastNode ) {
     if ( nStart == theFirstNode )
       return !needTheLast;
 
@@ -3858,13 +5117,26 @@ static bool findFreeBorder (const SMDS_MeshNode*                theFirstNode,
     SMDS_ElemIteratorPtr invElemIt = nStart->facesIterator();
     while ( invElemIt->more() ) {
       const SMDS_MeshElement* e = invElemIt->next();
-      if ( e == curElem || foundElems.insert( e ).second )
-      {
+      if ( e == curElem || foundElems.insert( e ).second ) {
         // get nodes
-        SMDS_ElemIteratorPtr nIt = e->nodesIterator();
         int iNode = 0, nbNodes = e->NbNodes();
-        while ( nIt->more() )
-          nodes[ iNode++ ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
+        //const SMDS_MeshNode* nodes[nbNodes+1];
+        vector<const SMDS_MeshNode*> nodes(nbNodes+1);
+        
+        if(e->IsQuadratic()) {
+          const SMDS_QuadraticFaceOfNodes* F =
+            static_cast<const SMDS_QuadraticFaceOfNodes*>(e);
+          // use special nodes iterator
+          SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
+          while( anIter->more() ) {
+            nodes[ iNode++ ] = anIter->next();
+          }
+        }
+        else {
+          SMDS_ElemIteratorPtr nIt = e->nodesIterator();
+          while ( nIt->more() )
+            nodes[ iNode++ ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
+        }
         nodes[ iNode ] = nodes[ 0 ];
         // check 2 links
         for ( iNode = 0; iNode < nbNodes; iNode++ )
@@ -3980,6 +5252,9 @@ SMESH_MeshEditor::Sew_Error
                                    const bool           toCreatePolygons,
                                    const bool           toCreatePolyedrs)
 {
+  myLastCreatedElems.Clear();
+  myLastCreatedNodes.Clear();
+
   MESSAGE("::SewFreeBorder()");
   Sew_Error aResult = SEW_OK;
 
@@ -3999,8 +5274,7 @@ SMESH_MeshEditor::Sew_Error
     MESSAGE(" Free Border 1 not found " );
     aResult = SEW_BORDER1_NOT_FOUND;
   }
-  if (theSideIsFreeBorder)
-  {
+  if (theSideIsFreeBorder) {
     // Free border 2
     // --------------
     if (!findFreeBorder(theSideFirstNode, theSideSecondNode, theSideThirdNode,
@@ -4012,8 +5286,7 @@ SMESH_MeshEditor::Sew_Error
   if ( aResult != SEW_OK )
     return aResult;
 
-  if (!theSideIsFreeBorder)
-  {
+  if (!theSideIsFreeBorder) {
     // Side 2
     // --------------
 
@@ -4039,8 +5312,7 @@ SMESH_MeshEditor::Sew_Error
     gp_XYZ Ps2( theSideSecondNode->X(), theSideSecondNode->Y(), theSideSecondNode->Z() );
     double tol2 = 1.e-8;
     gp_Vec Vbs1( Pb1 - Ps1 ),Vbs2( Pb2 - Ps2 );
-    if ( Vbs1.SquareMagnitude() > tol2 || Vbs2.SquareMagnitude() > tol2 )
-    {
+    if ( Vbs1.SquareMagnitude() > tol2 || Vbs2.SquareMagnitude() > tol2 ) {
       // Need node movement.
 
       // find X and Z axes to create trsf
@@ -4069,8 +5341,7 @@ SMESH_MeshEditor::Sew_Error
         nBordXYZ.insert( TNodeXYZMap::value_type( n, xyz ));
       }
     }
-    else
-    {
+    else {
       // just insert nodes XYZ in the nBordXYZ map
       for ( nBordIt = bordNodes.begin(); nBordIt != bordNodes.end(); nBordIt++ ) {
         const SMDS_MeshNode* n = *nBordIt;
@@ -4123,13 +5394,27 @@ SMESH_MeshEditor::Sew_Error
         const SMDS_MeshNode** nodes = isVolume ? volume.GetNodes() : faceNodes;
         if ( isVolume ) // --volume
           hasVolumes = true;
-        else if ( nbNodes > 2 ) { // --face
+        //else if ( nbNodes > 2 ) { // --face
+        else if ( elem->GetType()==SMDSAbs_Face ) { // --face
           // retrieve all face nodes and find iPrevNode - an index of the prevSideNode
-          SMDS_ElemIteratorPtr nIt = elem->nodesIterator();
-          while ( nIt->more() ) {
-            nodes[ iNode ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
-            if ( nodes[ iNode++ ] == prevSideNode )
-              iPrevNode = iNode - 1;
+          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() ) {
+              nodes[ iNode ] = anIter->next();
+              if ( nodes[ iNode++ ] == prevSideNode )
+                iPrevNode = iNode - 1;
+            }
+          }
+          else {
+            SMDS_ElemIteratorPtr nIt = elem->nodesIterator();
+            while ( nIt->more() ) {
+              nodes[ iNode ] = static_cast<const SMDS_MeshNode*>( nIt->next() );
+              if ( nodes[ iNode++ ] == prevSideNode )
+                iPrevNode = iNode - 1;
+            }
           }
           // there are 2 links to check
           nbNodes = 2;
@@ -4142,7 +5427,8 @@ SMESH_MeshEditor::Sew_Error
           if ( isVolume ) {
             if ( !volume.IsLinked( n, prevSideNode ))
               continue;
-          } else {
+          }
+          else {
             if ( iNode ) // a node before prevSideNode
               n = nodes[ iPrevNode == 0 ? elem->NbNodes() - 1 : iPrevNode - 1 ];
             else         // a node after prevSideNode
@@ -4428,18 +5714,39 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
   il1 = il2 = i3 = i4 = -1;
   //const SMDS_MeshNode* nodes[ theFace->NbNodes() ];
   vector<const SMDS_MeshNode*> nodes( theFace->NbNodes() );
-  SMDS_ElemIteratorPtr nodeIt = theFace->nodesIterator();
-  while ( nodeIt->more() ) {
-    const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-    if ( n == theBetweenNode1 )
-      il1 = iNode;
-    else if ( n == theBetweenNode2 )
-      il2 = iNode;
-    else if ( i3 < 0 )
-      i3 = iNode;
-    else
-      i4 = iNode;
-    nodes[ iNode++ ] = n;
+
+  if(theFace->IsQuadratic()) {
+    const SMDS_QuadraticFaceOfNodes* F =
+      static_cast<const SMDS_QuadraticFaceOfNodes*>(theFace);
+    // use special nodes iterator
+    SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
+    while( anIter->more() ) {
+      const SMDS_MeshNode* n = anIter->next();
+      if ( n == theBetweenNode1 )
+        il1 = iNode;
+      else if ( n == theBetweenNode2 )
+        il2 = iNode;
+      else if ( i3 < 0 )
+        i3 = iNode;
+      else
+        i4 = iNode;
+      nodes[ iNode++ ] = n;
+    }
+  }
+  else {
+    SMDS_ElemIteratorPtr nodeIt = theFace->nodesIterator();
+    while ( nodeIt->more() ) {
+      const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+      if ( n == theBetweenNode1 )
+        il1 = iNode;
+      else if ( n == theBetweenNode2 )
+        il2 = iNode;
+      else if ( i3 < 0 )
+        i3 = iNode;
+      else
+        i4 = iNode;
+      nodes[ iNode++ ] = n;
+    }
   }
   if ( il1 < 0 || il2 < 0 || i3 < 0 )
     return ;
@@ -4468,25 +5775,48 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
 
     // add nodes of face up to first node of link
     bool isFLN = false;
-    nodeIt = theFace->nodesIterator();
-    while ( nodeIt->more() && !isFLN ) {
-      const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-      poly_nodes[iNode++] = n;
-      if (n == nodes[il1]) {
-        isFLN = true;
-      }
-    }
 
-    // add nodes to insert
-    list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
-    for (; nIt != aNodesToInsert.end(); nIt++) {
-      poly_nodes[iNode++] = *nIt;
+    if(theFace->IsQuadratic()) {
+      const SMDS_QuadraticFaceOfNodes* F =
+        static_cast<const SMDS_QuadraticFaceOfNodes*>(theFace);
+      // use special nodes iterator
+      SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
+      while( anIter->more()  && !isFLN ) {
+        const SMDS_MeshNode* n = anIter->next();
+        poly_nodes[iNode++] = n;
+        if (n == nodes[il1]) {
+          isFLN = true;
+        }
+      }
+      // add nodes to insert
+      list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
+      for (; nIt != aNodesToInsert.end(); nIt++) {
+        poly_nodes[iNode++] = *nIt;
+      }
+      // add nodes of face starting from last node of link
+      while ( anIter->more() ) {
+        poly_nodes[iNode++] = anIter->next();
+      }
     }
-
-    // add nodes of face starting from last node of link
-    while ( nodeIt->more() ) {
-      const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
-      poly_nodes[iNode++] = n;
+    else {
+      SMDS_ElemIteratorPtr nodeIt = theFace->nodesIterator();
+      while ( nodeIt->more() && !isFLN ) {
+        const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+        poly_nodes[iNode++] = n;
+        if (n == nodes[il1]) {
+          isFLN = true;
+        }
+      }
+      // add nodes to insert
+      list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
+      for (; nIt != aNodesToInsert.end(); nIt++) {
+        poly_nodes[iNode++] = *nIt;
+      }
+      // add nodes of face starting from last node of link
+      while ( nodeIt->more() ) {
+        const SMDS_MeshNode* n = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+        poly_nodes[iNode++] = n;
+      }
     }
 
     // edit or replace the face
@@ -4494,11 +5824,12 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
 
     if (theFace->IsPoly()) {
       aMesh->ChangePolygonNodes(theFace, poly_nodes);
-
-    else {
+    }
+    else {
       int aShapeId = FindShape( theFace );
 
       SMDS_MeshElement* newElem = aMesh->AddPolygonalFace(poly_nodes);
+      myLastCreatedElems.Append(newElem);
       if ( aShapeId && newElem )
         aMesh->SetMeshElementOnShape( newElem, aShapeId );
 
@@ -4507,82 +5838,196 @@ void SMESH_MeshEditor::InsertNodesIntoLink(const SMDS_MeshElement*     theFace,
     return;
   }
 
-  // put aNodesToInsert between theBetweenNode1 and theBetweenNode2
-  int nbLinkNodes = 2 + aNodesToInsert.size();
-  //const SMDS_MeshNode* linkNodes[ nbLinkNodes ];
-  vector<const SMDS_MeshNode*> linkNodes( nbLinkNodes );
-  linkNodes[ 0 ] = nodes[ il1 ];
-  linkNodes[ nbLinkNodes - 1 ] = nodes[ il2 ];
-  list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
-  for ( iNode = 1; nIt != aNodesToInsert.end(); nIt++ ) {
-    linkNodes[ iNode++ ] = *nIt;
-  }
-  // decide how to split a quadrangle: compare possible variants
-  // and choose which of splits to be a quadrangle
-  int i1, i2, iSplit, nbSplits = nbLinkNodes - 1, iBestQuad;
-  if ( nbFaceNodes == 3 )
-  {
-    iBestQuad = nbSplits;
-    i4 = i3;
-  }
-  else if ( nbFaceNodes == 4 )
-  {
-    SMESH::Controls::NumericalFunctorPtr aCrit( new SMESH::Controls::AspectRatio);
-    double aBestRate = DBL_MAX;
-    for ( int iQuad = 0; iQuad < nbSplits; iQuad++ ) {
-      i1 = 0; i2 = 1;
-      double aBadRate = 0;
-      // evaluate elements quality
-      for ( iSplit = 0; iSplit < nbSplits; iSplit++ ) {
-        if ( iSplit == iQuad ) {
-          SMDS_FaceOfNodes quad (linkNodes[ i1++ ],
-                                 linkNodes[ i2++ ],
-                                 nodes[ i3 ],
-                                 nodes[ i4 ]);
-          aBadRate += getBadRate( &quad, aCrit );
+  if( !theFace->IsQuadratic() ) {
+
+    // put aNodesToInsert between theBetweenNode1 and theBetweenNode2
+    int nbLinkNodes = 2 + aNodesToInsert.size();
+    //const SMDS_MeshNode* linkNodes[ nbLinkNodes ];
+    vector<const SMDS_MeshNode*> linkNodes( nbLinkNodes );
+    linkNodes[ 0 ] = nodes[ il1 ];
+    linkNodes[ nbLinkNodes - 1 ] = nodes[ il2 ];
+    list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
+    for ( iNode = 1; nIt != aNodesToInsert.end(); nIt++ ) {
+      linkNodes[ iNode++ ] = *nIt;
+    }
+    // decide how to split a quadrangle: compare possible variants
+    // and choose which of splits to be a quadrangle
+    int i1, i2, iSplit, nbSplits = nbLinkNodes - 1, iBestQuad;
+    if ( nbFaceNodes == 3 ) {
+      iBestQuad = nbSplits;
+      i4 = i3;
+    }
+    else if ( nbFaceNodes == 4 ) {
+      SMESH::Controls::NumericalFunctorPtr aCrit( new SMESH::Controls::AspectRatio);
+      double aBestRate = DBL_MAX;
+      for ( int iQuad = 0; iQuad < nbSplits; iQuad++ ) {
+        i1 = 0; i2 = 1;
+        double aBadRate = 0;
+        // evaluate elements quality
+        for ( iSplit = 0; iSplit < nbSplits; iSplit++ ) {
+          if ( iSplit == iQuad ) {
+            SMDS_FaceOfNodes quad (linkNodes[ i1++ ],
+                                   linkNodes[ i2++ ],
+                                   nodes[ i3 ],
+                                   nodes[ i4 ]);
+            aBadRate += getBadRate( &quad, aCrit );
+          }
+          else {
+            SMDS_FaceOfNodes tria (linkNodes[ i1++ ],
+                                   linkNodes[ i2++ ],
+                                   nodes[ iSplit < iQuad ? i4 : i3 ]);
+            aBadRate += getBadRate( &tria, aCrit );
+          }
         }
-        else {
-          SMDS_FaceOfNodes tria (linkNodes[ i1++ ],
-                                 linkNodes[ i2++ ],
-                                 nodes[ iSplit < iQuad ? i4 : i3 ]);
-          aBadRate += getBadRate( &tria, aCrit );
+        // choice
+        if ( aBadRate < aBestRate ) {
+          iBestQuad = iQuad;
+          aBestRate = aBadRate;
         }
       }
-      // choice
-      if ( aBadRate < aBestRate ) {
-        iBestQuad = iQuad;
-        aBestRate = aBadRate;
+    }
+    
+    // create new elements
+    SMESHDS_Mesh *aMesh = GetMeshDS();
+    int aShapeId = FindShape( theFace );
+    
+    i1 = 0; i2 = 1;
+    for ( iSplit = 0; iSplit < nbSplits - 1; iSplit++ ) {
+      SMDS_MeshElement* newElem = 0;
+      if ( iSplit == iBestQuad )
+        newElem = aMesh->AddFace (linkNodes[ i1++ ],
+                                  linkNodes[ i2++ ],
+                                  nodes[ i3 ],
+                                  nodes[ i4 ]);
+      else
+        newElem = aMesh->AddFace (linkNodes[ i1++ ],
+                                  linkNodes[ i2++ ],
+                                  nodes[ iSplit < iBestQuad ? i4 : i3 ]);
+      myLastCreatedElems.Append(newElem);
+      if ( aShapeId && newElem )
+        aMesh->SetMeshElementOnShape( newElem, aShapeId );
+    }
+    
+    // change nodes of theFace
+    const SMDS_MeshNode* newNodes[ 4 ];
+    newNodes[ 0 ] = linkNodes[ i1 ];
+    newNodes[ 1 ] = linkNodes[ i2 ];
+    newNodes[ 2 ] = nodes[ iSplit >= iBestQuad ? i3 : i4 ];
+    newNodes[ 3 ] = nodes[ i4 ];
+    aMesh->ChangeElementNodes( theFace, newNodes, iSplit == iBestQuad ? 4 : 3 );
+  } // end if(!theFace->IsQuadratic())
+  else { // theFace is quadratic
+    // we have to split theFace on simple triangles and one simple quadrangle
+    int tmp = il1/2;
+    int nbshift = tmp*2;
+    // shift nodes in nodes[] by nbshift
+    int i,j;
+    for(i=0; i<nbshift; i++) {
+      const SMDS_MeshNode* n = nodes[0];
+      for(j=0; j<nbFaceNodes-1; j++) {
+        nodes[j] = nodes[j+1];
       }
+      nodes[nbFaceNodes-1] = n;
     }
-  }
+    il1 = il1 - nbshift;
+    // now have to insert nodes between n0 and n1 or n1 and n2 (see below)
+    //   n0      n1     n2    n0      n1     n2
+    //     +-----+-----+        +-----+-----+ 
+    //      \         /         |           |
+    //       \       /          |           |
+    //      n5+     +n3       n7+           +n3
+    //         \   /            |           |
+    //          \ /             |           |
+    //           +              +-----+-----+
+    //           n4           n6      n5     n4
+
+    // create new elements
+    SMESHDS_Mesh *aMesh = GetMeshDS();
+    int aShapeId = FindShape( theFace );
 
-  // create new elements
-  SMESHDS_Mesh *aMesh = GetMeshDS();
-  int aShapeId = FindShape( theFace );
-
-  i1 = 0; i2 = 1;
-  for ( iSplit = 0; iSplit < nbSplits - 1; iSplit++ ) {
-    SMDS_MeshElement* newElem = 0;
-    if ( iSplit == iBestQuad )
-      newElem = aMesh->AddFace (linkNodes[ i1++ ],
-                                linkNodes[ i2++ ],
-                                nodes[ i3 ],
-                                nodes[ i4 ]);
-    else
-      newElem = aMesh->AddFace (linkNodes[ i1++ ],
-                                linkNodes[ i2++ ],
-                                nodes[ iSplit < iBestQuad ? i4 : i3 ]);
-    if ( aShapeId && newElem )
-      aMesh->SetMeshElementOnShape( newElem, aShapeId );
+    int n1,n2,n3;
+    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;
+        n2 = 2;
+        n3 = 3;
+      }
+      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;
+        n2 = 1;
+        n3 = 5;
+      }
+    }
+    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;
+        n2 = 2;
+        n3 = 3;
+      }
+      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;
+        n2 = 1;
+        n3 = 7;
+      }
+    }
+    // create needed triangles using n1,n2,n3 and inserted nodes
+    int nbn = 2 + aNodesToInsert.size();
+    //const SMDS_MeshNode* aNodes[nbn];
+    vector<const SMDS_MeshNode*> aNodes(nbn);
+    aNodes[0] = nodes[n1];
+    aNodes[nbn-1] = nodes[n2];
+    list<const SMDS_MeshNode*>::iterator nIt = aNodesToInsert.begin();
+    for ( iNode = 1; nIt != aNodesToInsert.end(); nIt++ ) {
+      aNodes[iNode++] = *nIt;
+    }
+    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 );
+    }
+    // remove old quadratic face
+    aMesh->RemoveElement(theFace);
   }
-
-  // change nodes of theFace
-  const SMDS_MeshNode* newNodes[ 4 ];
-  newNodes[ 0 ] = linkNodes[ i1 ];
-  newNodes[ 1 ] = linkNodes[ i2 ];
-  newNodes[ 2 ] = nodes[ iSplit >= iBestQuad ? i3 : i4 ];
-  newNodes[ 3 ] = nodes[ i4 ];
-  aMesh->ChangeElementNodes( theFace, newNodes, iSplit == iBestQuad ? 4 : 3 );
 }
 
 //=======================================================================
@@ -4593,6 +6038,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();
@@ -4628,7 +6076,8 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
                 poly_nodes.push_back(*nIt);
               }
             }
-          } else if (faceNodes[inode] == theBetweenNode2) {
+          }
+          else if (faceNodes[inode] == theBetweenNode2) {
             if (faceNodes[inode + 1] == theBetweenNode1) {
               nbInserted = theNodesToInsert.size();
 
@@ -4640,7 +6089,8 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
               }
               poly_nodes.push_back(*nIt);
             }
-          } else {
+          }
+          else {
           }
         }
       }
@@ -4653,11 +6103,13 @@ void SMESH_MeshEditor::UpdateVolumes (const SMDS_MeshNode*        theBetweenNode
     if (elem->IsPoly()) {
       aMesh->ChangePolyhedronNodes(elem, poly_nodes, quantities);
 
-    } else {
+    }
+    else {
       int aShapeId = FindShape( elem );
 
       SMDS_MeshElement* newElem =
         aMesh->AddPolyhedralVolume(poly_nodes, quantities);
+      myLastCreatedElems.Append(newElem);
       if (aShapeId && newElem)
         aMesh->SetMeshElementOnShape(newElem, aShapeId);
 
@@ -4666,19 +6118,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;
@@ -4705,28 +6488,45 @@ 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;
@@ -4775,8 +6575,7 @@ SMESH_MeshEditor::Sew_Error
     //     face does not exist
     // -------------------------------------------------------------------------
 
-    if ( !volSet->empty() )
-    {
+    if ( !volSet->empty() ) {
       //int nodeSetSize = nodeSet->size();
 
       // loop on given volumes
@@ -4799,13 +6598,12 @@ SMESH_MeshEditor::Sew_Error
             // no such a face is given but it still can exist, check it
             if ( nbNodes == 3 ) {
               aFreeFace = aMesh->FindFace( fNodes[0],fNodes[1],fNodes[2] );
-            } else if ( nbNodes == 4 ) {
+            }
+            else if ( nbNodes == 4 ) {
               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];
-              }
+            }
+            else {
+              vector<const SMDS_MeshNode *> poly_nodes ( fNodes, & fNodes[nbNodes]);
               aFreeFace = aMesh->FindFace(poly_nodes);
             }
           }
@@ -4813,13 +6611,12 @@ SMESH_MeshEditor::Sew_Error
             // create a temporary face
             if ( nbNodes == 3 ) {
               aFreeFace = aTmpFacesMesh.AddFace( fNodes[0],fNodes[1],fNodes[2] );
-            } else if ( nbNodes == 4 ) {
+            }
+            else if ( nbNodes == 4 ) {
               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];
-              }
+            }
+            else {
+              vector<const SMDS_MeshNode *> poly_nodes ( fNodes, & fNodes[nbNodes]);
               aFreeFace = aTmpFacesMesh.AddPolygonalFace(poly_nodes);
             }
           }
@@ -4845,7 +6642,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++;
               }
             }
@@ -4862,10 +6659,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() );
@@ -4967,8 +6764,7 @@ SMESH_MeshEditor::Sew_Error
   // loop on links in linkList; find faces by links and append links
   // of the found faces to linkList
   list< TPairOfNodes >::iterator linkIt[] = { linkList[0].begin(), linkList[1].begin() } ;
-  for ( ; linkIt[0] != linkList[0].end(); linkIt[0]++, linkIt[1]++ )
-  {
+  for ( ; linkIt[0] != linkList[0].end(); linkIt[0]++, linkIt[1]++ ) {
     TPairOfNodes link[] = { *linkIt[0], *linkIt[1] };
     long linkID = aLinkID_Gen.GetLinkID( link[0].first, link[0].second );
     if ( linkIdSet.find( linkID ) == linkIdSet.end() )
@@ -4980,8 +6776,12 @@ SMESH_MeshEditor::Sew_Error
     // ---------------------------------------------------------------
 
     const SMDS_MeshElement* face[] = { 0, 0 };
-    const SMDS_MeshNode* faceNodes[ 2 ][ 5 ];
-    const SMDS_MeshNode* notLinkNodes[ 2 ][ 2 ] = {{ 0, 0 },{ 0, 0 }} ;
+    //const SMDS_MeshNode* faceNodes[ 2 ][ 5 ];
+    vector<const SMDS_MeshNode*> fnodes1(9);
+    vector<const SMDS_MeshNode*> fnodes2(9);
+    //const SMDS_MeshNode* notLinkNodes[ 2 ][ 2 ] = {{ 0, 0 },{ 0, 0 }} ;
+    vector<const SMDS_MeshNode*> notLinkNodes1(6);
+    vector<const SMDS_MeshNode*> notLinkNodes2(6);
     int iLinkNode[2][2];
     for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides
       const SMDS_MeshNode* n1 = link[iSide].first;
@@ -5005,40 +6805,109 @@ SMESH_MeshEditor::Sew_Error
             faceSet->erase( f );
             // get face nodes and find ones of a link
             iNode = 0;
-            SMDS_ElemIteratorPtr nIt = f->nodesIterator();
-            while ( nIt->more() ) {
-              const SMDS_MeshNode* n =
-                static_cast<const SMDS_MeshNode*>( nIt->next() );
-              if ( n == n1 )
-                iLinkNode[ iSide ][ 0 ] = iNode;
-              else if ( n == n2 )
-                iLinkNode[ iSide ][ 1 ] = iNode;
-              else if ( notLinkNodes[ iSide ][ 0 ] )
-                notLinkNodes[ iSide ][ 1 ] = n;
-              else
-                notLinkNodes[ iSide ][ 0 ] = n;
-              faceNodes[ iSide ][ iNode++ ] = n;
+            int nbl = -1;
+            if(f->IsPoly()) {
+              if(iSide==0) {
+                fnodes1.resize(f->NbNodes()+1);
+                notLinkNodes1.resize(f->NbNodes()-2);
+              }
+              else {
+                fnodes2.resize(f->NbNodes()+1);
+                notLinkNodes2.resize(f->NbNodes()-2);
+              }
+            }
+            if(!f->IsQuadratic()) {
+              SMDS_ElemIteratorPtr nIt = f->nodesIterator();
+              while ( nIt->more() ) {
+                const SMDS_MeshNode* n =
+                  static_cast<const SMDS_MeshNode*>( nIt->next() );
+                if ( n == n1 ) {
+                  iLinkNode[ iSide ][ 0 ] = iNode;
+                }
+                else if ( n == n2 ) {
+                  iLinkNode[ iSide ][ 1 ] = iNode;
+                }
+                //else if ( notLinkNodes[ iSide ][ 0 ] )
+                //  notLinkNodes[ iSide ][ 1 ] = n;
+                //else
+                //  notLinkNodes[ iSide ][ 0 ] = n;
+                else {
+                  nbl++;
+                  if(iSide==0)
+                    notLinkNodes1[nbl] = n;
+                    //notLinkNodes1.push_back(n);
+                  else
+                    notLinkNodes2[nbl] = n;
+                    //notLinkNodes2.push_back(n);
+                }
+                //faceNodes[ iSide ][ iNode++ ] = n;
+                if(iSide==0) {
+                  fnodes1[iNode++] = n;
+                }
+                else {
+                  fnodes2[iNode++] = n;
+                }
+              }
+            }
+            else { // f->IsQuadratic()
+              const SMDS_QuadraticFaceOfNodes* F =
+                static_cast<const SMDS_QuadraticFaceOfNodes*>(f);
+              // use special nodes iterator
+              SMDS_NodeIteratorPtr anIter = F->interlacedNodesIterator();
+              while ( anIter->more() ) {
+                const SMDS_MeshNode* n =
+                  static_cast<const SMDS_MeshNode*>( anIter->next() );
+                if ( n == n1 ) {
+                  iLinkNode[ iSide ][ 0 ] = iNode;
+                }
+                else if ( n == n2 ) {
+                  iLinkNode[ iSide ][ 1 ] = iNode;
+                }
+                else {
+                  nbl++;
+                  if(iSide==0) {
+                    notLinkNodes1[nbl] = n;
+                  }
+                  else {
+                    notLinkNodes2[nbl] = n;
+                  }
+                }
+                if(iSide==0) {
+                  fnodes1[iNode++] = n;
+                }
+                else {
+                  fnodes2[iNode++] = n;
+                }
+              }
+            }
+            //faceNodes[ iSide ][ iNode ] = faceNodes[ iSide ][ 0 ];
+            if(iSide==0) {
+              fnodes1[iNode] = fnodes1[0];
+            }
+            else {
+              fnodes2[iNode] = fnodes1[0];
             }
-            faceNodes[ iSide ][ iNode ] = faceNodes[ iSide ][ 0 ];
           }
         }
       }
     }
+
     // check similarity of elements of the sides
     if (aResult == SEW_OK && ( face[0] && !face[1] ) || ( !face[0] && face[1] )) {
       MESSAGE("Correspondent face not found on side " << ( face[0] ? 1 : 0 ));
-      if ( nReplaceMap.size() == 2 ) // faces on input nodes not found
+      if ( nReplaceMap.size() == 2 ) // faces on input nodes not found
         aResult = ( face[0] ? SEW_BAD_SIDE2_NODES : SEW_BAD_SIDE1_NODES );
-      else
+      }
+      else {
         aResult = SEW_TOPO_DIFF_SETS_OF_ELEMENTS;
+      }
       break; // do not return because it s necessary to remove tmp faces
     }
 
     // set nodes to merge
     // -------------------
 
-    if ( face[0] && face[1] )
-    {
+    if ( face[0] && face[1] )  {
       int nbNodes = face[0]->NbNodes();
       if ( nbNodes != face[1]->NbNodes() ) {
         MESSAGE("Diff nb of face nodes");
@@ -5046,9 +6915,12 @@ SMESH_MeshEditor::Sew_Error
         break; // do not return because it s necessary to remove tmp faces
       }
       bool reverse[] = { false, false }; // order of notLinkNodes of quadrangle
-      if ( nbNodes == 3 )
+      if ( nbNodes == 3 ) {
+        //nReplaceMap.insert( TNodeNodeMap::value_type
+        //                   ( notLinkNodes[0][0], notLinkNodes[1][0] ));
         nReplaceMap.insert( TNodeNodeMap::value_type
-                           ( notLinkNodes[0][0], notLinkNodes[1][0] ));
+                           ( notLinkNodes1[0], notLinkNodes2[0] ));
+      }
       else {
         for ( iSide = 0; iSide < 2; iSide++ ) { // loop on 2 sides
           // analyse link orientation in faces
@@ -5062,34 +6934,44 @@ SMESH_MeshEditor::Sew_Error
             reverse[ iSide ] = !reverse[ iSide ];
         }
         if ( reverse[0] == reverse[1] ) {
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][0], notLinkNodes[1][0] ));
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][1], notLinkNodes[1][1] ));
+          //nReplaceMap.insert( TNodeNodeMap::value_type
+          //                   ( notLinkNodes[0][0], notLinkNodes[1][0] ));
+          //nReplaceMap.insert( TNodeNodeMap::value_type
+          //                   ( notLinkNodes[0][1], notLinkNodes[1][1] ));
+          for(int nn=0; nn<nbNodes-2; nn++) {
+            nReplaceMap.insert( TNodeNodeMap::value_type
+                             ( notLinkNodes1[nn], notLinkNodes2[nn] ));
+          }
         }
         else {
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][0], notLinkNodes[1][1] ));
-          nReplaceMap.insert( TNodeNodeMap::value_type
-                             ( notLinkNodes[0][1], notLinkNodes[1][0] ));
+          //nReplaceMap.insert( TNodeNodeMap::value_type
+          //                   ( notLinkNodes[0][0], notLinkNodes[1][1] ));
+          //nReplaceMap.insert( TNodeNodeMap::value_type
+          //                   ( notLinkNodes[0][1], notLinkNodes[1][0] ));
+          for(int nn=0; nn<nbNodes-2; nn++) {
+            nReplaceMap.insert( TNodeNodeMap::value_type
+                             ( notLinkNodes1[nn], notLinkNodes2[nbNodes-3-nn] ));
+          }
         }
       }
 
       // add other links of the faces to linkList
       // -----------------------------------------
 
-      const SMDS_MeshNode** nodes = faceNodes[ 0 ];
-      for ( iNode = 0; iNode < nbNodes; iNode++ )
-      {
-        linkID = aLinkID_Gen.GetLinkID( nodes[iNode], nodes[iNode+1] );
+      //const SMDS_MeshNode** nodes = faceNodes[ 0 ];
+      for ( iNode = 0; iNode < nbNodes; iNode++ )  {
+        //linkID = aLinkID_Gen.GetLinkID( nodes[iNode], nodes[iNode+1] );
+        linkID = aLinkID_Gen.GetLinkID( fnodes1[iNode], fnodes1[iNode+1] );
         pair< set<long>::iterator, bool > iter_isnew = linkIdSet.insert( linkID );
         if ( !iter_isnew.second ) { // already in a set: no need to process
           linkIdSet.erase( iter_isnew.first );
         }
         else // new in set == encountered for the first time: add
         {
-          const SMDS_MeshNode* n1 = nodes[ iNode ];
-          const SMDS_MeshNode* n2 = nodes[ iNode + 1];
+          //const SMDS_MeshNode* n1 = nodes[ iNode ];
+          //const SMDS_MeshNode* n2 = nodes[ iNode + 1];
+          const SMDS_MeshNode* n1 = fnodes1[ iNode ];
+          const SMDS_MeshNode* n2 = fnodes1[ iNode + 1];
           linkList[0].push_back ( TPairOfNodes( n1, n2 ));
           linkList[1].push_back ( TPairOfNodes( nReplaceMap[n1], nReplaceMap[n2] ));
         }
@@ -5121,8 +7003,7 @@ SMESH_MeshEditor::Sew_Error
   // loop on nodes replacement map
   TNodeNodeMap::iterator nReplaceMapIt = nReplaceMap.begin(), nnIt;
   for ( ; nReplaceMapIt != nReplaceMap.end(); nReplaceMapIt++ )
-    if ( (*nReplaceMapIt).first != (*nReplaceMapIt).second )
-    {
+    if ( (*nReplaceMapIt).first != (*nReplaceMapIt).second ) {
       const SMDS_MeshNode* nToRemove = (*nReplaceMapIt).first;
       nodeIDsToRemove.push_back( nToRemove->GetID() );
       // loop on elements sharing nToRemove
@@ -5131,7 +7012,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 =
@@ -5147,9 +7028,9 @@ SMESH_MeshEditor::Sew_Error
         //         elemIDsToRemove.push_back( e->GetID() );
         //       else
         if ( nbReplaced )
-          aMesh->ChangeElementNodes( e, nodes, nbNodes );
+          aMesh->ChangeElementNodes( e, & nodes[0], nbNodes );
       }
-  }
+    }
 
   Remove( nodeIDsToRemove, true );
 
index 9dfaf0af6ee1fe37caf132c6bd66fbaef6c53506..3c3c9568bc4fc5ee9cf41d70c0dc298c2f3bfc2a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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>
@@ -44,6 +46,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;
@@ -90,7 +95,7 @@ class SMESH_EXPORT 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);
 
@@ -100,7 +105,7 @@ class SMESH_EXPORT 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);
 
   /*!
@@ -109,7 +114,7 @@ class SMESH_EXPORT 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);
 
   /*!
@@ -124,7 +129,7 @@ class SMESH_EXPORT 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,
@@ -140,7 +145,7 @@ class SMESH_EXPORT 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,
@@ -190,7 +195,7 @@ class SMESH_EXPORT 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,
@@ -207,7 +212,7 @@ class SMESH_EXPORT 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,
@@ -227,7 +232,7 @@ class SMESH_EXPORT 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,
@@ -237,7 +242,7 @@ class SMESH_EXPORT 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
@@ -314,8 +319,8 @@ class SMESH_EXPORT 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,
@@ -341,6 +346,15 @@ class SMESH_EXPORT 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.
@@ -357,28 +371,68 @@ class SMESH_EXPORT 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()
 
+  /*!
+   * \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);
+
   int FindShape (const SMDS_MeshElement * theElem);
   // 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
index 4ae2101ec968743f1cf3f4f73b49d8101192b8ae..a94c23641f79542db5029cd9b89a408b54a1a4a4 100644 (file)
@@ -26,6 +26,8 @@
 #ifndef SMESH_MesherHelper_HeaderFile
 #define SMESH_MesherHelper_HeaderFile
 
+#include "SMESH_SMESH.hxx"
+
 #include <SMESH_Mesh.hxx>
 #include <TopoDS_Shape.hxx>
 #include <SMDS_MeshNode.hxx>
@@ -48,7 +50,7 @@ typedef map<NLink, const SMDS_MeshNode*>::iterator ItNLinkNode;
  * is called.
  */
 
-class SMESH_MesherHelper
+class SMESH_EXPORT SMESH_MesherHelper
 {
  public:
   // ---------- PUBLIC METHODS ----------
index 493799d3551c53b0f4a02aa8338318eb5c75391c..61b0fa841d9eeec6570bb5553fc6e14e0ee70cad 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 // File      : SMESH_Pattern.hxx
 // Created   : Mon Aug  2 10:30:00 2004
@@ -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::CLEANDEP );
-    }
-    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 753e0237a4f8bc72979afdb3006af60903c5b648..c74ffbe9f4975bd8a9b5d927614fc9f7d93d1b6f 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 // File      : SMESH_Pattern.hxx
 // Created   : Mon Aug  2 10:30:00 2004
@@ -159,6 +159,7 @@ class SMESH_EXPORT 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 c31a483f01ff65fb0e60adfe9ea4181e72f2ef7a..64978e395f73d4217c401d8e3d144d6e2fd48d8a 100644 (file)
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File:      SMESH_SequenceOfElemPtr.hxx
 // Created:   26.09.05 17:41:10
 // Author:    Sergey KUUL
-// Copyright: Airbus Industries 2004
 
 
 #ifndef SMESH_SequenceOfElemPtr_HeaderFile
@@ -30,7 +29,6 @@
 
 #include <NCollection_DefineSequence.hxx>
 
-//#include <Handle_SMDS_MeshElement.hxx>
 #include <SMDS_MeshElement.hxx>
 
 typedef const SMDS_MeshElement* SMDS_MeshElementPtr;
index 35d6d17cb1e5d3caba51658e630bf9b3b3af31a6..d4edf9502a913d869777bd04df2997251a64e799 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File:      SMESH_SequenceOfNode.hxx
 // Created:   11.11.05 10:00:04
index a5cb3c7bab8aeff95d79d853e95ae267aa75a63a..093d3c1cae1bb99bbec207cfebdcd1fc8d61cd6c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -52,7 +52,8 @@
 #include <TopTools_IndexedMapOfShape.hxx>
 #endif
 
-using namespace std;
+#include <Standard_Failure.hxx>
+#include <Standard_ErrorHandler.hxx>
 
 //=============================================================================
 /*!
@@ -77,8 +78,8 @@ SMESH_subMesh::SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
        }
        else
        {
-               _algoState = NO_ALGO;
-               _computeState = NOT_READY;
+          _algoState = NO_ALGO;
+          _computeState = NOT_READY;
        }
 }
 
@@ -90,8 +91,8 @@ SMESH_subMesh::SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
 
 SMESH_subMesh::~SMESH_subMesh()
 {
-       MESSAGE("SMESH_subMesh::~SMESH_subMesh");
-       // ****
+  MESSAGE("SMESH_subMesh::~SMESH_subMesh");
+  // ****
 }
 
 //=============================================================================
@@ -102,8 +103,8 @@ SMESH_subMesh::~SMESH_subMesh()
 
 int SMESH_subMesh::GetId() const
 {
-       //MESSAGE("SMESH_subMesh::GetId");
-       return _Id;
+  //MESSAGE("SMESH_subMesh::GetId");
+  return _Id;
 }
 
 //=============================================================================
@@ -114,19 +115,16 @@ int SMESH_subMesh::GetId() const
 
 SMESHDS_SubMesh * SMESH_subMesh::GetSubMeshDS()
 {
-       //MESSAGE("SMESH_subMesh::GetSubMeshDS");
-       if (_subMeshDS==NULL)
-       {
-               //MESSAGE("subMesh pointer still null, trying to get it...");
-               _subMeshDS = _meshDS->MeshElements(_subShape);  // may be null ...
-               if (_subMeshDS==NULL)
-               {
-                       MESSAGE("problem... subMesh still empty");
-                       //NRI   ASSERT(0);
-                       //NRI   throw SALOME_Exception(LOCALIZED(subMesh still empty));
-               }
-       }
-       return _subMeshDS;
+  // submesh appears in DS only when a mesher set nodes and elements on it
+  if (_subMeshDS==NULL)
+  {
+    _subMeshDS = _meshDS->MeshElements(_subShape);     // may be null ...
+//     if (_subMeshDS==NULL)
+//     {
+//       MESSAGE("problem... subMesh still empty");
+//     }
+  }
+  return _subMeshDS;
 }
 
 //=============================================================================
@@ -151,7 +149,6 @@ SMESHDS_SubMesh* SMESH_subMesh::CreateSubMeshDS()
 
 SMESH_subMesh *SMESH_subMesh::GetFirstToCompute()
 {
-  //MESSAGE("SMESH_subMesh::GetFirstToCompute");
   const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
   SMESH_subMesh *firstToCompute = 0;
 
@@ -159,13 +156,10 @@ SMESH_subMesh *SMESH_subMesh::GetFirstToCompute()
   for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
   {
     SMESH_subMesh *sm = (*itsub).second;
-    //       SCRUTE(sm->GetId());
-    //       SCRUTE(sm->GetComputeState());
     bool readyToCompute = (sm->GetComputeState() == READY_TO_COMPUTE);
     if (readyToCompute)
     {
       firstToCompute = sm;
-      //SCRUTE(sm->GetId());
       break;
     }
   }
@@ -191,22 +185,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;
@@ -424,20 +426,12 @@ void SMESH_subMesh::InsertDependence(const TopoDS_Shape aSubShape)
   int ordType = 9 - type;               // 2 = Vertex, 8 = CompSolid
   int cle = aSubMesh->GetId();
   cle += 10000000 * ordType;    // sort map by ordType then index
-  if (_mapDepend.find(cle) == _mapDepend.end())
+  if ( _mapDepend.find( cle ) == _mapDepend.end())
   {
     _mapDepend[cle] = aSubMesh;
-    const map < int, SMESH_subMesh * >&subMap = aSubMesh->DependsOn();
-    map < int, SMESH_subMesh * >::const_iterator im;
-    for (im = subMap.begin(); im != subMap.end(); im++)
-    {
-      int clesub = (*im).first;
-      SMESH_subMesh *sm = (*im).second;
-      if (_mapDepend.find(clesub) == _mapDepend.end())
-        _mapDepend[clesub] = sm;
-    }
+    const map < int, SMESH_subMesh * > & subMap = aSubMesh->DependsOn();
+    _mapDepend.insert( subMap.begin(), subMap.end() );
   }
-
 }
 
 //=============================================================================
@@ -446,7 +440,7 @@ void SMESH_subMesh::InsertDependence(const TopoDS_Shape aSubShape)
  */
 //=============================================================================
 
-const TopoDS_Shape & SMESH_subMesh::GetSubShape()
+const TopoDS_Shape & SMESH_subMesh::GetSubShape() const
 {
        //MESSAGE("SMESH_subMesh::GetSubShape");
        return _subShape;
@@ -484,20 +478,18 @@ bool SMESH_subMesh::IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
     return ( theHypothesis->GetShapeType() & (1<< theShapeType));
 
   // hypothesis
-  int aShapeDim = 100;
   switch ( theShapeType ) {
-  case TopAbs_EDGE: aShapeDim = 1; break;
-  case TopAbs_FACE: aShapeDim = 2; break;
-  case TopAbs_SHELL:aShapeDim = 3; break;
-  case TopAbs_SOLID:aShapeDim = 3; break;
-//   case TopAbs_VERTEX:
+  case TopAbs_EDGE: 
+  case TopAbs_FACE: 
+  case TopAbs_SHELL:
+  case TopAbs_SOLID:
+    return SMESH_Gen::GetShapeDim( theShapeType ) == theHypothesis->GetDim();
 //   case TopAbs_WIRE:
 //   case TopAbs_COMPSOLID:
 //   case TopAbs_COMPOUND:
-  default:  return false;
+  default:;
   }
-
-  return ( theHypothesis->GetDim() == aShapeDim );
+  return false;
 }
 
 //=============================================================================
@@ -555,7 +547,7 @@ SMESH_Hypothesis::Hypothesis_Status
     if ( ! CanAddHypothesis( anHyp ))
       return SMESH_Hypothesis::HYP_BAD_DIM;
 
-    if ( GetSimilarAttached( _subShape, anHyp ) )
+    if ( /*!anHyp->IsAuxiliary() &&*/ GetSimilarAttached( _subShape, anHyp ) )
       return SMESH_Hypothesis::HYP_ALREADY_EXIST;
 
     if ( !_meshDS->AddHypothesis(_subShape, anHyp))
@@ -564,9 +556,9 @@ SMESH_Hypothesis::Hypothesis_Status
     // Serve Propagation of 1D hypothesis
     if (event == ADD_HYP) {
       bool isPropagationOk = true;
-      string hypName = anHyp->GetName();
+      bool isPropagationHyp = ( strcmp( "Propagation", anHyp->GetName() ) == 0 );
 
-      if (hypName == "Propagation") {
+      if ( isPropagationHyp ) {
         TopExp_Explorer exp (_subShape, TopAbs_EDGE);
         TopTools_MapOfShape aMap;
         for (; exp.More(); exp.Next()) {
@@ -594,7 +586,11 @@ SMESH_Hypothesis::Hypothesis_Status
       } else {
       }
 
-      if (!isPropagationOk && ret < SMESH_Hypothesis::HYP_CONCURENT) {
+      if ( isPropagationOk ) {
+        if ( isPropagationHyp )
+          return ret; // nothing more to do for "Propagation" hypothesis
+      }
+      else if ( ret < SMESH_Hypothesis::HYP_CONCURENT) {
         ret = SMESH_Hypothesis::HYP_CONCURENT;
       }
     } // Serve Propagation of 1D hypothesis
@@ -613,7 +609,9 @@ SMESH_Hypothesis::Hypothesis_Status
     {
       bool isPropagationOk = true;
       SMESH_HypoFilter propagFilter( SMESH_HypoFilter::HasName( "Propagation" ));
-      if ( propagFilter.IsOk( anHyp, _subShape ))
+      bool isPropagationHyp = propagFilter.IsOk( anHyp, _subShape );
+
+      if ( isPropagationHyp )
       {
         TopExp_Explorer exp (_subShape, TopAbs_EDGE);
         TopTools_MapOfShape aMap;
@@ -635,10 +633,27 @@ SMESH_Hypothesis::Hypothesis_Status
         isPropagationOk = _father->RebuildPropagationChains();
       }
 
-      if (!isPropagationOk && ret < SMESH_Hypothesis::HYP_CONCURENT) {
+      if ( isPropagationOk ) {
+        if ( isPropagationHyp )
+          return ret; // nothing more to do for "Propagation" hypothesis
+      }
+      else if ( ret < SMESH_Hypothesis::HYP_CONCURENT) {
         ret = SMESH_Hypothesis::HYP_CONCURENT;
       }
     } // Serve Propagation of 1D hypothesis
+    else // event == REMOVE_ALGO
+    {
+      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();
+      }
+    }
   }
 
   // ------------------
@@ -713,7 +728,7 @@ SMESH_Hypothesis::Hypothesis_Status
         SetAlgoState(HYP_OK);
       if (SMESH_Hypothesis::IsStatusFatal( ret ))
         _meshDS->RemoveHypothesis(_subShape, anHyp);
-      else if (!_father->IsUsedHypothesis(  anHyp, _subShape ))
+      else if (!_father->IsUsedHypothesis( anHyp, this ))
       {
         _meshDS->RemoveHypothesis(_subShape, anHyp);
         ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
@@ -803,7 +818,7 @@ SMESH_Hypothesis::Hypothesis_Status
           // ret should be fatal: anHyp was not added
           ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
       }
-      else if (!_father->IsUsedHypothesis(  anHyp, _subShape ))
+      else if (!_father->IsUsedHypothesis(  anHyp, this ))
         ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
 
       if (SMESH_Hypothesis::IsStatusFatal( ret ))
@@ -867,7 +882,7 @@ SMESH_Hypothesis::Hypothesis_Status
       ASSERT(algo);
       if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
       {
-        if (_father->IsUsedHypothesis( anHyp, _subShape )) // new Hyp
+        if (_father->IsUsedHypothesis( anHyp, this )) // new Hyp
           modifiedHyp = true;
       }
       else
@@ -1001,9 +1016,7 @@ bool SMESH_subMesh::IsConform(const SMESH_Algo* theAlgo)
 
 void SMESH_subMesh::SetAlgoState(int state)
 {
-//     if (state != _oldAlgoState)
-//     int retc = ComputeStateEngine(MODIF_ALGO_STATE);
-               _algoState = state;
+  _algoState = state;
 }
 
 //=============================================================================
@@ -1019,7 +1032,7 @@ SMESH_Hypothesis::Hypothesis_Status
   SMESH_Hypothesis::Hypothesis_Status ret = SMESH_Hypothesis::HYP_OK;
   //EAP: a wire (dim==1) should notify edges (dim==1)
   //EAP: int dim = SMESH_Gen::GetShapeDim(_subShape);
-  if (/*EAP:dim > 1*/ _subShape.ShapeType() < TopAbs_EDGE )
+  if (_subShape.ShapeType() < TopAbs_EDGE ) // wire,face etc
   {
     const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
 
@@ -1044,18 +1057,15 @@ SMESH_Hypothesis::Hypothesis_Status
 
 void SMESH_subMesh::CleanDependsOn()
 {
-       MESSAGE("SMESH_subMesh::CleanDependsOn");
-       // **** parcourir les ancetres dans l'ordre de dépendance
+  //MESSAGE("SMESH_subMesh::CleanDependsOn");
 
-       ComputeStateEngine(CLEAN);
-
-       const map < int, SMESH_subMesh * >&dependson = DependsOn();
-       map < int, SMESH_subMesh * >::const_iterator its;
-       for (its = dependson.begin(); its != dependson.end(); its++)
-       {
-               SMESH_subMesh *sm = (*its).second;
-               sm->ComputeStateEngine(CLEAN);
-       }
+  const map < int, SMESH_subMesh * >&dependson = DependsOn();
+  map < int, SMESH_subMesh * >::const_iterator its;
+  for (its = dependson.begin(); its != dependson.end(); its++)
+  {
+    SMESH_subMesh *sm = (*its).second;
+    sm->ComputeStateEngine(CLEAN);
+  }
 }
 
 //=============================================================================
@@ -1110,31 +1120,33 @@ void SMESH_subMesh::DumpAlgoState(bool isMain)
        }
 }
 
-//=============================================================================
+//================================================================================
 /*!
- *
+ * \brief Remove nodes and elements bound to submesh
+  * \param subMesh - submesh containing nodes and elements
  */
-//=============================================================================
+//================================================================================
 
-static void removeSubMesh( SMESHDS_Mesh * meshDS, const TopoDS_Shape& subShape)
+static void cleanSubMesh( SMESH_subMesh * subMesh )
 {
-  SMESHDS_SubMesh * subMeshDS = meshDS->MeshElements(subShape);
-  if (subMeshDS!=NULL)
-  {
-    SMDS_ElemIteratorPtr ite=subMeshDS->GetElements();
-    while(ite->more())
-    {
-      const SMDS_MeshElement * elt = ite->next();
-      //MESSAGE( " RM elt: "<<elt->GetID()<<" ( "<<elt->NbNodes()<<" )" );
-      meshDS->RemoveElement(elt);
-    }
+  if (subMesh) {
+    if (SMESHDS_SubMesh * subMeshDS = subMesh->GetSubMeshDS()) {
+      SMESHDS_Mesh * meshDS = subMesh->GetFather()->GetMeshDS();
+      SMDS_ElemIteratorPtr ite = subMeshDS->GetElements();
+      while (ite->more()) {
+        const SMDS_MeshElement * elt = ite->next();
+        //MESSAGE( " RM elt: "<<elt->GetID()<<" ( "<<elt->NbNodes()<<" )" );
+        //meshDS->RemoveElement(elt);
+        meshDS->RemoveFreeElement(elt, subMeshDS);
+      }
 
-    SMDS_NodeIteratorPtr itn=subMeshDS->GetNodes();
-    while(itn->more())
-    {
-      const SMDS_MeshNode * node = itn->next();
-      //MESSAGE( " RM node: "<<node->GetID());
-      meshDS->RemoveNode(node);
+      SMDS_NodeIteratorPtr itn = subMeshDS->GetNodes();
+      while (itn->more()) {
+        const SMDS_MeshNode * node = itn->next();
+        //MESSAGE( " RM node: "<<node->GetID());
+        //meshDS->RemoveNode(node);
+        meshDS->RemoveFreeNode(node, subMeshDS);
+      }
     }
   }
 }
@@ -1174,21 +1186,21 @@ 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;
       }
       break;
-    case COMPUTE:                      // nothing to do
+    case COMPUTE:              // nothing to do
       break;
     case CLEAN:
-      RemoveSubMeshElementsAndNodes();
-      break;
-    case CLEANDEP:
       CleanDependants();
+      RemoveSubMeshElementsAndNodes();
       break;
     case SUBMESH_COMPUTED:     // nothing to do
       break;
@@ -1212,11 +1224,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);
@@ -1246,13 +1261,19 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
         }
         // compute
         CleanDependants();
-        //RemoveSubMeshElementsAndNodes();
-        //removeSubMesh( _meshDS, _subShape );
-        if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
-          ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
-        else
-          ret = algo->Compute((*_father), _subShape);
-
+        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;
+         }
+       }
         if (!ret)
         {
           MESSAGE("problem in algo execution: failed to compute");
@@ -1262,6 +1283,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 ) {
@@ -1281,6 +1303,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
       }
       break;
     case CLEAN:
+      CleanDependants();
       RemoveSubMeshElementsAndNodes();
       _computeState = NOT_READY;
       algo = gen->GetAlgo((*_father), _subShape);
@@ -1291,9 +1314,6 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
           _computeState = READY_TO_COMPUTE;
       }
       break;
-    case CLEANDEP:
-      CleanDependants();
-      break;
     case SUBMESH_COMPUTED:      // nothing to do
       break;
     case SUBMESH_RESTORED:
@@ -1320,20 +1340,16 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
     switch (event)
     {
     case MODIF_HYP:
-      CleanDependants();        // recursive recall with event CLEANDEP
-      algo = gen->GetAlgo((*_father), _subShape);
-      if (algo && !algo->NeedDescretBoundary())
-        CleanDependsOn(); // remove sub-mesh with event CLEANDEP
-      break;
     case MODIF_ALGO_STATE:
-      CleanDependants();        // recursive recall with event CLEANDEP
+      ComputeStateEngine( CLEAN );
       algo = gen->GetAlgo((*_father), _subShape);
       if (algo && !algo->NeedDescretBoundary())
-        CleanDependsOn(); // remove sub-mesh with event CLEANDEP
+        CleanDependsOn(); // clean sub-meshes with event CLEAN
       break;
-    case COMPUTE:                       // nothing to do
+    case COMPUTE:               // nothing to do
       break;
     case CLEAN:
+      CleanDependants();  // clean sub-meshes, dependant on this one, with event CLEAN
       RemoveSubMeshElementsAndNodes();
       _computeState = NOT_READY;
       algo = gen->GetAlgo((*_father), _subShape);
@@ -1344,9 +1360,6 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
           _computeState = READY_TO_COMPUTE;
       }
       break;
-    case CLEANDEP:
-      CleanDependants();        // recursive recall with event CLEANDEP
-      break;
     case SUBMESH_COMPUTED:      // nothing to do
       break;
     case SUBMESH_RESTORED:
@@ -1391,15 +1404,13 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
     case COMPUTE:      // nothing to do
       break;
     case CLEAN:
+      CleanDependants(); // submeshes dependent on me should be cleaned as well
       RemoveSubMeshElementsAndNodes();
       if (_algoState == HYP_OK)
         _computeState = READY_TO_COMPUTE;
       else
         _computeState = NOT_READY;
       break;
-    case CLEANDEP:
-      CleanDependants();
-      break;
     case SUBMESH_COMPUTED:      // allow retry compute
       if (_algoState == HYP_OK)
         _computeState = READY_TO_COMPUTE;
@@ -1535,19 +1546,22 @@ void SMESH_subMesh::UpdateDependantsState(const compute_event theEvent)
 
 void SMESH_subMesh::CleanDependants()
 {
+  int dimToClean = SMESH_Gen::GetShapeDim( _subShape ) + 1;
+
   TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
   for (; it.More(); it.Next())
   {
     const TopoDS_Shape& ancestor = it.Value();
-    // PAL8021. do not go upper than SOLID, else ComputeStateEngine(CLEANDEP)
-    // will erase mesh on other shapes in a compound
-    if ( ancestor.ShapeType() >= TopAbs_SOLID ) {
-      SMESH_subMesh *aSubMesh = _father->GetSubMeshContaining(ancestor);
-      if (aSubMesh)
-        aSubMesh->ComputeStateEngine(CLEANDEP);
+    if ( SMESH_Gen::GetShapeDim( ancestor ) == dimToClean ) {
+      // PAL8021. do not go upper than SOLID, else ComputeStateEngine(CLEAN)
+      // will erase mesh on other shapes in a compound
+      if ( ancestor.ShapeType() >= TopAbs_SOLID ) {
+        SMESH_subMesh *aSubMesh = _father->GetSubMeshContaining(ancestor);
+        if (aSubMesh)
+          aSubMesh->ComputeStateEngine(CLEAN);
+      }
     }
   }
-  ComputeStateEngine(CLEAN);
 }
 
 //=============================================================================
@@ -1560,22 +1574,23 @@ void SMESH_subMesh::RemoveSubMeshElementsAndNodes()
 {
   //SCRUTE(_subShape.ShapeType());
 
-  removeSubMesh( _meshDS, _subShape );
+  cleanSubMesh( this );
 
   // algo may bind a submesh not to _subShape, eg 3D algo
   // sets nodes on SHELL while _subShape may be SOLID
 
   int dim = SMESH_Gen::GetShapeDim( _subShape );
   int type = _subShape.ShapeType() + 1;
-  for ( ; type <= TopAbs_EDGE; type++)
+  for ( ; type <= TopAbs_EDGE; type++) {
     if ( dim == SMESH_Gen::GetShapeDim( (TopAbs_ShapeEnum) type ))
     {
       TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
       for ( ; exp.More(); exp.Next() )
-        removeSubMesh( _meshDS, exp.Current() );
+        cleanSubMesh( _father->GetSubMeshContaining( exp.Current() ));
     }
     else
       break;
+  }
 }
 
 //=======================================================================
@@ -1627,8 +1642,9 @@ TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlg
   if ( mainShape.IsSame( _subShape ))
     return _subShape;
 
+  const bool ignoreAuxiliaryHyps = false;
   list<const SMESHDS_Hypothesis*> aUsedHyp =
-    theAlgo->GetUsedHypothesis( *_father, _subShape ); // copy
+    theAlgo->GetUsedHypothesis( *_father, _subShape, ignoreAuxiliaryHyps ); // copy
 
   // put in a compound all shapes with the same hypothesis assigned
   // and a good ComputState
@@ -1646,7 +1662,7 @@ TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlg
 
     if (subMesh->GetComputeState() == READY_TO_COMPUTE &&
         anAlgo == theAlgo &&
-        anAlgo->GetUsedHypothesis( *_father, S ) == aUsedHyp)
+        anAlgo->GetUsedHypothesis( *_father, S, ignoreAuxiliaryHyps ) == aUsedHyp)
     {
       aBuilder.Add( aCompound, S );
     }
@@ -1657,26 +1673,31 @@ TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlg
 
 //=======================================================================
 //function : GetSimilarAttached
-//purpose  : return nb of hypotheses attached to theShape.
+//purpose  : return a hypothesis attached to theShape.
 //           If theHyp is provided, similar but not same hypotheses
-//           are countered; else only applicable ones having theHypType
-//           are countered
+//           is returned; else only applicable ones having theHypType
+//           is returned
 //=======================================================================
 
 const SMESH_Hypothesis* SMESH_subMesh::GetSimilarAttached(const TopoDS_Shape&      theShape,
                                                           const SMESH_Hypothesis * theHyp,
                                                           const int                theHypType)
 {
-  SMESH_HypoFilter filter;
-  filter.Init( SMESH_HypoFilter::HasType( theHyp ? theHyp->GetType() : theHypType ));
+  SMESH_HypoFilter hypoKind;
+  hypoKind.Init( hypoKind.HasType( theHyp ? theHyp->GetType() : theHypType ));
   if ( theHyp ) {
-    filter.And( SMESH_HypoFilter::HasDim( theHyp->GetDim() ));
-    filter.AndNot( SMESH_HypoFilter::Is( theHyp ));
+    hypoKind.And   ( hypoKind.HasDim( theHyp->GetDim() ));
+    hypoKind.AndNot( hypoKind.Is( theHyp ));
+    if ( theHyp->IsAuxiliary() )
+      hypoKind.And( hypoKind.HasName( theHyp->GetName() ));
+    else
+      hypoKind.AndNot( hypoKind.IsAuxiliary());
+  }
+  else {
+    hypoKind.And( hypoKind.IsApplicableTo( theShape ));
   }
-  else
-    filter.And( SMESH_HypoFilter::IsApplicableTo( theShape ));
 
-  return _father->GetHypothesis( theShape, filter, false );
+  return _father->GetHypothesis( theShape, hypoKind, false );
 }
 
 //=======================================================================
index 2bebf84d1a3c01044e913eaa98cfc9bf9ce69492..053389a50d13b87266797472a87a8b721f30cca0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -72,7 +72,7 @@ class SMESH_EXPORT SMESH_subMesh
   const map < int, SMESH_subMesh * >&DependsOn();
   //const map < int, SMESH_subMesh * >&Dependants();
 
-  const TopoDS_Shape & GetSubShape();
+  const TopoDS_Shape & GetSubShape() const;
 
 //  bool _vertexSet;                   // only for vertex subMesh, set to false for dim > 0
 
@@ -95,7 +95,7 @@ class SMESH_EXPORT SMESH_subMesh
   enum compute_event
   {
     MODIF_HYP, MODIF_ALGO_STATE, COMPUTE,
-    CLEAN, CLEANDEP, SUBMESH_COMPUTED, SUBMESH_RESTORED,
+    CLEAN, SUBMESH_COMPUTED, SUBMESH_RESTORED,
     MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
     };
 
@@ -105,17 +105,13 @@ class SMESH_EXPORT SMESH_subMesh
   SMESH_Hypothesis::Hypothesis_Status
     SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
 
-  int GetAlgoState() { return _algoState; }
+  int GetAlgoState() const { return _algoState; }
+  int GetComputeState() const { return _computeState; };
 
   void DumpAlgoState(bool isMain);
 
   bool ComputeStateEngine(int event);
 
-  int GetComputeState()
-  {
-    return _computeState;
-  };
-
   bool IsConform(const SMESH_Algo* theAlgo);
   // check if a conform mesh will be produced by the Algo
 
index bd52bc0428ce0c69386ac598d4806c0981aa6308..135b0fa85d350b3c653c1f3a553f5e03646e5447 100644 (file)
@@ -749,11 +749,11 @@ SMESH_Client::Update(bool theIsClear)
             int nbNodes = anIndexes[i++];
             // nodes
             //ASSERT( nbNodes < 9 );
-            const SMDS_MeshNode* aNodes[ nbNodes ];
+            vector<const SMDS_MeshNode*> aNodes( nbNodes );
             for ( int iNode = 0; iNode < nbNodes; iNode++ )
               aNodes[ iNode ] = FindNode( mySMDSMesh, anIndexes[i++] );
             // change
-            mySMDSMesh->ChangeElementNodes( elem, aNodes, nbNodes );
+            mySMDSMesh->ChangeElementNodes( elem, &aNodes[0], nbNodes );
           }
           break;
 
index cc17cf88c3d13e97775df0b15154ac2cfcb15629..b33e8c89870db2340c7fc6423786f9dbaac475a1 100644 (file)
 #include CORBA_SERVER_HEADER(SMESH_Gen)
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 
-#if defined WNT && defined WIN32 && defined SALOME_WNT_EXPORTS
-#define SMESHCLIENT_WNT_EXPORT __declspec( dllexport )
+#ifdef WNT
+# ifdef SMESHCLIENT_EXPORTS
+#  define SMESHCLIENT_EXPORT __declspec( dllexport )
+# else
+#  define SMESHCLIENT_EXPORT __declspec( dllimport )
+# endif
 #else
-#define SMESHCLIENT_WNT_EXPORT
+# define SMESHCLIENTEXPORT
 #endif
 
 class SMESHDS_Mesh;
@@ -45,7 +49,7 @@ class SMDS_Mesh;
 //=====================================================================
 // SMESH_Client : class definition
 //=====================================================================
-class SMESHCLIENT_WNT_EXPORT SMESH_Client  
+class SMESHCLIENT_EXPORT SMESH_Client  
 {
 public:
   static 
index 8ed411f00d870d3530efcb35dfc9293163006082..c1584c8e5f41c19bec97aca795721360c7b90def 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -72,8 +72,8 @@ EXPORT_HEADERS= \
        SMESHDS_DataMapOfShape.hxx
 
 # additionnal information to compil and link file
-CPPFLAGS += $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS += $(OCC_INCLUDES) $(KERNEL_CXXFLAGS) $(BOOST_CPPFLAGS)
+CXXFLAGS += $(OCC_CXXFLAGS) $(KERNEL_CXXFLAGS)
 LDFLAGS  += $(OCC_KERNEL_LIBS) -lSMDS
 
 
index b55b5af1c3694f09d57b5d540711f252dd094804..8ce255c7ff741894cf12305fa55fa4a91fb56eb5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -33,7 +33,7 @@
 using namespace std;
 
 //=======================================================================
-//function : 
+//function : Constructor
 //purpose  : 
 //=======================================================================
 SMESHDS_Command::SMESHDS_Command(const SMESHDS_CommandType aType):myType(aType),
@@ -41,6 +41,14 @@ myNumber(0)
 {
 }
 
+//=======================================================================
+//function : Destructor
+//purpose  : 
+//=======================================================================
+SMESHDS_Command::~SMESHDS_Command()
+{
+}
+
 //=======================================================================
 //function : 
 //purpose  : 
@@ -408,3 +416,199 @@ const list < double >&SMESHDS_Command::GetCoords()
 {
        return myReals;
 }
+
+
+//********************************************************************
+//*****             Methods for quadratic elements              ******
+//********************************************************************
+
+//=======================================================================
+//function : AddEdge
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddEdge(int NewEdgeID, int n1, int n2, int n12)
+{
+  if (!myType == SMESHDS_AddQuadEdge) {
+    MESSAGE("SMESHDS_Command::AddEdge : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewEdgeID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n12);
+  myNumber++;
+}
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddFace(int NewFaceID,
+                              int n1, int n2, int n3,
+                              int n12, int n23, int n31)
+{
+  if (!myType == SMESHDS_AddQuadTriangle) {
+    MESSAGE("SMESHDS_Command::AddFace : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewFaceID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n3);
+  myIntegers.push_back(n12);
+  myIntegers.push_back(n23);
+  myIntegers.push_back(n31);
+  myNumber++;
+}
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddFace(int NewFaceID,
+                              int n1, int n2, int n3, int n4,
+                              int n12, int n23, int n34, int n41)
+{
+  if (!myType == SMESHDS_AddQuadQuadrangle) {
+    MESSAGE("SMESHDS_Command::AddFace : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewFaceID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n3);
+  myIntegers.push_back(n4);
+  myIntegers.push_back(n12);
+  myIntegers.push_back(n23);
+  myIntegers.push_back(n34);
+  myIntegers.push_back(n41);
+  myNumber++;
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                                int n12, int n23, int n31,
+                                int n14, int n24, int n34)
+{
+  if (!myType == SMESHDS_AddQuadTetrahedron) {
+    MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewVolID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n3);
+  myIntegers.push_back(n4);
+  myIntegers.push_back(n12);
+  myIntegers.push_back(n23);
+  myIntegers.push_back(n31);
+  myIntegers.push_back(n14);
+  myIntegers.push_back(n24);
+  myIntegers.push_back(n34);
+  myNumber++;
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2,
+                                int n3, int n4, int n5,
+                                int n12, int n23, int n34, int n41,
+                                int n15, int n25, int n35, int n45)
+{
+  if (!myType == SMESHDS_AddQuadPyramid) {
+    MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewVolID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n3);
+  myIntegers.push_back(n4);
+  myIntegers.push_back(n5);
+  myIntegers.push_back(n12);
+  myIntegers.push_back(n23);
+  myIntegers.push_back(n34);
+  myIntegers.push_back(n41);
+  myIntegers.push_back(n15);
+  myIntegers.push_back(n25);
+  myIntegers.push_back(n35);
+  myIntegers.push_back(n45);
+  myNumber++;
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2,
+                                int n3, int n4, int n5,int n6,
+                                int n12, int n23, int n31,
+                                int n45, int n56, int n64,
+                                int n14, int n25, int n36)
+{
+  if (!myType == SMESHDS_AddQuadPentahedron) {
+    MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewVolID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n3);
+  myIntegers.push_back(n4);
+  myIntegers.push_back(n5);
+  myIntegers.push_back(n6);
+  myIntegers.push_back(n12);
+  myIntegers.push_back(n23);
+  myIntegers.push_back(n31);
+  myIntegers.push_back(n45);
+  myIntegers.push_back(n56);
+  myIntegers.push_back(n64);
+  myIntegers.push_back(n14);
+  myIntegers.push_back(n25);
+  myIntegers.push_back(n36);
+  myNumber++;
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Command::AddVolume(int NewVolID, int n1, int n2, int n3,
+                                int n4, int n5, int n6, int n7, int n8,
+                                int n12, int n23, int n34, int n41,
+                                int n56, int n67, int n78, int n85,
+                                int n15, int n26, int n37, int n48)
+{
+  if (!myType == SMESHDS_AddQuadHexahedron) {
+    MESSAGE("SMESHDS_Command::AddVolume : Bad Type");
+    return;
+  }
+  myIntegers.push_back(NewVolID);
+  myIntegers.push_back(n1);
+  myIntegers.push_back(n2);
+  myIntegers.push_back(n3);
+  myIntegers.push_back(n4);
+  myIntegers.push_back(n5);
+  myIntegers.push_back(n6);
+  myIntegers.push_back(n7);
+  myIntegers.push_back(n8);
+  myIntegers.push_back(n12);
+  myIntegers.push_back(n23);
+  myIntegers.push_back(n34);
+  myIntegers.push_back(n41);
+  myIntegers.push_back(n56);
+  myIntegers.push_back(n67);
+  myIntegers.push_back(n78);
+  myIntegers.push_back(n85);
+  myIntegers.push_back(n15);
+  myIntegers.push_back(n26);
+  myIntegers.push_back(n37);
+  myIntegers.push_back(n48);
+  myNumber++;
+}
+
index 3439cfc1c95256226026607d64f2d34209b6a5cf..a48bc6fedca404f9daadcaf45cb86b76cd13b737 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -56,6 +56,28 @@ class SMESHDS_EXPORT SMESHDS_Command
         void AddPolyhedralVolume (const int        ElementID,
                                   std::vector<int> nodes_ids,
                                   std::vector<int> quantities);
+        // special methods for quadratic elements
+       void AddEdge(int NewEdgeID, int n1, int n2, int n12);
+        void AddFace(int NewFaceID, int n1, int n2, int n3,
+                     int n12, int n23, int n31);
+        void AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
+                     int n12, int n23, int n34, int n41);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n12, int n23, int n31, int n14, int n24, int n34);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, int n5,
+                       int n12, int n23, int n34, int n41,
+                       int n15, int n25, int n35, int n45);
+        void AddVolume(int NewVolID, int n1, int n2, int n3,
+                       int n4, int n5, int n6,
+                       int n12, int n23, int n31,
+                       int n45, int n56, int n64,
+                       int n14, int n25, int n36);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n5, int n6, int n7, int n8,
+                       int n12, int n23, int n34, int n41,
+                       int n56, int n67, int n78, int n85,
+                       int n15, int n26, int n37, int n48);
+        
        void MoveNode(int NewNodeID, double x, double y, double z);
        void RemoveNode(int NodeID);
        void RemoveElement(int ElementID);
index f2c505b1f66f12444696adc8681c39b3a76244d4..9a11105b17001dfb06b1ba169ddd6026579b9b47 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 //#include <Standard_PrimitiveTypes.hxx>
 
 enum SMESHDS_CommandType { 
- SMESHDS_AddNode,
- SMESHDS_AddEdge,
- SMESHDS_AddTriangle,
- SMESHDS_AddQuadrangle,
- SMESHDS_AddPolygon,
- SMESHDS_AddTetrahedron,
- SMESHDS_AddPyramid,
- SMESHDS_AddPrism,
- SMESHDS_AddHexahedron,
- SMESHDS_AddPolyhedron,
- SMESHDS_RemoveNode,
- SMESHDS_RemoveElement,
- SMESHDS_MoveNode,
- SMESHDS_ChangeElementNodes,
- SMESHDS_ChangePolyhedronNodes,
- SMESHDS_Renumber
+  SMESHDS_AddNode,
+  SMESHDS_AddEdge,
+  SMESHDS_AddTriangle,
+  SMESHDS_AddQuadrangle,
+  SMESHDS_AddPolygon,
+  SMESHDS_AddTetrahedron,
+  SMESHDS_AddPyramid,
+  SMESHDS_AddPrism,
+  SMESHDS_AddHexahedron,
+  SMESHDS_AddPolyhedron,
+  SMESHDS_RemoveNode,
+  SMESHDS_RemoveElement,
+  SMESHDS_MoveNode,
+  SMESHDS_ChangeElementNodes,
+  SMESHDS_ChangePolyhedronNodes,
+  SMESHDS_Renumber,
+  // special types for quadratic elements
+  SMESHDS_AddQuadEdge,
+  SMESHDS_AddQuadTriangle,
+  SMESHDS_AddQuadQuadrangle,
+  SMESHDS_AddQuadTetrahedron,
+  SMESHDS_AddQuadPyramid,
+  SMESHDS_AddQuadPentahedron,
+  SMESHDS_AddQuadHexahedron
 };
 
 
index f533a72a7873fe8dd5f5f6da94c5188b5d457026..87fb9a0d43a28402c8848af156bd6fc086befb9a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -43,13 +43,13 @@ SMESHDS_Document::SMESHDS_Document(int UserID):myUserID(UserID)
 //function : NewMesh
 //purpose  : 
 //=======================================================================
-int SMESHDS_Document::NewMesh()
+int SMESHDS_Document::NewMesh(bool theIsEmbeddedMode)
 {
-       static int NewMeshID = 0;
-       NewMeshID++;
-       SMESHDS_Mesh *aNewMesh = new SMESHDS_Mesh(NewMeshID);
-       myMeshes[NewMeshID] = aNewMesh;
-       return NewMeshID;
+  static int aNewMeshID = 0;
+  aNewMeshID++;
+  SMESHDS_Mesh *aNewMesh = new SMESHDS_Mesh(aNewMeshID,theIsEmbeddedMode);
+  myMeshes[aNewMeshID] = aNewMesh;
+  return aNewMeshID;
 }
 
 //=======================================================================
index c7184a90ed6b747d5a2c3c0309eb43429e5b8f2b..67894d3dd8b074b7052d616723a52c063f6ea9c5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -38,7 +38,7 @@ class SMESHDS_EXPORT SMESHDS_Document
 {
   public:
        SMESHDS_Document(int UserID);
-       int NewMesh();
+       int NewMesh(bool theIsEmbeddedMode);
        void RemoveMesh(int MeshID);
        SMESHDS_Mesh * GetMesh(int MeshID);
        void AddHypothesis(SMESHDS_Hypothesis * H);
index 9c7dfa4a96e9ae2984f0e6d9dda4cc5dbee5aacd..1955f56bfd2e3f5935ee6d47bbd83a4547d813dc 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -113,7 +113,8 @@ bool SMESHDS_Group::Remove (const int theID)
   return true;
 }
 
-//=======================================================================
+
+//======================================================================
 //function : Clear
 //purpose  : 
 //=======================================================================
index 8ceabf52322994c3926d76a7253d52190cf07613..489feb377d2dc82c00a96dcbbbb62ad485f835c9 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index c4adcc53b6921a4ce7aeb6c6e789722b7cbfea1c..52b21e168e21262a413d0dc3fb1b07dfd90f2e2c 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 29c388e6a032b88fe37441ec98bec53556ee2171..2bba90532d447926f044ce75910fbef630212b26 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -68,6 +68,12 @@ class SMESHDS_EXPORT SMESHDS_GroupBase
 
   virtual ~SMESHDS_GroupBase() {}
 
+  void SetColorGroup (int theColorGroup)
+  { myColorGroup = theColorGroup;}
+  
+  int GetColorGroup() const
+  { return myColorGroup;}
+  
  protected:
   const SMDS_MeshElement* findInMesh (const int theID) const;
   void resetIterator();
@@ -86,7 +92,7 @@ class SMESHDS_EXPORT SMESHDS_GroupBase
   int                  myCurIndex;
   int                  myCurID;
   SMDS_ElemIteratorPtr myIterator;
-
+  int                  myColorGroup;
 };
 
 #endif
index 187357a6792f2bf368b566b3e70db5a322841627..ede4f05665ab127ce2c6051d0126127911a73804 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index cbec91ecef525e1e6860e6bd34f5790857ede2c6..eaee815f8be7c5c87b1f04a0bc71419b6b9a1ef8 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 29501c440465c78bef4a4bc9ee905c13b7e76a15..023ebf20be54622ad65fc01dbe7d1358b9b12f88 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 28a2964c25fa1429c4f96b594efe89cc51af8b11..904ee1ec9732da99b01a784ca5a87b3b89d9119b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index c22dd883e6ba41b36dd09ffdfd25aee6865bd7f5..36e185f8a94854228a98f33907a794cf86404c43 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -50,9 +50,19 @@ using namespace std;
 //function : Create
 //purpose  : 
 //=======================================================================
-SMESHDS_Mesh::SMESHDS_Mesh(int MeshID):myMeshID(MeshID)
+SMESHDS_Mesh::SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode):
+  myMeshID(theMeshID),
+  myIsEmbeddedMode(theIsEmbeddedMode),
+  myCurSubID(-1)
 {
-       myScript = new SMESHDS_Script();
+  myScript = new SMESHDS_Script(theIsEmbeddedMode);
+  myCurSubMesh = 0;
+}
+
+//=======================================================================
+bool SMESHDS_Mesh::IsEmbeddedMode()
+{
+  return myIsEmbeddedMode;
 }
 
 //=======================================================================
@@ -631,10 +641,10 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
 //purpose  : 
 //=======================================================================
 
-static void removeFromContainers (map<int,SMESHDS_SubMesh*> &      theSubMeshes,
-                                  set<SMESHDS_GroupBase*>&             theGroups,
-                                  list<const SMDS_MeshElement *> & theElems,
-                                  const bool                       isNode)
+static void removeFromContainers (map<int,SMESHDS_SubMesh*>&     theSubMeshes,
+                                  set<SMESHDS_GroupBase*>&       theGroups,
+                                  list<const SMDS_MeshElement*>& theElems,
+                                  const bool                     isNode)
 {
   if ( theElems.empty() )
     return;
@@ -706,6 +716,33 @@ void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
   removeFromContainers( myShapeIndexToSubMesh, myGroups, removedNodes, true );
 }
 
+//=======================================================================
+//function : RemoveFreeNode
+//purpose  : 
+//=======================================================================
+void SMESHDS_Mesh::RemoveFreeNode(const SMDS_MeshNode * n, SMESHDS_SubMesh * subMesh)
+{
+  myScript->RemoveNode(n->GetID());
+
+  // Rm from group
+  // Node can belong to several groups
+  if (!myGroups.empty()) {
+    set<SMESHDS_GroupBase*>::iterator GrIt = myGroups.begin();
+    for (; GrIt != myGroups.end(); GrIt++) {
+      SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>(*GrIt);
+      if (!group || group->IsEmpty()) continue;
+      group->SMDSGroup().Remove(n);
+    }
+  }
+
+  // Rm from sub-mesh
+  // Node should belong to only one sub-mesh
+  if( subMesh )
+    subMesh->RemoveNode(n);
+
+  SMDS_Mesh::RemoveFreeElement(n);
+}
+
 //=======================================================================
 //function : RemoveElement
 //purpose  : 
@@ -728,6 +765,108 @@ void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
   removeFromContainers( myShapeIndexToSubMesh, myGroups, removedElems, false );
 }
 
+//=======================================================================
+//function : RemoveFreeElement
+//purpose  : 
+//========================================================================
+void SMESHDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elt, SMESHDS_SubMesh * subMesh)
+{
+  if (elt->GetType() == SMDSAbs_Node) {
+    RemoveFreeNode( static_cast<const SMDS_MeshNode*>(elt), subMesh);
+    return;
+  }
+
+  if (hasConstructionEdges() || hasConstructionFaces())
+    // this methods is only for meshes without descendants
+    return;
+
+  myScript->RemoveElement(elt->GetID());
+
+  // Rm from group
+  // Node can belong to several groups
+  if (!myGroups.empty()) {
+    set<SMESHDS_GroupBase*>::iterator GrIt = myGroups.begin();
+    for (; GrIt != myGroups.end(); GrIt++) {
+      SMESHDS_Group* group = dynamic_cast<SMESHDS_Group*>(*GrIt);
+      if (!group || group->IsEmpty()) continue;
+      group->SMDSGroup().Remove(elt);
+    }
+  }
+
+  // Rm from sub-mesh
+  // Element should belong to only one sub-mesh
+  if( subMesh )
+    subMesh->RemoveElement(elt);
+
+  SMDS_Mesh::RemoveFreeElement(elt);
+}
+
+//================================================================================
+/*!
+ * \brief return submesh by shape
+  * \param shape - the subshape
+  * \retval SMESHDS_SubMesh* - the found submesh
+  *
+ * search of submeshes is optimized
+ */
+//================================================================================
+
+SMESHDS_SubMesh* SMESHDS_Mesh::getSubmesh( const TopoDS_Shape & shape )
+{
+  if ( shape.IsNull() )
+    return 0;
+
+  if ( !myCurSubShape.IsNull() && shape.IsSame( myCurSubShape ))
+    return myCurSubMesh;
+
+  getSubmesh( ShapeToIndex( shape ));
+  myCurSubShape = shape;
+  return myCurSubMesh;
+}
+
+//================================================================================
+/*!
+ * \brief return submesh by subshape index
+  * \param Index - the subshape index
+  * \retval SMESHDS_SubMesh* - the found submesh
+ * search of submeshes is optimized
+ */
+//================================================================================
+
+SMESHDS_SubMesh* SMESHDS_Mesh::getSubmesh( const int Index )
+{
+  //Update or build submesh
+  if ( Index != myCurSubID ) {
+    map<int,SMESHDS_SubMesh*>::iterator it = myShapeIndexToSubMesh.find( Index );
+    if ( it == myShapeIndexToSubMesh.end() )
+      it = myShapeIndexToSubMesh.insert( make_pair(Index, new SMESHDS_SubMesh() )).first;
+    myCurSubMesh = it->second;
+    myCurSubID = Index;
+    myCurSubShape.Nullify(); // myCurSubShape no more corresponds to submesh
+  }
+  return myCurSubMesh;
+}
+
+//================================================================================
+/*!
+ * \brief Add element or node to submesh
+  * \param elem - element to add
+  * \param subMesh - submesh to be filled in
+ */
+//================================================================================
+
+bool SMESHDS_Mesh::add(const SMDS_MeshElement* elem, SMESHDS_SubMesh* subMesh )
+{
+  if ( elem && subMesh ) {
+    if ( elem->GetType() == SMDSAbs_Node )
+      subMesh->AddNode( static_cast<const SMDS_MeshNode* >( elem ));
+    else
+      subMesh->AddElement( elem );
+    return true;
+  }
+  return false;
+}
+
 //=======================================================================
 //function : SetNodeOnVolume
 //purpose  : 
@@ -735,7 +874,8 @@ void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
 void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
                                    const TopoDS_Shell & S)
 {
-  SetNodeInVolume( aNode, myIndexToShape.FindIndex(S) );
+  if ( add( aNode, getSubmesh(S) ))
+    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
 }
 //=======================================================================
 //function : SetNodeOnVolume
@@ -744,7 +884,8 @@ void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
 void SMESHDS_Mesh::SetNodeInVolume(SMDS_MeshNode *      aNode,
                                    const TopoDS_Solid & S)
 {
-  SetNodeInVolume( aNode, myIndexToShape.FindIndex(S) );
+  if ( add( aNode, getSubmesh(S) ))
+    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( myCurSubID );
 }
 
 //=======================================================================
@@ -756,7 +897,8 @@ void SMESHDS_Mesh::SetNodeOnFace(SMDS_MeshNode *     aNode,
                                  double              u,
                                  double              v)
 {
-  SetNodeOnFace( aNode, myIndexToShape.FindIndex(S), u, v );
+  if ( add( aNode, getSubmesh(S) ))
+    aNode->SetPosition(SMDS_PositionPtr(new SMDS_FacePosition(myCurSubID, u, v)));
 }
 
 //=======================================================================
@@ -767,7 +909,8 @@ void SMESHDS_Mesh::SetNodeOnEdge(SMDS_MeshNode *     aNode,
                                  const TopoDS_Edge & S,
                                  double              u)
 {
-  SetNodeOnEdge( aNode, myIndexToShape.FindIndex(S), u );
+  if ( add( aNode, getSubmesh(S) ))
+    aNode->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition(myCurSubID, u)));
 }
 
 //=======================================================================
@@ -777,7 +920,8 @@ void SMESHDS_Mesh::SetNodeOnEdge(SMDS_MeshNode *     aNode,
 void SMESHDS_Mesh::SetNodeOnVertex(SMDS_MeshNode *       aNode,
                                    const TopoDS_Vertex & S)
 {
-  SetNodeOnVertex( aNode, myIndexToShape.FindIndex(S));
+  if ( add( aNode, getSubmesh(S) ))
+    aNode->SetPosition(SMDS_PositionPtr(new SMDS_VertexPosition(myCurSubID)));
 }
 
 //=======================================================================
@@ -786,7 +930,12 @@ void SMESHDS_Mesh::SetNodeOnVertex(SMDS_MeshNode *       aNode,
 //=======================================================================
 void SMESHDS_Mesh::UnSetNodeOnShape(const SMDS_MeshNode* aNode)
 {
-       MESSAGE("not implemented");
+  if ( aNode && aNode->GetPosition() ) {
+    map<int,SMESHDS_SubMesh*>::iterator it =
+      myShapeIndexToSubMesh.find( aNode->GetPosition()->GetShapeId() );
+    if ( it != myShapeIndexToSubMesh.end() )
+      it->second->RemoveNode( aNode );
+  }
 }
 
 //=======================================================================
@@ -794,32 +943,26 @@ void SMESHDS_Mesh::UnSetNodeOnShape(const SMDS_MeshNode* aNode)
 //purpose  : 
 //=======================================================================
 void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement * anElement,
-       const TopoDS_Shape & S)
+                                         const TopoDS_Shape &     S)
 {
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
-
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddElement(anElement);
+  add( anElement, getSubmesh(S) );
 }
 
 //=======================================================================
 //function : UnSetMeshElementOnShape
 //purpose  : 
 //=======================================================================
-void SMESHDS_Mesh::
-UnSetMeshElementOnShape(const SMDS_MeshElement * anElement,
-       const TopoDS_Shape & S)
+void SMESHDS_Mesh::UnSetMeshElementOnShape(const SMDS_MeshElement * elem,
+                                           const TopoDS_Shape &     S)
 {
-       if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-       int Index = myIndexToShape.FindIndex(S);
+  int Index = myIndexToShape.FindIndex(S);
 
-       if (myShapeIndexToSubMesh.find(Index)!=myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]->RemoveElement(anElement);
+  map<int,SMESHDS_SubMesh*>::iterator it = myShapeIndexToSubMesh.find( Index );
+  if ( it != myShapeIndexToSubMesh.end() )
+    if ( elem->GetType() == SMDSAbs_Node )
+      it->second->RemoveNode( static_cast<const SMDS_MeshNode* >( elem ));
+    else
+      it->second->RemoveElement( elem );
 }
 
 //=======================================================================
@@ -857,8 +1000,6 @@ bool SMESHDS_Mesh::IsGroupOfSubShapes (const TopoDS_Shape& theShape) const
 ///////////////////////////////////////////////////////////////////////////////
 SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const TopoDS_Shape & S) const
 {
-  if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
   int Index = ShapeToIndex(S);
   TShapeIndexToSubMesh::const_iterator anIter = myShapeIndexToSubMesh.find(Index);
   if (anIter != myShapeIndexToSubMesh.end())
@@ -872,10 +1013,9 @@ SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const TopoDS_Shape & S) const
 ///////////////////////////////////////////////////////////////////////////////
 SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const int Index)
 {
-  if (myShape.IsNull()) MESSAGE("myShape is NULL");
-
-  if (myShapeIndexToSubMesh.find(Index)!=myShapeIndexToSubMesh.end())
-    return myShapeIndexToSubMesh[Index];
+  TShapeIndexToSubMesh::const_iterator anIter = myShapeIndexToSubMesh.find(Index);
+  if (anIter != myShapeIndexToSubMesh.end())
+    return anIter->second;
   else
     return NULL;
 }
@@ -1005,7 +1145,7 @@ int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
 //function : IndexToShape
 //purpose  : 
 //=======================================================================
-TopoDS_Shape SMESHDS_Mesh::IndexToShape(int ShapeIndex)
+const TopoDS_Shape& SMESHDS_Mesh::IndexToShape(int ShapeIndex) const
 {
        return myIndexToShape.FindKey(ShapeIndex);
 }
@@ -1030,7 +1170,8 @@ int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 //=======================================================================
 void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
 {
-  addNodeToSubmesh( aNode, Index );
+  if ( add( aNode, getSubmesh( Index )))
+    const_cast<SMDS_Position*>( aNode->GetPosition().get() )->SetShapeId( Index );
 }
 
 //=======================================================================
@@ -1040,9 +1181,8 @@ void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
 void SMESHDS_Mesh::SetNodeOnFace(SMDS_MeshNode* aNode, int Index, double u, double v)
 {
   //Set Position on Node
-  aNode->SetPosition(SMDS_PositionPtr(new SMDS_FacePosition(Index, u, v)));
-
-  addNodeToSubmesh( aNode, Index );
+  if ( add( aNode, getSubmesh( Index )))
+    aNode->SetPosition(SMDS_PositionPtr(new SMDS_FacePosition(Index, u, v)));
 }
 
 //=======================================================================
@@ -1054,9 +1194,8 @@ void SMESHDS_Mesh::SetNodeOnEdge(SMDS_MeshNode* aNode,
                                  double         u)
 {
   //Set Position on Node
-  aNode->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition(Index, u)));
-
-  addNodeToSubmesh( aNode, Index );
+  if ( add( aNode, getSubmesh( Index )))
+    aNode->SetPosition(SMDS_PositionPtr(new SMDS_EdgePosition(Index, u)));
 }
 
 //=======================================================================
@@ -1066,9 +1205,8 @@ void SMESHDS_Mesh::SetNodeOnEdge(SMDS_MeshNode* aNode,
 void SMESHDS_Mesh::SetNodeOnVertex(SMDS_MeshNode* aNode, int Index)
 {
   //Set Position on Node
-  aNode->SetPosition(SMDS_PositionPtr(new SMDS_VertexPosition(Index)));
-
-  addNodeToSubmesh( aNode, Index );
+  if ( add( aNode, getSubmesh( Index )))
+    aNode->SetPosition(SMDS_PositionPtr(new SMDS_VertexPosition(Index)));
 }
 
 //=======================================================================
@@ -1076,14 +1214,469 @@ void SMESHDS_Mesh::SetNodeOnVertex(SMDS_MeshNode* aNode, int Index)
 //purpose  : 
 //=======================================================================
 void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
-       int Index)
+                                         int                     Index)
 {
-       if (myShapeIndexToSubMesh.find(Index)==myShapeIndexToSubMesh.end())
-               myShapeIndexToSubMesh[Index]=new SMESHDS_SubMesh();
-
-       myShapeIndexToSubMesh[Index]->AddElement(anElement);
+  add( anElement, getSubmesh( Index ));
 }
 
 SMESHDS_Mesh::~SMESHDS_Mesh()
 {
+  delete myScript;
+}
+
+
+
+//********************************************************************
+//********************************************************************
+//********                                                   *********
+//*****       Methods for addition of quadratic elements        ******
+//********                                                   *********
+//********************************************************************
+//********************************************************************
+
+//=======================================================================
+//function : AddEdgeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(int n1, int n2, int n12, int ID) 
+{
+  SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdgeWithID(n1,n2,n12,ID);
+  if(anElem) myScript->AddEdge(ID,n1,n2,n12);
+  return anElem;
+}
+
+//=======================================================================
+//function : AddEdge
+//purpose  : 
+//=======================================================================
+SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode* n1,
+                                     const SMDS_MeshNode* n2,
+                                     const SMDS_MeshNode* n12)
+{
+  SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdge(n1,n2,n12);
+  if(anElem) myScript->AddEdge(anElem->GetID(), 
+                              n1->GetID(), 
+                              n2->GetID(),
+                               n12->GetID());
+  return anElem;
+}
+
+//=======================================================================
+//function : AddEdgeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
+                                           const SMDS_MeshNode * n2, 
+                                           const SMDS_MeshNode * n12, 
+                                           int ID)
+{
+  return AddEdgeWithID(n1->GetID(),
+                      n2->GetID(),
+                       n12->GetID(),
+                      ID);
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
+                                     const SMDS_MeshNode * n2,
+                                     const SMDS_MeshNode * n3,
+                                     const SMDS_MeshNode * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n31)
+{
+  SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n12,n23,n31);
+  if(anElem) myScript->AddFace(anElem->GetID(), 
+                              n1->GetID(), n2->GetID(), n3->GetID(),
+                               n12->GetID(), n23->GetID(), n31->GetID());
+  return anElem;
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
+                                           int n12,int n23,int n31, int ID)
+{
+  SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1,n2,n3,n12,n23,n31,ID);
+  if(anElem) myScript->AddFace(ID,n1,n2,n3,n12,n23,n31);
+  return anElem;
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
+                                           const SMDS_MeshNode * n2,
+                                           const SMDS_MeshNode * n3,
+                                           const SMDS_MeshNode * n12,
+                                           const SMDS_MeshNode * n23,
+                                           const SMDS_MeshNode * n31, 
+                                           int ID)
+{
+  return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(),
+                       n12->GetID(), n23->GetID(), n31->GetID(),
+                      ID);
+}
+
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
+                                     const SMDS_MeshNode * n2,
+                                     const SMDS_MeshNode * n3,
+                                     const SMDS_MeshNode * n4,
+                                     const SMDS_MeshNode * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n34,
+                                     const SMDS_MeshNode * n41)
+{
+  SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n4,n12,n23,n34,n41);
+  if(anElem) myScript->AddFace(anElem->GetID(), 
+                              n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
+                               n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID());
+  return anElem;
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
+                                           int n12,int n23,int n34,int n41, int ID)
+{
+  SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1,n2,n3,n4,n12,n23,n34,n41,ID);
+  if(anElem) myScript->AddFace(ID,n1,n2,n3,n4,n12,n23,n34,n41);
+  return anElem;
+}
+
+//=======================================================================
+//function : AddFaceWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
+                                           const SMDS_MeshNode * n2,
+                                           const SMDS_MeshNode * n3,
+                                           const SMDS_MeshNode * n4,
+                                           const SMDS_MeshNode * n12,
+                                           const SMDS_MeshNode * n23,
+                                           const SMDS_MeshNode * n34, 
+                                           const SMDS_MeshNode * n41, 
+                                           int ID)
+{
+  return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
+                       n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
+                      ID);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
+                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n3,
+                                         const SMDS_MeshNode * n4,
+                                         const SMDS_MeshNode * n12,
+                                         const SMDS_MeshNode * n23,
+                                         const SMDS_MeshNode * n31,
+                                         const SMDS_MeshNode * n14, 
+                                         const SMDS_MeshNode * n24,
+                                         const SMDS_MeshNode * n34)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
+  if(anElem) myScript->AddVolume(anElem->GetID(), 
+                                n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
+                                n12->GetID(), n23->GetID(), n31->GetID(),
+                                 n14->GetID(), n24->GetID(), n34->GetID());
+  return anElem;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_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_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n12,n23,
+                                                       n31,n14,n24,n34,ID);
+  if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
+  return anElem;
+}
+       
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 2d order tetrahedron of 10 nodes
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                               const SMDS_MeshNode * n2,
+                                               const SMDS_MeshNode * n3,
+                                               const SMDS_MeshNode * n4,
+                                               const SMDS_MeshNode * n12,
+                                               const SMDS_MeshNode * n23,
+                                               const SMDS_MeshNode * n31,
+                                               const SMDS_MeshNode * n14, 
+                                               const SMDS_MeshNode * n24,
+                                               const SMDS_MeshNode * n34,
+                                               int ID)
+{
+  return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
+                         n12->GetID(), n23->GetID(), n31->GetID(),
+                         n14->GetID(), n24->GetID(), n34->GetID(), ID);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
+                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n3,
+                                         const SMDS_MeshNode * n4,
+                                         const SMDS_MeshNode * n5, 
+                                         const SMDS_MeshNode * n12,
+                                         const SMDS_MeshNode * n23,
+                                         const SMDS_MeshNode * n34,
+                                         const SMDS_MeshNode * n41,
+                                         const SMDS_MeshNode * n15, 
+                                         const SMDS_MeshNode * n25,
+                                         const SMDS_MeshNode * n35,
+                                         const SMDS_MeshNode * n45)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n5,n12,n23,n34,n41,
+                                                 n15,n25,n35,n45);
+  if(anElem)
+    myScript->AddVolume(anElem->GetID(), n1->GetID(), n2->GetID(),
+                        n3->GetID(), n4->GetID(), n5->GetID(),
+                        n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
+                        n15->GetID(), n25->GetID(), n35->GetID(), n45->GetID());
+  return anElem;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5,
+                                               int n12,int n23,int n34,int n41,
+                                               int n15,int n25,int n35,int n45, int ID)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,
+                                                       n12,n23,n34,n41,
+                                                       n15,n25,n35,n45,ID);
+  if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n5,n12,n23,n34,n41,
+                                 n15,n25,n35,n45);
+  return anElem;
+}
+       
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 2d order pyramid of 13 nodes
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                               const SMDS_MeshNode * n2,
+                                               const SMDS_MeshNode * n3,
+                                               const SMDS_MeshNode * n4,
+                                               const SMDS_MeshNode * n5, 
+                                               const SMDS_MeshNode * n12,
+                                               const SMDS_MeshNode * n23,
+                                               const SMDS_MeshNode * n34,
+                                               const SMDS_MeshNode * n41,
+                                               const SMDS_MeshNode * n15, 
+                                               const SMDS_MeshNode * n25,
+                                               const SMDS_MeshNode * n35,
+                                               const SMDS_MeshNode * n45,
+                                               int ID)
+{
+  return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
+                         n4->GetID(), n5->GetID(),
+                         n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
+                         n15->GetID(), n25->GetID(), n35->GetID(), n45->GetID(),
+                         ID);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::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 * n12,
+                                         const SMDS_MeshNode * n23,
+                                         const SMDS_MeshNode * n31, 
+                                         const SMDS_MeshNode * n45,
+                                         const SMDS_MeshNode * n56,
+                                         const SMDS_MeshNode * n64, 
+                                         const SMDS_MeshNode * n14,
+                                         const SMDS_MeshNode * n25,
+                                         const SMDS_MeshNode * n36)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n5,n6,n12,n23,n31,
+                                                 n45,n56,n64,n14,n25,n36);
+  if(anElem)
+    myScript->AddVolume(anElem->GetID(), n1->GetID(), n2->GetID(),
+                        n3->GetID(), n4->GetID(), n5->GetID(), n6->GetID(),
+                        n12->GetID(), n23->GetID(), n31->GetID(),
+                        n45->GetID(), n56->GetID(), n64->GetID(),
+                        n14->GetID(), n25->GetID(), n36->GetID());
+  return anElem;
 }
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
+                                               int n4, int n5, int n6,
+                                               int n12,int n23,int n31,
+                                               int n45,int n56,int n64,
+                                               int n14,int n25,int n36, int ID)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,
+                                                       n12,n23,n31,
+                                                       n45,n56,n64,
+                                                       n14,n25,n36,ID);
+  if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n5,n6,n12,n23,n31,
+                                 n45,n56,n64,n14,n25,n36);
+  return anElem;
+}
+       
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 2d order Pentahedron with 15 nodes
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                               const SMDS_MeshNode * n2,
+                                               const SMDS_MeshNode * n3,
+                                               const SMDS_MeshNode * n4,
+                                               const SMDS_MeshNode * n5, 
+                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n12,
+                                               const SMDS_MeshNode * n23,
+                                               const SMDS_MeshNode * n31, 
+                                               const SMDS_MeshNode * n45,
+                                               const SMDS_MeshNode * n56,
+                                               const SMDS_MeshNode * n64, 
+                                               const SMDS_MeshNode * n14,
+                                               const SMDS_MeshNode * n25,
+                                               const SMDS_MeshNode * n36,
+                                               int ID)
+{
+  return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
+                         n4->GetID(), n5->GetID(), n6->GetID(),
+                         n12->GetID(), n23->GetID(), n31->GetID(),
+                         n45->GetID(), n56->GetID(), n64->GetID(),
+                         n14->GetID(), n25->GetID(), n36->GetID(),
+                         ID);
+}
+
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::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 SMDS_MeshNode * n12,
+                                         const SMDS_MeshNode * n23,
+                                         const SMDS_MeshNode * n34,
+                                         const SMDS_MeshNode * n41, 
+                                         const SMDS_MeshNode * n56,
+                                         const SMDS_MeshNode * n67,
+                                         const SMDS_MeshNode * n78,
+                                         const SMDS_MeshNode * n85, 
+                                         const SMDS_MeshNode * n15,
+                                         const SMDS_MeshNode * n26,
+                                         const SMDS_MeshNode * n37,
+                                         const SMDS_MeshNode * n48)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n5,n6,n7,n8,
+                                                 n12,n23,n34,n41,
+                                                 n56,n67,n78,n85,
+                                                 n15,n26,n37,n48);
+  if(anElem)
+    myScript->AddVolume(anElem->GetID(), n1->GetID(), n2->GetID(),
+                        n3->GetID(), n4->GetID(), n5->GetID(),
+                        n6->GetID(), n7->GetID(), n8->GetID(),
+                        n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
+                        n56->GetID(), n67->GetID(), n78->GetID(), n85->GetID(),
+                        n15->GetID(), n26->GetID(), n37->GetID(), n48->GetID());
+  return anElem;
+}
+
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
+                                               int n5, int n6, int n7, int n8,
+                                               int n12,int n23,int n34,int n41,
+                                               int n56,int n67,int n78,int n85,
+                                               int n15,int n26,int n37,int n48, int ID)
+{
+  SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,n7,n8,
+                                                       n12,n23,n34,n41,
+                                                       n56,n67,n78,n85,
+                                                       n15,n26,n37,n48,ID);
+  if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n5,n6,n7,n8,n12,n23,n34,n41,
+                                 n56,n67,n78,n85,n15,n26,n37,n48);
+  return anElem;
+}
+       
+//=======================================================================
+//function : AddVolumeWithID
+//purpose  : 2d order Hexahedrons with 20 nodes
+//=======================================================================
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
+                                               const SMDS_MeshNode * n2,
+                                               const SMDS_MeshNode * n3,
+                                               const SMDS_MeshNode * n4,
+                                               const SMDS_MeshNode * n5, 
+                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n7,
+                                               const SMDS_MeshNode * n8, 
+                                               const SMDS_MeshNode * n12,
+                                               const SMDS_MeshNode * n23,
+                                               const SMDS_MeshNode * n34,
+                                               const SMDS_MeshNode * n41, 
+                                               const SMDS_MeshNode * n56,
+                                               const SMDS_MeshNode * n67,
+                                               const SMDS_MeshNode * n78,
+                                               const SMDS_MeshNode * n85, 
+                                               const SMDS_MeshNode * n15,
+                                               const SMDS_MeshNode * n26,
+                                               const SMDS_MeshNode * n37,
+                                               const SMDS_MeshNode * n48,
+                                               int ID)
+{
+  return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
+                         n5->GetID(), n6->GetID(), n7->GetID(), n8->GetID(),
+                         n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
+                         n56->GetID(), n67->GetID(), n78->GetID(), n85->GetID(),
+                         n15->GetID(), n26->GetID(), n37->GetID(), n48->GetID(),
+                         ID);
+}
+
+
index b6371a482985b4a53a5e169beba07f08a4259d9f..8f2c16d7a40a93fbf8c58ecfb0a008f0b71ca361 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -58,7 +58,9 @@ class SMESHDS_GroupBase;
 
 class SMESHDS_EXPORT SMESHDS_Mesh:public SMDS_Mesh{
 public:
-  SMESHDS_Mesh(int MeshID);
+  SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode);
+  bool IsEmbeddedMode();
+
   void ShapeToMesh(const TopoDS_Shape & S);
   bool AddHypothesis(const TopoDS_Shape & SS, const SMESHDS_Hypothesis * H);
   bool RemoveHypothesis(const TopoDS_Shape & S, const SMESHDS_Hypothesis * H);
@@ -73,6 +75,16 @@ public:
   virtual SMDS_MeshEdge* AddEdge(const SMDS_MeshNode * n1,
                                 const SMDS_MeshNode * n2);
   
+  // 2d order edge with 3 nodes: n12 - node between n1 and n2
+  virtual SMDS_MeshEdge* AddEdgeWithID(int n1, int n2, int n12, int ID);
+  virtual SMDS_MeshEdge* AddEdgeWithID(const SMDS_MeshNode * n1,
+                                      const SMDS_MeshNode * n2, 
+                                      const SMDS_MeshNode * n12, 
+                                      int ID);
+  virtual SMDS_MeshEdge* AddEdge(const SMDS_MeshNode * n1,
+                                 const SMDS_MeshNode * n2,
+                                 const SMDS_MeshNode * n12);
+
   virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int ID);
   virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
                                       const SMDS_MeshNode * n2,
@@ -93,6 +105,44 @@ public:
                                 const SMDS_MeshNode * n3,
                                 const SMDS_MeshNode * n4);
 
+  // 2d order triangle of 6 nodes
+  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3,
+                                       int n12,int n23,int n31, int ID);
+  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
+                                      const SMDS_MeshNode * n2,
+                                      const SMDS_MeshNode * n3, 
+                                      const SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n31, 
+                                      int ID);
+  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
+                                const SMDS_MeshNode * n2,
+                                const SMDS_MeshNode * n3,
+                                 const SMDS_MeshNode * n12,
+                                const SMDS_MeshNode * n23,
+                                const SMDS_MeshNode * n31);
+
+  // 2d order quadrangle
+  virtual SMDS_MeshFace* AddFaceWithID(int n1, int n2, int n3, int n4,
+                                       int n12,int n23,int n34,int n41, int ID);
+  virtual SMDS_MeshFace* AddFaceWithID(const SMDS_MeshNode * n1,
+                                      const SMDS_MeshNode * n2,
+                                      const SMDS_MeshNode * n3,
+                                      const SMDS_MeshNode * n4, 
+                                      const SMDS_MeshNode * n12,
+                                      const SMDS_MeshNode * n23,
+                                      const SMDS_MeshNode * n34,
+                                      const SMDS_MeshNode * n41, 
+                                      int ID);
+  virtual SMDS_MeshFace* AddFace(const SMDS_MeshNode * n1,
+                                const SMDS_MeshNode * n2,
+                                const SMDS_MeshNode * n3,
+                                const SMDS_MeshNode * n4,
+                                 const SMDS_MeshNode * n12,
+                                const SMDS_MeshNode * n23,
+                                const SMDS_MeshNode * n34,
+                                const SMDS_MeshNode * n41);
+
   virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int ID);
   virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
                                           const SMDS_MeshNode * n2,
@@ -151,6 +201,153 @@ public:
                                     const SMDS_MeshNode * n7,
                                     const SMDS_MeshNode * n8);
   
+  // 2d order tetrahedron of 10 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
+                                           int n12,int n23,int n31,
+                                           int n14,int n24,int n34, int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n31,
+                                          const SMDS_MeshNode * n14, 
+                                          const SMDS_MeshNode * n24,
+                                          const SMDS_MeshNode * n34, 
+                                          int ID);
+  virtual SMDS_MeshVolume* AddVolume(const SMDS_MeshNode * n1,
+                                    const SMDS_MeshNode * n2,
+                                    const SMDS_MeshNode * n3,
+                                    const SMDS_MeshNode * n4,
+                                     const SMDS_MeshNode * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n31,
+                                     const SMDS_MeshNode * n14, 
+                                     const SMDS_MeshNode * n24,
+                                     const SMDS_MeshNode * n34);
+
+  // 2d order pyramid of 13 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4, int n5,
+                                           int n12,int n23,int n34,int n41,
+                                           int n15,int n25,int n35,int n45,
+                                           int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4,
+                                          const SMDS_MeshNode * n5, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n34,
+                                          const SMDS_MeshNode * n41, 
+                                          const SMDS_MeshNode * n15,
+                                          const SMDS_MeshNode * n25,
+                                          const SMDS_MeshNode * n35,
+                                          const SMDS_MeshNode * n45, 
+                                          int ID);
+  virtual 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 * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n34,
+                                     const SMDS_MeshNode * n41, 
+                                     const SMDS_MeshNode * n15,
+                                     const SMDS_MeshNode * n25,
+                                     const SMDS_MeshNode * n35,
+                                     const SMDS_MeshNode * n45);
+
+  // 2d order Pentahedron with 15 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3,
+                                           int n4, int n5, int n6,
+                                           int n12,int n23,int n31,
+                                           int n45,int n56,int n64,
+                                           int n14,int n25,int n36,
+                                           int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4,
+                                          const SMDS_MeshNode * n5,
+                                          const SMDS_MeshNode * n6, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n31, 
+                                          const SMDS_MeshNode * n45,
+                                          const SMDS_MeshNode * n56,
+                                          const SMDS_MeshNode * n64, 
+                                          const SMDS_MeshNode * n14,
+                                          const SMDS_MeshNode * n25,
+                                          const SMDS_MeshNode * n36, 
+                                          int ID);
+  virtual 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 * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n31, 
+                                     const SMDS_MeshNode * n45,
+                                     const SMDS_MeshNode * n56,
+                                     const SMDS_MeshNode * n64, 
+                                     const SMDS_MeshNode * n14,
+                                     const SMDS_MeshNode * n25,
+                                     const SMDS_MeshNode * n36);
+
+  // 2d order Hexahedrons with 20 nodes
+  virtual SMDS_MeshVolume* AddVolumeWithID(int n1, int n2, int n3, int n4,
+                                           int n5, int n6, int n7, int n8,
+                                           int n12,int n23,int n34,int n41,
+                                           int n56,int n67,int n78,int n85,
+                                           int n15,int n26,int n37,int n48,
+                                           int ID);
+  virtual SMDS_MeshVolume* AddVolumeWithID(const SMDS_MeshNode * n1,
+                                          const SMDS_MeshNode * n2,
+                                          const SMDS_MeshNode * n3,
+                                          const SMDS_MeshNode * n4,
+                                          const SMDS_MeshNode * n5,
+                                          const SMDS_MeshNode * n6,
+                                          const SMDS_MeshNode * n7,
+                                          const SMDS_MeshNode * n8, 
+                                          const SMDS_MeshNode * n12,
+                                          const SMDS_MeshNode * n23,
+                                          const SMDS_MeshNode * n34,
+                                          const SMDS_MeshNode * n41, 
+                                          const SMDS_MeshNode * n56,
+                                          const SMDS_MeshNode * n67,
+                                          const SMDS_MeshNode * n78,
+                                          const SMDS_MeshNode * n85, 
+                                          const SMDS_MeshNode * n15,
+                                          const SMDS_MeshNode * n26,
+                                          const SMDS_MeshNode * n37,
+                                          const SMDS_MeshNode * n48, 
+                                          int ID);
+  virtual 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 SMDS_MeshNode * n12,
+                                     const SMDS_MeshNode * n23,
+                                     const SMDS_MeshNode * n34,
+                                     const SMDS_MeshNode * n41, 
+                                     const SMDS_MeshNode * n56,
+                                     const SMDS_MeshNode * n67,
+                                     const SMDS_MeshNode * n78,
+                                     const SMDS_MeshNode * n85, 
+                                     const SMDS_MeshNode * n15,
+                                     const SMDS_MeshNode * n26,
+                                     const SMDS_MeshNode * n37,
+                                     const SMDS_MeshNode * n48);
+
   virtual SMDS_MeshFace* AddPolygonalFaceWithID (std::vector<int> nodes_ids,
                                                  const int        ID);
 
@@ -176,6 +373,14 @@ public:
   void MoveNode(const SMDS_MeshNode *, double x, double y, double z);
   virtual void RemoveNode(const SMDS_MeshNode *);
   void RemoveElement(const SMDS_MeshElement *);
+
+  /*! Remove only the given element/node and only if it is free.
+   *  Methods do not work for meshes with descendants.
+   *  Implemented for fast cleaning of meshes.
+   */
+  void RemoveFreeNode(const SMDS_MeshNode *, SMESHDS_SubMesh *);
+  void RemoveFreeElement(const SMDS_MeshElement *, SMESHDS_SubMesh *);
+
   bool ChangeElementNodes(const SMDS_MeshElement * elem,
                           const SMDS_MeshNode    * nodes[],
                           const int                nbnodes);
@@ -209,7 +414,7 @@ public:
   SMESHDS_Script * GetScript();
   void ClearScript();
   int ShapeToIndex(const TopoDS_Shape & aShape) const;
-  TopoDS_Shape IndexToShape(int ShapeIndex);
+  const TopoDS_Shape& IndexToShape(int ShapeIndex) const;
 
   SMESHDS_SubMesh * NewSubMesh(int Index);
   int AddCompoundSubmesh(const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
@@ -236,8 +441,8 @@ private:
     if ( it == myShapeIndexToSubMesh.end() )
       it = myShapeIndexToSubMesh.insert( make_pair(Index, new SMESHDS_SubMesh() )).first;
     it->second->AddNode( aNode ); // add aNode to submesh
-  }
-
+    }
+  
   /*int HashCode( const TopoDS_Shape& S, const Standard_Integer theUpper ) const
   {
       return S.HashCode(2147483647);
@@ -261,6 +466,16 @@ private:
   TGroups myGroups;
 
   SMESHDS_Script*            myScript;
+  bool                       myIsEmbeddedMode;
+
+  // optimize addition of nodes/elements to submeshes by, SetNodeInVolume() etc:
+  // avoid search of submeshes in maps
+  bool add( const SMDS_MeshElement* elem, SMESHDS_SubMesh* subMesh );
+  SMESHDS_SubMesh* getSubmesh( const TopoDS_Shape & shape);
+  SMESHDS_SubMesh* getSubmesh( const int            Index );
+  int                        myCurSubID;
+  TopoDS_Shape               myCurSubShape;
+  SMESHDS_SubMesh*           myCurSubMesh;
 };
 
 
index 369ab4697cbe43cb4641553849c6ec89ccc0bb3d..d5eea6ecc1308341d15b5e54b143dca13b1e27db 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 using namespace std;
 
+//=======================================================================
+//function : Constructor
+//purpose  : 
+//=======================================================================
+SMESHDS_Script::SMESHDS_Script(bool theIsEmbeddedMode):
+  myIsEmbeddedMode(theIsEmbeddedMode)
+{}
+
+//=======================================================================
+//function : Destructor
+//purpose  : 
+//=======================================================================
+SMESHDS_Script::~SMESHDS_Script()
+{
+  Clear();
+}
+
+//=======================================================================
+void SMESHDS_Script::SetModified(bool theModified)
+{
+  myIsModified = theModified;
+}
+
+//=======================================================================
+bool SMESHDS_Script::IsModified()
+{
+  return myIsModified;
+}
+
 //=======================================================================
 //function : getCommand
 //purpose  : 
@@ -60,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);
 }
 
@@ -69,6 +102,10 @@ void SMESHDS_Script::AddNode(int NewNodeID, double x, double y, double z)
 //=======================================================================
 void SMESHDS_Script::AddEdge(int NewEdgeID, int idnode1, int idnode2)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddEdge)->AddEdge(NewEdgeID, idnode1, idnode2);
 }
 
@@ -79,6 +116,10 @@ void SMESHDS_Script::AddEdge(int NewEdgeID, int idnode1, int idnode2)
 void SMESHDS_Script::AddFace(int NewFaceID,
                              int idnode1, int idnode2, int idnode3)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddTriangle)->AddFace(NewFaceID,
                                            idnode1, idnode2, idnode3);
 }
@@ -91,6 +132,10 @@ void SMESHDS_Script::AddFace(int NewFaceID,
                              int idnode1, int idnode2,
                              int idnode3, int idnode4)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddQuadrangle)->AddFace(NewFaceID,
                                              idnode1, idnode2,
                                              idnode3, idnode4);
@@ -104,6 +149,10 @@ void SMESHDS_Script::AddVolume(int NewID,
                                int idnode1, int idnode2,
                                int idnode3, int idnode4)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddTetrahedron)->AddVolume(NewID,
                                                 idnode1, idnode2,
                                                 idnode3, idnode4);
@@ -117,6 +166,10 @@ void SMESHDS_Script::AddVolume(int NewID,
                                int idnode1, int idnode2,
                                int idnode3, int idnode4, int idnode5)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddPyramid)->AddVolume(NewID,
                                             idnode1, idnode2,
                                             idnode3, idnode4, idnode5);
@@ -130,6 +183,10 @@ void SMESHDS_Script::AddVolume(int NewID,
                                int idnode1, int idnode2, int idnode3,
                                int idnode4, int idnode5, int idnode6)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddPrism)->AddVolume(NewID,
                                           idnode1, idnode2, idnode3,
                                           idnode4, idnode5, idnode6);
@@ -143,6 +200,10 @@ void SMESHDS_Script::AddVolume(int NewID,
                                int idnode1, int idnode2, int idnode3, int idnode4,
                                int idnode5, int idnode6, int idnode7, int idnode8)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddHexahedron)->AddVolume(NewID,
                                                idnode1, idnode2, idnode3, idnode4,
                                                idnode5, idnode6, idnode7, idnode8);
@@ -154,6 +215,10 @@ void SMESHDS_Script::AddVolume(int NewID,
 //=======================================================================
 void SMESHDS_Script::AddPolygonalFace (int NewFaceID, std::vector<int> nodes_ids)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddPolygon)->AddPolygonalFace(NewFaceID, nodes_ids);
 }
 
@@ -165,6 +230,10 @@ void SMESHDS_Script::AddPolyhedralVolume (int NewID,
                                           std::vector<int> nodes_ids,
                                           std::vector<int> quantities)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_AddPolyhedron)->AddPolyhedralVolume
     (NewID, nodes_ids, quantities);
 }
@@ -175,6 +244,10 @@ void SMESHDS_Script::AddPolyhedralVolume (int NewID,
 //=======================================================================
 void SMESHDS_Script::MoveNode(int NewNodeID, double x, double y, double z)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_MoveNode)->MoveNode(NewNodeID, x, y, z);
 }
 
@@ -184,6 +257,10 @@ void SMESHDS_Script::MoveNode(int NewNodeID, double x, double y, double z)
 //=======================================================================
 void SMESHDS_Script::RemoveNode(int ID)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_RemoveNode)->RemoveNode(ID);
 }
 
@@ -193,6 +270,10 @@ void SMESHDS_Script::RemoveNode(int ID)
 //=======================================================================
 void SMESHDS_Script::RemoveElement(int ElementID)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_RemoveElement)->RemoveElement(ElementID);
 }
 
@@ -203,6 +284,10 @@ void SMESHDS_Script::RemoveElement(int ElementID)
 
 void SMESHDS_Script::ChangeElementNodes(int ElementID, int nodes[], int nbnodes)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_ChangeElementNodes)->ChangeElementNodes( ElementID, nodes, nbnodes );
 }
 
@@ -214,6 +299,10 @@ void SMESHDS_Script::ChangePolyhedronNodes (const int        ElementID,
                                             std::vector<int> nodes_ids,
                                             std::vector<int> quantities)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_ChangePolyhedronNodes)->ChangePolyhedronNodes
     (ElementID, nodes_ids, quantities);
 }
@@ -222,9 +311,12 @@ void SMESHDS_Script::ChangePolyhedronNodes (const int        ElementID,
 //function : Renumber
 //purpose  : 
 //=======================================================================
-
 void SMESHDS_Script::Renumber (const bool isNodes, const int startID, const int deltaID)
 {
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
   getCommand(SMESHDS_Renumber)->Renumber( isNodes, startID, deltaID );
 }
 
@@ -234,7 +326,11 @@ void SMESHDS_Script::Renumber (const bool isNodes, const int startID, const int
 //=======================================================================
 void SMESHDS_Script::Clear()
 {
-       myCommands.clear();
+  list<SMESHDS_Command*>::iterator anIt = myCommands.begin();
+  for (; anIt != myCommands.end(); anIt++) {
+    delete (*anIt);
+  }
+  myCommands.clear();
 }
 
 //=======================================================================
@@ -243,5 +339,128 @@ void SMESHDS_Script::Clear()
 //=======================================================================
 const list<SMESHDS_Command*>& SMESHDS_Script::GetCommands()
 {
-       return myCommands;
+  return myCommands;
+}
+
+
+//********************************************************************
+//*****             Methods for quadratic elements              ******
+//********************************************************************
+
+//=======================================================================
+//function : AddEdge
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddEdge(int NewEdgeID, int n1, int n2, int n12)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadEdge)->AddEdge(NewEdgeID, n1, n2, n12);
+}
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddFace(int NewFaceID, int n1, int n2, int n3,
+                             int n12, int n23, int n31)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadTriangle)->AddFace(NewFaceID, n1, n2, n3,
+                                               n12, n23, n31);
+}
+
+//=======================================================================
+//function : AddFace
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
+                             int n12, int n23, int n34, int n41)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadQuadrangle)->AddFace(NewFaceID, n1, n2, n3, n4,
+                                                 n12, n23, n34, n41);
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                               int n12, int n23, int n31,
+                               int n14, int n24, int n34)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadTetrahedron)->AddVolume(NewVolID, n1, n2, n3, n4,
+                                                    n12, n23, n31,
+                                                    n14, n24, n34);
 }
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                               int n5, int n12, int n23, int n34, int n41,
+                               int n15, int n25, int n35, int n45)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadPyramid)->AddVolume(NewVolID, n1, n2, n3, n4, n5,
+                                                n12, n23, n34, n41,
+                                                n15, n25, n35, n45);
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                                int n5,int n6, int n12, int n23, int n31,
+                                int n45, int n56, int n64,
+                                int n14, int n25, int n36)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadPentahedron)->AddVolume(NewVolID, n1,n2,n3,n4,n5,n6,
+                                                    n12, n23, n31,
+                                                    n45, n56, n64,
+                                                    n14, n25, n36);
+}
+
+//=======================================================================
+//function : AddVolume
+//purpose  : 
+//=======================================================================
+void SMESHDS_Script::AddVolume(int NewVolID, int n1, int n2, int n3,
+                               int n4, int n5, int n6, int n7, int n8,
+                               int n12, int n23, int n34, int n41,
+                               int n56, int n67, int n78, int n85,
+                               int n15, int n26, int n37, int n48)
+{
+  if(myIsEmbeddedMode){
+    myIsModified = true;
+    return;
+  }
+  getCommand(SMESHDS_AddQuadHexahedron)->AddVolume(NewVolID, n1, n2, n3, n4,
+                                                   n5, n6, n7, n8,
+                                                   n12, n23, n34, n41,
+                                                   n56, n67, n78, n85,
+                                                   n15, n26, n37, n48);
+}
+
index c9b66e029bc09945e7f5aed04a79828c4a94a7d3..781fc9910f054b2e02131a4161c4f80f9a36df84 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 class SMESHDS_EXPORT SMESHDS_Script
 {
   public:
+       SMESHDS_Script(bool theIsEmbeddedMode);
+       ~SMESHDS_Script();
+  
+        void SetModified(bool theModified);
+        bool IsModified();
+
        void AddNode(int NewNodeID, double x, double y, double z);
        void AddEdge(int NewEdgeID, int idnode1, int idnode2);
        void AddFace(int NewFaceID, int idnode1, int idnode2, int idnode3);
@@ -58,6 +64,27 @@ class SMESHDS_EXPORT SMESHDS_Script
                                   std::vector<int> nodes_ids,
                                   std::vector<int> quantities);
 
+        // special methods for quadratic elements
+       void AddEdge(int NewEdgeID, int n1, int n2, int n12);
+        void AddFace(int NewFaceID, int n1, int n2, int n3,
+                     int n12, int n23, int n31);
+        void AddFace(int NewFaceID, int n1, int n2, int n3, int n4,
+                     int n12, int n23, int n34, int n41);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n12, int n23, int n31, int n14, int n24, int n34);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4, int n5,
+                       int n12, int n23, int n34, int n41,
+                       int n15, int n25, int n35, int n45);
+        void AddVolume(int NewVolID, int n1, int n2, int n3,
+                       int n4, int n5, int n6,
+                       int n12, int n23, int n31,
+                       int n45, int n56, int n64,
+                       int n14, int n25, int n36);
+        void AddVolume(int NewVolID, int n1, int n2, int n3, int n4,
+                       int n5, int n6, int n7, int n8,
+                       int n12, int n23, int n34, int n41,
+                       int n56, int n67, int n78, int n85,
+                       int n15, int n26, int n37, int n48);
         void MoveNode(int NewNodeID, double x, double y, double z);
        void RemoveNode(int NodeID);
        void RemoveElement(int ElementID);
@@ -68,12 +95,14 @@ class SMESHDS_EXPORT SMESHDS_Script
        void Renumber (const bool isNodes, const int startID, const int deltaID);
        void Clear();
        const std::list<SMESHDS_Command*> & GetCommands();
-       ~SMESHDS_Script();
-  
+
   private:
        SMESHDS_Command* getCommand(const SMESHDS_CommandType aType);
 
        std::list<SMESHDS_Command*> myCommands;
+
+        bool myIsEmbeddedMode;
+        bool myIsModified;
 };
 
 #endif
index 5bdbfc6a4e3bccbc644d6eabb228579d60cda8a5..262649e86c6d6bc459f9d5efe316b065bf13c6ac 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 4406c282b6e9b2ae9b7148f7ecdacae2cfcbe432..1231c490c03ca963b013da4596ba87b07b3d9f22 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 79db47025db0da496cba6d0724d24df41cbe1194..7a825b03dce9d7423241027c8d707b72d40d9a06 100644 (file)
@@ -1,17 +1,22 @@
-// File generated by CPPExt (Transient)
+//  SMESH SMDS : implementaion of Salome mesh data structure
 //
-//                     Copyright (C) 1991,1995 by
-//  
-//                      MATRA DATAVISION, FRANCE
-//  
-// This software is furnished in accordance with the terms and conditions
-// of the contract and with the inclusion of the above copyright notice.
-// This software or any other copy thereof may not be provided or otherwise
-// be made available to any other person. No title to an ownership of the
-// software is hereby transferred.
-//  
-// At the termination of the contract, the software and all copies of this
-// software must be deleted.
+//  Copyright (C) 2003  OPEN CASCADE
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _Handle_SMESH_TypeFilter_HeaderFile
 #define _Handle_SMESH_TypeFilter_HeaderFile
index c438321b7c66d9f75da276d7ed6d00bb8e2e2546..c1e928244404a8b2f5eb2516252429316b02bdb5 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -41,7 +41,8 @@ LIB_SRC = SMESH_TypeFilter.cxx \
           SMESH_NumberFilter.cxx \
           SMESH_LogicalFilter.cxx
 
-LIB_CLIENT_IDL = SALOME_Exception.idl \
+LIB_CLIENT_IDL = SALOME_Comm.idl \
+                SALOME_Exception.idl \
                 GEOM_Gen.idl \
                 SMESH_Gen.idl \
                 SMESH_Mesh.idl \
@@ -53,7 +54,8 @@ LIB_CLIENT_IDL = SALOME_Exception.idl \
                 SALOME_Component.idl \
                 SMESH_Filter.idl \
                 SMESH_Pattern.idl \
-                SALOME_GenericObj.idl
+                SALOME_GenericObj.idl \
+                MED.idl
 
 # header files 
 EXPORT_HEADERS= SMESH_Type.h \
@@ -63,11 +65,11 @@ EXPORT_HEADERS= SMESH_Type.h \
 
 # additionnal information to compil and link file
 CPPFLAGS += $(OCC_INCLUDES) $(QT_INCLUDES) $(PYTHON_INCLUDES) $(VTK_INCLUDES) \
-            -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-            -I${GEOM_ROOT_DIR}/include/salome ${BOOST_CPPFLAGS}
-CXXFLAGS += $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-            -I${GEOM_ROOT_DIR}/include/salome -I${BOOSTDIR}
-LDFLAGS  += $(OCC_KERNEL_LIBS) -L${GUI_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lSalomeApp -lsuit
+            $(KERNEL_CXXFLAGS) $(GUI_CXXFLAGS) \
+            $(GEOM_CXXFLAGS) ${BOOST_CPPFLAGS}
+CXXFLAGS += $(OCC_CXXFLAGS) $(KERNEL_CXXFLAGS) $(GUI_CXXFLAGS) \
+            $(GEOM_CXXFLAGS) -I${BOOSTDIR}
+LDFLAGS  += $(OCC_KERNEL_LIBS) $(KERNEL_LDFLAGS) -lSalomeDSClient -lSalomeDS $(GUI_LDFLAGS) $(GEOM_LDFLAGS) -lSalomeApp -lsuit
 
 # additional file to be cleaned
 MOSTLYCLEAN =
index 5033f8e1390e6c8fb9760d026643e1eb6dc501c8..57cfea7579766e7bb92d977fb9198d597b7fc99f 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESH_LogicalFilter.cxx
 //  Module : SMESH
index ce12108d7802a6c1aad526ae0832b457c36046ff..a6197ab82491768579fcd683dc886087f20a5ac0 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESH_LogicalFilter.hxx
 //  Module : SMESH
index 176cd3fb6bc52eb5b186f81c999834bb0ac4cec5..929401562be1628b5b463a4e8dc90124c87e85e4 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESH_NumberFilter.cxx
 //  Module : SMESH
index b8e0932b332bff4240716772e37a9c95fc8cbb22..640b8ea02066990872e1f3c73a3494a192522911 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESH_NumberFilter.hxx
 //  Module : SMESH
index 25cc4deec1b11105b16243b6af0d87cc91d0d2b9..6b765a3fad649930bfb90aeedc44c6b4241acd45 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File      : SMESH_Type.h
 //  Created   : Mon Jun 03 15:14:15 2002
index bac11fe1899778835d656dffae856993c4190f54..1b2d9ee29e018a0d8a135f75c881519d28cc08ca 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 #include "SMESH_TypeFilter.hxx"
 
index 6107a13938b2a85179822daaf8118be9323dfd09..da5ada02e64a0ac5cd9066642473527012792e8c 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESH_TypeFilter.hxx
 //  Module : SMESH
index a01d02ee064f31eaead032ccaa9c13085a9f10f5..66c04efb23d95d18a679a424e496e3432ea54ec9 100644 (file)
@@ -1,17 +1,23 @@
-// File generated by CPPExt (Transient)
-//                     Copyright (C) 1991,1995 by
-//  
-//                      MATRA DATAVISION, FRANCE
-//  
-// This software is furnished in accordance with the terms and conditions
-// of the contract and with the inclusion of the above copyright notice.
-// This software or any other copy thereof may not be provided or otherwise
-// be made available to any other person. No title to an ownership of the
-// software is hereby transferred.
-//  
-// At the termination of the contract, the software and all copies of this
-// software must be deleted.
+//  SMESH SMDS : implementaion of Salome mesh data structure
 //
+//  Copyright (C) 2003  OPEN CASCADE
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
 #include "SMESH_TypeFilter.jxx"
 
 #ifndef _Standard_TypeMismatch_HeaderFile
index 2439074c86457b69289609b6f6a80080d1e9d7b6..508424ba9e6760837212631576c8aea2d8d7e7fb 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 #ifndef _SMESH_TypeFilter_HeaderFile
 #include "SMESH_TypeFilter.hxx"
index 268d4bc70c05ba8539301313558ed6c3c70aab25..234fb038d7f3f7d8227a6cfa1d0938d2f4693e43 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -71,8 +71,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 \
@@ -99,7 +97,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,10 @@ LIB_SRC =  SMESHGUI.cxx \
                SMESHGUI_MeshOp.cxx \
                SMESHGUI_Displayer.cxx \
                SMESHGUI_Hypotheses.cxx \
-               SMESHGUI_ShapeByMeshDlg.cxx
+               SMESHGUI_ShapeByMeshDlg.cxx \
+               SMESHGUI_AddQuadraticElementDlg.cxx \
+               SMESHGUI_ConvToQuadDlg.cxx \
+               SMESHGUI_ConvToQuadOp.cxx
 
 LIB_MOC = \
                SMESHGUI.h \
@@ -131,8 +131,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 +146,6 @@ LIB_MOC = \
                SMESHGUI_TranslationDlg.h \
                SMESHGUI_SymmetryDlg.h \
                SMESHGUI_SewingDlg.h \
-               SMESHGUI_PrecisionDlg.h \
                SMESHGUI_MergeNodesDlg.h \
                SMESHGUI_EditMeshDlg.h \
                SMESHGUI_CreatePolyhedralVolumeDlg.h \
@@ -158,7 +155,10 @@ LIB_MOC = \
                SMESHGUI_MeshDlg.h \
                SMESHGUI_MeshOp.h \
                SMESHGUI_Hypotheses.h \
-               SMESHGUI_ShapeByMeshDlg.h
+               SMESHGUI_ShapeByMeshDlg.h \
+               SMESHGUI_AddQuadraticElementDlg.h \
+               SMESHGUI_ConvToQuadDlg.h \
+               SMESHGUI_ConvToQuadOp.h
 
 
 LIB_CLIENT_IDL = SALOME_Exception.idl \
@@ -184,17 +184,17 @@ LIB_SERVER_IDL =
 #BIN = SMESHBin
 
 CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \
-            -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-            -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
+            $(KERNEL_CXXFLAGS)  $(GUI_CXXFLAGS) \
+            $(GEOM_CXXFLAGS) $(BOOST_CPPFLAGS)
 
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome \
-            -I${GEOM_ROOT_DIR}/include/salome
+CXXFLAGS += $(KERNEL_CXXFLAGS) $(GUI_CXXFLAGS) \
+            $(GEOM_CXXFLAGS)
 
 LDFLAGS += -lSMESHObject -lSMESHFiltersSelection -lSMDS -lSMESHControls -lDlgRef \
-       $(OCC_KERNEL_LIBS) -lTKBO -lTKAdvTools -L${KERNEL_ROOT_DIR}/lib/salome -L${GUI_ROOT_DIR}/lib/salome \
-       -lVTKViewer -lSalomeApp -lSalomePrs -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeObject \
-       -lEvent -lSALOMELocalTrace -lSVTK -lOCCViewer -L${GEOM_ROOT_DIR}/lib/salome -lGEOM -lGEOMClient  \
-       -lGEOMBase -lGEOMObject -lGEOMFiltersSelection
+       $(OCC_KERNEL_LIBS) -lTKBO -lTKAdvTools $(KERNEL_LDFLAGS) $(GUI_LDFLAGS) \
+       -lVTKViewer -lSalomeDSClient -lSalomeDS -lSalomeApp -lSalomePrs -lSalomeNS -lSalomeLifeCycleCORBA -lOpUtil -lSalomeObject \
+       -lEvent -lSALOMELocalTrace -lSVTK -lOCCViewer $(GEOM_LDFLAGS) -lGEOM -lGEOMClient  \
+       -lGEOMBase -lGEOMObject -lGEOMFiltersSelection -lSalomeSession
 
 LDFLAGSFORBIN += $(LDFLAGS)
 
index 3f87afeeafe1d1422a9972ffa872cb01dc0915c0..26da45734d9bab2874301e9ff806a5a51dc94471 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 int main(int argc, char** argv){ 
   return 0;
index d3f71d1705c51a9f8853adc3e78a049946d93c32..809a98b2ab6c10ae0aba34491d830bc52b394a76 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESHGUI.cxx
 //  Author : Nicolas REJNERI
@@ -26,6 +26,7 @@
 
 #include "SMESHGUI.h"
 
+#include "SMESH_Client.hxx"
 #include "SMESHGUI_NodesDlg.h"
 #include "SMESHGUI_TransparencyDlg.h"
 #include "SMESHGUI_ClippingDlg.h"
@@ -40,8 +41,7 @@
 #include "SMESHGUI_Hypotheses.h"
 #include "SMESHGUI_MoveNodesDlg.h"
 #include "SMESHGUI_AddMeshElementDlg.h"
-#include "SMESHGUI_EditHypothesesDlg.h"
-#include "SMESHGUI_CreateHypothesesDlg.h"
+#include "SMESHGUI_AddQuadraticElementDlg.h"
 #include "SMESHGUI_FilterDlg.h"
 #include "SMESHGUI_FilterLibraryDlg.h"
 #include "SMESHGUI_SingleEditDlg.h"
@@ -60,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"
 
 #include "SalomeApp_Study.h"
 #include "SalomeApp_Application.h"
 #include "SalomeApp_CheckFileDlg.h"
+#include "SalomeApp_ImportOperation.h"
+
 #include "LightApp_DataOwner.h"
 #include "LightApp_Preferences.h"
 #include "LightApp_VTKSelector.h"
 #include "LightApp_Operation.h"
 #include "LightApp_UpdateFlags.h"
-
-#include "SalomeApp_ImportOperation.h"
+#include "LightApp_NameDlg.h"
 
 #include <SVTK_ViewWindow.h>
 #include <SVTK_ViewModel.h>
 #include <qstring.h>
 #include <qwidget.h>
 #include <qaction.h>
-#include <qinputdialog.h>
 
 // BOOST Includes
 #include <boost/shared_ptr.hpp>
 using namespace std;
 
 namespace{
-  // Decalarations
+  // Declarations
   //=============================================================
   void ImportMeshesFromFile(SMESH::SMESH_Gen_ptr theComponentMesh,
                            int theCommandID);
@@ -260,30 +260,45 @@ namespace{
        switch ( theCommandID ) {
        case 125:
        case 122:
-         aFilterMap.insert( QObject::tr("MED 2.1 (*.med)"), SMESH::MED_V2_1 );
-         aFilterMap.insert( QObject::tr("MED 2.2 (*.med)"), SMESH::MED_V2_2 );
+          {
+           if (aMesh->HasDuplicatedGroupNamesMED()) {
+              int aRet = SUIT_MessageBox::warn2
+                (SMESHGUI::desktop(),
+                 QObject::tr("SMESH_WRN_WARNING"),
+                 QObject::tr("SMESH_EXPORT_MED_DUPLICATED_GRP").arg(anIObject->getName()),
+                 QObject::tr("SMESH_BUT_YES"),  QObject::tr("SMESH_BUT_NO"),
+                 0, 1, 0);
+              if (aRet)
+                return;
+            }
+
+            aFilterMap.insert( QObject::tr("MED 2.1 (*.med)"), SMESH::MED_V2_1 );
+            aFilterMap.insert( QObject::tr("MED 2.2 (*.med)"), SMESH::MED_V2_2 );
+          }
          break;
        case 124:
        case 121:
          aFilter = QObject::tr("DAT files (*.dat)");
          break;
        case 126:
-       case 123: {
-         if(aMesh->NbPyramids()){
-           int aRet = SUIT_MessageBox::warn2(SMESHGUI::desktop(),
-                                            QObject::tr("SMESH_WRN_WARNING"),
-                                            QObject::tr("SMESH_EXPORT_UNV").arg(anIObject->getName()),
-                                            QObject::tr("SMESH_BUT_YES"),
-                                            QObject::tr("SMESH_BUT_NO"),
-                                            0,1,0);
-           if(aRet)
-             return;
-         }
-         aFilter = QObject::tr("IDEAS files (*.unv)");
+       case 123:
+          {
+            if (aMesh->NbPyramids()) {
+              int aRet = SUIT_MessageBox::warn2
+                (SMESHGUI::desktop(),
+                 QObject::tr("SMESH_WRN_WARNING"),
+                 QObject::tr("SMESH_EXPORT_UNV").arg(anIObject->getName()),
+                 QObject::tr("SMESH_BUT_YES"),  QObject::tr("SMESH_BUT_NO"),
+                 0, 1, 0);
+              if (aRet)
+                return;
+            }
+            aFilter = QObject::tr("IDEAS files (*.unv)");
+          }
          break;
        default:
          return;
-       }}
+       }
 
        QString aFilename;
        SMESH::MED_VERSION aFormat;
@@ -295,41 +310,42 @@ namespace{
        
        if ( theCommandID != 122 && theCommandID != 125 )
          aFilename = SUIT_FileDlg::getFileName(SMESHGUI::desktop(), "", aFilter, aTitle, false);
-       else
-         {
-           QStringList filters;
-           for ( QMap<QString, SMESH::MED_VERSION>::const_iterator it = aFilterMap.begin(); it != aFilterMap.end(); ++it )
-             filters.push_back( it.key() );
-
-           //SUIT_FileDlg* fd = new SUIT_FileDlg( SMESHGUI::desktop(), false, true, true );
-           SalomeApp_CheckFileDlg* fd = new SalomeApp_CheckFileDlg( SMESHGUI::desktop(), false, QObject::tr("SMESH_AUTO_GROUPS") ,true, true );
-           fd->setCaption( aTitle );
-           fd->setFilters( filters );
-           fd->setSelectedFilter( QObject::tr("MED 2.2 (*.med)") );
-           fd->SetChecked(toCreateGroups);
-           bool is_ok = false;
-           while(!is_ok){
-             fd->exec();
-             aFilename = fd->selectedFile();
-             aFormat = aFilterMap[fd->selectedFilter()];
-             is_ok = true;
-             if( !aFilename.isEmpty()
-                 && (aMesh->NbPolygons()>0 || aMesh->NbPolyhedrons()>0)
-                 && aFormat==SMESH::MED_V2_1){
-               int aRet = SUIT_MessageBox::warn2(SMESHGUI::desktop(),
-                                                 QObject::tr("SMESH_WRN_WARNING"),
-                                                 QObject::tr("SMESH_EXPORT_MED_V2_1").arg(anIObject->getName()),
-                                                 QObject::tr("SMESH_BUT_YES"),
-                                                 QObject::tr("SMESH_BUT_NO"),
-                                                 0,1,0);
-               if(aRet){
-                 is_ok = false;
-               }
-             }
-           }
-           toCreateGroups = fd->IsChecked();
-           delete fd;
-         }
+       else {
+          QStringList filters;
+          QMap<QString, SMESH::MED_VERSION>::const_iterator it = aFilterMap.begin();
+          for ( ; it != aFilterMap.end(); ++it )
+            filters.push_back( it.key() );
+
+          //SUIT_FileDlg* fd = new SUIT_FileDlg( SMESHGUI::desktop(), false, true, true );
+          SalomeApp_CheckFileDlg* fd = new SalomeApp_CheckFileDlg
+            ( SMESHGUI::desktop(), false, QObject::tr("SMESH_AUTO_GROUPS") ,true, true );
+          fd->setCaption( aTitle );
+          fd->setFilters( filters );
+          fd->setSelectedFilter( QObject::tr("MED 2.2 (*.med)") );
+          fd->SetChecked(toCreateGroups);
+          bool is_ok = false;
+          while (!is_ok) {
+            fd->exec();
+            aFilename = fd->selectedFile();
+            aFormat = aFilterMap[fd->selectedFilter()];
+            is_ok = true;
+            if ( !aFilename.isEmpty()
+                 && (aMesh->NbPolygons()>0 || aMesh->NbPolyhedrons()>0)
+                 && aFormat==SMESH::MED_V2_1) {
+              int aRet = SUIT_MessageBox::warn2(SMESHGUI::desktop(),
+                                                QObject::tr("SMESH_WRN_WARNING"),
+                                                QObject::tr("SMESH_EXPORT_MED_V2_1").arg(anIObject->getName()),
+                                                QObject::tr("SMESH_BUT_YES"),
+                                                QObject::tr("SMESH_BUT_NO"),
+                                                0,1,0);
+              if (aRet) {
+                is_ok = false;
+              }
+            }
+          }
+          toCreateGroups = fd->IsChecked();
+          delete fd;
+        }
        if ( !aFilename.isEmpty() ) {
          // Check whether the file already exists and delete it if yes
          QFile aFile( aFilename );
@@ -442,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);
@@ -474,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(), "" );
@@ -491,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;
@@ -672,7 +688,7 @@ namespace{
 }
 
 extern "C" {
-  Standard_EXPORT CAM_Module* createModule()
+  SMESHGUI_EXPORT CAM_Module* createModule()
   {
     return new SMESHGUI();
   }
@@ -687,15 +703,15 @@ SMESH::SMESH_Gen_var SMESHGUI::myComponentSMESH = SMESH::SMESH_Gen::_nil();
 //=============================================================================
 SMESHGUI::SMESHGUI() :
 SalomeApp_Module( "SMESH" )
-{
+{  
   if ( CORBA::is_nil( myComponentSMESH ) )
   {
-    SALOME_LifeCycleCORBA* ls = new SALOME_LifeCycleCORBA( getApp()->namingService() );
-    Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "SMESH" );
-    myComponentSMESH = SMESH::SMESH_Gen::_narrow( comp );
+    CORBA::Boolean anIsEmbeddedMode;
+    myComponentSMESH = SMESH_Client::GetSMESHGen(getApp()->orb(),anIsEmbeddedMode);
   }
 
   myActiveDialogBox = 0;
+  myFilterLibraryDlg = 0;
   myState = -1;
   myDisplayer = 0;
 
@@ -1269,9 +1285,6 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       else
         aDlg = new SMESHGUI_CuttingOfQuadsDlg(this);
 
-      int x, y ;
-      DefineDlgPosition( aDlg, x, y );
-      aDlg->move( x, y );
       aDlg->show();
       break;
     }
@@ -1345,6 +1358,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 )
@@ -1457,8 +1484,8 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       int nbSelectedGroups = 0;
       for ( ; It.More(); It.Next() )
       {
-        SMESH::SMESH_Group_var aGroup =
-          SMESH::IObjectToInterface<SMESH::SMESH_Group>(It.Value());
+        SMESH::SMESH_GroupBase_var aGroup =
+          SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(It.Value());
         if (!aGroup->_is_nil()) {
          nbSelectedGroups++;
           SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg( this, "", aGroup);
@@ -1467,7 +1494,7 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       }
       if (nbSelectedGroups == 0)
        {
-         SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg( this, "", SMESH::SMESH_Group::_nil());
+         SMESHGUI_GroupDlg *aDlg = new SMESHGUI_GroupDlg( this, "", SMESH::SMESH_GroupBase::_nil());
          aDlg->show();
        }
       break;
@@ -1641,10 +1668,8 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
           {
             aName = anAttr;
             QString newName = QString(aName->Value().c_str());
-           bool ok;
-           newName = QInputDialog::getText( tr( "Rename" ), tr( "Enter new name:" ), QLineEdit::Normal,
-                                             newName, &ok, desktop() );
-            if ( ok && !newName.isEmpty() )
+            newName = LightApp_NameDlg::getName(desktop(), newName);
+            if ( !newName.isEmpty() )
             {
               //old source: aStudy->renameIObject( IObject, newName );
              aName->SetValue( newName.latin1() );
@@ -1734,6 +1759,46 @@ bool SMESHGUI::OnGUIEvent( int theCommandID )
       }
       break;
     }
+  case 4034:     // QUADRATIC EDGE
+  case 4035:     // QUADRATIC TRIANGLE
+  case 4036:     // QUADRATIC QUADRANGLE
+  case 4037:     // QUADRATIC TETRAHEDRON
+  case 4038:     // QUADRATIC PYRAMID
+  case 4039:     // QUADRATIC PENTAHEDRON
+  case 4040:     // QUADRATIC HEXAHEDRON
+    {
+      if(checkLock(aStudy)) break;
+      if ( vtkwnd ) {
+       EmitSignalDeactivateDialog();
+       int type;
+
+       switch (theCommandID) {
+       case 4034:                                      
+         type = QUAD_EDGE; break;
+       case 4035:                                      
+         type = QUAD_TRIANGLE; break;
+       case 4036:                                     
+         type = QUAD_QUADRANGLE; break;
+       case 4037:                                     
+         type = QUAD_TETRAHEDRON; break;
+       case 4038:                                     
+         type = QUAD_PYRAMID; break; 
+       case 4039:                                     
+         type = QUAD_PENTAHEDRON; break; 
+       case 4040:
+         type = QUAD_HEXAHEDRON;
+         break;
+       default:;
+       }
+        new SMESHGUI_AddQuadraticElementDlg( this, type );
+      }
+      else {
+       SUIT_MessageBox::warn1(SMESHGUI::desktop(),
+                              tr("SMESH_WRN_WARNING"), tr("SMESH_WRN_VIEWER_VTK"),
+                              tr("SMESH_BUT_OK"));
+      }
+      break;
+    }
   case 4041:                                   // REMOVES NODES
     {
       if(checkLock(aStudy)) break;
@@ -1890,7 +1955,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;
 
@@ -2161,6 +2230,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 );
@@ -2188,6 +2258,13 @@ void SMESHGUI::initialize( CAM_Application* app )
   createSMESHAction( 301, "DISPLAY" );
   createSMESHAction( 302, "DISPLAY_ONLY" );
   createSMESHAction( 4033, "POLYHEDRON", "ICON_DLG_POLYHEDRON" );
+  createSMESHAction( 4034, "QUADRATIC_EDGE", "ICON_DLG_QUADRATIC_EDGE" );
+  createSMESHAction( 4035, "QUADRATIC_TRIANGLE", "ICON_DLG_QUADRATIC_TRIANGLE" );
+  createSMESHAction( 4036, "QUADRATIC_QUADRANGLE", "ICON_DLG_QUADRATIC_QUADRANGLE" );
+  createSMESHAction( 4037, "QUADRATIC_TETRAHEDRON", "ICON_DLG_QUADRATIC_TETRAHEDRON" );
+  createSMESHAction( 4038, "QUADRATIC_PYRAMID", "ICON_DLG_QUADRATIC_PYRAMID" );
+  createSMESHAction( 4039, "QUADRATIC_PENTAHEDRON", "ICON_DLG_QUADRATIC_PENTAHEDRON" );
+  createSMESHAction( 4040, "QUADRATIC_HEXAHEDRON", "ICON_DLG_QUADRATIC_HEXAHEDRON" );
 
   // ----- create menu --------------
   int fileId   = createMenu( tr( "MEN_FILE" ),   -1,  1 ),
@@ -2267,6 +2344,14 @@ void SMESHGUI::initialize( CAM_Application* app )
   createMenu( 4031, addId, -1 );
   createMenu( 4032, addId, -1 );
   createMenu( 4033, addId, -1 );
+  createMenu( separator(), addId, -1 );
+  createMenu( 4034, addId, -1 );
+  createMenu( 4035, addId, -1 );
+  createMenu( 4036, addId, -1 );
+  createMenu( 4037, addId, -1 );
+  createMenu( 4038, addId, -1 );
+  createMenu( 4039, addId, -1 );
+  createMenu( 4040, addId, -1 );
 
   createMenu( 4041, removeId, -1 );
   createMenu( 4042, removeId, -1 );
@@ -2292,6 +2377,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 );
 
@@ -2343,6 +2429,14 @@ void SMESHGUI::initialize( CAM_Application* app )
   createTool( 4032, addRemTb );
   createTool( 4033, addRemTb );
   createTool( separator(), addRemTb );
+  createTool( 4034, addRemTb );
+  createTool( 4035, addRemTb );
+  createTool( 4036, addRemTb );
+  createTool( 4037, addRemTb );
+  createTool( 4038, addRemTb );
+  createTool( 4039, addRemTb );
+  createTool( 4040, addRemTb );
+  createTool( separator(), addRemTb );
   createTool( 4041, addRemTb );
   createTool( 4042, addRemTb );
   createTool( separator(), addRemTb );
@@ -2368,6 +2462,7 @@ void SMESHGUI::initialize( CAM_Application* app )
   createTool( 416, modifyTb );
   createTool( 414, modifyTb );
   createTool( 415, modifyTb );
+  createTool( 417, modifyTb );
 
   createTool( 214, dispModeTb );
 
@@ -2380,12 +2475,13 @@ void SMESHGUI::initialize( CAM_Application* app )
          group   = pat.arg( SMESHGUI_Selection::typeName( GROUP ) ),
          hypo    = pat.arg( SMESHGUI_Selection::typeName( HYPOTHESIS ) ),
          algo    = pat.arg( SMESHGUI_Selection::typeName( ALGORITHM ) ),
-         elems   = QString( "'%1' '%2' '%3' '%4' '%5'" ).
+         elems   = QString( "'%1' '%2' '%3' '%4' '%5' '%6'" ).
                        arg( SMESHGUI_Selection::typeName( SUBMESH_VERTEX ) ).
                       arg( SMESHGUI_Selection::typeName( SUBMESH_EDGE ) ).
                       arg( SMESHGUI_Selection::typeName( SUBMESH_FACE ) ).
                       arg( SMESHGUI_Selection::typeName( SUBMESH_SOLID ) ).
-                      arg( SMESHGUI_Selection::typeName( SUBMESH_COMPOUND ) ),
+                      arg( SMESHGUI_Selection::typeName( SUBMESH_COMPOUND ) ).
+                      arg( SMESHGUI_Selection::typeName( SUBMESH ) ),
           subMesh = elems,
          mesh_group = mesh + " " + subMesh + " " + group,
          hyp_alg = hypo + " " + algo;
@@ -2544,7 +2640,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 );
@@ -2558,7 +2654,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 );
@@ -2640,6 +2736,11 @@ bool SMESHGUI::activateModule( SUIT_Study* study )
   setMenuShown( true );
   setToolShown( true );
 
+  // Reset actions accelerator keys
+  action(111)->setAccel(QKeySequence(CTRL + Key_B)); // Import DAT
+  action(112)->setAccel(QKeySequence(CTRL + Key_U)); // Import UNV
+  action(113)->setAccel(QKeySequence(CTRL + Key_M)); // Import MED
+
   return res;
 }
 
@@ -2650,6 +2751,11 @@ bool SMESHGUI::deactivateModule( SUIT_Study* study )
 
   EmitSignalCloseAllDialogs();
 
+  // Unset actions accelerator keys
+  action(111)->setAccel(QKeySequence()); // Import DAT
+  action(112)->setAccel(QKeySequence()); // Import UNV
+  action(113)->setAccel(QKeySequence()); // Import MED
+
   return SalomeApp_Module::deactivateModule( study );
 }
 
@@ -2878,11 +2984,8 @@ void SMESHGUI::createPreferences()
 void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
 {
   if( sect=="SMESH" ){
-    float sbX1=0.01,
-          sbW=0.05,
-          sbY1=0.01,
-               sbH=0.5;
-
+    float sbX1,sbY1,sbW,sbH;
+    float aTol = 1.00000009999999;
     std::string aWarning;
     SUIT_ResourceMgr* aResourceMgr = SMESH::GetResourceMgr(this);
     if( name=="selection_object_color" || name=="selection_element_color" || 
@@ -2892,7 +2995,7 @@ void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
     else if (name == QString("scalar_bar_vertical_x") || name == QString("scalar_bar_vertical_width")){
       sbX1 = aResourceMgr->doubleValue("SMESH", "scalar_bar_vertical_x", sbX1);
       sbW = aResourceMgr->doubleValue("SMESH", "scalar_bar_vertical_width", sbW);
-      if(sbX1+sbW > 1.0){
+      if(sbX1+sbW > aTol){
        aWarning = "Origin and Size Vertical: X+Width > 1\n";   
        aResourceMgr->setValue("SMESH", "scalar_bar_vertical_x", sbX1);
        aResourceMgr->setValue("SMESH", "scalar_bar_vertical_width", sbW);
@@ -2901,7 +3004,7 @@ void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
     else if(name == QString("scalar_bar_vertical_y") || name == QString("scalar_bar_vertical_height")){
       sbY1 = aResourceMgr->doubleValue("SMESH", "scalar_bar_vertical_y", sbY1);
       sbH = aResourceMgr->doubleValue("SMESH", "scalar_bar_vertical_height",sbH);
-      if(sbY1+sbH > 1.0){
+      if(sbY1+sbH > aTol){
        aWarning = "Origin and Size Vertical: Y+Height > 1\n";
        aResourceMgr->setValue("SMESH", "scalar_bar_vertical_y", sbY1);
        aResourceMgr->setValue("SMESH", "scalar_bar_vertical_height",sbH);
@@ -2910,7 +3013,7 @@ void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
     else if(name ==  QString("scalar_bar_horizontal_x") || name ==  QString("scalar_bar_horizontal_width")){
       sbX1 = aResourceMgr->doubleValue("SMESH", "scalar_bar_horizontal_x", sbX1);
       sbW = aResourceMgr->doubleValue("SMESH", "scalar_bar_horizontal_width", sbW);
-      if(sbX1+sbW > 1.0){
+      if(sbX1+sbW > aTol){
        aWarning = "Origin and Size Horizontal: X+Width > 1\n";
        sbX1=0.2;
        sbW=0.6;
@@ -2921,7 +3024,7 @@ void SMESHGUI::preferencesChanged( const QString& sect, const QString& name )
     else if(name ==  QString("scalar_bar_horizontal_y") || name ==  QString("scalar_bar_horizontal_height")){
       sbY1 = aResourceMgr->doubleValue("SMESH", "scalar_bar_horizontal_y", sbY1);
       sbH = aResourceMgr->doubleValue("SMESH", "scalar_bar_horizontal_height",sbH);
-      if(sbY1+sbH > 1.0){
+      if(sbY1+sbH > aTol){
        aWarning = "Origin and Size Horizontal: Y+Height > 1\n";
        sbY1=0.01;
        sbH=0.12;
@@ -3012,6 +3115,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;
   }
@@ -3085,72 +3191,81 @@ void SMESHGUI::OnEditDelete()
     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();
@@ -3160,4 +3275,4 @@ void SMESHGUI::OnEditDelete()
     aSel->setSelectedObjects( l1 );
 
     SMESHGUI::GetSMESHGUI()->updateObjBrowser();
-  }
\ No newline at end of file
+  }
index 7b062275bbf37fbb6cd92a9cb264c34584168dd3..7dbab6471692f2b7aa0d41e0c56d6b1390c4d683 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -50,6 +50,8 @@ class LightApp_Operation;
 class SalomeApp_Study;
 class LightApp_SelectionMgr;
 
+class SMESHGUI_FilterLibraryDlg;
+
 
 //=================================================================================
 // class    : SMESHGUI
@@ -140,6 +142,8 @@ private :
   int                              myState;
   QMap<int,QString>                myRules;
   LightApp_Displayer*              myDisplayer;
+
+  SMESHGUI_FilterLibraryDlg*       myFilterLibraryDlg;
 };
 
 #endif
index 7a396fd41a05363b9719f6211f42086f4bca6fba..d7b4cb35b97d77674fa25109fd268bf39391c668 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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&)));
@@ -411,10 +433,6 @@ void SMESHGUI_AddMeshElementDlg::Init()
   if (Reverse)
     connect(Reverse, SIGNAL(stateChanged(int)), SLOT(CheckBox(int)));
 
-  // Move widget on the botton right corner of main widget
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); // displays Dialog
 
   // set selection mode
@@ -450,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:;
@@ -501,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 9b9e71f8fbb1bd259f6f6dd67ff63588a9e51e20..f7bd8604b7ad249c636a6d917abdaeb8f2ef7190 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -108,6 +108,7 @@ private:
     QPushButton * buttonOk;
     QPushButton * buttonCancel;
     QPushButton * buttonApply;
+    QPushButton * buttonHelp;
     QGroupBox   * GroupC1;
     QLabel      * TextLabelC1A1;
     QPushButton * SelectButtonC1A1;
@@ -115,11 +116,14 @@ private:
 
     QCheckBox   * Reverse;
 
+    QString       myHelpFileName;
+
 private slots:
 
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 5bac21893f884e8411a88801233b2decf7f5df5b..e513577b93df12f7a15a9ae50e118461ffd86caf 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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,15 +364,12 @@ 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 */
   connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), this, SLOT(ClickOnCancel()));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 }
 
@@ -391,6 +395,10 @@ void SMESHGUI_ClippingDlg::ClickOnApply()
 
   if (SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow(mySMESHGUI)) {
     SUIT_OverrideCursor wc;
+    
+    QWidget *aCurrWid = this->focusWidget();
+    aCurrWid->clearFocus();
+    aCurrWid->setFocus();
 
     myActor->RemoveAllClippingPlanes();
 
@@ -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 463257cc9f383fa56f3127fbcd15f8f9710d9ec9..c49b5a6cb7c604e444debf9fc5a8f6fc7ac78348 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -113,8 +113,10 @@ private:
     QPushButton*      buttonOk;
     QPushButton*      buttonCancel;
     QPushButton*      buttonApply;
+    QPushButton*      buttonHelp;
 
     bool myIsSelectPlane;
+    QString myHelpFileName;
 
 public slots:
 
@@ -128,6 +130,7 @@ public slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
 };
 
 #endif // DIALOGBOX_TRANSPARENCYDLG_H
diff --git a/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx b/src/SMESHGUI/SMESHGUI_CreateHypothesesDlg.cxx
deleted file mode 100644 (file)
index 32e4860..0000000
+++ /dev/null
@@ -1,299 +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*)));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  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);
-  }
-}
index caa762e9e44c3ec923b28e4b262ee7a13f56e03a..b7710809f48f0e7559a32193fdad7487699747ac 100755 (executable)
-//  SMESH SMESHGUI : GUI for SMESH component\r
-//\r
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS\r
-//\r
-//  This library is free software; you can redistribute it and/or\r
-//  modify it under the terms of the GNU Lesser General Public\r
-//  License as published by the Free Software Foundation; either\r
-//  version 2.1 of the License.\r
-//\r
-//  This library is distributed in the hope that it will be useful,\r
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
-//  Lesser General Public License for more details.\r
-//\r
-//  You should have received a copy of the GNU Lesser General Public\r
-//  License along with this library; if not, write to the Free Software\r
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
-//\r
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org\r
-//\r
-//\r
-//\r
-//  File   : SMESHGUI_CreatePatternDlg.cxx\r
-//  Author : Sergey LITONIN\r
-//  Module : SMESH\r
-\r
-#include "SMESHGUI_CreatePatternDlg.h"\r
-\r
-#include "SMESHGUI.h"\r
-#include "SMESHGUI_SpinBox.h"\r
-#include "SMESHGUI_PatternWidget.h"\r
-#include "SMESHGUI_Utils.h"\r
-#include "SMESHGUI_VTKUtils.h"\r
-#include "SMESHGUI_PatternUtils.h"\r
-#include "SMESHGUI_GEOMGenUtils.h"\r
-\r
-#include "SMESH_NumberFilter.hxx"\r
-\r
-#include "SUIT_ResourceMgr.h"\r
-#include "SUIT_Desktop.h"\r
-#include "SUIT_FileDlg.h"\r
-\r
-#include "SalomeApp_Study.h"\r
-#include "LightApp_DataOwner.h"\r
-#include "LightApp_SelectionMgr.h"\r
-#include "SalomeApp_Tools.h"\r
-\r
-#include "SALOMEDS_SObject.hxx"\r
-\r
-#include "SALOME_ListIO.hxx"\r
-#include "SVTK_ViewModel.h"\r
-#include "SVTK_ViewWindow.h"\r
-#include "SVTK_Selector.h"\r
-#include "SVTK_Selection.h"\r
-\r
-// OCCT Includes\r
-#include <TColStd_MapOfInteger.hxx>\r
-\r
-// QT Includes\r
-#include <qframe.h>\r
-#include <qlayout.h>\r
-#include <qlineedit.h>\r
-#include <qpushbutton.h>\r
-#include <qgroupbox.h>\r
-#include <qlabel.h>\r
-#include <qradiobutton.h>\r
-#include <qcheckbox.h>\r
-#include <qbuttongroup.h>\r
-#include <qmessagebox.h>\r
-#include <qapplication.h>\r
-\r
-#define SPACING 5\r
-#define MARGIN  10\r
-\r
-/*!\r
- *  Class       : SMESHGUI_CreatePatternDlg\r
- *  Description : Dialog to specify filters for VTK viewer\r
- */\r
-\r
-//=======================================================================\r
-// function : SMESHGUI_CreatePatternDlg()\r
-// purpose  : Constructor\r
-//=======================================================================\r
-SMESHGUI_CreatePatternDlg::SMESHGUI_CreatePatternDlg( SMESHGUI*   theModule,\r
-                                                      const int   theType,\r
-                                                      const char* theName)\r
-     : QDialog( SMESH::GetDesktop( theModule ), theName, false,\r
-                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),\r
-     mySMESHGUI( theModule ),\r
-     mySelectionMgr( SMESH::GetSelectionMgr( theModule ) )\r
-{\r
-  setCaption(tr("CAPTION"));\r
-\r
-  QVBoxLayout* aDlgLay = new QVBoxLayout (this, MARGIN, SPACING);\r
-\r
-  QFrame* aMainFrame = createMainFrame  (this);\r
-  QFrame* aBtnFrame  = createButtonFrame(this);\r
-\r
-  aDlgLay->addWidget(aMainFrame);\r
-  aDlgLay->addWidget(aBtnFrame);\r
-\r
-  aDlgLay->setStretchFactor(aMainFrame, 1);\r
-\r
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-    mySelector = aViewWindow->GetSelector();\r
-\r
-  Init(theType);\r
-}\r
-\r
-//=======================================================================\r
-// function : createMainFrame()\r
-// purpose  : Create frame containing dialog's input fields\r
-//=======================================================================\r
-QFrame* SMESHGUI_CreatePatternDlg::createMainFrame (QWidget* theParent)\r
-{\r
-  QPixmap iconSlct     (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));\r
-  QPixmap icon2d       (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_2d")));\r
-  QPixmap icon3d       (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_3d")));\r
-  QPixmap iconSample2d (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_SAMPLE_2D")));\r
-\r
-  QGroupBox* aMainGrp = new QGroupBox(1, Qt::Horizontal, theParent);\r
-  aMainGrp->setFrameStyle(QFrame::NoFrame);\r
-  aMainGrp->setInsideMargin(0);\r
-\r
-  // Pattern type group\r
-\r
-  myTypeGrp = new QButtonGroup (1, Qt::Vertical, tr("PATTERN_TYPE"), aMainGrp);\r
-  mySwitch2d = new QRadioButton (myTypeGrp);\r
-  mySwitch3d = new QRadioButton (myTypeGrp);\r
-  mySwitch2d->setPixmap(icon2d);\r
-  mySwitch3d->setPixmap(icon3d);\r
-  myTypeGrp->insert(mySwitch2d, Type_2d);\r
-  myTypeGrp->insert(mySwitch3d, Type_3d);\r
-\r
-  QGroupBox* aPatternGrp = new QGroupBox(1, Qt::Horizontal, tr("PATTERN"), aMainGrp);\r
-\r
-  // Mesh and pattern name group\r
-\r
-  QGroupBox* aMeshGrp = new QGroupBox(1, Qt::Vertical, aPatternGrp);\r
-  aMeshGrp->setFrameStyle(QFrame::NoFrame);\r
-  aMeshGrp->setInsideMargin(0);\r
-\r
-  new QLabel(tr("MESH_OR_SUBMESH"), aMeshGrp);\r
-\r
-  QPushButton* aSelBtn = new QPushButton(aMeshGrp);\r
-  aSelBtn->setPixmap(iconSlct);\r
-  myMeshEdit = new QLineEdit(aMeshGrp);\r
-  myMeshEdit->setReadOnly(true);\r
-\r
-  QGroupBox* aPattGrp = new QGroupBox(1, Qt::Vertical, aPatternGrp);\r
-  aPattGrp->setFrameStyle(QFrame::NoFrame);\r
-  aPattGrp->setInsideMargin(0);\r
-\r
-  new QLabel(tr("PATTERN_NAME"), aPattGrp);\r
-  myName = new QLineEdit(aPattGrp);\r
-\r
-  // Picture 2d\r
-\r
-  myPicture2d = new SMESHGUI_PatternWidget(aPatternGrp),\r
-  myPicture2d->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));\r
-\r
-  // Project check box\r
-\r
-  myProjectChk = new QCheckBox(tr("PROJECT"), aPatternGrp);\r
-\r
-  // Connect signals and slots\r
-\r
-  connect(myTypeGrp,    SIGNAL(clicked(int) ), SLOT(onTypeChanged(int)));\r
-  connect(myProjectChk, SIGNAL(toggled(bool)), SLOT(onProject(bool)   ));\r
-  connect(aSelBtn,      SIGNAL(clicked()      ), SLOT(onSelBtnClicked()));\r
-\r
-  return aMainGrp;\r
-}\r
-\r
-//=======================================================================\r
-// function : createButtonFrame()\r
-// purpose  : Create frame containing buttons\r
-//=======================================================================\r
-QFrame* SMESHGUI_CreatePatternDlg::createButtonFrame (QWidget* theParent)\r
-{\r
-  QFrame* aFrame = new QFrame(theParent);\r
-  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);\r
-\r
-  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
-\r
-  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);\r
-\r
-  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);\r
-\r
-  aLay->addWidget(myOkBtn);\r
-  aLay->addWidget(mySaveBtn);\r
-  aLay->addItem(aSpacer);\r
-  aLay->addWidget(myCloseBtn);\r
-\r
-  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));\r
-  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));\r
-  connect(mySaveBtn, SIGNAL(clicked()), SLOT(onSave()));\r
-\r
-  return aFrame;\r
-}\r
-\r
-//=======================================================================\r
-// function : ~SMESHGUI_CreatePatternDlg()\r
-// purpose  : Destructor\r
-//=======================================================================\r
-SMESHGUI_CreatePatternDlg::~SMESHGUI_CreatePatternDlg()\r
-{\r
-  // no need to delete child widgets, Qt does it all for us\r
-}\r
-\r
-//=======================================================================\r
-// function : onProject()\r
-// purpose  : SLOT. Called when state of "Project nodes on ther face"\r
-//            checkbox is changed\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onProject (bool)\r
-{\r
-  loadFromObject(false);\r
-  displayPreview();\r
-}\r
-\r
-//=======================================================================\r
-// function : Init()\r
-// purpose  : Init dialog fields, connect signals and slots, show dialog\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::Init( const int theType )\r
-{\r
-  myIsLoaded     = false;\r
-  myType         = -1;\r
-  myNbPoints     = -1;\r
-  mySubMesh      = SMESH::SMESH_subMesh::_nil();\r
-  myMesh         = SMESH::SMESH_Mesh::_nil();\r
-  myGeomObj      = GEOM::GEOM_Object::_nil();\r
-  myPattern      = SMESH::SMESH_Pattern::_nil();\r
-\r
-  erasePreview();\r
-\r
-  mySMESHGUI->SetActiveDialogBox((QDialog*)this);\r
-\r
-  // selection and SMESHGUI\r
-  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));\r
-  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));\r
-  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));\r
-\r
-  mySwitch2d->setEnabled(theType == Type_2d);\r
-  mySwitch3d->setEnabled(theType == Type_3d);\r
-\r
-  if (theType == Type_2d)\r
-    myProjectChk->show();\r
-  else\r
-    myProjectChk->hide();\r
-\r
-  myTypeGrp->setButton(theType);\r
-  onTypeChanged(theType);\r
-\r
-  myName->setText(getDefaultName());\r
-  myMeshEdit->setText("");\r
-\r
-  setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));\r
-  qApp->processEvents();\r
-  updateGeometry();\r
-  myPicture2d->updateGeometry();\r
-  adjustSize();\r
-  resize(minimumSize());\r
-\r
-  activateSelection();\r
-  onSelectionDone();\r
-\r
-  int x, y;\r
-  mySMESHGUI->DefineDlgPosition(this, x, y);\r
-  this->move(x, y);\r
-  this->show();\r
-}\r
-\r
-//=======================================================================\r
-// function : SetMesh()\r
-// purpose  : Set mesh to dialog\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)\r
-{\r
-  myMesh = SMESH::SMESH_Mesh::_duplicate(thePtr);\r
-  mySubMesh = SMESH::SMESH_subMesh::_nil();\r
-\r
-  bool isValidMesh = false;\r
-  if (!myMesh->_is_nil())\r
-  {\r
-    _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());\r
-    //Handle(SALOME_InteractiveObject) anIObj =\r
-    //  new SALOME_InteractiveObject(aSobj->GetID().c_str(), "SMESH");\r
-    SUIT_DataOwnerPtr anIObj (new LightApp_DataOwner(aSobj->GetID().c_str()));\r
-\r
-    isValidMesh = mySelectionMgr->isOk(anIObj);\r
-  }\r
-\r
-  if (isValidMesh) {\r
-    _PTR(SObject) aSO = SMESH::FindSObject(myMesh.in());\r
-    myMeshEdit->setText(aSO->GetName().c_str());\r
-    myGeomObj = SMESH::GetGeom(aSO);\r
-  } else {\r
-    myMeshEdit->setText("");\r
-    myGeomObj = GEOM::GEOM_Object::_nil();\r
-  }\r
-\r
-  if (myType == Type_2d) {\r
-    loadFromObject(false);\r
-    displayPreview();\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : isValid()\r
-// purpose  : Verify validity of entry data\r
-//=======================================================================\r
-bool SMESHGUI_CreatePatternDlg::isValid()\r
-{\r
-  if (myGeomObj->_is_nil()) {\r
-    QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ),\r
-                             tr("SMESH_INSUFFICIENT_DATA"),\r
-                             tr("SMESHGUI_INVALID_PARAMETERS"),\r
-                             QMessageBox::Ok);\r
-    return false;\r
-  }\r
-  else\r
-    return true;\r
-}\r
-\r
-//=======================================================================\r
-// function : getDefaultName()\r
-// purpose  : Get default pattern name\r
-//=======================================================================\r
-QString SMESHGUI_CreatePatternDlg::getDefaultName() const\r
-{\r
-  return myType == Type_2d ? tr("DEFAULT_2D") : tr("DEFAULT_3D");\r
-}\r
-\r
-//=======================================================================\r
-// function : onSave()\r
-// purpose  : SLOT called when "Save" button pressed. Build pattern and\r
-//           save it to disk\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onSave()\r
-{\r
-  try {\r
-    if (!isValid())\r
-      return;\r
-\r
-    if (!myIsLoaded)\r
-      loadFromObject(true);\r
-\r
-    // Load pattern from object\r
-    if (!myIsLoaded)\r
-      return;\r
-\r
-    ///////////////////////////////////////////////////////\r
-    SUIT_FileDlg* aDlg = new SUIT_FileDlg (this, false);\r
-    aDlg->setCaption(tr("SAVE_PATTERN"));\r
-    aDlg->setMode(QFileDialog::AnyFile);\r
-    aDlg->setFilters(tr("PATTERN_FILT"));\r
-    if (myName->text() != "")\r
-      aDlg->setSelection(myName->text());\r
-\r
-    if (aDlg->exec() != Accepted)\r
-      return;\r
-\r
-    QString fName = aDlg->selectedFile();\r
-    if (fName.isEmpty())\r
-      return;\r
-\r
-    if (QFileInfo(fName).extension().isEmpty())\r
-      fName = autoExtension(fName);\r
-\r
-    fName = QDir::convertSeparators(fName);\r
-\r
-    QString aData (myPattern->GetString());\r
-    long aLen = aData.length();\r
-\r
-    QFile aFile (fName);\r
-    aFile.open(IO_WriteOnly);\r
-    long aWritten = aFile.writeBlock(aData, aLen);\r
-    aFile.close();\r
-\r
-    if (aWritten != aLen) {\r
-      QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ), tr("SMESH_ERROR"),\r
-                               tr("ERROR_OF_SAVING"), QMessageBox::Ok);\r
-    } else {\r
-      //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);\r
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-       aViewWindow->SetSelectionMode(ActorSelection);\r
-      disconnect(mySelectionMgr, 0, this, 0);\r
-      disconnect(mySMESHGUI, 0, this, 0);\r
-      mySMESHGUI->ResetState();\r
-      accept();\r
-      emit NewPattern();\r
-    }\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  } catch (...) {\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : GetPatternName()\r
-// purpose  : Get name of pattern\r
-//=======================================================================\r
-QString SMESHGUI_CreatePatternDlg::GetPatternName() const\r
-{\r
-  return myName->text();\r
-}\r
-\r
-//=======================================================================\r
-// function : GetPattern()\r
-// purpose  : Get result pattern\r
-//=======================================================================\r
-SMESH::SMESH_Pattern_ptr SMESHGUI_CreatePatternDlg::GetPattern()\r
-{\r
-  return myPattern.in();\r
-}\r
-\r
-//=======================================================================\r
-// function : onOk()\r
-// purpose  : SLOT called when "Ok" button pressed.\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onOk()\r
-{\r
-  try {\r
-    if (!isValid())\r
-      return;\r
-\r
-    if (!myIsLoaded)\r
-      loadFromObject(true);\r
-\r
-    // Load pattern from object\r
-    if (!myIsLoaded) {\r
-      return;\r
-    } else {\r
-      //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);\r
-      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-       aViewWindow->SetSelectionMode(ActorSelection);\r
-      disconnect(mySelectionMgr, 0, this, 0);\r
-      disconnect(mySMESHGUI, 0, this, 0);\r
-      mySMESHGUI->ResetState();\r
-      accept();\r
-      emit NewPattern();\r
-    }\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  } catch (...) {\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : onClose()\r
-// purpose  : SLOT called when "Close" button pressed. Close dialog\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onClose()\r
-{\r
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-    aViewWindow->SetSelectionMode(ActorSelection);\r
-  disconnect(mySelectionMgr, 0, this, 0);\r
-  disconnect(mySMESHGUI, 0, this, 0);\r
-  mySMESHGUI->ResetState();\r
-  reject();\r
-  emit Close();\r
-}\r
-\r
-//=======================================================================\r
-// function : loadFromObject()\r
-// purpose  : Load pattern from geom object corresponding to the mesh/submesh\r
-//=======================================================================\r
-bool SMESHGUI_CreatePatternDlg::loadFromObject (const bool theMess)\r
-{\r
-  try {\r
-    myIsLoaded = false;\r
-\r
-    if (myPattern->_is_nil())\r
-      myPattern = SMESH::GetPattern();\r
-\r
-    if (myMesh->_is_nil() && mySubMesh->_is_nil() || myGeomObj->_is_nil())\r
-      return false;\r
-\r
-    SMESH::SMESH_Mesh_ptr aMesh = mySubMesh->_is_nil() ? myMesh.in() : mySubMesh->GetFather();\r
-\r
-    myIsLoaded = myType == Type_2d\r
-      ? myPattern->LoadFromFace(aMesh, myGeomObj, myProjectChk->isChecked())\r
-      : myPattern->LoadFrom3DBlock(aMesh, myGeomObj);\r
-\r
-    if (!myIsLoaded && theMess) {\r
-      QString aMess;\r
-      SMESH::SMESH_Pattern::ErrorCode aCode = myPattern->GetErrorCode();\r
-\r
-      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_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
-\r
-      QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ),\r
-                               tr("SMESH_ERROR"), aMess, QMessageBox::Ok);\r
-    }\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  }\r
-\r
-  return myIsLoaded;\r
-}\r
-\r
-//=======================================================================\r
-// function : onSelectionDone()\r
-// purpose  : SLOT called when selection changed\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onSelectionDone()\r
-{\r
-  try {\r
-    SALOME_ListIO aList;\r
-    mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());\r
-    if (aList.Extent() != 1)\r
-      return;\r
-\r
-    // Get mesh or sub-mesh from selection\r
-    Handle(SALOME_InteractiveObject) anIO = aList.First();\r
-    SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIO);\r
-    SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIO);\r
-    if (aMesh->_is_nil() && aSubMesh->_is_nil())\r
-      return;\r
-\r
-    // Get geom object corresponding to the mesh\r
-    _PTR(SObject) aSO;\r
-    if (!aMesh->_is_nil())\r
-      aSO = SMESH::FindSObject(aMesh.in());\r
-    else\r
-      aSO = SMESH::FindSObject(aSubMesh.in());\r
-\r
-    GEOM::GEOM_Object_var aGeomObj = SMESH::GetGeom(aSO);\r
-    if (aGeomObj->_is_nil())\r
-      return;\r
-\r
-    myGeomObj = aGeomObj;\r
-\r
-    // init class fields\r
-    if (!aMesh->_is_nil()) {\r
-      myMesh = aMesh;\r
-      mySubMesh = SMESH::SMESH_subMesh::_nil();\r
-    } else {\r
-      mySubMesh = aSubMesh;\r
-      myMesh = SMESH::SMESH_Mesh::_nil();\r
-    }\r
-\r
-    QString aName;\r
-    SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);\r
-    myMeshEdit->setText(aName);\r
-\r
-    if (myType == Type_2d) {\r
-      loadFromObject(true);\r
-      displayPreview();\r
-    }\r
-  } catch (...) {\r
-    myMesh = SMESH::SMESH_Mesh::_nil();\r
-    mySubMesh = SMESH::SMESH_subMesh::_nil();\r
-    myGeomObj = GEOM::GEOM_Object::_nil();\r
-    erasePreview();\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : onDeactivate()\r
-// purpose  : SLOT called when dialog must be deativated\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onDeactivate()\r
-{\r
-  disconnect(mySelectionMgr, 0, this, 0);\r
-  setEnabled(false);\r
-}\r
-\r
-//=======================================================================\r
-// function : enterEvent()\r
-// purpose  : Event filter\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::enterEvent (QEvent*)\r
-{\r
-  // there is a stange problem that enterEvent() comes after onSave()\r
-  if ( isVisible () ) {\r
-    mySMESHGUI->EmitSignalDeactivateDialog();\r
-    setEnabled(true);\r
-    activateSelection();\r
-    connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));\r
-  }\r
-}\r
-\r
-//=================================================================================\r
-// function : closeEvent()\r
-// purpose  : Close dialog box\r
-//=================================================================================\r
-void SMESHGUI_CreatePatternDlg::closeEvent (QCloseEvent*)\r
-{\r
-  onClose();\r
-}\r
-\r
-//=======================================================================\r
-// function : onSelBtnClicked()\r
-// purpose  : SLOT. Called when -> button clicked.\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onSelBtnClicked()\r
-{\r
-  onSelectionDone();\r
-}\r
-\r
-//================================================================\r
-// function : autoExtension()\r
-// purpose  : Append extension to the file name\r
-//================================================================\r
-QString SMESHGUI_CreatePatternDlg::autoExtension (const QString& theFileName) const\r
-{\r
-  QString anExt = theFileName.section('.', -1);\r
-  return anExt != "smp" && anExt != "SMP" ? theFileName + ".smp" : theFileName;\r
-}\r
-\r
-//=======================================================================\r
-// function : displayPreview()\r
-// purpose  : Display preview\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::displayPreview()\r
-{\r
-  // Redisplay preview in dialog\r
-  try {\r
-    if (!myIsLoaded) {\r
-      erasePreview();\r
-    } else {\r
-      SMESH::point_array_var pnts = myPattern->GetPoints();\r
-      SMESH::long_array_var keyPoints = myPattern->GetKeyPoints();\r
-      SMESH::array_of_long_array_var elemPoints = myPattern->GetElementPoints(false);\r
-\r
-      if (pnts->length()       == 0 ||\r
-          keyPoints->length()  == 0 ||\r
-          elemPoints->length() == 0) {\r
-        myIsLoaded = false;\r
-        erasePreview();\r
-        return;\r
-      }\r
-\r
-      PointVector aPoints (pnts->length());\r
-      QValueVector<int> aKeyPoints (keyPoints->length());\r
-      ConnectivityVector anElemPoints (elemPoints->length());\r
-\r
-      for (int i = 0, n = pnts->length(); i < n; i++)\r
-        aPoints[ i ] = pnts[ i ];\r
-\r
-      for (int i2 = 0, n2 = keyPoints->length(); i2 < n2; i2++)\r
-        aKeyPoints[ i2 ] = keyPoints[ i2 ];\r
-\r
-      for (int i3 = 0, n3 = elemPoints->length(); i3 < n3; i3++) {\r
-        QValueVector<int> aVec (elemPoints[ i3 ].length());\r
-        for (int i4 = 0, n4 = elemPoints[ i3 ].length(); i4 < n4; i4++)\r
-          aVec[ i4 ] = elemPoints[ i3 ][ i4 ];\r
-\r
-        anElemPoints[ i3 ] = aVec;\r
-      }\r
-\r
-      myPicture2d->SetPoints(aPoints, aKeyPoints, anElemPoints);\r
-    }\r
-\r
-    return;\r
-\r
-  } catch (const SALOME::SALOME_Exception& S_ex) {\r
-    SalomeApp_Tools::QtCatchCorbaException(S_ex);\r
-  } catch (...) {\r
-  }\r
-  erasePreview();\r
-}\r
-\r
-//=======================================================================\r
-// function : erasePreview()\r
-// purpose  : Erase preview\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::erasePreview()\r
-{\r
-  // Erase preview in 2D viewer\r
-  myPicture2d->SetPoints(PointVector(), QValueVector<int>(), ConnectivityVector());\r
-}\r
-\r
-//=======================================================================\r
-// function : activateSelection()\r
-// purpose  : Activate selection in accordance with current pattern type\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::activateSelection()\r
-{\r
-  mySelectionMgr->clearFilters();\r
-  //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);\r
-  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))\r
-    aViewWindow->SetSelectionMode(ActorSelection);\r
-\r
-  if (myType == Type_2d) {\r
-    mySelectionMgr->installFilter(new SMESH_NumberFilter\r
-      ("SMESH", TopAbs_SHAPE, -1, TopAbs_FACE));\r
-  } else {\r
-    TColStd_MapOfInteger aTypes;\r
-    aTypes.Add(TopAbs_SHELL);\r
-    aTypes.Add(TopAbs_SOLID);\r
-    mySelectionMgr->installFilter(new SMESH_NumberFilter\r
-      ("SMESH", TopAbs_FACE, 6, aTypes, GEOM::GEOM_Object::_nil(), true));\r
-  }\r
-}\r
-\r
-//=======================================================================\r
-// function : onTypeChanged()\r
-// purpose  : SLOT. Called when pattern type changed.\r
-//            Change dialog's look and feel\r
-//=======================================================================\r
-void SMESHGUI_CreatePatternDlg::onTypeChanged (int theType)\r
-{\r
-  if (myType == theType)\r
-    return;\r
-\r
-  myType = theType;\r
-\r
-  if (theType == Type_2d)\r
-    myPicture2d->show();\r
-  else\r
-    myPicture2d->hide();\r
-}\r
+//  SMESH SMESHGUI : GUI for SMESH component
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  This library is free software; you can redistribute it and/or
+//  modify it under the terms of the GNU Lesser General Public
+//  License as published by the Free Software Foundation; either
+//  version 2.1 of the License.
+//
+//  This library is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+//  Lesser General Public License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public
+//  License along with this library; if not, write to the Free Software
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMESHGUI_CreatePatternDlg.cxx
+//  Author : Sergey LITONIN
+//  Module : SMESH
+
+#include "SMESHGUI_CreatePatternDlg.h"
+
+#include "SMESHGUI.h"
+#include "SMESHGUI_SpinBox.h"
+#include "SMESHGUI_PatternWidget.h"
+#include "SMESHGUI_Utils.h"
+#include "SMESHGUI_VTKUtils.h"
+#include "SMESHGUI_PatternUtils.h"
+#include "SMESHGUI_GEOMGenUtils.h"
+
+#include "SMESH_NumberFilter.hxx"
+
+#include "SUIT_ResourceMgr.h"
+#include "SUIT_Desktop.h"
+#include "SUIT_FileDlg.h"
+#include "SUIT_Session.h"
+#include "SUIT_MessageBox.h"
+
+#include "SalomeApp_Study.h"
+#include "LightApp_Application.h"
+#include "LightApp_DataOwner.h"
+#include "LightApp_SelectionMgr.h"
+#include "SalomeApp_Tools.h"
+
+#include "SALOMEDS_SObject.hxx"
+
+#include "SALOME_ListIO.hxx"
+#include "SVTK_ViewModel.h"
+#include "SVTK_ViewWindow.h"
+#include "SVTK_Selector.h"
+#include "SVTK_Selection.h"
+
+// OCCT Includes
+#include <TColStd_MapOfInteger.hxx>
+
+// QT Includes
+#include <qframe.h>
+#include <qlayout.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+#include <qbuttongroup.h>
+#include <qmessagebox.h>
+#include <qapplication.h>
+
+#define SPACING 5
+#define MARGIN  10
+
+/*!
+ *  Class       : SMESHGUI_CreatePatternDlg
+ *  Description : Dialog to specify filters for VTK viewer
+ */
+
+//=======================================================================
+// function : SMESHGUI_CreatePatternDlg()
+// purpose  : Constructor
+//=======================================================================
+SMESHGUI_CreatePatternDlg::SMESHGUI_CreatePatternDlg( SMESHGUI*   theModule,
+                                                      const int   theType,
+                                                      const char* theName)
+     : QDialog( SMESH::GetDesktop( theModule ), theName, false,
+                WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu),
+     mySMESHGUI( theModule ),
+     mySelectionMgr( SMESH::GetSelectionMgr( 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);
+
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    mySelector = aViewWindow->GetSelector();
+
+  myHelpFileName = "pattern_mapping.htm";
+
+  Init(theType);
+}
+
+//=======================================================================
+// function : createMainFrame()
+// purpose  : Create frame containing dialog's input fields
+//=======================================================================
+QFrame* SMESHGUI_CreatePatternDlg::createMainFrame (QWidget* theParent)
+{
+  QPixmap iconSlct     (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_SELECT")));
+  QPixmap icon2d       (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_2d")));
+  QPixmap icon3d       (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_3d")));
+  QPixmap iconSample2d (SMESH::GetResourceMgr( mySMESHGUI )->loadPixmap("SMESH", tr("ICON_PATTERN_SAMPLE_2D")));
+
+  QGroupBox* aMainGrp = new QGroupBox(1, Qt::Horizontal, theParent);
+  aMainGrp->setFrameStyle(QFrame::NoFrame);
+  aMainGrp->setInsideMargin(0);
+
+  // Pattern type group
+
+  myTypeGrp = new QButtonGroup (1, Qt::Vertical, tr("PATTERN_TYPE"), aMainGrp);
+  mySwitch2d = new QRadioButton (myTypeGrp);
+  mySwitch3d = new QRadioButton (myTypeGrp);
+  mySwitch2d->setPixmap(icon2d);
+  mySwitch3d->setPixmap(icon3d);
+  myTypeGrp->insert(mySwitch2d, Type_2d);
+  myTypeGrp->insert(mySwitch3d, Type_3d);
+
+  QGroupBox* aPatternGrp = new QGroupBox(1, Qt::Horizontal, tr("PATTERN"), aMainGrp);
+
+  // Mesh and pattern name group
+
+  QGroupBox* aMeshGrp = new QGroupBox(1, Qt::Vertical, aPatternGrp);
+  aMeshGrp->setFrameStyle(QFrame::NoFrame);
+  aMeshGrp->setInsideMargin(0);
+
+  new QLabel(tr("MESH_OR_SUBMESH"), aMeshGrp);
+
+  QPushButton* aSelBtn = new QPushButton(aMeshGrp);
+  aSelBtn->setPixmap(iconSlct);
+  myMeshEdit = new QLineEdit(aMeshGrp);
+  myMeshEdit->setReadOnly(true);
+
+  QGroupBox* aPattGrp = new QGroupBox(1, Qt::Vertical, aPatternGrp);
+  aPattGrp->setFrameStyle(QFrame::NoFrame);
+  aPattGrp->setInsideMargin(0);
+
+  new QLabel(tr("PATTERN_NAME"), aPattGrp);
+  myName = new QLineEdit(aPattGrp);
+
+  // Picture 2d
+
+  myPicture2d = new SMESHGUI_PatternWidget(aPatternGrp),
+  myPicture2d->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding));
+
+  // Project check box
+
+  myProjectChk = new QCheckBox(tr("PROJECT"), aPatternGrp);
+
+  // Connect signals and slots
+
+  connect(myTypeGrp,    SIGNAL(clicked(int) ), SLOT(onTypeChanged(int)));
+  connect(myProjectChk, SIGNAL(toggled(bool)), SLOT(onProject(bool)   ));
+  connect(aSelBtn,      SIGNAL(clicked()      ), SLOT(onSelBtnClicked()));
+
+  return aMainGrp;
+}
+
+//=======================================================================
+// function : createButtonFrame()
+// purpose  : Create frame containing buttons
+//=======================================================================
+QFrame* SMESHGUI_CreatePatternDlg::createButtonFrame (QWidget* theParent)
+{
+  QFrame* aFrame = new QFrame(theParent);
+  aFrame->setFrameStyle(QFrame::Box | QFrame::Sunken);
+
+  myOkBtn    = new QPushButton(tr("SMESH_BUT_OK"    ), aFrame);
+  mySaveBtn  = new QPushButton(tr("SAVE"            ), aFrame);
+  myCloseBtn = new QPushButton(tr("SMESH_BUT_CANCEL"), aFrame);
+  myHelpBtn = new QPushButton(tr("SMESH_BUT_HELP"), aFrame);
+
+  QSpacerItem* aSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
+
+  QHBoxLayout* aLay = new QHBoxLayout(aFrame, MARGIN, SPACING);
+
+  aLay->addWidget(myOkBtn);
+  aLay->addWidget(mySaveBtn);
+  aLay->addItem(aSpacer);
+  aLay->addWidget(myCloseBtn);
+  aLay->addWidget(myHelpBtn);
+
+  connect(myOkBtn,    SIGNAL(clicked()), SLOT(onOk()));
+  connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose()));
+  connect(mySaveBtn, SIGNAL(clicked()), SLOT(onSave()));
+  connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
+
+  return aFrame;
+}
+
+//=======================================================================
+// function : ~SMESHGUI_CreatePatternDlg()
+// purpose  : Destructor
+//=======================================================================
+SMESHGUI_CreatePatternDlg::~SMESHGUI_CreatePatternDlg()
+{
+  // no need to delete child widgets, Qt does it all for us
+}
+
+//=======================================================================
+// function : onProject()
+// purpose  : SLOT. Called when state of "Project nodes on ther face"
+//            checkbox is changed
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onProject (bool)
+{
+  loadFromObject(false);
+  displayPreview();
+}
+
+//=======================================================================
+// function : Init()
+// purpose  : Init dialog fields, connect signals and slots, show dialog
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::Init( const int theType )
+{
+  myIsLoaded     = false;
+  myType         = -1;
+  myNbPoints     = -1;
+  mySubMesh      = SMESH::SMESH_subMesh::_nil();
+  myMesh         = SMESH::SMESH_Mesh::_nil();
+  myGeomObj      = GEOM::GEOM_Object::_nil();
+  myPattern      = SMESH::SMESH_Pattern::_nil();
+
+  erasePreview();
+
+  mySMESHGUI->SetActiveDialogBox((QDialog*)this);
+
+  // selection and SMESHGUI
+  connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
+  connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
+  connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
+
+  mySwitch2d->setEnabled(theType == Type_2d);
+  mySwitch3d->setEnabled(theType == Type_3d);
+
+  if (theType == Type_2d)
+    myProjectChk->show();
+  else
+    myProjectChk->hide();
+
+  myTypeGrp->setButton(theType);
+  onTypeChanged(theType);
+
+  myName->setText(getDefaultName());
+  myMeshEdit->setText("");
+
+  setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
+  qApp->processEvents();
+  updateGeometry();
+  myPicture2d->updateGeometry();
+  adjustSize();
+  resize(minimumSize());
+
+  activateSelection();
+  onSelectionDone();
+
+  this->show();
+}
+
+//=======================================================================
+// function : SetMesh()
+// purpose  : Set mesh to dialog
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::SetMesh (SMESH::SMESH_Mesh_ptr thePtr)
+{
+  myMesh = SMESH::SMESH_Mesh::_duplicate(thePtr);
+  mySubMesh = SMESH::SMESH_subMesh::_nil();
+
+  bool isValidMesh = false;
+  if (!myMesh->_is_nil())
+  {
+    _PTR(SObject) aSobj = SMESH::FindSObject(myMesh.in());
+    //Handle(SALOME_InteractiveObject) anIObj =
+    //  new SALOME_InteractiveObject(aSobj->GetID().c_str(), "SMESH");
+    SUIT_DataOwnerPtr anIObj (new LightApp_DataOwner(aSobj->GetID().c_str()));
+
+    isValidMesh = mySelectionMgr->isOk(anIObj);
+  }
+
+  if (isValidMesh) {
+    _PTR(SObject) aSO = SMESH::FindSObject(myMesh.in());
+    myMeshEdit->setText(aSO->GetName().c_str());
+    myGeomObj = SMESH::GetGeom(aSO);
+  } else {
+    myMeshEdit->setText("");
+    myGeomObj = GEOM::GEOM_Object::_nil();
+  }
+
+  if (myType == Type_2d) {
+    loadFromObject(false);
+    displayPreview();
+  }
+}
+
+//=======================================================================
+// function : isValid()
+// purpose  : Verify validity of entry data
+//=======================================================================
+bool SMESHGUI_CreatePatternDlg::isValid()
+{
+  if (myGeomObj->_is_nil()) {
+    QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ),
+                             tr("SMESH_INSUFFICIENT_DATA"),
+                             tr("SMESHGUI_INVALID_PARAMETERS"),
+                             QMessageBox::Ok);
+    return false;
+  }
+  else
+    return true;
+}
+
+//=======================================================================
+// function : getDefaultName()
+// purpose  : Get default pattern name
+//=======================================================================
+QString SMESHGUI_CreatePatternDlg::getDefaultName() const
+{
+  return myType == Type_2d ? tr("DEFAULT_2D") : tr("DEFAULT_3D");
+}
+
+//=======================================================================
+// function : onSave()
+// purpose  : SLOT called when "Save" button pressed. Build pattern and
+//           save it to disk
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onSave()
+{
+  try {
+    if (!isValid())
+      return;
+
+    if (!myIsLoaded)
+      loadFromObject(true);
+
+    // Load pattern from object
+    if (!myIsLoaded)
+      return;
+
+    ///////////////////////////////////////////////////////
+    SUIT_FileDlg* aDlg = new SUIT_FileDlg (this, false);
+    aDlg->setCaption(tr("SAVE_PATTERN"));
+    aDlg->setMode(QFileDialog::AnyFile);
+    aDlg->setFilters(tr("PATTERN_FILT"));
+    if (myName->text() != "")
+      aDlg->setSelection(myName->text());
+
+    if (aDlg->exec() != Accepted)
+      return;
+
+    QString fName = aDlg->selectedFile();
+    if (fName.isEmpty())
+      return;
+
+    if (QFileInfo(fName).extension().isEmpty())
+      fName = autoExtension(fName);
+
+    fName = QDir::convertSeparators(fName);
+
+    QString aData (myPattern->GetString());
+    long aLen = aData.length();
+
+    QFile aFile (fName);
+    aFile.open(IO_WriteOnly);
+    long aWritten = aFile.writeBlock(aData, aLen);
+    aFile.close();
+
+    if (aWritten != aLen) {
+      QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ), tr("SMESH_ERROR"),
+                               tr("ERROR_OF_SAVING"), QMessageBox::Ok);
+    } else {
+      //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);
+      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+       aViewWindow->SetSelectionMode(ActorSelection);
+      disconnect(mySelectionMgr, 0, this, 0);
+      disconnect(mySMESHGUI, 0, this, 0);
+      mySMESHGUI->ResetState();
+      accept();
+      emit NewPattern();
+    }
+  } catch (const SALOME::SALOME_Exception& S_ex) {
+    SalomeApp_Tools::QtCatchCorbaException(S_ex);
+  } catch (...) {
+  }
+}
+
+//=======================================================================
+// function : GetPatternName()
+// purpose  : Get name of pattern
+//=======================================================================
+QString SMESHGUI_CreatePatternDlg::GetPatternName() const
+{
+  return myName->text();
+}
+
+//=======================================================================
+// function : GetPattern()
+// purpose  : Get result pattern
+//=======================================================================
+SMESH::SMESH_Pattern_ptr SMESHGUI_CreatePatternDlg::GetPattern()
+{
+  return myPattern.in();
+}
+
+//=======================================================================
+// function : onOk()
+// purpose  : SLOT called when "Ok" button pressed.
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onOk()
+{
+  try {
+    if (!isValid())
+      return;
+
+    if (!myIsLoaded)
+      loadFromObject(true);
+
+    // Load pattern from object
+    if (!myIsLoaded) {
+      return;
+    } else {
+      //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);
+      if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+       aViewWindow->SetSelectionMode(ActorSelection);
+      disconnect(mySelectionMgr, 0, this, 0);
+      disconnect(mySMESHGUI, 0, this, 0);
+      mySMESHGUI->ResetState();
+      accept();
+      emit NewPattern();
+    }
+  } catch (const SALOME::SALOME_Exception& S_ex) {
+    SalomeApp_Tools::QtCatchCorbaException(S_ex);
+  } catch (...) {
+  }
+}
+
+//=======================================================================
+// function : onClose()
+// purpose  : SLOT called when "Close" button pressed. Close dialog
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onClose()
+{
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode(ActorSelection);
+  disconnect(mySelectionMgr, 0, this, 0);
+  disconnect(mySMESHGUI, 0, this, 0);
+  mySMESHGUI->ResetState();
+  reject();
+  emit Close();
+}
+
+//=================================================================================
+// function : onHelp()
+// purpose  :
+//=================================================================================
+void SMESHGUI_CreatePatternDlg::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 : loadFromObject()
+// purpose  : Load pattern from geom object corresponding to the mesh/submesh
+//=======================================================================
+bool SMESHGUI_CreatePatternDlg::loadFromObject (const bool theMess)
+{
+  try {
+    myIsLoaded = false;
+
+    if (myPattern->_is_nil())
+      myPattern = SMESH::GetPattern();
+
+    if (myMesh->_is_nil() && mySubMesh->_is_nil() || myGeomObj->_is_nil())
+      return false;
+
+    SMESH::SMESH_Mesh_ptr aMesh = mySubMesh->_is_nil() ? myMesh.in() : mySubMesh->GetFather();
+
+    myIsLoaded = myType == Type_2d
+      ? myPattern->LoadFromFace(aMesh, myGeomObj, myProjectChk->isChecked())
+      : myPattern->LoadFrom3DBlock(aMesh, myGeomObj);
+
+    if (!myIsLoaded && theMess) {
+      QString aMess;
+      SMESH::SMESH_Pattern::ErrorCode aCode = myPattern->GetErrorCode();
+
+      if      (aCode == SMESH::SMESH_Pattern::ERR_LOAD_EMPTY_SUBMESH  ) aMess = tr("ERR_LOAD_EMPTY_SUBMESH");
+      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_NARROW_FACE   ) aMess = tr("ERR_LOADF_NARROW_FACE");
+      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CLOSED_FACE   ) aMess = tr("ERR_LOADF_CLOSED_FACE");
+      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADF_CANT_PROJECT   ) aMess = tr("ERR_LOADF_CANT_PROJECT");
+      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_BAD_SHAPE     ) aMess = tr("ERR_LOADV_BAD_SHAPE");
+      else if (aCode == SMESH::SMESH_Pattern::ERR_LOADV_COMPUTE_PARAMS) aMess = tr("ERR_LOADV_COMPUTE_PARAMS");
+      else                                                              aMess = tr("ERROR_OF_CREATION");
+
+      QMessageBox::information(SMESH::GetDesktop( mySMESHGUI ),
+                               tr("SMESH_ERROR"), aMess, QMessageBox::Ok);
+    }
+  } catch (const SALOME::SALOME_Exception& S_ex) {
+    SalomeApp_Tools::QtCatchCorbaException(S_ex);
+  }
+
+  return myIsLoaded;
+}
+
+//=======================================================================
+// function : onSelectionDone()
+// purpose  : SLOT called when selection changed
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onSelectionDone()
+{
+  try {
+    SALOME_ListIO aList;
+    mySelectionMgr->selectedObjects(aList, SVTK_Viewer::Type());
+    if (aList.Extent() != 1)
+      return;
+
+    // Get mesh or sub-mesh from selection
+    Handle(SALOME_InteractiveObject) anIO = aList.First();
+    SMESH::SMESH_Mesh_var aMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIO);
+    SMESH::SMESH_subMesh_var aSubMesh = SMESH::IObjectToInterface<SMESH::SMESH_subMesh>(anIO);
+    if (aMesh->_is_nil() && aSubMesh->_is_nil())
+      return;
+
+    // Get geom object corresponding to the mesh
+    _PTR(SObject) aSO;
+    if (!aMesh->_is_nil())
+      aSO = SMESH::FindSObject(aMesh.in());
+    else
+      aSO = SMESH::FindSObject(aSubMesh.in());
+
+    GEOM::GEOM_Object_var aGeomObj = SMESH::GetGeom(aSO);
+    if (aGeomObj->_is_nil())
+      return;
+
+    myGeomObj = aGeomObj;
+
+    // init class fields
+    if (!aMesh->_is_nil()) {
+      myMesh = aMesh;
+      mySubMesh = SMESH::SMESH_subMesh::_nil();
+    } else {
+      mySubMesh = aSubMesh;
+      myMesh = SMESH::SMESH_Mesh::_nil();
+    }
+
+    QString aName;
+    SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aName);
+    myMeshEdit->setText(aName);
+
+    if (myType == Type_2d) {
+      loadFromObject(true);
+      displayPreview();
+    }
+  } catch (...) {
+    myMesh = SMESH::SMESH_Mesh::_nil();
+    mySubMesh = SMESH::SMESH_subMesh::_nil();
+    myGeomObj = GEOM::GEOM_Object::_nil();
+    erasePreview();
+  }
+}
+
+//=======================================================================
+// function : onDeactivate()
+// purpose  : SLOT called when dialog must be deativated
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onDeactivate()
+{
+  disconnect(mySelectionMgr, 0, this, 0);
+  setEnabled(false);
+}
+
+//=======================================================================
+// function : enterEvent()
+// purpose  : Event filter
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::enterEvent (QEvent*)
+{
+  // there is a stange problem that enterEvent() comes after onSave()
+  if ( isVisible () ) {
+    mySMESHGUI->EmitSignalDeactivateDialog();
+    setEnabled(true);
+    activateSelection();
+    connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
+  }
+}
+
+//=================================================================================
+// function : closeEvent()
+// purpose  : Close dialog box
+//=================================================================================
+void SMESHGUI_CreatePatternDlg::closeEvent (QCloseEvent*)
+{
+  onClose();
+}
+
+//=======================================================================
+// function : onSelBtnClicked()
+// purpose  : SLOT. Called when -> button clicked.
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onSelBtnClicked()
+{
+  onSelectionDone();
+}
+
+//================================================================
+// function : autoExtension()
+// purpose  : Append extension to the file name
+//================================================================
+QString SMESHGUI_CreatePatternDlg::autoExtension (const QString& theFileName) const
+{
+  QString anExt = theFileName.section('.', -1);
+  return anExt != "smp" && anExt != "SMP" ? theFileName + ".smp" : theFileName;
+}
+
+//=======================================================================
+// function : displayPreview()
+// purpose  : Display preview
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::displayPreview()
+{
+  // Redisplay preview in dialog
+  try {
+    if (!myIsLoaded) {
+      erasePreview();
+    } else {
+      SMESH::point_array_var pnts = myPattern->GetPoints();
+      SMESH::long_array_var keyPoints = myPattern->GetKeyPoints();
+      SMESH::array_of_long_array_var elemPoints = myPattern->GetElementPoints(false);
+
+      if (pnts->length()       == 0 ||
+          keyPoints->length()  == 0 ||
+          elemPoints->length() == 0) {
+        myIsLoaded = false;
+        erasePreview();
+        return;
+      }
+
+      PointVector aPoints (pnts->length());
+      QValueVector<int> aKeyPoints (keyPoints->length());
+      ConnectivityVector anElemPoints (elemPoints->length());
+
+      for (int i = 0, n = pnts->length(); i < n; i++)
+        aPoints[ i ] = pnts[ i ];
+
+      for (int i2 = 0, n2 = keyPoints->length(); i2 < n2; i2++)
+        aKeyPoints[ i2 ] = keyPoints[ i2 ];
+
+      for (int i3 = 0, n3 = elemPoints->length(); i3 < n3; i3++) {
+        QValueVector<int> aVec (elemPoints[ i3 ].length());
+        for (int i4 = 0, n4 = elemPoints[ i3 ].length(); i4 < n4; i4++)
+          aVec[ i4 ] = elemPoints[ i3 ][ i4 ];
+
+        anElemPoints[ i3 ] = aVec;
+      }
+
+      myPicture2d->SetPoints(aPoints, aKeyPoints, anElemPoints);
+    }
+
+    return;
+
+  } catch (const SALOME::SALOME_Exception& S_ex) {
+    SalomeApp_Tools::QtCatchCorbaException(S_ex);
+  } catch (...) {
+  }
+  erasePreview();
+}
+
+//=======================================================================
+// function : erasePreview()
+// purpose  : Erase preview
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::erasePreview()
+{
+  // Erase preview in 2D viewer
+  myPicture2d->SetPoints(PointVector(), QValueVector<int>(), ConnectivityVector());
+}
+
+//=======================================================================
+// function : activateSelection()
+// purpose  : Activate selection in accordance with current pattern type
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::activateSelection()
+{
+  mySelectionMgr->clearFilters();
+  //SUIT_Application::getDesktop()->setSelectionModes(ActorSelection);
+  if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
+    aViewWindow->SetSelectionMode(ActorSelection);
+
+  if (myType == Type_2d) {
+    mySelectionMgr->installFilter(new SMESH_NumberFilter
+      ("SMESH", TopAbs_SHAPE, -1, TopAbs_FACE));
+  } else {
+    TColStd_MapOfInteger aTypes;
+    aTypes.Add(TopAbs_SHELL);
+    aTypes.Add(TopAbs_SOLID);
+    mySelectionMgr->installFilter(new SMESH_NumberFilter
+      ("SMESH", TopAbs_FACE, 6, aTypes, GEOM::GEOM_Object::_nil(), true));
+  }
+}
+
+//=======================================================================
+// function : onTypeChanged()
+// purpose  : SLOT. Called when pattern type changed.
+//            Change dialog's look and feel
+//=======================================================================
+void SMESHGUI_CreatePatternDlg::onTypeChanged (int theType)
+{
+  if (myType == theType)
+    return;
+
+  myType = theType;
+
+  if (theType == Type_2d)
+    myPicture2d->show();
+  else
+    myPicture2d->hide();
+}
index cc16c162baea76cf46a8a7e4682b27c982179ba6..154b85a9f45a21696778f800da823246523756f9 100755 (executable)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -92,6 +92,7 @@ private slots:
   void                     onOk();
   void                     onSave();
   void                     onClose();
+  void                     onHelp();
 
   void                     onDeactivate();
 
@@ -118,6 +119,7 @@ private:
   QPushButton*             myOkBtn;
   QPushButton*             mySaveBtn;
   QPushButton*             myCloseBtn;
+  QPushButton*             myHelpBtn;
 
   QButtonGroup*            myTypeGrp;
   QRadioButton*            mySwitch2d;
@@ -143,6 +145,8 @@ private:
 
   SMESH::SMESH_Pattern_var myPattern;
   bool                     myIsLoaded;
+
+  QString                  myHelpFileName;
 };
 
 #endif
index abced02c6f3f21361b964235beb65ece2e440917..7b0da5d8320d741de92edb224dbaae4684c1c1d9 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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,21 +115,19 @@ class TPolySimulation{
       myPreviewActor->SetMapper( myMapper );
       myPreviewActor->SetRepresentation( 3 );
 
-      float anRGB[3];
+      vtkFloatingPointType anRGB[3];
       vtkProperty* aProp = vtkProperty::New();
-      GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
+      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 );
+      vtkFloatingPointType aFactor,aUnits;
+      myPreviewActor->SetResolveCoincidentTopology(true);
+      myPreviewActor->GetPolygonOffsetParameters(aFactor,aUnits);
+      myPreviewActor->SetPolygonOffsetParameters(aFactor,0.2*aUnits);
       aProp->Delete();
 
-      vtkProperty* aBackProp = vtkProperty::New();
-      GetColor( "SMESH", "backface_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 0, 255 ) );
-      aBackProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
-      myPreviewActor->SetBackfaceProperty( aBackProp );
-      aBackProp->Delete();
-
       myViewWindow->AddActor( myPreviewActor );
-
+      
     }
 
 
@@ -139,7 +140,7 @@ class TPolySimulation{
       vtkUnstructuredGrid *aGrid = theActor->GetUnstructuredGrid();
       myGrid->SetPoints(aGrid->GetPoints());
 
-      if (theReset) ResetGrid(theReset);
+      ResetGrid(theReset);
       
       vtkIdList *anIds = vtkIdList::New();
 
@@ -251,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 );
 
   /***************************************************************/
@@ -317,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();
 }
@@ -350,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() ) ) ;
@@ -365,10 +374,6 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::Init()
   /* to close dialog if study change */
   connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ) ;
   
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition( this, x, y ) ;
-  this->move( x, y ) ;
   this->show() ; /* displays Dialog */
 
   ConstructorsClicked(0);
@@ -458,6 +463,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnApply()
 {
   if ( myNbOkElements>0 && !mySMESHGUI->isActiveStudyLocked())
     {
+      if(checkEditLine(false) == -1) {return;}
       busy = true;
       if (GetConstructorId() == 0)
        {
@@ -530,7 +536,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnApply()
        unsigned int anEntityMode = myActor->GetEntityMode();
        myActor->SetEntityMode(SMESH_Actor::eVolumes | anEntityMode);
       }
-      ConstructorsClicked( GetConstructorId() );
+      //ConstructorsClicked( GetConstructorId() );
       busy = false;
     }
 }
@@ -541,6 +547,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnApply()
 //=================================================================================
 void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnOk()
 {
+  if(checkEditLine(false) == -1) {return;}
   ClickOnApply() ;
   ClickOnCancel() ;
 }
@@ -564,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  : 
@@ -572,6 +596,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnCancel()
 void SMESHGUI_CreatePolyhedralVolumeDlg::onTextChange(const QString& theNewText)
 {
   if ( busy ) return;
+  if (checkEditLine() == -1) return;
   busy = true;
 
   mySimulation->SetVisibility(false);
@@ -706,6 +731,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::SelectionIntoArgument()
     }
     busy = true;
     myEditCurrentArgument->setText( aString );
+    if (checkEditLine() == -1) {busy = false;return;}
     busy = false;
     break;
   }
@@ -721,6 +747,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::SelectionIntoArgument()
     }
     busy = true;
     myEditCurrentArgument->setText( aString );
+    if (checkEditLine() == -1) {busy = false;return;}
     busy = false;
     
     // OK
@@ -733,6 +760,82 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::SelectionIntoArgument()
     displaySimulation();
 }
 
+/*\brief int SMESHGUI_CreatePolyhedralVolumeDlg::checkEditLine()
+ * Checking of indices in edit line.
+ * If incorecct indices in edit line warning message appear and myEditCurrentArgument remove last index.
+ * \retval 1 - if all ok(or no indices in edit line), -1 - if there are incorrect indices.
+ */
+int SMESHGUI_CreatePolyhedralVolumeDlg::checkEditLine(bool checkLast)
+{
+  QString aString = "";
+  SMDS_Mesh* aMesh = 0;
+  
+  if(myMesh->_is_nil()) return 1;
+  if(!myActor){
+    myActor = SMESH::FindActorByObject(myMesh);
+    if(!myActor)
+      return 1;
+  }
+    
+  aMesh = myActor->GetObject()->GetMesh();
+
+  // checking for nodes
+  if (checkLast && myEditCurrentArgument->text().right(1) != QString(" ") ) return 1;
+  QStringList aListId = QStringList::split( " ", myEditCurrentArgument->text() );
+  for ( int i = 0; i < aListId.count(); i++ ){
+    switch (GetConstructorId()){
+    case 0:{ // nodes
+      const SMDS_MeshNode    * aNode = aMesh->FindNode( aListId[ i ].toInt() );
+      if( !aNode ){
+       std::string aWarning;
+       aWarning = "The incorrect indices of nodes!";
+       SUIT_MessageBox::warn1(SMESHGUI::desktop(),
+                              QObject::tr("SMESH_POLYEDRE_CREATE_ERROR"),
+                              QObject::tr(aWarning.c_str()),
+                              QObject::tr("SMESH_BUT_OK"));
+       
+       myEditCurrentArgument->clear();
+       myEditCurrentArgument->setText( aString );
+       return -1;
+      }
+
+      break;
+    }
+    case 1:{ // faces
+      bool aElemIsOK = true;
+      const SMDS_MeshElement * aElem = aMesh->FindElement( aListId[ i ].toInt() );
+      if (!aElem)
+       {
+         aElemIsOK = false;
+       }
+      else
+       {
+         SMDSAbs_ElementType aType = aMesh->GetElementType( aElem->GetID(),true );
+         if (aType != SMDSAbs_Face){
+           aElemIsOK = false;
+         }
+       }
+      if (!aElemIsOK){
+       std::string aWarning;
+       aWarning = "The incorrect indices of faces!";
+       SUIT_MessageBox::warn1(SMESHGUI::desktop(),
+                              QObject::tr("SMESH_POLYEDRE_CREATE_ERROR"),
+                              QObject::tr(aWarning.c_str()),
+                              QObject::tr("SMESH_BUT_OK"));
+       
+       myEditCurrentArgument->clear();
+       myEditCurrentArgument->setText( aString );
+       return -1;
+      }
+      break;
+    }
+    }
+    aString += aListId[ i ] + " "; 
+  }
+
+  return 1;
+}
+
 //=======================================================================
 //function : displaySimulation
 //purpose  : 
@@ -743,7 +846,11 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::displaySimulation()
     {
       SMESH::TPolySimulation::TVTKIds aVTKIds;
       vtkIdType aType = VTK_CONVEX_POINT_SET ;
-      if (GetConstructorId() == 0){
+      SMDS_Mesh* aMesh = 0;
+      if ( myActor ){
+       aMesh = myActor->GetObject()->GetMesh();
+      }
+      if (GetConstructorId() == 0 && aMesh){
        if (!AddButton->isEnabled()){
          QListBoxItem* anItem;
          mySimulation->ResetGrid(true);
@@ -751,6 +858,8 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::displaySimulation()
            QStringList anIds = QStringList::split(" ", anItem->text());
            SMESH::TPolySimulation::TVTKIds aVTKIds_faces;
            for (QStringList::iterator it = anIds.begin(); it != anIds.end(); ++it){
+             const SMDS_MeshNode    * aNode = aMesh->FindNode( (*it).toInt() );
+             if (!aNode) continue;
              vtkIdType aId = myActor->GetObject()->GetNodeVTKId( (*it).toInt() ) ;
              aVTKIds.push_back(aId);
              aVTKIds_faces.push_back(aId);
@@ -776,35 +885,30 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::displaySimulation()
          aType = VTK_POLYGON;
          mySimulation->SetPosition(myActor, aType, aVTKIds);
        }
-      }else if(GetConstructorId() == 1){
-       SMDS_Mesh* aMesh = 0;
-       if ( myActor ){
-         aMesh = myActor->GetObject()->GetMesh();
-       }
-       if ( aMesh ) {
-         QStringList aListId = QStringList::split( " ", myEditCurrentArgument->text(), false);
-         for ( int i = 0; i < aListId.count(); i++ )
-           {
-             const SMDS_MeshElement * anElem = aMesh->FindElement( aListId[ i ].toInt() );
-             if ( !anElem )
-               return;
+      }else if(GetConstructorId() == 1 && aMesh){
+       QStringList aListId = QStringList::split( " ", myEditCurrentArgument->text(), false);
+       for ( int i = 0; i < aListId.count(); i++ )
+         {
+           const SMDS_MeshElement * anElem = aMesh->FindElement( aListId[ i ].toInt() );
+           if ( !anElem ) continue;
+           SMDSAbs_ElementType aFaceType = aMesh->GetElementType( anElem->GetID(),true );
+           if (aFaceType != SMDSAbs_Face) continue;
              
-             SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
-             SMESH::TPolySimulation::TVTKIds aVTKIds_faces;
-             while( anIter->more() )
+           SMDS_ElemIteratorPtr anIter = anElem->nodesIterator();
+           SMESH::TPolySimulation::TVTKIds aVTKIds_faces;
+           while( anIter->more() )
                if ( const SMDS_MeshNode* aNode = (SMDS_MeshNode*)anIter->next() ){
                  vtkIdType aId = myActor->GetObject()->GetNodeVTKId( aNode->GetID() ) ;
                  aVTKIds.push_back(aId);
                  aVTKIds_faces.push_back(aId);
                }
-             if(!Preview->isChecked()){
-               aType = VTK_POLYGON;
-               mySimulation->SetPosition(myActor, aType, aVTKIds_faces);
-             }
+           if(!Preview->isChecked()){
+             aType = VTK_POLYGON;
+             mySimulation->SetPosition(myActor, aType, aVTKIds_faces);
            }
-         if(Preview->isChecked())
-           mySimulation->SetPosition(myActor, aType, aVTKIds);
-       }
+         }
+       if(Preview->isChecked())
+         mySimulation->SetPosition(myActor, aType, aVTKIds);
       }
       SMESH::UpdateView();
     }
@@ -917,9 +1021,10 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::onAdd()
   mySelectionMgr->selectedObjects( selected );
   int aNbSel = selected.Extent();
   if (aNbSel == 0 || !myActor || myMesh->_is_nil()) return;
+  
+  if (this->checkEditLine(false) == -1) return;
 
   busy = true;
-
   if ( !(myEditCurrentArgument->text().isEmpty()) )
     {
       myFacesByNodes->insertItem(myEditCurrentArgument->text());
index b495c32909c919921fdbcb22e0b7c20fd2cab846..f6dba660f6a098347005542ddcd09d00d40ec94c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -78,6 +78,8 @@ private:
     int  GetConstructorId();
     void displaySimulation();
     
+    int checkEditLine(bool checkLast=true); /*! Checking for indices, return 1 if all ok, esle -1*/
+    
     SMESHGUI*                     mySMESHGUI ;              /* Current SMESHGUI object */
     LightApp_SelectionMgr*        mySelectionMgr ;             /* User shape selection */
     SVTK_Selector*                mySelector;
@@ -98,6 +100,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupContent;
     QLabel* TextLabelIds;
     QPushButton* SelectElementsButton;
@@ -106,6 +109,8 @@ private:
     QLabel* myFacesByNodesLabel;
     QPushButton* AddButton;
     QPushButton* RemoveButton;
+
+    QString myHelpFileName;
        
     public slots:
 
@@ -119,6 +124,7 @@ private:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 90f42d96ab702073ce87a1f798e7d30781dd10db..9e02ccc4ada0c5cdce4a034a8fed88b7e0f557e9 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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;
 }
@@ -162,9 +170,6 @@ void SMESHGUI_DeleteGroupDlg::Init ()
   connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
   connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // set selection mode
@@ -244,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 e0b6738aa8224ee9df96f4e3f08bb6dbbdb90eb0..12445a4bfc1522ff4d9170af15e908063e796327 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -69,6 +69,7 @@ private slots:
   void                    onOk();
   bool                    onApply();
   void                    onClose();
+  void                    onHelp();
 
   void                    onDeactivate();
 
@@ -85,6 +86,7 @@ private:
   QPushButton*            myOkBtn;
   QPushButton*            myApplyBtn;
   QPushButton*            myCloseBtn;
+  QPushButton*            myHelpBtn;
   QListBox*               myListBox;
 
   SMESHGUI*               mySMESHGUI;
@@ -92,6 +94,8 @@ private:
 
   QValueList<SMESH::SMESH_GroupBase_var> myListGrp;
   bool                                   myBlockSelection;
+
+  QString                 myHelpFileName;
 };
 
 #endif
index a3277e0a756be3d53c2fa808ead7e4b2f3e23f0e..6736a589047c3828d81d51da5aef5b2780d7758e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -62,10 +62,6 @@ SMESHGUI_Dialog::~SMESHGUI_Dialog()
 void SMESHGUI_Dialog::show()
 {
   adjustSize();
-  SUIT_Desktop *PP = desktop();
-  int x = abs( PP->x() + PP->size().width() - size().width() - 10 ),
-      y = abs( PP->y() + PP->size().height() - size().height() - 10 );
-  move(x, y);
   LightApp_Dialog::show();
 }
 
index 1a04adbd0a393a461e938cd63ed5edfdc6d72a5e..676b601a4be08af8ab237e9b3ef182118e055be7 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -46,7 +46,7 @@ class SMESHGUI_EXPORT 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();
index 4f1a2457e8bdd42d5aa90010a4548e5712012402..e039e1311893953a777241418c90e3855a4c30aa 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 4c1aa5d7960323896e696f3e43ab9c8c6a54e0d8..dc2df5f8bc70249ad6a52f9d77f1a664a0b61223 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
diff --git a/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx b/src/SMESHGUI/SMESHGUI_EditHypothesesDlg.cxx
deleted file mode 100644 (file)
index c2d0185..0000000
+++ /dev/null
@@ -1,963 +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*)));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  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);
-}
index f99e00ac00f5f9ca6ec1edadfb8f1828679ca37b..28401a22a66ee0e76d9a453faed88b6a026d9735 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
 #include "SMESHGUI_EditMeshDlg.h"
@@ -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()));
 
@@ -186,10 +196,6 @@ void SMESHGUI_EditMeshDlg::Init()
   connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
   connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs())       , this, SLOT(ClickOnCancel()));
 
-  // Move widget on the bottom right corner of main widget
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); // displays Dialog
 
   LineEditMesh->setFocus();
@@ -246,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 eeddcfd825dd8439fccb94c293a0a1bd0a2c94d3..a1386effc3490043304c0db8454c87d9344cb20b 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
 #ifndef DIALOGBOX_GETMESH_H
@@ -82,6 +82,7 @@ class SMESHGUI_EXPORT SMESHGUI_EditMeshDlg : public QDialog
   QPushButton* buttonOk;
   QPushButton* buttonCancel;
   QPushButton* buttonApply;
+  QPushButton* buttonHelp;
 
   QGroupBox* GroupMesh;
   QLabel* TextLabelMesh;
@@ -94,10 +95,13 @@ class SMESHGUI_EXPORT 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 7b68e4817fa855e564b75c407b77bf7261e8564f..f8a3903a505625cb3471ed55e8076fa8a6a81c42 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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()));
@@ -370,10 +380,7 @@ SMESHGUI_ExtrusionAlongPathDlg::SMESHGUI_ExtrusionAlongPathDlg( SMESHGUI* theMod
   ZSpin->editor()->installEventFilter(this);
 
   /***************************************************************/
-  // set position and show dialog box
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
+  
   this->show(); // displays Dialog
 }
 
@@ -657,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 7b1e34961a51c75faa4e6a43df18d2a1f9c15c1b..73bc229c31bec10c2c61485c78efe3beb9111860 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -144,6 +144,9 @@ private:
   QPushButton*      OkButton;
   QPushButton*      ApplyButton;
   QPushButton*      CloseButton;
+  QPushButton*      HelpButton;
+
+  QString           myHelpFileName;
 
 protected slots:
   void reject();
@@ -152,6 +155,7 @@ private slots:
   void ConstructorsClicked (int);
   void ClickOnOk();
   bool ClickOnApply();
+  void ClickOnHelp();
   void SetEditCurrentArgument();
   void SelectionIntoArgument();
   void DeactivateActiveDialog();
index 84837045135ab723e004428ea7c209b4753e0e18..70fa135adbf5c09087ba949195e59d9ab2fe24b0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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()));
@@ -264,10 +279,7 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule,
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
 
   /***************************************************************/
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
+  
   this->show(); // displays Dialog
 
   ConstructorsClicked(0);
@@ -295,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();
 
@@ -310,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);
 }
 
 //=================================================================================
@@ -420,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  :
@@ -437,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)
@@ -464,10 +506,7 @@ void SMESHGUI_ExtrusionDlg::onTextChange (const QString& theNewText)
     }
   }
 
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
+  CheckIsEnable();
 
   myBusy = false;
 }
@@ -493,8 +532,6 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
 
   myEditCurrentArgument->setText(aString);
   myNbOkElements = 0;
-  buttonOk->setEnabled(false);
-  buttonApply->setEnabled(false);
   myBusy = false;
 
   // get selected mesh
@@ -596,10 +633,7 @@ void SMESHGUI_ExtrusionDlg::SelectionIntoArgument()
   myBusy = false;
 
   // OK
-  if (myNbOkElements) {
-    buttonOk->setEnabled(true);
-    buttonApply->setEnabled(true);
-  }
+  CheckIsEnable();
 }
 
 //=================================================================================
index 9b8a3705e28938181465d323b801bc4f62311a92..8bbce01a238b5649ec696ccc598bf5e92cc1aa4b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -113,12 +113,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..bb0905239283794ed4a8653242faa66a35d5a5b4 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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 466b30cc5bfefc951c7a7c05f4a1e673aec704d5..4f912cdb8a78654f2311a5fdb394f9ff978e89dc 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 6c01f45a2b5735ba55bcacf30d0ba82a0037c905..c519986c9815a317a23ab603cdc448bd758eca21 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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();
 
@@ -1855,11 +1861,7 @@ void SMESHGUI_FilterDlg::Init (const QValueList<int>& theTypes)
 
   connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
   connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose()));
-
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-
+  
   updateMainButtons();
   updateSelection();
 
@@ -1943,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 bdfbd8047080174789c99c011c2054fb5e4416ea..ca43229ae30fd21858382ad8b14230a4d5e57ddc 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -223,7 +223,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*,
@@ -253,6 +253,7 @@ private slots:
   void                      onOk();
   bool                      onApply();
   void                      onClose();
+  void                      onHelp();
   void                      onDeactivate();
   void                      onSelectionDone();
   void                      onCriterionChanged (const int, const int);
@@ -311,6 +312,8 @@ private:
   QMap< int, SMESH::Filter_var > myFilter;
   QMap< int, bool >              myInsertState;
   QMap< int, int  >              myApplyToState;
+
+  QString                   myHelpFileName;
 };
 
 #endif
index a6e560ffad12ac46a871187c598f5f02c42f63bb..a131436a92f11e5bdb75f40e98ce168b60a6ec7b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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)
@@ -343,10 +350,6 @@ void SMESHGUI_FilterLibraryDlg::Init (const QValueList<int>& theTypes,
       myListBox->setCurrentItem(0);
   }
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-
   this->show();
 
   updateMainButtons();
@@ -465,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 867801101d3fa1d38802adc9eaae58714a7cb627..427ff712c6948cb2ebea9936c6030e2d695ae234 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -55,7 +55,7 @@ class SMESHGUI_EXPORT 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;
   
@@ -96,6 +96,7 @@ private slots:
   void                        onOk();
   bool                        onApply();
   void                        onClose();
+  void                        onHelp();
 
   void                        onDeactivate();
   
@@ -154,6 +155,7 @@ private:
   QString                     myCurrFilterName;
   int                         myCurrFilter;
 
+  QString                     myHelpFileName;
 };
 
 #endif
index e5c529f16266a91d76246f282931de4a34c0b936..c0e08a0cb7661c47c711d43b4a8e60c772bde5cd 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "SMESHGUI_FilterUtils.h"
index 501bad2d94c1f50c85e8e08f58bd158274aa8093..22d65870e0caa5de3d4b22cfd8ae3c76ea8a9357 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_FilterUtils_HeaderFile
 #define SMESHGUI_FilterUtils_HeaderFile
index 4ea7e9180ad9acb95ca423b7c7e1bf5ca37385d0..52049930119cde5a5b2d086c20359b389a25c746 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include <boost/shared_ptr.hpp>
 
index ecdbc4bf81471343466aee19d2698d29cec19fcd..9e0762d13356c2f4f8ce82e313d3fc7223a002f2 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_GEOMGenUtils_HeaderFile
 #define SMESHGUI_GEOMGenUtils_HeaderFile
index b9396313bb87e81b284c3e58874978770855a78d..872d98a1554175d525e22165144a30e5477238bd 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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>
@@ -103,12 +108,6 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
     myGeomGroupBtn->setEnabled(false);
     myGeomGroupLine->setEnabled(false);
   }
-
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
 }
 
 //=================================================================================
@@ -116,7 +115,7 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
 // purpose  :
 //=================================================================================
 SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
-                                     SMESH::SMESH_Group_ptr theGroup, bool modal, WFlags fl)
+                                     SMESH::SMESH_GroupBase_ptr theGroup, bool modal, WFlags fl)
      : QDialog( SMESH::GetDesktop( theModule ), name, modal, WStyle_Customize | WStyle_NormalBorder |
                 WStyle_Title | WStyle_SysMenu | WDestructiveClose),
      mySMESHGUI( theModule ),
@@ -136,11 +135,6 @@ SMESHGUI_GroupDlg::SMESHGUI_GroupDlg( SMESHGUI* theModule, const char* name,
     myCurrentLineEdit = myMeshGroupLine;
     setSelectionMode(5);
   }
-  
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
 }
 
 //=================================================================================
@@ -155,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);
 
@@ -270,7 +268,7 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   myGroupLine = new QLineEdit(aSelectBox, "group line");
   myGroupLine->setReadOnly(true);
   onSelectGroup(false);
-
+  
   /***************************************************************/
   QGridLayout* wg1Layout = new QGridLayout( wg1, 3, 1, 0, 6 );
   wg1Layout->addWidget(aContentBox, 0, 0);
@@ -287,6 +285,12 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   myGeomGroupLine->setReadOnly(true); //VSR ???
   onSelectGeomGroup(false);
 
+  if (!create)
+    {
+      myGeomGroupBtn->setEnabled(false);
+      myGeomGroupLine->setEnabled(false);
+    }
+
   /***************************************************************/
   QGridLayout* wg2Layout = new QGridLayout( wg2, 2, 3, 0, 6 );
   wg2Layout->addWidget(geomObject,     0, 0);
@@ -302,6 +306,21 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   myWGStack->addWidget( wg2, myGrpTypeGroup->id(rb2) );
 
   /***************************************************************/
+  QGroupBox* aColorBox = new QGroupBox(2, Qt::Horizontal, this, "color box");
+  aColorBox->setTitle(tr("SMESH_SET_COLOR"));
+
+  mySelectColorGroup = new QCheckBox(aColorBox, "color checkbox");
+  mySelectColorGroup->setText(tr("SMESH_CHECK_COLOR"));
+  
+  myColorSpinBox = new QtxIntSpinBox( aColorBox );
+  myColorSpinBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+  myColorSpinBox->setMinValue( 0 );
+  myColorSpinBox->setMaxValue( 9999 );
+  
+  onSelectColorGroup(false);
+  
+  /***************************************************************/
+  
   QFrame* aButtons = new QFrame(this, "button box");
   aButtons->setFrameStyle(QFrame::Box | QFrame::Sunken);
   QHBoxLayout* aBtnLayout = new QHBoxLayout(aButtons, 11, 6);
@@ -317,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);
@@ -333,7 +356,8 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   aMainLayout->addMultiCellWidget(myGrpTypeGroup, 3, 3, 0, 2);
   aMainLayout->addMultiCellWidget(myWGStack,      4, 4, 0, 2);
   aMainLayout->setRowStretch( 5, 5 );
-  aMainLayout->addMultiCellWidget(aButtons,       6, 6, 0, 2);
+  aMainLayout->addMultiCellWidget(aColorBox,   6, 6, 0, 2);
+  aMainLayout->addMultiCellWidget(aButtons,       7, 7, 0, 2);
 
   /* signals and slots connections */
   connect(myMeshGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
@@ -355,10 +379,13 @@ void SMESHGUI_GroupDlg::initDialog(bool create)
   connect(mySubMeshBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
   connect(myGeomGroupBtn, SIGNAL(clicked()), this, SLOT(setCurrentSelection()));
-
+  connect(mySelectColorGroup, SIGNAL(toggled(bool)), this, SLOT(onSelectColorGroup(bool)));
+  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);
@@ -407,6 +434,7 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
   /* init data from current selection */
   myMesh = SMESH::SMESH_Mesh::_duplicate(theMesh);
   myGroup = SMESH::SMESH_Group::_nil();
+  myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
 
   myActor = SMESH::FindActorByObject(myMesh);
   SMESH::SetPickable(myActor);
@@ -430,15 +458,16 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Mesh_ptr theMesh)
 // function : Init()
 // purpose  :
 //=================================================================================
-void SMESHGUI_GroupDlg::init (SMESH::SMESH_Group_ptr theGroup)
+void SMESHGUI_GroupDlg::init (SMESH::SMESH_GroupBase_ptr theGroup)
 {
   myMesh = theGroup->GetMesh();
-  myGroup = SMESH::SMESH_Group::_duplicate(theGroup);
+  
+  myName->setText(theGroup->GetName());
+  myName->home(false);
 
-  myActor = SMESH::FindActorByObject(myMesh);
-  if ( !myActor )
-    myActor = SMESH::FindActorByObject(myGroup);
-  SMESH::SetPickable(myActor);
+  myColorSpinBox->setValue( theGroup->GetColorNumber() );
+  
+  myMeshGroupLine->setText(theGroup->GetName());
 
   int aType = 0;
   switch(theGroup->GetType()) {
@@ -447,27 +476,61 @@ void SMESHGUI_GroupDlg::init (SMESH::SMESH_Group_ptr theGroup)
   case SMESH::FACE: aType = 2; break;
   case SMESH::VOLUME: aType = 3; break;
   }
+  myTypeGroup->setButton(aType);
+  
+  myGroup = SMESH::SMESH_Group::_narrow( theGroup );
 
-  myName->setText(myGroup->GetName());
-  myName->home(false);
-  myMeshGroupLine->setText(myGroup->GetName());
+  if ( !myGroup->_is_nil() )
+    {
+      myGrpTypeGroup->setButton(0);
+      onGrpTypeChanged(0);
 
-  myCurrentLineEdit = 0;
-  myTypeGroup->setButton(aType);
-  myElements->clear();
-  setSelectionMode(aType);
-  myTypeId = aType;
-
-  myIdList.clear();
-  if (!theGroup->IsEmpty()) {
-    SMESH::long_array_var anElements = myGroup->GetListOfID();
-    int k = anElements->length();
-    for (int i = 0; i < k; i++) {
-      myIdList.append(anElements[i]);
-      myElements->insertItem(QString::number(anElements[i]));
+      myActor = SMESH::FindActorByObject(myMesh);
+      if ( !myActor )
+       myActor = SMESH::FindActorByObject(myGroup);
+      SMESH::SetPickable(myActor);
+      
+      myCurrentLineEdit = 0;
+      myElements->clear();
+      setSelectionMode(aType);
+      myTypeId = aType;
+      
+      myIdList.clear();
+      if (!myGroup->IsEmpty()) {
+       SMESH::long_array_var anElements = myGroup->GetListOfID();
+       int k = anElements->length();
+       for (int i = 0; i < k; i++) {
+         myIdList.append(anElements[i]);
+         myElements->insertItem(QString::number(anElements[i]));
+       }
+       myElements->selectAll(true);
+      }
+    }
+  else
+    {
+      myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_narrow( theGroup );
+      
+      if ( !myGroupOnGeom->_is_nil() )
+       {
+         myGrpTypeGroup->setButton(1);
+         onGrpTypeChanged(1);
+
+         myActor = SMESH::FindActorByObject(myMesh);
+         if ( !myActor )
+           myActor = SMESH::FindActorByObject(myGroup);
+         SMESH::SetPickable(myActor);
+         
+         QString aShapeName("");
+         _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
+         GEOM::GEOM_Object_var aGroupShape = myGroupOnGeom->GetShape();
+         if (!aGroupShape->_is_nil())
+           {
+             _PTR(SObject) aGroupShapeSO = aStudy->FindObjectID(aGroupShape->GetStudyEntry());
+             aShapeName = aGroupShapeSO->GetName().c_str();
+           }
+         myGeomGroupLine->setText( aShapeName );
+       }
     }
-    myElements->selectAll(true);
-  }
 }
 
 //=================================================================================
@@ -481,7 +544,10 @@ void SMESHGUI_GroupDlg::updateButtons()
   if (myGrpTypeId == 0)
     enable = !myName->text().stripWhiteSpace().isEmpty() && myElements->count() > 0;
   else if (myGrpTypeId == 1)
-    enable = !myName->text().stripWhiteSpace().isEmpty() && !CORBA::is_nil( myGeomGroup );
+    {
+      bool isEditMode = !CORBA::is_nil( myGroupOnGeom );
+      enable = !myName->text().stripWhiteSpace().isEmpty() && (!CORBA::is_nil( myGeomGroup ) || isEditMode);
+    }
   QPushButton* aBtn;
   aBtn = (QPushButton*) child("ok", "QPushButton");
   if (aBtn) aBtn->setEnabled(enable);
@@ -498,6 +564,15 @@ void SMESHGUI_GroupDlg::onNameChanged (const QString& text)
   updateButtons();
 }
 
+//=================================================================================
+// function : onNbColorsChanged()
+// purpose  :
+//=================================================================================
+void SMESHGUI_GroupDlg::onNbColorsChanged (const QString& text)
+{
+  updateButtons();
+}
+
 //=================================================================================
 // function : onTypeChanged()
 // purpose  : Group elements type radio button management
@@ -606,14 +681,27 @@ bool SMESHGUI_GroupDlg::onApply()
 
       myGroup = SMESH::AddGroup(myMesh, aType, myName->text());
       myGroup->Add(anIdList.inout());
-
+      
+      int aColorNumber = myColorSpinBox->value();
+      myGroup->SetColorNumber(aColorNumber);
+      
+      _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroup);
+
+      SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
+      
+      SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
+      
       /* init for next operation */
       myName->setText("");
+      myColorSpinBox->setValue(0);
       myElements->clear();
       myGroup = SMESH::SMESH_Group::_nil();
 
     } else {
       myGroup->SetName(myName->text());
+        
+      int aColorNumber = myColorSpinBox->value();
+      myGroup->SetColorNumber(aColorNumber);
 
       QValueList<int> aAddList;
       QValueList<int>::iterator anIt;
@@ -654,30 +742,50 @@ bool SMESHGUI_GroupDlg::onApply()
     return true;
   } else if (myGrpTypeId == 1 &&
              !myName->text().stripWhiteSpace().isEmpty() &&
-             !CORBA::is_nil(myGeomGroup))
+             (!CORBA::is_nil(myGeomGroup) || !CORBA::is_nil(myGroupOnGeom)))
   {
-    SMESH::ElementType aType = SMESH::ALL;
-    switch (myTypeId) {
-    case 0: aType = SMESH::NODE; break;
-    case 1: aType = SMESH::EDGE; break;
-    case 2: aType = SMESH::FACE; break;
-    case 3: aType = SMESH::VOLUME; break;
+    if (myGroupOnGeom->_is_nil()) {
+      SMESH::ElementType aType = SMESH::ALL;
+      switch (myTypeId) {
+      case 0: aType = SMESH::NODE; break;
+      case 1: aType = SMESH::EDGE; break;
+      case 2: aType = SMESH::FACE; break;
+      case 3: aType = SMESH::VOLUME; break;
+      }
+      
+      _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
+      GEOM::GEOM_IGroupOperations_var aGroupOp =
+       SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
+      
+      myGroupOnGeom = myMesh->CreateGroupFromGEOM(aType, myName->text(),myGeomGroup);
+      
+      int aColorNumber = myColorSpinBox->value();
+      myGroupOnGeom->SetColorNumber(aColorNumber);
+      
+      _PTR(SObject) aMeshGroupSO = SMESH::FindSObject(myGroupOnGeom);
+      
+      SMESH::setFileName ( aMeshGroupSO, QString::number(myColorSpinBox->value()) );
+      
+      SMESH::setFileType ( aMeshGroupSO,"COULEURGROUP" );
+      
+      /* init for next operation */
+      myName->setText("");
+      myColorSpinBox->setValue(0);
+      myGroupOnGeom = SMESH::SMESH_GroupOnGeom::_nil();
     }
-
-    _PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
-    GEOM::GEOM_IGroupOperations_var aGroupOp =
-      SMESH::GetGEOMGen()->GetIGroupOperations(aStudy->StudyId());
-
-    SMESH::SMESH_GroupOnGeom_var aGroupOnGeom =
-      myMesh->CreateGroupFromGEOM(aType, myName->text(),myGeomGroup);
-
+    else
+      {
+       myGroupOnGeom->SetName(myName->text());
+        
+       int aColorNumber = myColorSpinBox->value();
+       myGroupOnGeom->SetColorNumber(aColorNumber);
+      }
+    
     mySMESHGUI->updateObjBrowser(true);
     mySelectionMgr->clearSelected();
-    /* init for next operation */
-    myName->setText("");
     return true;
   }
-
+  
   return false;
 }
 
@@ -754,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;
@@ -782,7 +891,7 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
         myGeomGroupLine->setEnabled(true);
         updateButtons();
       } else {
-        SMESH::SMESH_Group_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_Group>(IO);
+        SMESH::SMESH_GroupBase_var aGroup = SMESH::IObjectToInterface<SMESH::SMESH_GroupBase>(IO);
         if (aGroup->_is_nil())
        {
          myIsBusy = false;
@@ -790,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;
@@ -915,6 +1026,8 @@ void SMESHGUI_GroupDlg::onObjectSelectionChanged()
   if (!myActor) {
     if (!myGroup->_is_nil())
       myActor = SMESH::FindActorByObject(myGroup);
+    else if(!myGroupOnGeom->_is_nil())
+      myActor = SMESH::FindActorByObject(myGroupOnGeom);
     else
       myActor = SMESH::FindActorByObject(myMesh);
   }
@@ -997,6 +1110,17 @@ void SMESHGUI_GroupDlg::onSelectGeomGroup(bool on)
   }
 }
 
+//=================================================================================
+// function : (onSelectColorGroup)
+// purpose  : Called when setting a color on group
+//=================================================================================
+void SMESHGUI_GroupDlg::onSelectColorGroup(bool on)
+{
+  if (!on)
+    myColorSpinBox->setValue(0);
+  
+  myColorSpinBox->setEnabled(on);
+}
 
 //=================================================================================
 // function : setCurrentSelection()
@@ -1422,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 66c6c31ad780aaa307cdfa6ed434c5f06bc63acd..464aea4cbe4bdc9c38c537589c14f0432e4d6d33 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -50,6 +50,7 @@ class QListBox;
 class QPushButton;
 class QCheckBox;
 class QWidgetStack;
+class QtxIntSpinBox;
 class SMESHGUI;
 class SMESH_Actor;
 class SMESHGUI_FilterDlg;
@@ -71,7 +72,7 @@ public:
                       bool modal = FALSE, WFlags fl = 0 );
     SMESHGUI_GroupDlg( SMESHGUI*,
                       const char* name, 
-                      SMESH::SMESH_Group_ptr theGroup,
+                      SMESH::SMESH_GroupBase_ptr theGroup,
                       bool modal = FALSE, WFlags fl = 0 );
     ~SMESHGUI_GroupDlg();
 
@@ -89,6 +90,7 @@ private slots:
     void onOK();
     void onClose();
     bool onApply();
+    void onHelp();
     void onDeactivate();
 
     void onListSelectionChanged();
@@ -97,18 +99,20 @@ private slots:
     void onSelectSubMesh(bool on);
     void onSelectGroup(bool on);
     void onSelectGeomGroup(bool on);
+    void onSelectColorGroup(bool on);
     void setCurrentSelection();
 
     void setFilters();
     void onSort();
 
     void onNameChanged(const QString& text);
+    void onNbColorsChanged(const QString& text);
     void onFilterAccepted();
 
 private:
     void initDialog(bool create);
     void init(SMESH::SMESH_Mesh_ptr theMesh);
-    void init(SMESH::SMESH_Group_ptr theGroup);
+    void init(SMESH::SMESH_GroupBase_ptr theGroup);
     void closeEvent(QCloseEvent* e);
     void enterEvent (QEvent*);
     void hideEvent (QHideEvent*);                          /* ESC key */
@@ -143,12 +147,16 @@ private:
     QPushButton*                  myGroupBtn;
     QLineEdit*                    myGroupLine;
 
+    QCheckBox*                    mySelectColorGroup;
+    QtxIntSpinBox*                myColorSpinBox;
+
     QCheckBox*                    mySelectGeomGroup;
     QPushButton*                  myGeomGroupBtn;
     QLineEdit*                    myGeomGroupLine;
 
     SMESH::SMESH_Mesh_var         myMesh;
     SMESH::SMESH_Group_var        myGroup;
+    SMESH::SMESH_GroupOnGeom_var  myGroupOnGeom;
     QValueList<int>               myIdList;
     GEOM::GEOM_Object_var         myGeomGroup;
 
@@ -163,6 +171,8 @@ private:
     SMESHGUI_FilterDlg*           myFilterDlg;
 
     bool                          myCreate, myIsBusy;
+
+    QString                       myHelpFileName;
 };
 
 #endif // DIALOGBOX_GROUP_H
index cdefc1e42d5397f93e13f391324842e76ec6f6de..8ec058c010a13838a1f4831346a765f395be32ab 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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;
 }
@@ -185,9 +201,6 @@ void SMESHGUI_GroupOpDlg::Init()
   connect(myBtn1, SIGNAL(clicked()), this, SLOT(onFocusChanged()));
   connect(myBtn2, SIGNAL(clicked()), this, SLOT(onFocusChanged()));
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // set selection mode
@@ -294,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 256cdfb913da6d9502316b0af6052bedcf2943cc..be5bfa29692805332c842bf7d06d2c2c9705628a 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -72,6 +72,7 @@ private slots:
   void                      onOk();
   bool                      onApply();
   void                      onClose();
+  void                      onHelp();
 
   void                      onDeactivate();
   void                      onSelectionDone();
@@ -89,6 +90,7 @@ private:
   QPushButton*              myOkBtn;
   QPushButton*              myApplyBtn;
   QPushButton*              myCloseBtn;
+  QPushButton*              myHelpBtn;
   
   QLineEdit*                myNameEdit;
   QLineEdit*                myEdit1;
@@ -106,6 +108,8 @@ private:
   SMESH::SMESH_GroupBase_var    myGroup1;
   SMESH::SMESH_GroupBase_var    myGroup2;
   
+  QString                   myHelpFileName;
+  
 };
 
 #endif
index d2aa17f3a2138e5e5b8777715020a214025f9002..86063b09c14da4ecf9661bf1d1f1864daee7ced9 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "SMESHGUI_GroupUtils.h"
index 554bac9cd0365fb142b6b3b3d53da4a732667d23..f6ceabef6b82fbdfac3587882822705e51004fd1 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_GroupUtils_HeaderFile
 #define SMESHGUI_GroupUtils_HeaderFile
index 6926df448de536fb44cb2805724580b9a1310c81..6e90a709363baf58c15b77a09d672cf794cb0644 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/ or email : webmaster.salome@opencascade.com
+//
 
 #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 80caf54e54d10b7244380f30f2cbf86fbfbf6182..1fb2cd8f936d2642a70c955cf7c4dbf75c98133a 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -115,11 +115,13 @@ public:
 
 protected slots:
   virtual void accept();
+  void onHelp(); 
 
 private:
   SMESHGUI_GenericHypothesisCreator*   myCreator;
   QVBoxLayout*                         myLayout;
   QLabel                              *myIconLabel, *myTypeLabel;
+  QString                              myHelpFileName;
 };
 
 /*!
@@ -128,22 +130,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
@@ -151,6 +162,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 c0a6460d1745079d6c45ba1f9323ba6ed4e27fab..f918fbc39894c938844125dd0490889281a3a958 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #include "SMESHGUI_HypothesesUtils.h"
 
@@ -266,17 +266,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)
   {
@@ -398,8 +431,8 @@ namespace SMESH{
       try {
        res = aMesh->AddHypothesis(aShapeObject, aHyp);
        if (res < SMESH::HYP_UNKNOWN_FATAL) {
-         _PTR(SObject) SH = SMESH::FindSObject(aHyp);
-         if (SM && SH) {
+         _PTR(SObject) aSH = SMESH::FindSObject(aHyp);
+         if (SM && aSH) {
            SMESH::ModifiedMesh(SM, false);
          }
        }
index d710a91e6b4135bf4440d1d4d47039dd8983b9ac..f62b14da2d666bb533d81df9e1e33d2c18b82152 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -51,7 +51,8 @@ class algo_error_array;
 
 namespace SMESH{
 
-  SMESHGUI_EXPORT void InitAvailableHypotheses();
+  SMESHGUI_EXPORT
+  void InitAvailableHypotheses();
 
   SMESHGUI_EXPORT
   QStringList GetAvailableHypotheses( const bool isAlgo, 
@@ -66,6 +67,15 @@ namespace SMESH{
   SMESHGUI_EXPORT
   HypothesisData* GetHypothesisData(const char* aHypType);
 
+  SMESHGUI_EXPORT
+  bool IsAvailableHypothesis(const HypothesisData* algoData,
+                             const QString&        hypType,
+                             bool&                 isOptional);
+
+  SMESHGUI_EXPORT
+  bool IsCompatibleAlgorithm(const HypothesisData* algo1Data,
+                             const HypothesisData* algo2Data);
+
   SMESHGUI_EXPORT
   SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator(const char* aHypType);
 
index 35e64f59f9e361c7bc9ac992e0f41bba783c2cc8..d5c5c8060e1a38cf4f2a08bfe0d00fe06d756baf 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index af1a68a57ee8bde8f578b599d4a40421d1394633..13e0a4b7170d9f6cb4f2f3962e971b22369dd022 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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()));
@@ -273,10 +282,6 @@ SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char*
   /* to close dialog if study change */
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   resize(0,0);
@@ -285,6 +290,8 @@ SMESHGUI_MergeNodesDlg::SMESHGUI_MergeNodesDlg( SMESHGUI* theModule, const char*
 
   // Init Mesh field from selection
   SelectionIntoArgument();
+
+  myHelpFileName = "/files/merging_nodes.htm";
 }
 
 //=================================================================================
@@ -368,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 eb4767619c2eda5f49815f83bb3fa7f7d36a5f5a..e8e1b9c88ad143b0a8233bc98fd493db7b0a3ce6 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -100,6 +100,7 @@ private:
     QPushButton*      buttonOk;
     QPushButton*      buttonCancel;
     QPushButton*      buttonApply;
+    QPushButton*      buttonHelp;
     QGroupBox*        GroupMesh;
     QGroupBox*        GroupCoincident;
     QGroupBox*        GroupEdit;
@@ -114,12 +115,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..3d19a12786e10dc628e0355fd2cbeef28038e226 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 /**
 *  SMESH SMESHGUI
@@ -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 3c3624b2578ceb6d40645cfbc16d42e245211fe6..0429403a446da59039a5d9d42c75992156b86f88 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 /**
 *  SMESH SMESHGUI
@@ -131,6 +131,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:  
 
@@ -152,7 +154,3 @@ private:
 };
 
 #endif
-
-
-
-
index 58fc131792dc2a05ed39fa2f45a13f6f8ac94425..3b03a02566100d5e5c962db9a5f521fbb2a6be73 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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,19 +435,18 @@ 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()));
   connect(mySelectionMgr,          SIGNAL(currentSelectionChanged()),      this, SLOT(onSelectionChanged()));
 
-  // resize and move dialog, then show
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // init dialog with current selection
   onSelectionChanged();
+
+  myHelpFileName = "/files/viewing_mesh_info.htm#advanced_infos";
 }
 
 //=================================================================================
@@ -410,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;
        }
@@ -528,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 e8e4bd9edaf8ab27c71e068eba656bb09a55e579..2dbb62897262be394a265cdd1bb6ed853a7f74a2 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -63,6 +63,7 @@ private slots:
     void DeactivateActiveDialog() ;
     void ActivateThisDialog();
     void onStartSelection();
+    void onHelp();
 
 private:
     SMESHGUI*               mySMESHGUI;
@@ -79,17 +80,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;
@@ -106,8 +125,11 @@ private:
     QLabel*       myGroupType;
     QLabel*       myGroupNb;
 
-    QGroupBox*   myButtonsGroup;
-    QPushButton* myOkBtn;
+    QGroupBox*    myButtonsGroup;
+    QPushButton*  myOkBtn;
+    QPushButton*  myHelpBtn;
+
+    QString       myHelpFileName;
 };
 
 #endif // SMESHGUI_MESHINFOSDLG_H
index 1bf664dfd35217daae8274445f434ecd47a45a9b..d325f77b27f126198cafbcdb168e14be0f2e56dc 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 /**
 *  SMESH SMESHGUI
@@ -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 865a2fc53351d371d1e5633d2ff5e9768c591799..3155a52cc61974adb80d3d9ddf4f5120a4a6f2c7 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 /**
 *  SMESH SMESHGUI
@@ -42,7 +42,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
@@ -53,9 +54,10 @@ class SMESHGUI_EXPORT 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();
   
@@ -73,24 +75,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 );
@@ -109,15 +125,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 c7ceb4bb9072dc1ebc8281f16b03fd7067ed2e76..e9557f934d07f183869cdac5b46173cb9172b37c 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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;
 }
@@ -351,9 +359,6 @@ void SMESHGUI_MeshPatternDlg::Init()
   activateSelection();
   onSelectionDone();
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 }
 
@@ -428,9 +433,13 @@ bool SMESHGUI_MeshPatternDlg::onApply()
          }
        }
       }
+      mySelectionMgr->clearSelected();
       SMESH::UpdateView();
 
       mySMESHGUI->updateObjBrowser(true);
+
+      mySelEdit[ Ids ]->setText("");
+
       return true;
     } else {
       QMessageBox::information(SMESHGUI::desktop(), tr("SMESH_ERROR"),
@@ -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 bdaa10d08f7259dced0fa6438211c36c0365c599..93b07f7cf1752b82aa4b457a3d0dd9817ec24c30 100755 (executable)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -84,6 +84,7 @@ private slots:
   void                                onOk();
   bool                                onApply();
   void                                onClose();
+  void                                onHelp();
 
   void                                onDeactivate();
 
@@ -127,6 +128,7 @@ private:
   QPushButton*                        myOkBtn;
   QPushButton*                        myApplyBtn;
   QPushButton*                        myCloseBtn;
+  QPushButton*                        myHelpBtn;
 
   QButtonGroup*                       myTypeGrp;
   QRadioButton*                       mySwitch2d;
@@ -173,6 +175,8 @@ private:
   SMESHGUI_CreatePatternDlg*          myCreationDlg;
   SMESH::SMESH_Pattern_var            myPattern;
   SALOME_Actor*                       myPreviewActor;
+
+  QString                             myHelpFileName;
 };
 
 #endif
index 9c8d313c63d8cac9693af24dd7f85957b37ccec0..b8e5c305577653443872bd72959ded9e0f944eca 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "SMESHGUI_MeshUtils.h"
index e943ac1e02f77be332e30af52db3789511c94c01..81cdb67c1c67b0f8b3c180201c7675d14f16c00e 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_MeshUtils_HeaderFile
 #define SMESHGUI_MeshUtils_HeaderFile
index 1f8dbe539e77d0fccc081e167740f5aa1ab717be..9c396ade8f1e586f7028f11190e9d18efd25b012 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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;
 }
@@ -224,9 +232,6 @@ void SMESHGUI_MoveNodesDlg::Init()
   reset();
   setEnabled(true);
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // set selection mode
@@ -334,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 :
@@ -525,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 976aa6d0599058d88c143c04de7b2a5a937d0259..c9fead03fd0def15b7e9a396761c54a3c0550f0d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -68,6 +68,7 @@ private slots:
   void                          onOk();
   bool                          onApply();
   void                          onClose();
+  void                          onHelp();
 
   void                          onDeactivate();
 
@@ -92,6 +93,7 @@ private:
   QPushButton*                  myOkBtn;
   QPushButton*                  myApplyBtn;
   QPushButton*                  myCloseBtn;
+  QPushButton*                  myHelpBtn;
   
   QLineEdit*                    myId;
   SMESHGUI_SpinBox*             myX;
@@ -105,6 +107,8 @@ private:
   SALOME_Actor*                 myPreviewActor;
   SMESH_Actor*                  myMeshActor;
   bool                          myBusy;
+
+  QString                       myHelpFileName;
 };
 
 #endif // DIALOGBOX_MOVE_NODES_H
index 74ad155bd575c272e8dcc8dbaf788fbf5cbd4dd5..045ae5a1751eb774a8c51f47408bb814e094a552 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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()));
@@ -388,6 +394,35 @@ SMESH::long_array_var SMESHGUI_MultiEditDlg::getIds()
       anActor = myActor;
     if (anActor != 0)
     {
+      // skl 07.02.2006
+      SMDS_Mesh* aMesh = myActor->GetObject()->GetMesh();
+      if( myFilterType == SMESHGUI_TriaFilter || 
+         myFilterType == SMESHGUI_QuadFilter ||
+         myFilterType == SMESHGUI_FaceFilter ) {
+       SMDS_FaceIteratorPtr it = aMesh->facesIterator();
+       while(it->more()) {
+         const SMDS_MeshFace* f = it->next();
+         if(myFilterType == SMESHGUI_FaceFilter) {
+           myIds.Add(f->GetID());
+         }
+         else if( myFilterType==SMESHGUI_TriaFilter &&
+                  ( f->NbNodes()==3 || f->NbNodes()==6 ) ) {
+           myIds.Add(f->GetID());
+         }
+         else if( myFilterType==SMESHGUI_QuadFilter &&
+                  ( f->NbNodes()==4 || f->NbNodes()==8 ) ) {
+           myIds.Add(f->GetID());
+         }
+       }
+      }
+      else if(myFilterType == SMESHGUI_VolumeFilter) {
+       SMDS_VolumeIteratorPtr it = aMesh->volumesIterator();
+       while(it->more()) {
+         const SMDS_MeshVolume* f = it->next();
+         myIds.Add(f->GetID());
+       }
+      }
+      /* commented by skl 07.02.2006
       TVisualObjPtr aVisualObj = anActor->GetObject();
       vtkUnstructuredGrid* aGrid = aVisualObj->GetUnstructuredGrid();
       if (aGrid != 0) {
@@ -411,6 +446,7 @@ SMESH::long_array_var SMESHGUI_MultiEditDlg::getIds()
           }
         }
       }
+      */
     }
   }
 
@@ -444,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
@@ -1004,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()
@@ -1042,6 +1096,8 @@ SMESHGUI_UnionOfTrianglesDlg
   myMaxAngleSpin->SetValue(30.0);
 
   myCriterionGrp->show();
+
+  myHelpFileName = "/files/uniting_a_set_of_triangles.htm";
 }
 
 SMESHGUI_UnionOfTrianglesDlg::~SMESHGUI_UnionOfTrianglesDlg()
@@ -1080,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()
@@ -1262,7 +1320,7 @@ void SMESHGUI_CuttingOfQuadsDlg::displayPreview()
     }
   }
 
-  vtkIntArray* aCellLocationsArray = vtkIntArray::New();
+  VTKViewer_CellLocationsArray* aCellLocationsArray = VTKViewer_CellLocationsArray::New();
   aCellLocationsArray->SetNumberOfComponents(1);
   aCellLocationsArray->SetNumberOfTuples(aNbCells);
 
index 81c31d6326a9eb1e95dcfb14a7bc6f55451c2c52..dcd54c04f800bd76dce8f6933d5f14c519f8bf7d 100755 (executable)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -88,6 +88,7 @@ protected slots:
   void                      onOk();
   virtual bool              onApply();
   virtual void              onClose();
+  void                      onHelp();
 
   void                      onDeactivate();
   void                      onSelectionDone();
@@ -123,6 +124,7 @@ protected:
   QPushButton*              myOkBtn;
   QPushButton*              myApplyBtn;
   QPushButton*              myCloseBtn;
+  QPushButton*              myHelpBtn;
   SMESH_Actor*              myActor;
   SMESH::SMESH_Mesh_var     myMesh;
 
@@ -158,6 +160,8 @@ protected:
   int                       myFilterType;
   bool                      myBusy;
   int                       myEntityType;
+
+  QString                   myHelpFileName;
 };
 
 /*!
index 4018e63fc288163195ffac55ecf7353449043a85..98348fecabff2500da69d8a5299f8673d220a3d0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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)));
@@ -374,10 +382,6 @@ void SMESHGUI_NodesDlg::Init ()
   /* to close dialog if study frame change */
   connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel()));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // set selection mode
@@ -479,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 a3339ce8cc31f2e2498a7302ac0f3b67fd8ea2f8..924d3923709f6841b2eafb88bf47bdd0d85fe539 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -103,12 +103,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..8b62c6323ab0bda2eba9c175a2185a1eb13744d0 100755 (executable)
@@ -1,8 +1,22 @@
-//  SALOME SMESHGUI
-//
-//  Copyright (C) 2005  CEA/DEN, EDF R&D
-//
+//  SMESH SMDS : implementaion of Salome mesh data structure
 //
+//  Copyright (C) 2003  OPEN CASCADE
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESHGUI_Operation.h
 //  Author : Sergey LITONIN
@@ -13,7 +27,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 +47,7 @@
 SMESHGUI_Operation::SMESHGUI_Operation()
 : LightApp_Operation()
 {
+  myHelpFileName = "";
 }
 
 //=======================================================================
@@ -62,6 +79,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 +89,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 +155,8 @@ void SMESHGUI_Operation::onOk()
 {
   if( onApply() )
     commit();
-  else
-    abort();
+  //else
+  //  abort();
 }
 
 //=======================================================================
@@ -156,6 +177,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 cf8ce7f0ecd369d5ed7ce076a80386dccfec3bdf..4b3aeaf964206fef3db6e369c233dd1f90ce9fc7 100755 (executable)
@@ -1,8 +1,22 @@
-//  SALOME SMESHGUI
-//
-//  Copyright (C) 2005  CEA/DEN, EDF R&D
-//
+//  SMESH SMDS : implementaion of Salome mesh data structure
 //
+//  Copyright (C) 2003  OPEN CASCADE
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //  File   : SMESHGUI_Operation.h
 //  Author : Sergey LITONIN
@@ -49,10 +63,13 @@ protected:
   
   virtual bool      isValid( SUIT_Operation* ) const;
 
+  QString           myHelpFileName;
+
 protected slots:
   virtual void onOk();
   virtual bool onApply();
   virtual void onCancel();
+  void onHelp();
 };
 
 #endif
index 718162f2b55452b340d3382270f895b18e402583..9a63ae39a09d0c2427582490ddbc18543bfd2241 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "SMESHGUI_PatternUtils.h"
index f3bc58c0913e2ba4813b41f79cd5a6b73a95a734..b466a4b4704fff38cded9ffa9e623bb6cc8c4fd4 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_PatternUtils_HeaderFile
 #define SMESHGUI_PatternUtils_HeaderFile
index 178800a6273be63f8b945988b7a8e88edeac8325..8deafd0eb40575228b6b24b0a96cb763ac26f73d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 2319d2f18cd84da8735b045e43ead39689e6657e..69e66917bbd54bf958802310ba1734cd2da2bef1 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
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());
-}
index d51137871398248eb36d975d6c7dfcff53da26dc..5028ed064b8b3f55bcefc7b919bc0920928d615f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -199,11 +199,6 @@ void SMESHGUI_Preferences_ColorDlg::Init()
   connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
   /* to close dialog if study change */
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
 }
 
 //=================================================================================
index 51d5c759ba081ab87e48132e0eeef6bfb3d9dea4..850dde89a474cc9849abad6a3eab71e54036be07 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index e06f880b94ada68ddb67d27394eecd8f70e2501b..b17a523ebf13201b94c125bbb9947ae3da79ca93 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #include <vtkTextProperty.h>
 #include <vtkScalarBarActor.h>
-#include <vtkScalarsToColors.h>
+#include <vtkLookupTable.h>
 
 #define MINIMUM_WIDTH 70
 #define MARGIN_SIZE   11
 #define SPACING_SIZE   6
 
-#define DEF_VER_X  0.01
-#define DEF_VER_Y  0.10
-#define DEF_VER_H  0.80
-#define DEF_VER_W  0.10
-#define DEF_HOR_X  0.20
-#define DEF_HOR_Y  0.01
-#define DEF_HOR_H  0.12
-#define DEF_HOR_W  0.60
-
 using namespace std;
 
 // Only one instance is allowed
@@ -125,6 +116,14 @@ SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI*
        mySMESHGUI( theModule ),
        mySelectionMgr( property ? SMESH::GetSelectionMgr( theModule ) : 0 )
 {
+  DEF_VER_X = 0.01;
+  DEF_VER_Y = 0.10;
+  DEF_VER_H = 0.80;
+  DEF_VER_W = 0.10;
+  DEF_HOR_X = 0.20;
+  DEF_HOR_Y = 0.01;
+  DEF_HOR_H = 0.12;
+  DEF_HOR_W = 0.60;
   setName("SMESHGUI_Preferences_ScalarBarDlg");
   setCaption( property ? tr("SMESH_PROPERTIES_SCALARBAR") : tr("SMESH_PREFERENCES_SCALARBAR"));
   setSizeGripEnabled(TRUE);
@@ -521,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
@@ -637,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() );
@@ -652,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() );
@@ -756,6 +759,8 @@ void SMESHGUI_Preferences_ScalarBarDlg::setOriginAndSize( const double x,
 //=================================================================================================
 void SMESHGUI_Preferences_ScalarBarDlg::onOrientationChanged()
 {
+  this->initScalarBarFromResources();
+
   int aOrientation = myVertRadioBtn->isChecked();
   if ( aOrientation == myIniOrientation )
     setOriginAndSize( myIniX, myIniY, myIniW, myIniH );
@@ -765,3 +770,41 @@ void SMESHGUI_Preferences_ScalarBarDlg::onOrientationChanged()
                      aOrientation ? DEF_VER_W : DEF_HOR_W,
                      aOrientation ? DEF_VER_H : DEF_HOR_H );
 }
+
+//=================================================================================================
+/*!
+ *  SMESHGUI_Preferences_ScalarBarDlg::initScalarBarFromResources()
+ *
+ *  Rereading vertical and horizontal default positions from resources.
+ */
+//=================================================================================================
+void SMESHGUI_Preferences_ScalarBarDlg::initScalarBarFromResources()
+{
+  SUIT_ResourceMgr* mgr = SMESH::GetResourceMgr( mySMESHGUI );
+  QString name;
+  if (mgr){
+    // initialize from resoources
+    
+    // horizontal
+    name = QString("scalar_bar_horizontal_%1");
+    if (mgr->hasValue("SMESH", name.arg( "x" )))
+      DEF_HOR_X = mgr->doubleValue("SMESH", name.arg( "x" ));
+    if (mgr->hasValue("SMESH", name.arg( "y" )))
+      DEF_HOR_Y = mgr->doubleValue("SMESH", name.arg( "y" ));
+    if (mgr->hasValue("SMESH", name.arg( "width" )))
+      DEF_HOR_W = mgr->doubleValue("SMESH", name.arg( "width" ));
+    if (mgr->hasValue("SMESH", name.arg( "height" )))
+      DEF_HOR_H = mgr->doubleValue("SMESH", name.arg( "height" ));
+
+    // vertical
+    name = QString("scalar_bar_vertical_%1");
+    if (mgr->hasValue("SMESH", name.arg( "x" )))
+      DEF_VER_X = mgr->doubleValue("SMESH", name.arg( "x" ));
+    if (mgr->hasValue("SMESH", name.arg( "y" )))
+      DEF_VER_Y = mgr->doubleValue("SMESH", name.arg( "y" ));
+    if (mgr->hasValue("SMESH", name.arg( "width" )))
+      DEF_VER_W = mgr->doubleValue("SMESH", name.arg( "width" ));
+    if (mgr->hasValue("SMESH", name.arg( "height" )))
+      DEF_VER_H = mgr->doubleValue("SMESH", name.arg( "height" ));
+  }
+}
index e20dd2be7cccc4a010a3111c4817560eb150689f..78950f7cd58b0eb06e812601524efcc4e8b2e8ef 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -65,6 +65,7 @@ protected:
   static SMESHGUI_Preferences_ScalarBarDlg* myDlg;
   void closeEvent( QCloseEvent* e );
   void setOriginAndSize( const double x, const double y, const double w, const double h );
+  void initScalarBarFromResources();
 
 protected slots:
   void onOk();
@@ -82,6 +83,8 @@ private:
   SMESH_Actor*             myActor;
   double                   myIniX, myIniY, myIniW, myIniH;
   int                      myIniOrientation;
+  double DEF_VER_X,DEF_VER_Y,DEF_VER_H,DEF_VER_W;
+  double DEF_HOR_X,DEF_HOR_Y,DEF_HOR_H,DEF_HOR_W;
 
   QGroupBox*         myRangeGrp;
   QLineEdit*         myMinEdit;
index 7606ccf2b7768cf8dc8828291c39c0ee812f81a6..41d96be2d827e7a027ff222797980e4c91e30100 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -205,11 +205,6 @@ SMESHGUI_Preferences_SelectionDlg::SMESHGUI_Preferences_SelectionDlg( SMESHGUI*
 
   connect(aOKBtn, SIGNAL(clicked()), this, SLOT(accept()));
   connect(aCloseBtn, SIGNAL(clicked()), this, SLOT(reject()));
-
-  /* Move widget on the botton right corner of main widget */
-  int x, y ;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
 }
 
 //=================================================================================
index b1556d114abf54d1e994cff3e1c9a230487f523b..96715d78278805e6ba3f6545e47c01c124bd6049 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platorm.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index ef6dfa0d2d7a312d7143597e4782023dafd82f93..400d47add21b359b43a9113e3ede663283a520cc 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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()));
@@ -219,10 +229,6 @@ void SMESHGUI_RemoveElementsDlg::Init()
   connect(myEditCurrentArgument, SIGNAL(textChanged(const QString&)),
            SLOT(onTextChange(const QString&)));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
@@ -300,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 89d42292aea54356294a8ee04bb5c6f47a21be00..11aa09ea5df2f4a56cadbb72b5d76733840eb426 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -96,17 +96,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 775bff01ad577ed99c393106c9f3c9680b6d1a8e..db0d13e6c367128c349275e8d20cac58f4377cc5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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()));
@@ -218,10 +229,6 @@ void SMESHGUI_RemoveNodesDlg::Init()
   connect(myEditCurrentArgument, SIGNAL(textChanged(const QString&)),
          SLOT(onTextChange(const QString&)));
   
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   SMESH::SetPointRepresentation(true);
@@ -298,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 363be9f638213d22bfb59e845c8113c5991bade3..343d2272187d84d59c87c82a96cc7451b087c66c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -99,17 +99,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 fcecbbef21c691df408f4dd4a52149a025e2327c..4e4f75a830978b9ebe534cd98de7ef7c5feb69eb 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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()));
@@ -211,10 +223,6 @@ void SMESHGUI_RenumberingDlg::Init()
   /* to close dialog if study change */
   connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   myEditCurrentArgument = LineEditMesh;
@@ -302,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 241e7a22c45c3e65a120dd6e452e9b279fcff30d..a60ec6fc2203f9f5963ac3cd7b4784add8842975 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -91,10 +91,13 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupMesh;
     QLabel* TextLabelMesh;
     QPushButton* SelectButton;
     QLineEdit* LineEditMesh;
+    
+    QString myHelpFileName;
 
 private slots:
 
@@ -102,6 +105,7 @@ private slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 2722e4f40895cb48361aeba44d258b713695e17d..46e23659ecb58b7e8979f91623ce19c15ab0110a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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()));
@@ -334,10 +345,6 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule, const char*
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),   SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                 SLOT(onSelectMesh(bool)));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
@@ -503,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 77639c8b5d7ed0bc59ddc0c26170c282727dbbff..8dd89fcab031cfca3abd3ccac5a311698e6a9fb8 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -102,6 +102,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* GroupAxis;
     QLabel* TextLabelElements;
@@ -133,12 +134,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 baf1359ce0ee489ef887409b8d4a4a7e2a68403a..34efe7fc692dd2cf49623f6adefc7726ad90e37f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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()));
@@ -323,10 +333,6 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule, const char* nam
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
@@ -456,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 2ba7fd42fe61ba3fcd6484c1e171f2763c9c038e..95cd97688c1a27b75b7d317ddf7f5bbbd17bde16 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -100,6 +100,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* GroupAxis;
     QLabel* TextLabelElements;
@@ -128,12 +129,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 ddfe9fbd8433b2c6a43d0d21fe21da5dec8d087f..b215ee1d70bd7ba6fe7d125b1048e9e49996762e 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "QAD_Desktop.h"
index 54a8d437446d9cc753e92274c4f6d80ee0cd65fa..8f7c2a07596bc9969ba4d8c73787a2770636c41f 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_SMESHGenUtils_HeaderFile
 #define SMESHGUI_SMESHGenUtils_HeaderFile
index 88d44c541e215c75c067ded42b2fd9326ab84cb2..7602c410b31212349110866af3ac1cc3aeb32641 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
 #include "SMESHGUI_Selection.h"
@@ -110,7 +110,7 @@ QtxValue SMESHGUI_Selection::param( const int ind, const QString& p ) const
   else if ( p=="hasReference" )  val = QtxValue( hasReference( ind ) );
 //  else if ( p=="isVisible" )     val = QtxValue( isVisible( ind ) );
 
-  // printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
+       // printf( "--> param() : [%s] = %s (%s)\n", p.latin1(), val.toString().latin1(), val.typeName() );
   //if ( val.type() == QVariant::List )
   //cout << "size: " << val.toList().count() << endl;
 
@@ -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 );
@@ -401,6 +401,8 @@ int SMESHGUI_Selection::type( const QString& entry, _PTR(Study) study )
     }
     if( aFTag>10 )
       res = GROUP;
+    else
+      res = SUBMESH;
 
     break;
   }
index bc22d7240ace45d0a20c8037833e7b3041ace369..6dd5bc27179a984ee3db38cc63c928d63e9af3a2 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 1111be4075be7376fda3e9729dc30054c823391a..2e620f71cb574453cdb7e2b6813ba2ad06a7f6b7 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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 ebc16d78f6277a108a073a2f8108735a1a8fb26f..2165d14f77ac44142372f47fe591f91d87d602a7 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -92,7 +92,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 eed4a15ac51e6e179721759cc8196e7e8800f59a..67f2e0c8da6ac989c340fe746b3ad51162edd95c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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()));
@@ -313,10 +323,6 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule, const char* name,
   connect(LineEdit5, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
   connect(LineEdit6, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
@@ -605,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 8340eb1346dd900496df27635a3176aa0d1c7bc9..9e92a38f6a823ad9d3ea5b4bb712b522c123d32b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -96,6 +96,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* SubGroup1;
     QGroupBox* SubGroup2;
@@ -121,12 +122,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 d437ee1efc84c198ca5b1dbd450a352e214a11b5..ba07781952344b6699b2d74f19b1cb30a9de3d95 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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,36 +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();
+//================================================================================
+/*!
+ * \brief Gets dialog of this operation
+  * \retval LightApp_Dialog* - pointer to dialog of this operation
+*/
+//================================================================================
+LightApp_Dialog* SMESHGUI_ShapeByMeshOp::dlg() const
+{
+  return myDlg;
+}
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
-  this->show();
+//=======================================================================
+// function : GetShape()
+// purpose  : Get published sub-shape
+//=======================================================================
+GEOM::GEOM_Object_ptr SMESHGUI_ShapeByMeshOp::GetShape()
+{
+  return myGeomObj.in();
 }
 
 //=======================================================================
@@ -215,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))
         {
@@ -262,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;
 
@@ -350,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 ));
 }
 
 //=======================================================================
@@ -433,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();
@@ -445,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;
@@ -469,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 );
           }
       }
 }
@@ -482,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 09dec6c300549fe2b6fc7c877cdd266687ba1fbc..96bd13d334cef44caa22ef439f2930c622680b2a 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -29,7 +29,8 @@
 
 #include "SMESH_SMESHGUI.hxx"
 
-#include <qdialog.h>
+#include "SMESHGUI_Dialog.h"
+#include "SMESHGUI_SelectionOp.h"
 
 // IDL Headers
 #include <SALOMEconfig.h>
@@ -50,36 +51,88 @@ class SMESHGUI;
  *        by selecting mesh elements
  */
 
-class SMESHGUI_EXPORT SMESHGUI_ShapeByMeshDlg : public QDialog
+class SMESHGUI_EXPORT 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);
@@ -87,26 +140,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 754232f6a8fc04443d8566f8fbd826264b78a055..ab28af48318da7eada70d8064ae722b31dfae88a 100755 (executable)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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()));
@@ -233,9 +238,6 @@ void SMESHGUI_SingleEditDlg::Init()
   myApplyBtn->setEnabled(false);
   setEnabled(true);
 
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // set selection mode
@@ -271,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
@@ -528,6 +547,7 @@ SMESHGUI_TrianglesInversionDlg
 : SMESHGUI_SingleEditDlg(theModule,theName)
 {
   setCaption(tr("CAPTION"));
+  myHelpFileName = "/files/diagonal_iversion_of_elements.htm";
 }
 
 SMESHGUI_TrianglesInversionDlg::~SMESHGUI_TrianglesInversionDlg()
@@ -552,6 +572,7 @@ SMESHGUI_UnionOfTwoTrianglesDlg
 : SMESHGUI_SingleEditDlg(theModule,theName)
 {
   setCaption(tr("CAPTION"));
+  myHelpFileName = "/files/uniting_two_triangles.htm";
 }
 
 SMESHGUI_UnionOfTwoTrianglesDlg::~SMESHGUI_UnionOfTwoTrianglesDlg()
index f19a2b9ee4e8eca0a83652e6939c86ec06668b82..e52fbed43cb741742a3cd1e7f9ea78112a99326c 100755 (executable)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -66,6 +66,7 @@ protected slots:
   void                    onOk();
   virtual bool            onApply();
   void                    onClose();
+  void                    onHelp();
 
   void                    onDeactivate();
 
@@ -87,12 +88,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 c2a8b1312d82b5b92a4b983359b7863d8c775ff8..541f634757d5b56602232cb30d0bde42e532f6a3 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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()));
@@ -290,10 +300,7 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule, const char* n
            SLOT(onSelectMesh(bool)));
 
   /***************************************************************/
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
+  
   this->show(); // displays Dialog
 }
 
@@ -430,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 71455f077653126d5e2564dd6d340e2929fc0bd6..970cd89e6e4ad146acdf82bb34ac5d41d92ae421 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -102,6 +102,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QLabel* TextLabelElements;
     QPushButton* SelectElementsButton;
@@ -117,6 +118,8 @@ private:
     QLabel* TextLabelAspectRatio;
     SMESHGUI_SpinBox* SpinBox_AspectRatio;
     QCheckBox       * CheckBoxParametric;
+
+    QString myHelpFileName;
     
 private slots:
 
@@ -124,6 +127,7 @@ private slots:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index 54c247a80620ad7a5ac0223ad4fae1b60dd4db8a..772a6d1663132048b3a016d05bcfe4d339a7c121 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 8f7444e7557fbc7400e91f8532a6b7cf601e5784..9d46be239012e48e8bac35aeb4c8f133cb42be4d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 30b5eb0ea49ff523b5c9c8cb4cf7a2d5e8ac73bb..d05a1d472ca4f6bc94e5bdc5e5bd8d01f54e58e1 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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()));
@@ -164,15 +171,14 @@ SMESHGUI_StandardMeshInfosDlg::SMESHGUI_StandardMeshInfosDlg( SMESHGUI* theModul
 
   // resize and move dialog, then show
   this->setMinimumSize(270, 428);
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show();
 
   // init dialog with current selection
   myMeshFilter = new SMESH_TypeFilter (MESH);
   mySelectionMgr->installFilter(myMeshFilter);
   onSelectionChanged();
+
+  myHelpFileName = "/files/viewing_mesh_info.htm#standard_infos";
 }
 
 //=================================================================================
@@ -444,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 cd53455d67db31d7542c3f70b81d1fbf686efa57..8bb0b37bad0d95651dc46f1427bfb2f0137384ce 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -64,6 +64,7 @@ private slots:
     void DeactivateActiveDialog() ;
     void ActivateThisDialog();
     void onStartSelection();
+    void onHelp();
 
 private:
     SMESHGUI*                mySMESHGUI;
@@ -85,6 +86,9 @@ private:
     
     QGroupBox*    myButtonsGroup;
     QPushButton*  myOkBtn;
+    QPushButton*  myHelpBtn;
+    
+    QString       myHelpFileName;
 };
 
 #endif // SMESHGUI_STANDARDMESHINFOSDLG_H
index 258bbf3a19f3ae79ea9f5f3a3acb2c700caf43a3..219b409a747d92af9ce272cd3b03b72149733981 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #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"
 
 
 using namespace std;
 
-static CORBA::ORB_var _orb;
+static CORBA::ORB_var anORB;
 
-static CORBA::Object_ptr StringToObject (const char* ior)
-{
-  return _orb->string_to_object(ior);
-}
+// 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;
 
-SMESH_Swig::SMESH_Swig()
-{
-  MESSAGE("Constructeur");
-  setOrb();
-}
+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 "";
 }
 
@@ -442,29 +581,18 @@ 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);
-  }
-}
-
-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;
+    aName->SetValue(theName);
   }
-  ASSERT(! CORBA::is_nil(_orb));
 }
 
 //================================================================================
@@ -475,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 3fe481828f0e84891ea46682c74f429c75e28f9a..3b7e69e73859b3623809b41dbe0e73d382bdb8db 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -42,8 +42,6 @@ public:
   SMESH_Swig();
   ~SMESH_Swig();
     
-  static void setOrb();
-
   void Init(int studyID);
 
   const char* AddNewMesh(const char* IOR);
@@ -76,20 +74,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 2a99fe1922a3e399ba897d4e8aa81f06d97ff839..eadd476e4a00f9e541f0bb1948d7f19e8494512c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 1137ec4ecbc78e2b419bb200dd92a73280c6ab57..f0689d5d8a7bef696c71532292979f3e6b1efd8e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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()));
@@ -317,10 +328,6 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule, const char* nam
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),   SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                 SLOT(onSelectMesh(bool)));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
@@ -519,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 f5efd5e10e25a04ca47114a06485441b8187c560..4714ac0b50b74a809b949cfdd7c23552843f8c5e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -102,6 +102,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QGroupBox* GroupMirror;
     QLabel* TextLabelElements;
@@ -127,6 +128,8 @@ private:
     SMESHGUI_SpinBox* SpinBox_DZ;
     
     QCheckBox* CheckBoxCopy;
+
+    QString myHelpFileName;
    
     private slots:
 
@@ -134,6 +137,7 @@ private:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index c6c58b328bf5504327cf6cc62ccff6d4c4470e87..48e6fafb553a2bc71e453dfc90649fb86020b9d5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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()));
@@ -293,10 +304,6 @@ SMESHGUI_TranslationDlg::SMESHGUI_TranslationDlg( SMESHGUI* theModule, const cha
   connect(LineEditElements, SIGNAL(textChanged(const QString&)),    SLOT(onTextChange(const QString&)));
   connect(CheckBoxMesh,     SIGNAL(toggled(bool)),                  SLOT(onSelectMesh(bool)));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
   this->show(); /* displays Dialog */
 
   ConstructorsClicked(0);
@@ -481,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  :
@@ -653,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 fbbb19ae43daa05d64b2abc9c7e8963eae503245..6459dce48a18909c16928d96779fd09fe2074529 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -100,6 +100,7 @@ private:
     QPushButton* buttonOk;
     QPushButton* buttonCancel;
     QPushButton* buttonApply;
+    QPushButton* buttonHelp;
     QGroupBox* GroupArguments;
     QLabel* TextLabelElements;
     QPushButton* SelectElementsButton;
@@ -122,6 +123,8 @@ private:
     QLabel* TextLabel2_3;
     SMESHGUI_SpinBox* SpinBox2_3;
     QCheckBox* CheckBoxCopy;
+
+    QString myHelpFileName;
    
     private slots:
 
@@ -129,6 +132,7 @@ private:
     void ClickOnOk();
     void ClickOnCancel();
     void ClickOnApply();
+    void ClickOnHelp();
     void SetEditCurrentArgument() ;
     void SelectionIntoArgument() ;
     void DeactivateActiveDialog() ;
index b390e717a07e21c9bd6cd8fe1bed05ed776d215f..6e187231173d3ad10b277a1a993db674c233c028 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 
 #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,15 +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()));
 
-  /* Move widget on the botton right corner of main widget */
-  int x, y;
-  mySMESHGUI->DefineDlgPosition(this, x, y);
-  this->move(x, y);
+  myHelpFileName = "transparency.htm";
+
   this->show();
 }
 
@@ -171,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 1e182404c673e17d715ed310ada8787d75a883b2..7909ae9ea194f2adc295287c9302d5e314bd47bb 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -65,14 +65,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 94714bcd7aabd3cae95a7ded77c6adf0f6d266db..04ae86959a4fb1ccd5b536edd617dbd8cfea792b 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include <qstring.h>
@@ -153,6 +153,32 @@ namespace SMESH{
     if (aComment)
       aComment->SetValue(theValue);
   }
+  
+  void setFileName (_PTR(SObject) theSObject, const char* theValue)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    if (aStudy->GetProperties()->IsLocked())
+      return;
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(GenericAttribute) anAttr =
+      aBuilder->FindOrCreateAttribute(theSObject, "AttributeExternalFileDef");
+    _PTR(AttributeExternalFileDef) aFileName = anAttr;
+    if (aFileName)
+      aFileName->SetValue(theValue);
+  }
+  
+  void setFileType (_PTR(SObject) theSObject, const char* theValue)
+  {
+    _PTR(Study) aStudy = GetActiveStudyDocument();
+    if (aStudy->GetProperties()->IsLocked())
+      return;
+    _PTR(StudyBuilder) aBuilder = aStudy->NewBuilder();
+    _PTR(GenericAttribute) anAttr =
+      aBuilder->FindOrCreateAttribute(theSObject, "AttributeFileType");
+    _PTR(AttributeFileType) aFileType = anAttr;
+    if (aFileType)
+      aFileType->SetValue(theValue);
+  }
 
   CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
                                      _PTR(Study)   theStudy)
index 0ab0529c55e73a1386da2951b130cf186dd961ab..d4c973f146edb80eb6f058b1ed5b16fe908f775d 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_Utils_HeaderFile
 #define SMESHGUI_Utils_HeaderFile
@@ -96,6 +96,8 @@ SMESHGUI_EXPORT
 
 SMESHGUI_EXPORT
   void SetValue (_PTR(SObject) theSObject, const char* theValue);
+  void setFileType (_PTR(SObject) theSObject, const char* theValue);
+  void setFileName (_PTR(SObject) theSObject, const char* theValue);
 
 SMESHGUI_EXPORT
   CORBA::Object_var SObjectToObject (_PTR(SObject) theSObject,
index 76a8cb1a608233aceb6e8fc244863624ef189e2c..4e5c883c1865644085f1591b9ab5b52fddb7bd2a 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 
 #include "SMESHGUI_VTKUtils.h"
index 5c12a857a4e2d66e23b732638c6ea56c69e8b905..74b383c71683079e89c5b74d55ee51c0d2cd7228 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef SMESHGUI_VTKUtils_HeaderFile
 #define SMESHGUI_VTKUtils_HeaderFile
index 6210f65007a4e6e414a51914a18484e7385921e9..2c6065cee7b7d1bfebd53d9bdedf179a7d378f03 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -143,10 +143,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 c653c473dffe555a4af9e38e74743e70f16b17ef..b71f59e58016eef88c19949b3c6885d46269070c 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d8933731e9778fa005779625a8e087aa4c3d55ce..5bb79a04ae36d866d537b5c356446e210d68595f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 60dff5a19bca3c6cbe91cf333066fe5018a4f701..889e4031bf93ff7418a6f7bcae584f9c1a440efb 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/ or email : webmaster.salome@opencascade.com
+#
 # 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".
@@ -155,7 +174,33 @@ msgstr "mesh_tetra.png"
 msgid "ICON_DLG_HEXAS"
 msgstr "mesh_hexa.png"
 
+#Quadratic Edge
+msgid "ICON_DLG_QUADRATIC_EDGE"
+msgstr "mesh_quad_edge.png"
+
+#Quadratic Triangle
+msgid "ICON_DLG_QUADRATIC_TRIANGLE"
+msgstr "mesh_quad_triangle.png"
+
+#Quadratic Quadrangle
+msgid "ICON_DLG_QUADRATIC_QUADRANGLE"
+msgstr "mesh_quad_quadrangle.png"
+
+#Quadratic Tetrahedron
+msgid "ICON_DLG_QUADRATIC_TETRAHEDRON"
+msgstr "mesh_quad_tetrahedron.png"
+
+#Quadratic Pyramid
+msgid "ICON_DLG_QUADRATIC_PYRAMID"
+msgstr "mesh_quad_pyramid.png"
+
+#Quadratic Pentahedron
+msgid "ICON_DLG_QUADRATIC_PENTAHEDRON"
+msgstr "mesh_quad_pentahedron.png"
 
+#Quadratic Hexahedron
+msgid "ICON_DLG_QUADRATIC_HEXAHEDRON"
+msgstr "mesh_quad_hexahedron.png"
 #-----------------------------------------------------------
 # ObjectBrowser
 #-----------------------------------------------------------
index 2825f19a8adcc8ebb3758beee87fab8bd18d0cc6..37378d9d4743495f47343644b1f7895f1505815f 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/ or email : webmaster.salome@opencascade.com
+#
 # 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".
@@ -170,6 +189,35 @@ msgstr "mesh_hexa.png"
 #Polyhedre
 msgid "ICON_DLG_POLYHEDRON"
 msgstr "mesh_polyhedron.png"
+
+#Quadratic Edge
+msgid "ICON_DLG_QUADRATIC_EDGE"
+msgstr "mesh_quad_edge.png"
+
+#Quadratic Triangle
+msgid "ICON_DLG_QUADRATIC_TRIANGLE"
+msgstr "mesh_quad_triangle.png"
+
+#Quadratic Quadrangle
+msgid "ICON_DLG_QUADRATIC_QUADRANGLE"
+msgstr "mesh_quad_quadrangle.png"
+
+#Quadratic Tetrahedron
+msgid "ICON_DLG_QUADRATIC_TETRAHEDRON"
+msgstr "mesh_quad_tetrahedron.png"
+
+#Quadratic Pyramid
+msgid "ICON_DLG_QUADRATIC_PYRAMID"
+msgstr "mesh_quad_pyramid.png"
+
+#Quadratic Pentahedron
+msgid "ICON_DLG_QUADRATIC_PENTAHEDRON"
+msgstr "mesh_quad_pentahedron.png"
+
+#Quadratic Hexahedron
+msgid "ICON_DLG_QUADRATIC_HEXAHEDRON"
+msgstr "mesh_quad_hexahedron.png"
+
 #-----------------------------------------------------------
 # ObjectBrowser
 #-----------------------------------------------------------
@@ -339,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 c6134226fbbd2deb6f8f6c098a5fef8be2aa6d83..846b785cbc690d45a29935443feb5296c3e68011 100644 (file)
@@ -1,8 +1,25 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #
-#, fuzzy
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# 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".
 msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
@@ -39,6 +56,10 @@ msgstr "&No"
 msgid "SMESH_BUT_CANCEL"
 msgstr "&Cancel"
 
+#Help
+msgid "SMESH_BUT_HELP"
+msgstr "&Help"
+
 #Add
 msgid "SMESH_BUT_ADD"
 msgstr "A&dd"
@@ -131,6 +152,10 @@ msgstr "Activate Link Selection Mode"
 msgid "SMESH_WRN_EMPTY_NAME" 
 msgstr "Empty name is not valid"
 
+#Smesh polyedre cretion error
+msgid "SMESH_POLYEDRE_CREATE_ERROR"
+msgstr "Polyedron creation error"
+
 #-------------------------------------------------------------------------
 # MEN
 #-------------------------------------------------------------------------
@@ -743,7 +768,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"
 
@@ -901,6 +936,14 @@ msgstr "Group on geometry"
 msgid "SMESH_GEOM_GROUP"
 msgstr "Geometry group"
 
+#Color group
+msgid "SMESH_SET_COLOR"
+msgstr "Color group"
+
+#Check color group
+msgid "SMESH_CHECK_COLOR"
+msgstr "Color number"
+
 #%1 SubMeshes
 msgid "SMESH_SUBMESH_SELECTED"
 msgstr "%1 SubMeshes"
@@ -1206,6 +1249,9 @@ msgstr "Such dimention hypothesis is already assigned to the shape"
 msgid "SMESH_HYP_8"
 msgstr "Hypothesis and submesh dimensions mismatch"
 
+msgid "SMESH_HYP_9"
+msgstr "Shape is neither the main one, nor its subshape, nor a valid group"
+
 msgid "MISSING_ALGO"
 msgstr "%3 %2D algorithm is missing"
 
@@ -1244,6 +1290,13 @@ msgid "SMESH_EXPORT_UNV"
 msgstr "During export mesh with name - \"%1\" to UNV\n"
        "       pyramid's elements will be missed"
 
+msgid "SMESH_EXPORT_MED_DUPLICATED_GRP"
+msgstr "There are duplicated group names in mesh \"%1\".\n"
+       "You can cancel exporting and rename them,\n"
+       "otherwise some group names in the resulting MED file\n"
+       "will not match ones in the study.\n"
+       "Do you want to continue ?"
+
 msgid "SMESH_EXPORT_MED_V2_1"
 msgstr "During export mesh with name - \"%1\" to MED 2.1\n"
        "polygons and polyhedrons elements will be missed\n"
@@ -1776,6 +1829,9 @@ msgstr "Faces by nodes"
 msgid "SMESHGUI_CreatePolyhedralVolumeDlg::SMESH_POLYEDRE_PREVIEW"
 msgstr "Polyhedron preview"
 
+msgid "SMESHGUI_CreatePolyhedralVolumeDlg::SMESH_POLYEDRE_CREATE_ERROR"
+msgstr "Polyhedron creation error."
+
 msgid "SMESH_CREATE_POLYHEDRAL_VOLUME_TITLE"
 msgstr "Create polyhedral volume"
 
@@ -1788,6 +1844,80 @@ msgstr "Polygon"
 msgid "SMESH_ADD_POLYGON"
 msgstr "Add polygon"
 
+msgid "SMESH_ADD_QUADRATIC_EDGE_TITLE"
+msgstr "Add Quadratic Edge"
+
+msgid "SMESH_ADD_QUADRATIC_TRIANGLE_TITLE"
+msgstr "Add Quadratic Triangle"
+
+msgid "SMESH_ADD_QUADRATIC_QUADRANGLE_TITLE"
+msgstr "Add Quadratic Quadrangle"
+
+msgid "SMESH_ADD_QUADRATIC_TETRAHEDRON_TITLE"
+msgstr "Add Quadratic Tetrahedron"
+
+msgid "SMESH_ADD_QUADRATIC_PYRAMID_TITLE"
+msgstr "Add Quadratic Pyramid"
+
+msgid "SMESH_ADD_QUADRATIC_PENTAHEDRON_TITLE"
+msgstr "Add Quadratic Pentahedron"
+
+msgid "SMESH_ADD_QUADRATIC_HEXAHEDRON_TITLE"
+msgstr "Add Quadratic Hexahedron"
+
+msgid "SMESH_QUADRATIC_EDGE"
+msgstr "Quadratic Edge"
+
+msgid "SMESH_QUADRATIC_TRIANGLE"
+msgstr "Quadratic Triangle"
+
+msgid "SMESH_QUADRATIC_QUADRANGLE"
+msgstr "Quadratic Quadrangle"
+
+msgid "SMESH_QUADRATIC_TETRAHEDRON"
+msgstr "Quadratic Tetrahedron"
+
+msgid "SMESH_QUADRATIC_PYRAMID"
+msgstr "Quadratic Pyramid"
+
+msgid "SMESH_QUADRATIC_PENTAHEDRON"
+msgstr "Quadratic Pentahedron"
+
+msgid "SMESH_QUADRATIC_HEXAHEDRON"
+msgstr "Quadratic Hexahedron"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_CORNER_NODES"
+msgstr "Corner Nodes:"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_EDGE"
+msgstr "Add Quadratic Edge"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_TRIANGLE"
+msgstr "Add Quadratic Triangle"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_QUADRANGLE"
+msgstr "Add Quadratic Quadrangle"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_TETRAHEDRON"
+msgstr "Add Quadratic Tetrahedron"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_PYRAMID"
+msgstr "Add Quadratic Pyramid"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_PENTAHEDRON"
+msgstr "Add Quadratic Pentahedron"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_ADD_QUADRATIC_HEXAHEDRON"
+msgstr "Add Quadratic Hexahedron"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_FIRST"
+msgstr "First"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_MIDDLE"
+msgstr "Middle"
+
+msgid "SMESHGUI_AddQuadraticElementDlg::SMESH_LAST"
+msgstr "Last"
 #----------------------------------------------------
 
 msgid "SMESHGUI_CreatePatternDlg::CAPTION"
@@ -1838,6 +1968,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"
 
@@ -2002,6 +2135,27 @@ msgstr "Polygon"
 msgid "MEN_POLYHEDRON"
 msgstr "Polyhedron"
 
+msgid "MEN_QUADRATIC_EDGE"
+msgstr "Quadratic Edge"
+
+msgid "MEN_QUADRATIC_TRIANGLE"
+msgstr "Quadratic Triangle"
+
+msgid "MEN_QUADRATIC_QUADRANGLE"
+msgstr "Quadratic Quadrangle"
+
+msgid "MEN_QUADRATIC_TETRAHEDRON"
+msgstr "Quadratic Tetrahedron"
+
+msgid "MEN_QUADRATIC_PYRAMID"
+msgstr "Quadratic Pyramid"
+
+msgid "MEN_QUADRATIC_PENTAHEDRON"
+msgstr "Quadratic Pentahedron"
+
+msgid "MEN_QUADRATIC_HEXAHEDRON"
+msgstr "Quadratic Hexahedron"
+
 msgid "MEN_NODES"
 msgstr "Nodes"
 
@@ -2065,6 +2219,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"
 
@@ -2331,6 +2488,27 @@ msgstr "Polygon"
 msgid "TOP_POLYHEDRON"
 msgstr "Polyhedron"
 
+msgid "TOP_QUADRATIC_EDGE"
+msgstr "Quadratic Edge"
+
+msgid "TOP_QUADRATIC_TRIANGLE"
+msgstr "Quadratic Triangle"
+
+msgid "TOP_QUADRATIC_QUADRANGLE"
+msgstr "Quadratic Quadrangle"
+
+msgid "TOP_QUADRATIC_TETRAHEDRON"
+msgstr "Quadratic Tetrahedron"
+
+msgid "TOP_QUADRATIC_PYRAMID"
+msgstr "Quadratic Pyramid"
+
+msgid "TOP_QUADRATIC_PENTAHEDRON"
+msgstr "Quadratic Pentahedron"
+
+msgid "TOP_QUADRATIC_HEXAHEDRON"
+msgstr "Quadratic Hexahedron"
+
 msgid "TOP_NODES"
 msgstr "Nodes"
 
@@ -2394,6 +2572,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"
 
@@ -2611,6 +2792,27 @@ msgstr "Polygon"
 msgid "STB_POLYHEDRON"
 msgstr "Polyhedron"
 
+msgid "STB_QUADRATIC_EDGE"
+msgstr "Quadratic Edge"
+
+msgid "STB_QUADRATIC_TRIANGLE"
+msgstr "Quadratic Triangle"
+
+msgid "STB_QUADRATIC_QUADRANGLE"
+msgstr "Quadratic Quadrangle"
+
+msgid "STB_QUADRATIC_TETRAHEDRON"
+msgstr "Quadratic Tetrahedron"
+
+msgid "STB_QUADRATIC_PYRAMID"
+msgstr "Quadratic Pyramid"
+
+msgid "STB_QUADRATIC_PENTAHEDRON"
+msgstr "Quadratic Pentahedron"
+
+msgid "STB_QUADRATIC_HEXAHEDRON"
+msgstr "Quadratic Hexahedron"
+
 msgid "STB_NODES"
 msgstr "Nodes"
 
@@ -2674,6 +2876,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"
 
@@ -2971,3 +3176,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"
index 179743728f2e261f52fee67696d53bce8f39c8bb..2558e560fad7d6751b48b42b289f4d2f3c82696c 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -60,48 +60,114 @@ LIB_SRC = \
        SMESH_DumpPython.cxx \
        SMESH_Mesh_i.cxx \
        SMESH_MEDMesh_i.cxx \
-        SMESH_MEDFamily_i.cxx \
+       SMESH_MEDFamily_i.cxx \
        SMESH_MEDSupport_i.cxx \
-        SMESH_subMesh_i.cxx \
-        SMESH_MeshEditor_i.cxx \
-        SMESH_Hypothesis_i.cxx \
-        SMESH_Algo_i.cxx \
-        SMESH_1D_Algo_i.cxx \
-        SMESH_2D_Algo_i.cxx \
-        SMESH_3D_Algo_i.cxx \
+       SMESH_subMesh_i.cxx \
+       SMESH_MeshEditor_i.cxx \
+       SMESH_Hypothesis_i.cxx \
+       SMESH_Algo_i.cxx \
+       SMESH_1D_Algo_i.cxx \
+       SMESH_2D_Algo_i.cxx \
+       SMESH_3D_Algo_i.cxx \
        SMESH_Filter_i.cxx \
        SMESH_Group_i.cxx \
        SMESH_Pattern_i.cxx \
        SMESH_2smeshpy.cxx
 
-LIB_SERVER_IDL = SMESH_Gen.idl SMESH_Hypothesis.idl SMESH_Mesh.idl \
-                 SALOME_Component.idl SALOME_Exception.idl \
-                 SMESH_Filter.idl SMESH_Group.idl SMESH_Pattern.idl
-
-LIB_CLIENT_IDL = SALOMEDS.idl GEOM_Gen.idl MED.idl SALOMEDS_Attributes.idl SALOME_GenericObj.idl SALOME_Comm.idl
+LIB_SERVER_IDL = \
+       SMESH_Gen.idl \
+       SMESH_Hypothesis.idl \
+       SMESH_Mesh.idl \
+       SALOME_Component.idl \
+       SALOME_Exception.idl \
+       SMESH_Filter.idl \
+       SMESH_Group.idl \
+       SMESH_Pattern.idl
+
+LIB_CLIENT_IDL = \
+       SALOMEDS.idl \
+       GEOM_Gen.idl \
+       MED.idl \
+       SALOMEDS_Attributes.idl \
+       SALOME_GenericObj.idl \
+       SALOME_Comm.idl
 
 # Executables targets
 BIN = SMESHEngine
 BIN_SRC = 
 
 # additionnal information to compil and link file
-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 -lSalomeContainer -lSalomeNS -lRegistry -lSalomeHDFPersist -lSalomeLifeCycleCORBA -lTOOLSDS -lSalomeGenericObj \
-         -L${GEOM_ROOT_DIR}/lib/salome -lGEOMClient -lSMESHimpl -lSMESHControls \
-    $(OCC_LDPATH) -lTKCDF -lTKBO
-
-
-LDFLAGSFORBIN += -lSMDS -lSMESHDS \
-               -L${MED_ROOT_DIR}/lib/salome -lMEDWrapper -lMEDWrapperBase -lMEDWrapper_V2_1 -lMEDWrapper_V2_2 -lmed_V2_1 \
-               -lMeshDriver -lMeshDriverMED -lMeshDriverUNV -lMeshDriverDAT -lMeshDriverSTL \
-               -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeContainer -lSalomeNS -lRegistry -lSalomeResourcesManager \
-               -lOpUtil -lSALOMELocalTrace -lSALOMEBasics -lSalomeNotification -lCASCatch \
-               -lSalomeHDFPersist -lSalomeLifeCycleCORBA -lTOOLSDS -lSalomeGenericObj \
-               -L${GEOM_ROOT_DIR}/lib/salome -lGEOMClient -lSMESHimpl -lSMESHControls -lNMTTools -lNMTDS \
-     $(OCC_LDPATH) -lTKCDF -lTKBO -lTKMath
+CPPFLAGS+= \
+       $(OCC_INCLUDES) \
+       $(HDF5_INCLUDES) \
+       $(BOOST_CPPFLAGS) \
+       $(KERNEL_CXXFLAGS) \
+       $(MED_CXXFLAGS) \
+       $(GEOM_CXXFLAGS)
+
+CXXFLAGS+= \
+       $(OCC_INCLUDES) \
+       $(OCC_CXXFLAGS) \
+       $(HDF5_INCLUDES) \
+       $(KERNEL_CXXFLAGS) \
+       $(MED_CXXFLAGS) \
+       $(GEOM_CXXFLAGS)
+
+LDFLAGS+= \
+       $(KERNEL_LDFLAGS) \
+       -lSalomeContainer \
+       -lSalomeNS \
+       -lRegistry \
+       -lSalomeHDFPersist \
+       -lSalomeLifeCycleCORBA \
+       -lTOOLSDS \
+       -lSalomeGenericObj \
+       $(GEOM_LDFLAGS) \
+       -lGEOMClient \
+       -lSMESHimpl \
+       -lSMESHControls \
+       $(OCC_LDPATH) \
+       -lTKCDF \
+       -lTKBO \
+       -lTKShHealing
+
+LDFLAGSFORBIN+= \
+       -lSMDS \
+       -lSMESHDS \
+       $(MED_LDFLAGS) \
+       -lMEDWrapper \
+       -lMEDWrapperBase \
+       -lMEDWrapper_V2_1 \
+       -lMEDWrapper_V2_2 \
+       -lmed_V2_1 \
+       -lMeshDriver \
+       -lMeshDriverMED \
+       -lMeshDriverUNV \
+       -lMeshDriverDAT \
+       -lMeshDriverSTL \
+       $(KERNEL_LDFLAGS) \
+       -lSalomeContainer \
+       -lSalomeNS \
+       -lRegistry \
+       -lSalomeResourcesManager \
+       -lOpUtil \
+       -lSALOMELocalTrace \
+       -lSALOMEBasics \
+       -lSalomeNotification \
+       -lSalomeHDFPersist \
+       -lSalomeLifeCycleCORBA \
+       -lTOOLSDS \
+       -lSalomeGenericObj \
+       $(GEOM_LDFLAGS) \
+       -lGEOMClient \
+       -lSMESHimpl \
+       -lSMESHControls \
+       -lNMTTools \
+       -lNMTDS \
+       $(OCC_LDPATH) \
+       -lTKCDF \
+       -lTKBO \
+       -lTKMath \
+       -lTKShHealing
 
 @CONCLUDE@
index 2c63618152cde1d4d7104ccc5fbec8fa90098ca4..3025f693b849f914932b6415a738c6021240e576 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index fc1bd440b725d8ba0bcb7f0acd154eb994bf667a..732aeb23cbca6b223d29b94aba82eca32fddb32d 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 int main(int argc, char** argv)
 {
index aaec199ec4a5f1d3a808143a93e7f98ca1b5b4fb..56cb13fa90343869c1dc67af6cd4a124e2a9f8b5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 5d085c92588715094299d9fbea8a461684e5e5d1..14bc77ca5ac5a58068cad1e1e1e1db89ec9e8743 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index f6e42c029a2dd19fbe07c2326a310ecc778a2c1b..8c10ffa17144fcdc6e82f8896c90cbd3a2818777 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index be4ebdf7a81dfea7775ccf0d2e488433ac6d9259..b0e535bfac391d8c8871bcf7a20574ba001130a7 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d1a64b6c73ed20930337d438d496d5afacb47e11..906599be8ed1f1799ca6213a6f60fc4a0cf1f9b1 100644 (file)
@@ -1,3 +1,31 @@
+//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//
+//
+//  File   : SMESH_2D_Algo_i.hxx
+//  Author : Paul RASCLE, EDF
+//  Module : SMESH
+//  $Header$
+
 // File      : SMESH_2smeshpy.cxx
 // Created   : Fri Nov 18 13:20:10 2005
 // Author    : Edward AGAPOV (eap)
@@ -77,10 +105,20 @@ SMESH_2smeshpy::ConvertScript(const TCollection_AsciiString& theScript,
 #ifdef DUMP_CONVERSION
   cout << endl << " ######## RESULT ######## " << endl<< endl;
 #endif
+  // reorder commands after conversion
+  list< Handle(_pyCommand) >::iterator cmd;
+  bool orderChanges;
+  do {
+    orderChanges = false;
+    for ( cmd = theGen->GetCommands().begin(); cmd != theGen->GetCommands().end(); ++cmd )
+      if ( (*cmd)->SetDependentCmdsAfter() )
+        orderChanges = true;
+  } while ( orderChanges );
+  
   // concat commands back into a script
   TCollection_AsciiString aScript;
-  list< Handle(_pyCommand) >::iterator cmd = theGen->GetCommands().begin();
-  for ( ; cmd != theGen->GetCommands().end(); ++cmd ) {
+  for ( cmd = theGen->GetCommands().begin(); cmd != theGen->GetCommands().end(); ++cmd )
+  {
 #ifdef DUMP_CONVERSION
     cout << "## COM " << (*cmd)->GetOrderNb() << ": "<< (*cmd)->GetString() << endl;
 #endif
@@ -107,6 +145,7 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
     myID2AccessorMethod( theEntry2AccessorMethod )
 {
   myNbCommands = 0;
+  myHasPattern = false;
   // make that GetID() to return TPythonDump::SMESHGenName()
   GetCreationCmd()->GetString() += "=";
 }
@@ -115,7 +154,6 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod
 /*!
  * \brief Convert a command using a specific converter
   * \param theCommand - the command to convert
-  * \retval bool - convertion result
  */
 //================================================================================
 
@@ -145,19 +183,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;
+    }
 
-  // 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 mesh
+  for ( id_mesh = myMeshes.begin(); id_mesh != myMeshes.end(); ++id_mesh ) {
+    if ( aCommand->AddAccessorMethod( id_mesh->first, id_mesh->second->AccessorMethod() ))
+      break;
+  }
+
+  // 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();
+    }
   }
 }
 
@@ -202,6 +265,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() );
 }
@@ -224,7 +296,7 @@ void _pyGen::Flush()
     if ( !hyp->IsNull() ) {
       (*hyp)->Flush();
       // smeshgen.CreateHypothesis() --> smesh.smesh.CreateHypothesis()
-      if ( !(*hyp)->GetCreationCmd()->IsEmpty() )
+      if ( !(*hyp)->IsWrapped() )
         (*hyp)->GetCreationCmd()->SetObject( SMESH_2smeshpy::GenName() );
     }
 }
@@ -291,7 +363,10 @@ void _pyGen::ExchangeCommands( Handle(_pyCommand) theCmd1, Handle(_pyCommand) th
   int nb1 = theCmd1->GetOrderNb();
   theCmd1->SetOrderNb( theCmd2->GetOrderNb() );
   theCmd2->SetOrderNb( nb1 );
+//   cout << "BECOME " << theCmd1->GetOrderNb() << "\t" << theCmd1->GetString() << endl
+//        << "BECOME " << theCmd2->GetOrderNb() << "\t" << theCmd2->GetString() << endl << endl;
 }
+
 //================================================================================
 /*!
  * \brief Set one command after the other
@@ -302,6 +377,7 @@ void _pyGen::ExchangeCommands( Handle(_pyCommand) theCmd1, Handle(_pyCommand) th
 
 void _pyGen::SetCommandAfter( Handle(_pyCommand) theCmd, Handle(_pyCommand) theAfterCmd )
 {
+//   cout << "SET\t" << theCmd->GetString() << endl << "AFTER\t" << theAfterCmd->GetString() << endl << endl;
   list< Handle(_pyCommand) >::iterator pos;
   pos = find( myCommands.begin(), myCommands.end(), theCmd );
   myCommands.erase( pos );
@@ -394,7 +470,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();
@@ -406,8 +483,7 @@ _pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd): _pyObject(theCreation
 
 //================================================================================
 /*!
-            case brief:
-            default:
+ * \brief Convert a IDL API command of SMESH::Mesh to a method call of python Mesh
   * \param theCommand - Engine method called for this mesh
  */
 //================================================================================
@@ -442,8 +518,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 );
@@ -473,7 +552,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 );
@@ -483,16 +562,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 );
   }
 }
@@ -506,7 +600,6 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
 void _pyMesh::Flush()
 {
   list < Handle(_pyCommand) >::iterator cmd, cmd2;
-  map< _pyID, Handle(_pyCommand) > algo2additionCmd;
 
   // try to convert algo addition like this:
   // mesh.AddHypothesis(geom, ALGO ) --> ALGO = mesh.Algo()
@@ -521,7 +614,8 @@ void _pyMesh::Flush()
     _pyID geom = addCmd->GetArg( 1 );
     if ( algo->Addition2Creation( addCmd, this->GetID() )) // OK
     {
-      algo2additionCmd[ algo->GetID() ] = addCmd;
+      // wrapped algo is created atfer mesh creation
+      GetCreationCmd()->AddDependantCmd( addCmd );
 
       if ( geom != GetGeom() ) // local algo
       {
@@ -534,8 +628,7 @@ void _pyMesh::Flush()
           if ( geom == subCmd->GetArg( 1 )) {
             subCmd->SetObject( algo->GetID() );
             subCmd->RemoveArgs();
-            if ( addCmd->GetOrderNb() > subCmd->GetOrderNb() )
-              theGen->SetCommandAfter( subCmd, addCmd );
+            addCmd->AddDependantCmd( subCmd );
           }
         }
       }
@@ -566,10 +659,7 @@ void _pyMesh::Flush()
     if ( !algo.IsNull() && hyp->Addition2Creation( addCmd, this->GetID() )) // OK
     {
       addCmd->SetObject( algo->GetID() );
-      Handle(_pyCommand) algoCmd = algo2additionCmd[ algo->GetID() ];
-      if ( !algoCmd.IsNull() && algoCmd->GetOrderNb() > addCmd->GetOrderNb() )
-        // algo was created later than hyp
-        theGen->ExchangeCommands( algoCmd, addCmd );
+      algo->GetCreationCmd()->AddDependantCmd( addCmd );
     }
     else
     {
@@ -585,6 +675,11 @@ void _pyMesh::Flush()
   }
   myAddHypCmds.clear();
   mySubmeshes.clear();
+
+  // flush hypotheses
+  list< Handle(_pyHypothesis) >::iterator hyp = myHypos.begin();
+  for ( ; hyp != myHypos.end(); ++hyp )
+    (*hyp)->Flush();
 }
 
 //================================================================================
@@ -668,6 +763,11 @@ Handle(_pyHypothesis) _pyHypothesis::NewHypothesis( const Handle(_pyCommand)& th
     hyp->myCreationMethod = "Propagation";
     hyp->myType = "Regular_1D";
   }
+  else if ( hypType == "QuadraticMesh" ) {
+    hyp->myDim = 1;
+    hyp->myCreationMethod = "QuadraticMesh";
+    hyp->myType = "Regular_1D";
+  }
   else if ( hypType == "AutomaticLength" ) {
     hyp->myDim = 1;
     hyp->myCreationMethod = "AutomaticLength";
@@ -774,6 +874,9 @@ bool _pyHypothesis::Addition2Creation( const Handle(_pyCommand)& theCmd,
       else
         theCmd->SetArg( i, "[]");
     }
+    // set a new creation command
+    GetCreationCmd()->Clear();
+    SetCreationCmd( theCmd );
 
     // clear commands setting arg values
     list < Handle(_pyCommand) >::iterator argCmd = myArgCommands.begin();
@@ -793,13 +896,8 @@ bool _pyHypothesis::Addition2Creation( const Handle(_pyCommand)& theCmd,
   Handle(_pyCommand) afterCmd = myIsWrapped ? theCmd : GetCreationCmd();
   list<Handle(_pyCommand)>::iterator cmd = myUnknownCommands.begin();
   for ( ; cmd != myUnknownCommands.end(); ++cmd ) {
-    if ( !(*cmd)->IsEmpty() && afterCmd->GetOrderNb() > (*cmd)->GetOrderNb() ) {
-      theGen->SetCommandAfter( *cmd, afterCmd );
-      afterCmd = *cmd;
-    }
+    afterCmd->AddDependantCmd( *cmd );
   }
-  myArgCommands.clear();
-  myUnknownCommands.clear();
 
   return myIsWrapped;
 }
@@ -835,8 +933,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();
+  }
 }
 
 //================================================================================
@@ -872,20 +973,53 @@ bool _pyNumberOfSegmentsHyp::Addition2Creation( const Handle(_pyCommand)& theCmd
                                                 const _pyID&              theMesh)
 {
   if ( IsWrappable( theMesh ) && myArgs.Length() > 1 ) {
-    list<Handle(_pyCommand)>::iterator cmd = myUnknownCommands.begin();
-    for ( ; cmd != myUnknownCommands.end(); ++cmd ) {
-      // clear SetDistrType()
-      if ( (*cmd)->GetString().Location( "SetDistrType", 1, (*cmd)->Length() ))
-        (*cmd)->Clear();
+    // 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)"
  */
 //================================================================================
 
@@ -1199,10 +1333,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();
     }
@@ -1233,3 +1374,75 @@ void _pyCommand::RemoveArgs()
   if ( myBegPos.Length() >= ARG1_IND )
     myBegPos.Remove( ARG1_IND, myBegPos.Length() );
 }
+
+//================================================================================
+/*!
+ * \brief Set dependent commands after this one
+ */
+//================================================================================
+
+bool _pyCommand::SetDependentCmdsAfter() const
+{
+  bool orderChanged = false;
+  list< Handle(_pyCommand)>::const_reverse_iterator cmd = myDependentCmds.rbegin();
+  for ( ; cmd != myDependentCmds.rend(); ++cmd ) {
+    if ( (*cmd)->GetOrderNb() < GetOrderNb() ) {
+      orderChanged = true;
+      theGen->SetCommandAfter( *cmd, this );
+      (*cmd)->SetDependentCmdsAfter();
+    }
+  }
+  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 ac92276c32fd4944b261d87a9fc7b819fc9caf61..5319af279e2773fbb0158dfe7c710addefc8cbd9 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/ or email : webmaster.salome@opencascade.com
+//
 // File      : SMESH_smesh.hxx
 // Created   : Fri Nov 18 12:05:18 2005
 // Author    : Edward AGAPOV (eap)
@@ -73,23 +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
+  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 )
@@ -118,24 +145,31 @@ public:
   static TCollection_AsciiString GetWord( const TCollection_AsciiString & theSring,
                                           int & theStartPos, const bool theForward,
                                           const bool dotIsWord = false);
+  void AddDependantCmd( Handle(_pyCommand) cmd)
+  { 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
 {
-  Handle(_pyCommand) myCreationCmd;
+  Handle(_pyCommand)              myCreationCmd;
 public:
   _pyObject(const Handle(_pyCommand)& theCreationCmd): myCreationCmd(theCreationCmd) {}
   const _pyID& GetID() { return myCreationCmd->GetResultValue(); }
   const Handle(_pyCommand)& GetCreationCmd() { return myCreationCmd; }
+  void  SetCreationCmd( Handle(_pyCommand) cmd ) { myCreationCmd = cmd; }
   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)
 };
@@ -159,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)
@@ -172,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
@@ -260,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)
 };
@@ -274,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 875557d88f1b6229e7e8c2fcbf543f7c83915db5..6cd59106c88913e05b623c916b52515349c71611 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 41cf9c3b0c22f3dcc8e40497388c18cc2c1c69c8..30a708a1c02d099ca8ab56b2d5a19652117fd9db 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 71b4f961cb46e0fa7a5414a8b32d0a556096c435..cfa8dc55548891716cd69b2630648a18001b5959 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 99719e9c2503027aaaa2a2cb2f2964f813404775..2ee94ae9d43cf417041d0ff6926e899fd185012d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 97e49b2a16a28c51e9639eb24c7163748bb7cbcc..e0ecf8fcd0cd328d320d187da17eded84f4f9e9e 100644 (file)
@@ -15,7 +15,7 @@
 // License along with this library; if not, write to the Free Software 
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 // File    : SMESH_Gen_i_DumpPython.cxx
 // Created : Thu Mar 24 17:17:59 2005
@@ -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..917732d6209fd74536b54792f26b511631029ae9 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -458,7 +458,7 @@ Functor_i::Functor_i():
 
 Functor_i::~Functor_i()
 {
-  TPythonDump()<<this<<".Destroy()";
+  //TPythonDump()<<this<<".Destroy()";
 }
 
 void Functor_i::SetMesh( SMESH_Mesh_ptr theMesh )
@@ -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++ )
@@ -1423,7 +1424,7 @@ FilterManager_i::FilterManager_i()
 
 FilterManager_i::~FilterManager_i()
 {
-  TPythonDump()<<this<<".Destroy()";
+  //TPythonDump()<<this<<".Destroy()";
 }
 
 
@@ -1717,7 +1718,7 @@ Filter_i::~Filter_i()
   if(!CORBA::is_nil(myMesh))
     myMesh->Destroy();
 
-  TPythonDump()<<this<<".Destroy()";
+  //TPythonDump()<<this<<".Destroy()";
 }
 
 //=======================================================================
@@ -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 ) );
@@ -2575,7 +2576,7 @@ FilterLibrary_i::FilterLibrary_i()
 FilterLibrary_i::~FilterLibrary_i()
 {
   delete myFileName;
-  TPythonDump()<<this<<".Destroy()";
+  //TPythonDump()<<this<<".Destroy()";
 }
 
 //=======================================================================
index 8a7e6b5b938730dd73a6bb66cc26600d58a5219b..342d53d302e450e964b28ac2e8ca115a2ed8076e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 0823b33149d8d327cab3f1d6e738acd048ab81f6..8a3a5fb2737834ec178221bd97c2d2b9917017ae 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -46,6 +46,7 @@
 #include <gp_Pnt.hxx>
 #include <BRep_Tool.hxx>
 #include <TCollection_AsciiString.hxx>
+#include <OSD.hxx>
 
 #include "Utils_CorbaException.hxx"
 
 #include "Utils_ExceptHandlers.hxx"
 
 #include <map>
-#include <boost/filesystem/path.hpp>
 
 using namespace std;
 using SMESH::TPythonDump;
@@ -261,8 +261,12 @@ SMESH_Gen_i::SMESH_Gen_i( CORBA::ORB_ptr            orb,
   _thisObj = this ;
   _id = myPoa->activate_object( _thisObj );
   
+  myIsEmbeddedMode = false;
   myShapeReader = NULL;  // shape reader
   mySMESHGen = this;
+
+  // set it in standalone mode only
+  //OSD::SetSignal( true );
 }
 
 //=============================================================================
@@ -421,7 +425,7 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::createMesh()
     // create a new mesh object servant, store it in a map in study context
     SMESH_Mesh_i* meshServant = new SMESH_Mesh_i( GetPOA(), this, GetCurrentStudyID() );
     // create a new mesh object
-    meshServant->SetImpl( myGen.CreateMesh( GetCurrentStudyID() ));
+    meshServant->SetImpl( myGen.CreateMesh( GetCurrentStudyID(), myIsEmbeddedMode ));
 
     // activate the CORBA servant of Mesh
     SMESH::SMESH_Mesh_var mesh = SMESH::SMESH_Mesh::_narrow( meshServant->_this() );
@@ -451,6 +455,46 @@ GEOM_Client* SMESH_Gen_i::GetShapeReader()
   return myShapeReader;
 }
 
+//=============================================================================
+/*!
+ *  SMESH_Gen_i::SetEmbeddedMode
+ *
+ *  Set current mode
+ */
+//=============================================================================
+
+void SMESH_Gen_i::SetEmbeddedMode( CORBA::Boolean theMode )
+{
+  myIsEmbeddedMode = theMode;
+
+  if ( !myIsEmbeddedMode ) {
+    bool raiseFPE;
+#ifdef _DEBUG_
+    raiseFPE = true;
+    char* envDisableFPE = getenv("DISABLE_FPE");
+    if (envDisableFPE && atoi(envDisableFPE))
+      raiseFPE = false;
+#else
+    raiseFPE = false;
+#endif
+    OSD::SetSignal( raiseFPE );
+  }
+  // else OSD::SetSignal() is called in GUI
+}
+
+//=============================================================================
+/*!
+ *  SMESH_Gen_i::IsEmbeddedMode
+ *
+ *  Get current mode
+ */
+//=============================================================================
+
+CORBA::Boolean SMESH_Gen_i::IsEmbeddedMode()
+{
+  return myIsEmbeddedMode;
+}
+
 //=============================================================================
 /*!
  *  SMESH_Gen_i::SetCurrentStudy
@@ -471,13 +515,16 @@ void SMESH_Gen_i::SetCurrentStudy( SALOMEDS::Study_ptr theStudy )
     myStudyContextMap[ studyId ] = new StudyContext;      
   }
 
-  SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder(); 
-  if( !myCurrentStudy->FindComponent( "GEOM" )->_is_nil() )
-    aStudyBuilder->LoadWith( myCurrentStudy->FindComponent( "GEOM" ), GetGeomEngine() );
+  // myCurrentStudy may be nil
+  if ( !CORBA::is_nil( myCurrentStudy ) ) {
+    SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder(); 
+    if( !myCurrentStudy->FindComponent( "GEOM" )->_is_nil() )
+      aStudyBuilder->LoadWith( myCurrentStudy->FindComponent( "GEOM" ), GetGeomEngine() );
 
   // set current study for geom engine
   //if ( !CORBA::is_nil( GetGeomEngine() ) )
   //  GetGeomEngine()->GetCurrentStudy( myCurrentStudy->StudyId() );
+  }
 }
 
 //=============================================================================
@@ -652,6 +699,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
@@ -667,7 +745,7 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromUNV( const char* theFileName
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromUNV" );
 
   SMESH::SMESH_Mesh_var aMesh = createMesh();
-  string aFileName; // = boost::filesystem::path(theFileName).leaf();
+  string aFileName;
   // publish mesh in the study
   if ( CanPublishInStudy( aMesh ) ) {
     SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
@@ -683,6 +761,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();
 }
 
@@ -701,11 +783,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 );
@@ -714,6 +791,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
@@ -759,6 +844,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();
 }
@@ -778,7 +867,7 @@ SMESH::SMESH_Mesh_ptr SMESH_Gen_i::CreateMeshesFromSTL( const char* theFileName
   if(MYDEBUG) MESSAGE( "SMESH_Gen_i::CreateMeshesFromSTL" );
 
   SMESH::SMESH_Mesh_var aMesh = createMesh();
-  string aFileName; // = boost::filesystem::path(theFileName).leaf();
+  string aFileName;
   // publish mesh in the study
   if ( CanPublishInStudy( aMesh ) ) {
     SALOMEDS::StudyBuilder_var aStudyBuilder = myCurrentStudy->NewBuilder();
index a1ac46b7889267b965de3c6ee3dd20abf413580a..67751519c459638b47946e5691aa629b501e52e6 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -168,6 +168,11 @@ public:
   // Interface methods
   // *****************************************
 
+  // Set current study
+  void SetEmbeddedMode( CORBA::Boolean theMode );
+  // Get current study
+  CORBA::Boolean IsEmbeddedMode();
+
   // Set current study
   void SetCurrentStudy( SALOMEDS::Study_ptr theStudy );
   // Get current study
@@ -189,6 +194,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 );
@@ -419,6 +428,7 @@ private:
 
   GEOM_Client*              myShapeReader;      // Shape reader
   SALOMEDS::Study_var       myCurrentStudy;     // Current study
+  CORBA::Boolean            myIsEmbeddedMode;   // Current mode
 
   // Dump Python: trace of API methods calls
   std::map < int, Handle(TColStd_HSequenceOfAsciiString) > myPythonScripts;
index d3c645941bb8bbf65da35314c8e06cc352d73426..2021f22e2df7a4c43c62934b4ee3757577eb3a6e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 // File      : SMESH_Gen_i_1.cxx
@@ -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 2720a60f5e2080253053995f1b27fa4099d35cfe..7a75b310be55a430c394341c1e546a0483eb31c0 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -419,3 +419,33 @@ GEOM::GEOM_Object_ptr SMESH_GroupOnGeom_i::GetShape()
   return aGeomObj._retn();
 }
 
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+CORBA::Long SMESH_GroupBase_i::GetColorNumber()
+{
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+    return aGroupDS->GetColorGroup();
+  MESSAGE("get color number of a vague group");
+  return 0;
+}
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+void SMESH_GroupBase_i::SetColorNumber(CORBA::Long color)
+{
+  SMESHDS_GroupBase* aGroupDS = GetGroupDS();
+  if (aGroupDS)
+    return aGroupDS->SetColorGroup(color);
+  MESSAGE("set color number of a vague group");
+  return ;
+}
+
+
+
index 5ecdc7d433e483e6f3d108ce4b46b469af96bb44..e6b1813773257fa1161553ddc4f06afcb2fa9085 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -75,6 +75,9 @@ class SMESH_I_EXPORT SMESH_GroupBase_i:
   SMESH_Group* GetSmeshGroup() const;
   SMESHDS_GroupBase* GetGroupDS() const;
 
+   void SetColorNumber(CORBA::Long color);
+   CORBA::Long GetColorNumber();
+
 private:
   SMESH_Mesh_i* myMeshServant;
   int myLocalID;
index 707023af085983ad6aa04ba30e7eae3b2b0555a0..1ece6c6f1f87f025be74627c9e520aca6635a952 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -90,7 +90,7 @@ SMESH_Hypothesis_i::~SMESH_Hypothesis_i()
 
 char* SMESH_Hypothesis_i::GetName()
 {
-  MESSAGE( "SMESH_Hypothesis_i::GetName" );
+  //MESSAGE( "SMESH_Hypothesis_i::GetName" );
   return CORBA::string_dup( myBaseImpl->GetName() );
 };
 
index 8bf6beaa1250065e21b8ed1ab4bd634e8f12c2ef..fed1426c20b66a3ba1d7e1bad5cf66490e509c2d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -94,6 +94,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;
 };
 
 //=============================================================================
@@ -108,7 +110,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 1dfe803ef238615d2c55677ed3326b20d0f978a1..94b63e57534481bab81f45315e5a4628292cdcac 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d5b70f6f2e8073253660e88345c06c6e6d7e7e95..4dd63f3a1f99d0cd599e4a4fa75ff423f7fb80ab 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -63,7 +63,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 221fc13c325d89ecaed9fe4fe6e94327c24ff8b5..3840b27fa8cb8c7df163e7941cc162e95bd5c69f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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)
                        {
@@ -1121,7 +1121,7 @@ void SMESH_MEDMesh_i::createFamilies() throw(SALOME::SALOME_Exception)
        if (_creeFamily == false)
        {
                _creeFamily = true;
-               SMESH_subMesh_i *subMeshServant;
+               //SMESH_subMesh_i *subMeshServant;
 
                map < int, SMESH_subMesh_i * >::iterator it;
                for (it = _mesh_i->_mapSubMesh_i.begin();
index 0f154e8d6dbb29002104664918bec3baa3658018..6b4b358b74bbce597d59d8e8150586912849d8b0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -49,193 +49,203 @@ class SMESH_Mesh_i;
 class SMESH_I_EXPORT SMESH_MEDMesh_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 b66601bbc0c40095f44823b89764abbe776b4cac..a0e51960263cf6308d85a47fee5155ba921bff74 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 0eb3949abfaf8d61e69c293ffe09d000161d5d2d..c9ddaf83d9702056f83a27ab25c81cc3c1731dd1 100644 (file)
@@ -17,7 +17,7 @@
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index b9ab3cd4836004cd1557c8faec029aee905087ea..79617b615b38489a8a21d391b75e0b022ee306dd 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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,20 +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 <<" ])";
   }
-  return true;
+  if (NbNodes == 3) {
+    CORBA::Long n1 = IDsOfNodes[0];
+    CORBA::Long n2 = IDsOfNodes[1];
+    CORBA::Long n12 = IDsOfNodes[2];
+    elem = GetMeshDS()->AddEdge(GetMeshDS()->FindNode(n1),
+                                GetMeshDS()->FindNode(n2),
+                                GetMeshDS()->FindNode(n12));
+    // Update Python script
+    TPythonDump() << "edgeID = " << this << ".AddEdge([ "
+                  <<n1<<", "<<n2<<", "<<n12<<" ])";
+  }
+
+  if(elem)
+    return elem->GetID();
+
+  return 0;
 }
 
 //=============================================================================
@@ -137,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();
 }
 
 //=============================================================================
@@ -155,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)
   {
@@ -167,27 +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
-  {
-    GetMeshDS()->AddPolygonalFace(nodes);
+  else if (NbNodes == 6) {
+    elem = GetMeshDS()->AddFace(nodes[0], nodes[1], nodes[2], nodes[3],
+                                nodes[4], nodes[5]);
   }
+  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() << "faceID = " << this << ".AddFace( " << IDsOfNodes << " )";
+
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
+
+//=============================================================================
+/*!
+ *  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]);
+
+  const SMDS_MeshElement* elem = GetMeshDS()->AddPolygonalFace(nodes);
+  
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".AddFace( " << IDsOfNodes << " )";
+  TPythonDump() <<"faceID = "<<this<<".AddPolygonalFace( "<<IDsOfNodes<<" )";
 #ifdef _DEBUG_
-  TPythonDump() << "print 'AddFace: ', isDone";
+  TPythonDump() << "print 'AddPolygonalFace: ', faceID";
 #endif
 
-  return true;
-};
+  if(elem)
+    return elem->GetID();
+
+  return 0;
+}
 
 //=============================================================================
 /*!
@@ -195,38 +260,62 @@ CORBA::Boolean SMESH_MeshEditor_i::AddFace(const SMESH::long_array & IDsOfNodes)
  */
 //=============================================================================
 
-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++)
     n[i]=GetMeshDS()->FindNode(IDsOfNodes[i]);
 
+  SMDS_MeshElement* elem = 0;
   switch(NbNodes)
   {
-  case 4:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3]); break;
-  case 5:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4]); break;
-  case 6:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5]); break;
-  case 8:GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]); break;
+  case 4 :elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3]); break;
+  case 5 :elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4]); break;
+  case 6 :elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5]); break;
+  case 8 :elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7]); break;
+  case 10:elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],
+                                        n[6],n[7],n[8],n[9]);
+    break;
+  case 13:elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],n[6],
+                                        n[7],n[8],n[9],n[10],n[11],n[12]);
+    break;
+  case 15:elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],
+                                        n[9],n[10],n[11],n[12],n[13],n[14]);
+    break;
+  case 20:elem = GetMeshDS()->AddVolume(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],
+                                        n[8],n[9],n[10],n[11],n[12],n[13],n[14],
+                                        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 true;
-};
+  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++)
@@ -237,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);
@@ -271,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;
+}
 
 //=============================================================================
 /*!
@@ -294,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;
@@ -316,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 )
@@ -338,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 )
@@ -348,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;
 }
 
 //=============================================================================
@@ -359,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++)
   {
@@ -382,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);
 
@@ -395,6 +513,29 @@ 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,
+                  const SMDSAbs_ElementType              aType = SMDSAbs_All )
+{ 
+  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);
+      if ( elem && ( aType == SMDSAbs_All || elem->GetType() == aType ))
+        aMap.insert( make_pair( elem->GetID(), elem ));
+    }
+  }
+}
+
+
 //=============================================================================
 /*!
  *
@@ -404,14 +545,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, SMDSAbs_Face);
+
   SMESH::NumericalFunctor_i* aNumericalFunctor =
     dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
   SMESH::Controls::NumericalFunctorPtr aCrit;
@@ -422,15 +562,21 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array &   IDsOfE
 
   // Update Python script
   TPythonDump() << "isDone = " << this << ".TriToQuad( "
-                << IDsOfElements << ", None, " << MaxAngle << " )";
+                << IDsOfElements << ", " << aNumericalFunctor << ", " << MaxAngle << " )";
 #ifdef _DEBUG_
   TPythonDump() << "print 'TriToQuad: ', isDone";
 #endif
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.TriToQuad( faces, aCrit, MaxAngle );
+
+  bool stat = anEditor.TriToQuad( faces, aCrit, MaxAngle );
+
+  UpdateLastResult(anEditor);
+
+  return stat;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -440,6 +586,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);
 
@@ -450,9 +599,12 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr
   aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
 #endif
 
+  SMESH::NumericalFunctor_i* aNumericalFunctor =
+    SMESH::DownCast<SMESH::NumericalFunctor_i*>( Criterion );
+
   // Update Python script
   TPythonDump() << "isDone = " << this << ".TriToQuadObject("
-                << theObject << ", None, " << MaxAngle << " )";
+                << theObject << ", " << aNumericalFunctor << ", " << MaxAngle << " )";
 #ifdef _DEBUG_
   TPythonDump() << "print 'TriToQuadObject: ', isDone";
 #endif
@@ -460,6 +612,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -468,14 +621,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, SMDSAbs_Face);
+
   SMESH::NumericalFunctor_i* aNumericalFunctor =
     dynamic_cast<SMESH::NumericalFunctor_i*>( SMESH_Gen_i::GetServant( Criterion ).in() );
   SMESH::Controls::NumericalFunctorPtr aCrit;
@@ -486,15 +638,20 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTri (const SMESH::long_array &   IDsOfE
 
 
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".QuadToTri( " << IDsOfElements << ", None )";
+  TPythonDump() << "isDone = " << this << ".QuadToTri( " << IDsOfElements << ", " << aNumericalFunctor << " )";
 #ifdef _DEBUG_
   TPythonDump() << "print 'QuadToTri: ', isDone";
 #endif
 
   ::SMESH_MeshEditor anEditor( _myMesh );
-  return anEditor.QuadToTri( faces, aCrit );
+  CORBA::Boolean stat = anEditor.QuadToTri( faces, aCrit );
+
+  UpdateLastResult(anEditor);
+
+  return stat;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -503,6 +660,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);
 
@@ -513,8 +673,11 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr
   aSMESHGen->RemoveLastFromPythonScript(aSMESHGen->GetCurrentStudyID());
 #endif
 
+  SMESH::NumericalFunctor_i* aNumericalFunctor =
+    SMESH::DownCast<SMESH::NumericalFunctor_i*>( Criterion );
+
   // Update Python script
-  TPythonDump() << "isDone = " << this << ".QuadToTriObject(" << theObject << ", None )";
+  TPythonDump() << "isDone = " << this << ".QuadToTriObject( " << theObject << ", " << aNumericalFunctor << " )";
 #ifdef _DEBUG_
   TPythonDump() << "print 'QuadToTriObject: ', isDone";
 #endif
@@ -522,6 +685,7 @@ CORBA::Boolean SMESH_MeshEditor_i::QuadToTriObject (SMESH::SMESH_IDSource_ptr
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -530,14 +694,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, SMDSAbs_Face);
 
   // Update Python script
   TPythonDump() << "isDone = " << this << ".SplitQuad( "
@@ -547,9 +709,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;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -558,6 +725,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);
 
@@ -578,6 +748,7 @@ CORBA::Boolean SMESH_MeshEditor_i::SplitQuadObject (SMESH::SMESH_IDSource_ptr th
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *  BestSplit
@@ -603,6 +774,7 @@ CORBA::Long SMESH_MeshEditor_i::BestSplit (CORBA::Long                 IDOfQuad,
   return -1;
 }
 
+
 //=======================================================================
 //function : Smooth
 //purpose  :
@@ -619,6 +791,7 @@ CORBA::Boolean
                 MaxAspectRatio, Method, false );
 }
 
+
 //=======================================================================
 //function : SmoothParametric
 //purpose  :
@@ -635,6 +808,7 @@ CORBA::Boolean
                 MaxAspectRatio, Method, true );
 }
 
+
 //=======================================================================
 //function : SmoothObject
 //purpose  :
@@ -651,6 +825,7 @@ CORBA::Boolean
                        MaxAspectRatio, Method, false);
 }
 
+
 //=======================================================================
 //function : SmoothParametricObject
 //purpose  :
@@ -667,6 +842,7 @@ CORBA::Boolean
                        MaxAspectRatio, Method, true);
 }
 
+
 //=============================================================================
 /*!
  *
@@ -681,20 +857,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, SMDSAbs_Face);
 
   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 )
@@ -708,6 +880,8 @@ CORBA::Boolean
   anEditor.Smooth(elements, fixedNodes, method,
                   MaxNbOfIterations, MaxAspectRatio, IsParametric );
 
+  UpdateLastResult(anEditor);
+
   // Update Python script
   TPythonDump() << "isDone = " << this << "."
                 << (IsParametric ? "SmoothParametric( " : "Smooth( ")
@@ -723,6 +897,7 @@ CORBA::Boolean
   return true;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -737,6 +912,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);
@@ -763,6 +941,7 @@ SMESH_MeshEditor_i::smoothObject(SMESH::SMESH_IDSource_ptr              theObjec
   return isDone;
 }
 
+
 //=============================================================================
 /*!
  *
@@ -777,6 +956,7 @@ void SMESH_MeshEditor_i::RenumberNodes()
   GetMeshDS()->Renumber( true );
 }
 
+
 //=============================================================================
 /*!
  *
@@ -791,6 +971,7 @@ void SMESH_MeshEditor_i::RenumberElements()
   GetMeshDS()->Renumber( false );
 }
 
+
 //=======================================================================
 //function : RotationSweep
 //purpose  :
@@ -802,16 +983,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 ));
 
@@ -819,6 +998,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( "
@@ -840,6 +1021,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);
 
@@ -865,28 +1049,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() );
+  }
 }
 
 
@@ -899,6 +1089,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);
 
@@ -920,18 +1113,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 );
 
@@ -940,6 +1131,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( "
@@ -955,18 +1148,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 );
 
@@ -975,6 +1166,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( "
@@ -993,16 +1186,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 );
 
@@ -1011,6 +1202,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("
@@ -1053,6 +1246,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() )
@@ -1062,25 +1258,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] );
   }
 
@@ -1101,9 +1290,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;
 }
 
 //=======================================================================
@@ -1121,6 +1315,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,
@@ -1153,16 +1350,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 );
 
@@ -1191,8 +1386,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  :
@@ -1203,6 +1403,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);
 
@@ -1239,16 +1442,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 ));
@@ -1256,6 +1457,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( "
@@ -1273,6 +1478,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);
 
@@ -1297,16 +1505,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 );
 
@@ -1316,6 +1522,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( "
@@ -1335,6 +1545,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);
 
@@ -1358,6 +1571,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
@@ -1366,8 +1582,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];
@@ -1387,6 +1602,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;
@@ -1424,6 +1642,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();
 
@@ -1470,6 +1691,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  );
@@ -1500,17 +1724,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  :
@@ -1523,6 +1753,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  );
@@ -1549,16 +1782,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  :
@@ -1573,6 +1812,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  );
@@ -1601,17 +1843,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  :
@@ -1625,6 +1873,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 );
@@ -1639,21 +1890,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 << ", "
@@ -1664,9 +1904,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;
+  vector<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[0], 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 b72bd738c16dc970fcd2bc26c7689614216e2f0c..6433d9162b2783c72026ebfe7f074376255f201d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -36,6 +36,8 @@
 
 #include "SMESH_Mesh.hxx"
 
+class SMESH_MeshEditor;
+
 class SMESH_I_EXPORT SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
 {
  public:
@@ -49,14 +51,18 @@ class SMESH_I_EXPORT 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 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);
@@ -117,6 +123,10 @@ class SMESH_I_EXPORT 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();
 
@@ -197,6 +207,7 @@ class SMESH_I_EXPORT 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,
@@ -228,9 +239,48 @@ class SMESH_I_EXPORT 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 c56c56918dd829aeb6edc0eed393b25d20ff4cd2..367eda450af834afe338271f2f4eb1b58b9bf1f8 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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;
 }
@@ -316,6 +316,8 @@ static SMESH::Hypothesis_Status ConvertHypothesisStatus
     res = SMESH::HYP_ALREADY_EXIST; break;
   case SMESH_Hypothesis::HYP_BAD_DIM:
     res = SMESH::HYP_BAD_DIM; break;
+  case SMESH_Hypothesis::HYP_BAD_SUBSHAPE:
+    res = SMESH::HYP_BAD_SUBSHAPE; break;
   default:
     res = SMESH::HYP_UNKNOWN_FATAL;
   }
@@ -726,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
@@ -1167,6 +1210,11 @@ SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditor()
  */
 //=============================================================================
 
+CORBA::Boolean SMESH_Mesh_i::HasDuplicatedGroupNamesMED()
+{
+  return _impl->HasDuplicatedGroupNamesMED();
+}
+
 static void PrepareForWriting (const char* file)
 {
   TCollection_AsciiString aFullName ((char*)file);
@@ -1345,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);
+}
+
 //=============================================================================
 /*!
  *
@@ -1374,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);
+}
+
 //=============================================================================
 /*!
  *
@@ -1415,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);
+}
+
 //=============================================================================
 /*!
  *
@@ -1445,17 +1556,19 @@ char* SMESH_Mesh_i::Dump()
 //=============================================================================
 SMESH::long_array* SMESH_Mesh_i::GetIDs()
 {
-  SMESH::long_array_var aResult = new SMESH::long_array();
-  SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
-  int aMinId = aSMESHDS_Mesh->MinElementID();
-  int aMaxId =  aSMESHDS_Mesh->MaxElementID();
+//   SMESH::long_array_var aResult = new SMESH::long_array();
+//   SMESHDS_Mesh* aSMESHDS_Mesh = _impl->GetMeshDS();
+//   int aMinId = aSMESHDS_Mesh->MinElementID();
+//   int aMaxId =  aSMESHDS_Mesh->MaxElementID();
 
-  aResult->length(aMaxId - aMinId + 1);
+//   aResult->length(aMaxId - aMinId + 1);
 
-  for (int i = 0, id = aMinId; id <= aMaxId; id++  )
-    aResult[i++] = id;
+//   for (int i = 0, id = aMinId; id <= aMaxId; id++  )
+//     aResult[i++] = id;
 
-  return aResult._retn();
+//   return aResult._retn();
+  // PAL12398
+  return GetElementsId();
 }
 
 //=============================================================================
@@ -1563,3 +1676,449 @@ 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();
+}
+  
+
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
+
+CORBA::Long SMESH_Mesh_i::GetMeshPtr()
+{
+  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 82a44605c4b8c36fc861170a5dd59a2707be8ed6..be52708c70f62d58ee5c58fe88fcec1f7cf9bb8d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -101,6 +101,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 )
@@ -134,12 +137,11 @@ public:
     throw (SALOME::SALOME_Exception);
 
   // --- C++ interface
-
   void SetImpl(::SMESH_Mesh* impl);
   ::SMESH_Mesh& GetImpl();         // :: force no namespace here
 
   SMESH_Gen_i* GetGen() { return _gen_i; }
-  
+
   int ImportUNVFile( const char* theFileName )
     throw (SALOME::SALOME_Exception);
 
@@ -152,6 +154,11 @@ public:
   SMESH::DriverMED_ReadStatus ImportMEDFile( const char* theFileName, const char* theMeshName )
     throw (SALOME::SALOME_Exception);
 
+  /*! Check group names for duplications.
+   *  Consider maximum group name length stored in MED file.
+   */
+  CORBA::Boolean HasDuplicatedGroupNamesMED();
+
   void ExportToMED( const char* file, CORBA::Boolean auto_groups, SMESH::MED_VERSION theVersion )
     throw (SALOME::SALOME_Exception);
   void ExportMED( const char* file, CORBA::Boolean auto_groups )
@@ -176,33 +183,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);
 
@@ -221,6 +255,26 @@ public:
   SMESH::ElementType GetElementType( CORBA::Long id, bool iselem )
     throw (SALOME::SALOME_Exception);
   
+  /*!
+   * Returns ID of elements for given submesh
+   */
+  SMESH::long_array* GetSubMeshElementsId( 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( CORBA::Long ShapeID, CORBA::Boolean all)
+    throw (SALOME::SALOME_Exception);
+  
+  /*!
+   * Returns type of elements for given submesh
+   */
+  SMESH::ElementType GetSubMeshElementType( CORBA::Long ShapeID)
+    throw (SALOME::SALOME_Exception);
+  
   char* Dump();
   
   // Internal methods not available through CORBA
@@ -252,10 +306,87 @@ public:
 
   virtual SMESH::long_array* GetIDs();
 
+  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( 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( 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( CORBA::Long id);
+
+  /*!
+   * Returns number of nodes for given element
+   * If there is not element for given ID - returns -1
+   */
+  CORBA::Long GetElemNbNodes( 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( CORBA::Long id,  CORBA::Long index);
+  
+  /*!
+   * Returns true if given node is medium node
+   * in given quadratic element
+   */
+  CORBA::Boolean IsMediumNode( CORBA::Long ide,  CORBA::Long idn);
+  
+  /*!
+   * Returns true if given node is medium node
+   * in one of quadratic elements
+   */
+  CORBA::Boolean IsMediumNodeOfAnyElem( CORBA::Long idn,
+                                       SMESH::ElementType theElemType);
+  
+  /*!
+   * Returns number of edges for given element
+   */
+  CORBA::Long ElemNbEdges( CORBA::Long id);
+  
+  /*!
+   * Returns number of faces for given element
+   */
+  CORBA::Long ElemNbFaces( CORBA::Long id);
+  
+  /*!
+   * Returns true if given element is polygon
+   */
+  CORBA::Boolean IsPoly( CORBA::Long id);
+  
+  /*!
+   * Returns true if given element is quadratic
+   */
+  CORBA::Boolean IsQuadratic( CORBA::Long id);
+  
+  /*!
+   * Returns bary center for given element
+   */
+  SMESH::double_array* BaryCenter( 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..13ed3ac891d890c147c9a0742bb93a2253c0faa5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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 537d7b0151d506f12b77073642e5a208bdff25dc..7a5a92cbfa1a495d8c1b8634d9100ea692ec1741 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 57a7cf8262df9d8d19e42d354e6822dbc4ef54c7..6e65a3d4149dbc15a4c23c669641f0e3efb55da6 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMESH_PYTHONDUMP_HXX_
 #define _SMESH_PYTHONDUMP_HXX_
@@ -112,6 +112,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 650d44765f9d52c283b0515382213f196c89b48f..d8f5c2bb8d2bd528d8d2d799cffbc41e31076797 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -129,9 +129,8 @@ bool getSubMeshes(::SMESH_subMesh*  theSubMesh,
     list<TopoDS_Shape>::iterator sh = shapeList.begin();
     for ( ; sh != shapeList.end(); ++sh ) {
       for ( TopoDS_Iterator it( *sh ); it.More(); it.Next() ) {
-        ::SMESH_subMesh* aSubMesh = aMesh->GetSubMeshContaining( it.Value() );
-        if ( aSubMesh )
-          getSubMeshes( aSubMesh, theSubMeshList );
+        if ( ::SMESH_subMesh* aSubMesh = aMesh->GetSubMeshContaining( it.Value() ))
+          getSubMeshes( aSubMesh, theSubMeshList ); // add found submesh or explore deeper
         else
           // no submesh for a compound inside compound
           shapeList.push_back( it.Value() );
@@ -148,6 +147,9 @@ bool getSubMeshes(::SMESH_subMesh*  theSubMesh,
     }
     break;
   }
+  default:
+    if ( aSubMeshDS )
+      theSubMeshList.push_back( aSubMeshDS );
   }
   return size < theSubMeshList.size();
 }
@@ -275,7 +277,7 @@ SMESH::long_array* SMESH_subMesh_i::GetElementsId()
     for ( int i = 0; sm != smList.end(); sm++ )
     {
       SMDS_ElemIteratorPtr anIt = (*sm)->GetElements();
-      for ( int n = aSubMeshDS->NbElements(); i < n && anIt->more(); i++ )
+      for ( ; i < nbElems && anIt->more(); i++ )
         aResult[i] = anIt->next()->GetID();
     }
   }
index 42861f04e7ce891c0a0c9930ca9466005e66d637..808b07cb68d21dad3197e91aebb8dbf8e3f0e47e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 9fb4709e7e31216ceb1a114de9172fe36295751c..f7f36fca8f170cb3750a476c8d3cbb09fa1fa6d0 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index df7e19a1766eca1131d49a87f32cf1218ab90dab..ce5a54fd30c2693041ade5d9bcf17b8b7ff8d9a7 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -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 \
@@ -113,8 +115,8 @@ LIB_CLIENT_IDL = SALOMEDS.idl \
 
 EXPORT_SHAREDPYSCRIPTS=SMESH_shared_modules.py
 
-CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -DHAVE_CONFIG_H
+CPPFLAGS+=$(QT_INCLUDES) $(PYTHON_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(KERNEL_CXXFLAGS) -DHAVE_CONFIG_H
 LIBS+= $(PYTHON_LIBS)
-LDFLAGS+= -lSMESH -L${KERNEL_ROOT_DIR}/lib/salome -lSalomeGenericObj
+LDFLAGS+= -lSMESH $(KERNEL_LDFLAGS) -lSalomeGenericObj
 
 @CONCLUDE@
index d097bcd48d8f9865ec6cb049a2d270dcc5475120..3ed627077e9c0b2950b438aed70020d9c783442b 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/ or email : webmaster.salome@opencascade.com
+#
 import geompy
 import salome
 
index 4cfeac36b7d93eeb944603d57f88b7f28ebfa19d..9ba02230303a961731dea3650fd21f9be8e1d1ff 100755 (executable)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 73b211e8b280d2c2aaadc6777c411207a5a6eff7..b7bd92337ceaf723d8d4e5c200973a9436d61131 100755 (executable)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index c4ee39dcdf3190cf34881b031dc7b3e49f5e1dd6..482bd3b563656b793001f1247e228336b41a290f 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/ or email : webmaster.salome@opencascade.com
+#
 import SMESH
 from SMESH_test1 import *
 
index 3647c77d21aa5d330dab68c8c51ce79ec4cbdd88..0faad0ab08cdd9216841354ff6c85d29d92cf942 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 37f333d8887198979bad37dc131df1a253ca2929..5364365e3ca53b4aad7e8885a28e2b3aba848798 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/ or email : webmaster.salome@opencascade.com
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : SMESH_GroupFromGeom.py, PAL6945
index 6a4533ea7415f92a046e1ab51f4be52bb7dfa609..a3cf9298c0c77644fbdf0dd04155643bd2843ee4 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/ or email : webmaster.salome@opencascade.com
+#
 from smesh import *
 
 def BuildGroupLyingOn(theMesh, theElemType, theName, theShape):
@@ -15,9 +34,9 @@ def BuildGroupLyingOn(theMesh, theElemType, theName, theShape):
     aGroup.Add(anIds)
 
 #Example
-## from SMESH_test1 import *
+from SMESH_test1 import *
 
-## smesh.Compute(mesh, box)
-## BuildGroupLyingOn(mesh, SMESH.FACE, "Group of faces lying on edge", edge )
+smesh.Compute(mesh, box)
+BuildGroupLyingOn(mesh, SMESH.FACE, "Group of faces lying on edge", edge )
 
-## salome.sg.updateObjBrowser(1);
+salome.sg.updateObjBrowser(1);
index a3d6311ed3f6676cd944d43269431aeed2fd8f72..45835da2152f3926c0e0c95a814c05a16d42972b 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/ or email : webmaster.salome@opencascade.com
+#
 #####################################################################
 #Created                :17/02/2005
 #Auhtor                 :MASLOV Eugeny, KOVALTCHUK Alexey 
index 515e1fe10d3221a8a0a41d86bef4f2e161e57146..72ca25f2e6d1d463a48801371128a0c7b60158c5 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Tetrahedrization of the geometry generated by the Python script GEOM_Partition1.py
 # Hypothesis and algorithms for the mesh generation are global
index 893e5441f31448f97b74d717a7d85901636b7f07..45306bed5f44014805f1689eb4b577851cb910d9 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 0430867fbc6bdcdc0b8ea44627f5012ec1d220cc..0b8d46cc247ac8754c857008e6a2542c017594cb 100644 (file)
@@ -16,7 +16,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 5fc7f296983613e2983ddba823595f2b1f23262c..49b1784c389004e1ef645993aa0a7791e170cee1 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/ or email : webmaster.salome@opencascade.com
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : box.py, PAL5223
index 1c7aa8a39086d1bc1045d4f05d9d6385c37afd7f..fe3a942f4fbf2eb85c2c71689a0bfc9a83b80eba 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Tetrahedrization of the geometry union of 2 boxes having a face in common
 # Hypothesis and algorithms for the mesh generation are global
index c4cbf5c8860e6ca97486a3f88f0a94e505676658..852cc9d1d7500695eaad88dd062e801f32718d5c 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Tetrahedrization of the geometry union of 3 boxes aligned where the middle
 # one has a race in common with the two others.
index 982ec60537c86755bbc3e0ea9b55a87755220521..67e4dbef8ed28d9c663adbea08f4a8480c03249b 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Tetrahedrization of a simple box. Hypothesis and algorithms for
 # the mesh generation are global
index 1d5080d87de072d380690254c7c174cedc874ef1..9266516c95522d320955fc73d4f89cf1334cfcfa 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 68e29918760b70fbe984d9ff3c829f714ef50a76..6fb4aef025ce01df1e14509f608c2b4f90b4cb60 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/ or email : webmaster.salome@opencascade.com
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : SMESH_demo_hexa2_upd.py, PAL6781
index b10fcc81fa81be33ea55a9a2457429e602433f05..f5d1035ab21b1b98f04831144cc0ae3eb72a54b7 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 22db40f5d33aff74f534cec4bea94bf33f710533..d8ee0a2d470a5e449d0f71e20e1c0fe5dd016031 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Hexahedrization of the geometry generated by the Python script
 # SMESH_fixation.py
index 0163b0127a5bb75c8e83e040e56647af01cffaad..e88d917c5431df921de243248a65923284fd5011 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Tetrahedrization of the geometry generated by the Python script
 # SMESH_fixation.py
index 7969df995b1619d7fc484555590da36624467bf6..52d892935f6a1cda16c964a9543a6f918c383d1b 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/ or email : webmaster.salome@opencascade.com
+#
 #
 # Triangulation of the skin of the geometry from a Brep representing a plane
 # This geometry is from EADS
index c6881c8250a232dca6f8ebd402aa473cb2d9a892..0af6b113d48c5327834e4ed6e5427024ea1d6c56 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/ or email : webmaster.salome@opencascade.com
+#
 import salome
 import geompy
 import SMESH
index 0bee28c321ce30cb4a6a39f675250cbd511a4ecf..d6b1ac905ff102f1a75d5b95592bcca06970a381 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/ or email : webmaster.salome@opencascade.com
+#
 #==============================================================================
 #  Info.
 #  Bug (from script, bug)   : hexaedre_modified.py, PAL6194, PAL7153
index 7beb5eecebbd42aa7c5de79eb27c1d7ec8802d3a..8a634f261d9f4055276b47ca36558a9d55913947 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 25599d75d102838387170ca616b5ebabc772be2c..c1c2840b66a3642428bf2d6a0d17046331f96bf7 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 51946b306a0402c83ad943e1b49080a16863f05f..08acaed856409b30881679a8ab4fa133a2cdb6d9 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index ed5455d4453c22db409d8ba007f1432055df2cdc..dde1c5c5a4895f3e163022dea3e89df756bead77 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index e40362ffffa934724b943127ea56cb7d79e6f173..22c2a0de671af7da69bf7d6dd3fa7678735c4694 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/ or email : webmaster.salome@opencascade.com
+#
 """
 
 """
index cdaae7eb62ae98f3a637787e915e4d0d9d996063..ad4efa46b9b2ac686deb2c3bddd11b2087b4d703 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index a7a5282a5711dc4faa0f1c0f3604b003892b55ef..64794e6235bc7c4012f04a760869a88c2ee95092 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -25,7 +25,6 @@
 import salome
 import geompy
 from geompy import geom
-from geompy import gg
 
 import SMESH
 
index 96792bf552839d889b55920c767605fb7302d2bb..8383318b5394dc89fb0a9eabc2e3c57596d9abcf 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index b552a1490d70ae6fc32b034306f7c08160344ecb..622f84a77e13033991d04c02d3e70f37cc1be124 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index e10501858a15789a2a87a3485d67397322b79ff4..93ab33aa9815833986864bb489ffb5a904a95073 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index fe50f9fbe11d08a17c8eb81afd1b3c236741f964..6cccd394c72dae04912d07729658b338e4a3b5b6 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/ or email : webmaster.salome@opencascade.com
+#
 import salome
 import geompy
 import SMESH
index 4b31dcbc3723a68fb8334c315d3d67c3bef15420..74a28c6ba4b27583eef86a91e06173c8652caa87 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
index 2166077f5e3629aa44c7939cd217148981caab95..54d57bf638edd9004d2137e78e69919334a0f1a4 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/ or email : webmaster.salome@opencascade.com
+#
 import os
 import re
 
index 4964c8b0cc7ef8edb6e67a55ab93b8f79e8e4441..1d44f436042f99eac979323092ce3a5ef5f9761b 100644 (file)
@@ -1,6 +1,21 @@
-#  Copyright (C) 2003  CEA/DEN, EDF R&D
+#  Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
 #
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #  File   : batchmode_smesh.py
 #  Author : Oksana TCHEBANOVA
index b1aa726b2455636317489fc4a3eb8ce0784197b0..8e490d7bed530ddda4072adc26ec7dbb7eafed2b 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2005, Francis KLOSS (OCC)
 # ==================================
 
index 02b5b1506a37fa24084e3db151d90e522ca239ff..4493b6f3204bcad2cc748cbb252dda5c27664fa3 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 7475072110a0971cfb771e2b744a614ca1e0dae1..e82ee605db2d66e09b5815707f03c1318900fb40 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index cc566893cbc9f2b3dd6ec03fd8e5d0743000a950..4772e6375728ba364ecfa422f9ed83e4591989ca 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 5bb4a1c8928c1a4182460150efed2c87d7c1db77..6d5ef4aa5351de903f396064cebd0d6314e637ea 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index ecaa211f427f0e12d1b87bef90bf2a2429d7a9aa..7ec3af89ecd01c17adc4083d4f79339db40c39e0 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 5e461e466272889a405a3d0d11c78cd373eedfdb..a10ea7af823464ad4204e1059cea1109c923fc0f 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 592e5f8333a74349b9ebbe79472f06d152ffae97..b5a4168b8a957a0e76c2c2264cc8ee34b565cd43 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index ab23cb703d925213c982a1633eadc815813f409e..1682968f1bc8765981d2bd9b608e2618489fee03 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 681a31f90d61072606055bab3aba848a15aa996a..26505515a78ed78692b7b6d93692caa144a8c9db 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index bcd56372a66858e6d2c6de5a24f89325d8889491..67cb9efd546ccb1fab5e58e82bb92a79091c8729 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 4327775f0f81f88d93da08106e748d303719d077..806b8e4f9098216036b02647bfa6b5451e4913f9 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index f83de144ab0e861a4f7fa014783e7afabab4907d..a0f037195352e443b56a376365fc6d841301eef3 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index c97ccb8d82bd3095961b3a51c218bbe0c2b6768a..d16b6c51f1036adf28ffe0607a7aa3efd5a14ca7 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2005, Francis KLOSS (OCC)
 # ==================================
 
index 6a2127a00d98e622520f2fcd8b8c00d0ee544f4a..bbfca409e6a651240339e6ad3f4625ad7df485bc 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index c7de6881445537baa530bbcb43cfd29c17c953b9..5546201521d8bf986b90b75b27dbfd841c2a631c 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index e38aba29132071650ef7a47f56a657d750eb41e4..3dee7b5885bb559ac39f28c9b2d9b932a53218eb 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 5064a9315acd9fcdac480bf1a82c5ce26a8daba2..d3239e2fa4e6efdf0cce978538ce62057a53d1c9 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 96d8738bfaef0267ce0592777414c71ba66affc7..e1c270eaf9594e5250765e86c6c9eb93cbef9eaf 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2004-2005, Francis KLOSS (OCC)
 # =======================================
 
index 295a95f565e4cce973a98056c480f767318efd52..02357b0f4d601a6449bbaa6eebbf5dfcdd4feb39 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/ or email : webmaster.salome@opencascade.com
+#
 # CEA/LGLS 2005, Francis KLOSS (OCC)
 # ==================================
 
index 7caf23381346749d3896657ac9948a2dd021d40e..247c0fc390e7a026a32c7305fe66ac17ea410611 100644 (file)
@@ -15,7 +15,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index b0113f3a0d6a9d91289f02c51b1d38cb98ebce1f..c02fca725d2e809859dc62da9c296f56e572e983 100644 (file)
@@ -15,7 +15,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-#  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #  File   : smesh.py
 #  Author : Francis KLOSS, OCC
@@ -31,8 +31,6 @@ import geompy
 import StdMeshers
 import SMESH
 
-# Public variables
-# ----------------
 
 REGULAR = 1
 PYTHON  = 2
@@ -43,8 +41,6 @@ GHS3D   = 4
 smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
 smesh.SetCurrentStudy(salome.myStudy)
 
-# Private functions
-# -----------------
 
 NO_NAME = "NoName"
 
@@ -60,42 +56,67 @@ def GetName(obj):
 def SetName(obj, name):
     ior  = salome.orb.object_to_string(obj)
     sobj = salome.myStudy.FindObjectIOR(ior)
-    attr = sobj.FindAttribute("AttributeName")[1]
-    attr.SetValue(name)
-
-# Algorithms and hypothesis
-# =========================
-
-# Private class: Mesh_Algorithm
-# -----------------------------
+    if not sobj is None:
+        attr = sobj.FindAttribute("AttributeName")[1]
+        attr.SetValue(name)
 
+## Mother class to define algorithm, recommended to don't use directly.
+#
+#  More details.
 class Mesh_Algorithm:
-    """
-    Mother class to define algorithm, recommended to don't use directly
-    """
+    #  @class Mesh_Algorithm
+    #  @brief Class Mesh_Algorithm
 
     mesh = 0
     geom = 0
     subm = 0
     algo = 0
 
+    ## If the algorithm is global, return 0
+    #  \fn else return the submesh associated to this algorithm.
+    #
+    #  More details.
     def GetSubMesh(self):
-        """
-         If the algorithm is global, return 0
-         else return the submesh associated to this algorithm
-        """
         return self.subm
 
+    ## Return the wrapped mesher.
     def GetAlgorithm(self):
-        """
-         Return the wrapped mesher
-        """
         return self.algo
 
+    ## Private method. Print error message if a hypothesis was not assigned.
+    def TreatHypoStatus(self, status, hypName, geomName, isAlgo):
+        if isAlgo:
+            hypType = "algorithm"
+        else:
+            hypType = "hypothesis"
+        if status == SMESH.HYP_UNKNOWN_FATAL :
+            reason = "for unknown reason"
+        elif status == SMESH.HYP_INCOMPATIBLE :
+            reason = "this hypothesis mismatches algorithm"
+        elif status == SMESH.HYP_NOTCONFORM :
+            reason = "not conform mesh would be built"
+        elif status == SMESH.HYP_ALREADY_EXIST :
+            reason = hypType + " of the same dimension already assigned to this shape"
+        elif status == SMESH.HYP_BAD_DIM :
+            reason = hypType + " mismatches shape"
+        elif status == SMESH.HYP_CONCURENT :
+            reason = "there are concurrent hypotheses on sub-shapes"
+        elif status == SMESH.HYP_BAD_SUBSHAPE :
+            reason = "shape is neither the main one, nor its subshape, nor a valid group"
+        else:
+            return
+        hypName = '"' + hypName + '"'
+        geomName= '"' + geomName+ '"'
+        if status < SMESH.HYP_UNKNOWN_FATAL:
+            print hypName, "was assigned to",    geomName,"but", reason
+        else:
+            print hypName, "was not assigned to",geomName,":", reason
+        pass
+
+    ## Private method.
     def Create(self, mesh, geom, hypo, so="StdMeshersEngine"):
-        """
-         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:
@@ -111,12 +132,11 @@ class Mesh_Algorithm:
 
         self.algo = smesh.CreateHypothesis(hypo, so)
         SetName(self.algo, name + "/" + hypo)
-        mesh.mesh.AddHypothesis(self.geom, self.algo)
+        status = mesh.mesh.AddHypothesis(self.geom, self.algo)
+        self.TreatHypoStatus( status, hypo, name, 1 )
 
+    ## Private method
     def Hypothesis(self, hyp, args=[], so="StdMeshersEngine"):
-        """
-         Private method
-        """
         hypo = smesh.CreateHypothesis(hyp, so)
         a = ""
         s = "="
@@ -126,39 +146,35 @@ class Mesh_Algorithm:
             a = a + s + str(args[i])
             s = ","
             i = i + 1
-        SetName(hypo, GetName(self.geom) + "/" + hyp + a)
-        self.mesh.mesh.AddHypothesis(self.geom, hypo)
+        name = GetName(self.geom)
+        SetName(hypo, name + "/" + hyp + a)
+        status = self.mesh.mesh.AddHypothesis(self.geom, hypo)
+        self.TreatHypoStatus( status, hyp, name, 0 )
         return hypo
 
 # Public class: Mesh_Segment
 # --------------------------
 
+## Class to define a segment 1D algorithm for discretization
+#
+#  More details.
 class Mesh_Segment(Mesh_Algorithm):
-    """
-    Class to define a segment 1D algorithm for discretization
-    """
 
+    ## Private constructor.
     def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
         self.Create(mesh, geom, "Regular_1D")
 
+    ## Define "LocalLength" hypothesis to cut an edge in several segments with the same length
+    #  @param l for the length of segments that cut an edge
     def LocalLength(self, l):
-        """
-         Define "LocalLength" hypothesis to cut an edge in several segments with the same length
-         \param l for the length of segments that cut an edge
-        """
         hyp = self.Hypothesis("LocalLength", [l])
         hyp.SetLength(l)
         return hyp
 
+    ## Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments
+    #  @param n for the number of segments that cut an edge
+    #  @param s for the scale factor (optional)
     def NumberOfSegments(self, n, s=[]):
-        """
-         Define "NumberOfSegments" hypothesis to cut an edge in several fixed number of segments
-         \param n for the number of segments that cut an edge
-         \param s for the scale factor (optional)
-        """
         if s == []:
             hyp = self.Hypothesis("NumberOfSegments", [n])
         else:
@@ -168,74 +184,70 @@ class Mesh_Segment(Mesh_Algorithm):
         hyp.SetNumberOfSegments(n)
         return hyp
 
+    ## Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing
+    #  @param start for the length of the first segment
+    #  @param end   for the length of the last  segment
     def Arithmetic1D(self, start, end):
-        """
-         Define "Arithmetic1D" hypothesis to cut an edge in several segments with arithmetic length increasing
-         \param start for the length of the first segment
-         \param end   for the length of the last  segment
-        """
         hyp = self.Hypothesis("Arithmetic1D", [start, end])
         hyp.SetLength(start, 1)
         hyp.SetLength(end  , 0)
         return hyp
 
+    ## Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing
+    #  @param start for the length of the first segment
+    #  @param end   for the length of the last  segment
     def StartEndLength(self, start, end):
-        """
-         Define "StartEndLength" hypothesis to cut an edge in several segments with geometric length increasing
-         \param start for the length of the first segment
-         \param end   for the length of the last  segment
-        """
         hyp = self.Hypothesis("StartEndLength", [start, end])
         hyp.SetLength(start, 1)
         hyp.SetLength(end  , 0)
         return hyp
 
+    ## Define "Deflection1D" hypothesis
+    #  @param d for the deflection
     def Deflection1D(self, d):
-        """
-         Define "Deflection1D" hypothesis
-         \param d for the deflection
-        """
         hyp = self.Hypothesis("Deflection1D", [d])
         hyp.SetDeflection(d)
         return hyp
 
+    ## Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in
+    #  the opposite side in the case of quadrangular faces
     def Propagation(self):
-        """
-         Define "Propagation" hypothesis that propagate all other hypothesis on all others edges that are in
-         the opposite side in the case of quadrangular faces
-        """
         return self.Hypothesis("Propagation")
 
-    def AutomaticLength(self, fineness):
-        """
-         Define "AutomaticLength" hypothesis
-         \param fineness for the fineness [0-1]
-        """
+    ## Define "AutomaticLength" hypothesis
+    #  @param fineness for the fineness [0-1]
+    def AutomaticLength(self, fineness=0):
         hyp = self.Hypothesis("AutomaticLength")
         hyp.SetFineness( fineness )
         return hyp
 
+    ## Define "QuadraticMesh" hypothesis, forcing construction of quadratic edges.
+    #  If the 2D mesher sees that all boundary edges are quadratic ones,
+    #  it generates quadratic faces, else it generates linear faces using
+    #  medium nodes as if they were vertex ones.
+    #  The 3D mesher generates quadratic volumes only if all boundary faces
+    #  are quadratic ones, else it fails.
+    def QuadraticMesh(self):
+        hyp = self.Hypothesis("QuadraticMesh")
+        return hyp
+
 # Public class: Mesh_Segment_Python
 # ---------------------------------
 
+## Class to define a segment 1D algorithm for discretization with python function
+#
+#  More details.
 class Mesh_Segment_Python(Mesh_Segment):
-    """
-    Class to define a segment 1D algorithm for discretization with python function
-    """
 
+    ## Private constructor.
     def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
         import Python1dPlugin
         self.Create(mesh, geom, "Python_1D", "Python1dEngine")
 
+    ## Define "PythonSplit1D" hypothesis based on the Erwan Adam patch, awaiting equivalent SALOME functionality
+    #  @param n for the number of segments that cut an edge
+    #  @param func for the python function that calculate the length of all segments
     def PythonSplit1D(self, n, func):
-        """
-         Define "PythonSplit1D" hypothesis based on the Erwan Adam patch, awaiting equivalent SALOME functionality
-         \param n for the number of segments that cut an edge
-         \param func for the python function that calculate the length of all segments
-        """
         hyp = self.Hypothesis("PythonSplit1D", [n], "Python1dEngine")
         hyp.SetNumberOfSegments(n)
         hyp.SetPythonLog10RatioFunction(func)
@@ -244,78 +256,64 @@ class Mesh_Segment_Python(Mesh_Segment):
 # Public class: Mesh_Triangle
 # ---------------------------
 
+## Class to define a triangle 2D algorithm
+#
+#  More details.
 class Mesh_Triangle(Mesh_Algorithm):
-    """
-    Class to define a triangle 2D algorithm
-    """
 
+    ## Private constructor.
     def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
         self.Create(mesh, geom, "MEFISTO_2D")
 
+    ## Define "MaxElementArea" hypothesis to give the maximun area of each triangles
+    #  @param area for the maximum area of each triangles
     def MaxElementArea(self, area):
-        """
-         Define "MaxElementArea" hypothesis to give the maximun area of each triangles
-         \param area for the maximum area of each triangles
-        """
         hyp = self.Hypothesis("MaxElementArea", [area])
         hyp.SetMaxElementArea(area)
         return hyp
 
+    ## Define "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
     def LengthFromEdges(self):
-        """
-         Define "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
-        """
         return self.Hypothesis("LengthFromEdges")
 
 # Public class: Mesh_Quadrangle
 # -----------------------------
 
+## Class to define a quadrangle 2D algorithm
+#
+#  More details.
 class Mesh_Quadrangle(Mesh_Algorithm):
-    """
-    Class to define a quadrangle 2D algorithm
-    """
 
+    ## Private constructor.
     def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
         self.Create(mesh, geom, "Quadrangle_2D")
 
+    ## Define "QuadranglePreference" hypothesis, forcing construction
+    #  of quadrangles if the number of nodes on opposite edges is not the same
+    #  in the case where the global number of nodes on edges is even
     def QuadranglePreference(self):
-        """
-         Define "QuadranglePreference" hypothesis, forcing construction
-         of quadrangles if the number of nodes on opposite edges is not the same
-         in the case where the global number of nodes on edges is even
-        """
         hyp = self.Hypothesis("QuadranglePreference")
         return hyp
 
 # Public class: Mesh_Tetrahedron
 # ------------------------------
 
+## Class to define a tetrahedron 3D algorithm
+#
+#  More details.
 class Mesh_Tetrahedron(Mesh_Algorithm):
-    """
-    Class to define a tetrahedron 3D algorithm
-    """
 
+    ## Private constructor.
     def __init__(self, mesh, algo, geom=0):
-        """
-         Private constructor
-        """
         if algo == NETGEN:
             self.Create(mesh, geom, "NETGEN_3D", "NETGENEngine")
         elif algo == GHS3D:
             import GHS3DPlugin
             self.Create(mesh, geom, "GHS3D_3D" , "GHS3DEngine")
 
+    ## Define "MaxElementVolume" hypothesis to give the maximun volume of each tetrahedral
+    #  @param vol for the maximum volume of each tetrahedral
     def MaxElementVolume(self, vol):
-        """
-         Define "MaxElementVolume" hypothesis to give the maximun volume of each tetrahedral
-         \param vol for the maximum volume of each tetrahedral
-        """
         hyp = self.Hypothesis("MaxElementVolume", [vol])
         hyp.SetMaxElementVolume(vol)
         return hyp
@@ -323,37 +321,60 @@ class Mesh_Tetrahedron(Mesh_Algorithm):
 # Public class: Mesh_Hexahedron
 # ------------------------------
 
+## Class to define a hexahedron 3D algorithm
+#
+#  More details.
 class Mesh_Hexahedron(Mesh_Algorithm):
-    """
-    Class to define a hexahedron 3D algorithm
-    """
 
+    ## Private constructor.
     def __init__(self, mesh, geom=0):
-        """
-         Private constructor
-        """
         self.Create(mesh, geom, "Hexa_3D")
 
+# Public class: Mesh_Netgen
+# ------------------------------
+
+## Class to define a NETGEN-based 2D or 3D algorithm
+#  that need no discrete boundary (i.e. independent)
+#
+#  More details.
+class Mesh_Netgen(Mesh_Algorithm):
+
+    is3D = 0
+
+    ## Private constructor.
+    def __init__(self, mesh, is3D, geom=0):
+        self.is3D = is3D
+        if is3D:
+            self.Create(mesh, geom, "NETGEN_2D3D", "NETGENEngine")
+        else:
+            self.Create(mesh, geom, "NETGEN_2D", "NETGENEngine")
+
+    ## Define hypothesis containing parameters of the algorithm
+    def Parameters(self):
+        if self.is3D:
+            hyp = self.Hypothesis("NETGEN_Parameters", [], "NETGENEngine")
+        else:
+            hyp = self.Hypothesis("NETGEN_Parameters_2D", [], "NETGENEngine")
+        return hyp
+
 # Public class: Mesh
 # ==================
 
+## Class to define a mesh
+#
+#  More details.
 class Mesh:
-    """
-    Class to define a mesh
-    """
 
     geom = 0
     mesh = 0
 
+    ## Constructor
+    #
+    #  Creates mesh on the shape \a geom,
+    #  sets GUI name of this mesh to \a name.
+    #  @param geom Shape to be meshed
+    #  @param name Study name of the mesh
     def __init__(self, geom, name=0):
-        """
-         Constructor
-
-         Creates mesh on the shape \a geom,
-         sets GUI name of this mesh to \a name.
-         \param geom Shape to be meshed
-         \param name Study name of the mesh
-        """
         self.geom = geom
         self.mesh = smesh.CreateMesh(geom)
         if name == 0:
@@ -361,22 +382,16 @@ class Mesh:
         else:
             SetName(self.mesh, name)
 
+    ## Method that returns the mesh
     def GetMesh(self):
-        """
-         Method that returns the mesh
-        """
         return self.mesh
 
+    ## Method that returns the shape associated to the mesh
     def GetShape(self):
-        """
-         Method that returns the shape associated to the mesh
-        """
         return self.geom
 
+    ## Returns mesh dimension depending on shape one
     def MeshDimension(self):
-        """
-        Returns mesh dimension depending on shape one
-        """
         shells = geompy.SubShapeAllIDs( self.geom, geompy.ShapeType["SHELL"] )
         if len( shells ) > 0 :
             return 3
@@ -388,15 +403,13 @@ class Mesh:
             return 0;
         pass
 
+    ## Creates a segment discretization 1D algorithm.
+    #  If the optional \a algo parameter is not sets, this algorithm is REGULAR.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param algo values are smesh.REGULAR or smesh.PYTHON for discretization via python function
+    #  @param geom If defined, subshape to be meshed
     def Segment(self, algo=REGULAR, geom=0):
-        """
-         Creates a segment discretization 1D algorithm.
-         If the optional \a algo parameter is not sets, this algorithm is REGULAR.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param algo values are smesh.REGULAR or smesh.PYTHON for discretization via python function
-         \param geom If defined, subshape to be meshed
-        """
         ## if Segment(geom) is called by mistake
         if ( isinstance( algo, geompy.GEOM._objref_GEOM_Object)):
             algo, geom = geom, algo
@@ -408,68 +421,95 @@ class Mesh:
         else:
             return Mesh_Segment(self, geom)
 
+    ## Creates a triangle 2D algorithm for faces.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
     def Triangle(self, geom=0):
-        """
-         Creates a triangle 2D algorithm for faces.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param geom If defined, subshape to be meshed
-        """
         return Mesh_Triangle(self, geom)
 
+    ## Creates a quadrangle 2D algorithm for faces.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
     def Quadrangle(self, geom=0):
-        """
-         Creates a quadrangle 2D algorithm for faces.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param geom If defined, subshape to be meshed
-        """
         return Mesh_Quadrangle(self, geom)
 
+    ## Creates a tetrahedron 3D algorithm for solids.
+    #  The parameter \a algo permits to choice the algorithm: NETGEN or GHS3D
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param algo values are: smesh.NETGEN, smesh.GHS3D
+    #  @param geom If defined, subshape to be meshed
     def Tetrahedron(self, algo, geom=0):
-        """
-         Creates a tetrahedron 3D algorithm for solids.
-         The parameter \a algo permits to choice the algorithm: NETGEN or GHS3D
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param algo values are: smesh.NETGEN, smesh.GHS3D
-         \param geom If defined, subshape to be meshed
-        """
         ## if Tetrahedron(geom) is called by mistake
         if ( isinstance( algo, geompy.GEOM._objref_GEOM_Object)):
             algo, geom = geom, algo
             pass
         return Mesh_Tetrahedron(self, algo, geom)
 
+    ## Creates a hexahedron 3D algorithm for solids.
+    #  If the optional \a geom parameter is not sets, this algorithm is global.
+    #  Otherwise, this algorithm define a submesh based on \a geom subshape.
+    #  @param geom If defined, subshape to be meshed
     def Hexahedron(self, geom=0):
-        """
-         Creates a hexahedron 3D algorithm for solids.
-         If the optional \a geom parameter is not sets, this algorithm is global.
-         Otherwise, this algorithm define a submesh based on \a geom subshape.
-         \param geom If defined, subshape to be meshed
-        """
         return Mesh_Hexahedron(self, geom)
 
+    ## 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
+    def Netgen(self, is3D, geom=0):
+        return Mesh_Netgen(self, is3D, geom)
+
+    ## Compute the mesh and return the status of the computation
     def Compute(self):
-        """
-         Compute the mesh and return the status of the computation
-        """
-        b = smesh.Compute(self.mesh, self.geom)
+        ok = smesh.Compute(self.mesh, self.geom)
+        if not ok:
+            errors = smesh.GetAlgoState( self.mesh, self.geom )
+            allReasons = ""
+            for err in errors:
+                if err.isGlobalAlgo:
+                    glob = " global "
+                else:
+                    glob = " local "
+                    pass
+                dim = str(err.algoDim)
+                if err.name == SMESH.MISSING_ALGO:
+                    reason = glob + dim + "D algorithm is missing"
+                elif err.name == SMESH.MISSING_HYPO:
+                    name = '"' + err.algoName + '"'
+                    reason = glob + dim + "D algorithm " + name + " misses " + dim + "D hypothesis"
+                else:
+                    reason = "Global \"Not Conform mesh allowed\" hypothesis is missing"
+                    pass
+                if allReasons != "":
+                    allReasons += "\n"
+                    pass
+                allReasons += reason
+                pass
+            if allReasons != "":
+                print '"' + GetName(self.mesh) + '"',"not computed:"
+                print allReasons
+                pass
+            pass
         if salome.sg.hasDesktop():
             smeshgui = salome.ImportComponentGUI("SMESH")
             smeshgui.Init(salome.myStudyId)
-            smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), b )
+            smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), ok )
             salome.sg.updateObjBrowser(1)
-        return b
+            pass
+        return ok
 
-    def AutomaticTetrahedralization(self):
-        """
-        Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN
-        """
+    ## Compute tetrahedral mesh using AutomaticLength + MEFISTO + NETGEN
+    #  The parameter \a fineness [0.-1.] defines mesh fineness
+    def AutomaticTetrahedralization(self, fineness=0):
         dim = self.MeshDimension()
         # assign hypotheses
         self.RemoveGlobalHypotheses()
-        self.Segment().AutomaticLength()
+        self.Segment().AutomaticLength(fineness)
         if dim > 1 :
             self.Triangle().LengthFromEdges()
             pass
@@ -478,14 +518,13 @@ class Mesh:
             pass
         return self.Compute()
 
-    def AutomaticHexahedralization(self):
-        """
-        Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron
-        """
+    ## Compute hexahedral mesh using AutomaticLength + Quadrangle + Hexahedron
+    #  The parameter \a fineness [0.-1.] defines mesh fineness
+    def AutomaticHexahedralization(self, fineness=0):
         dim = self.MeshDimension()
         # assign hypotheses
         self.RemoveGlobalHypotheses()
-        self.Segment().AutomaticLength()
+        self.Segment().AutomaticLength(fineness)
         if dim > 1 :
             self.Quadrangle()
             pass
@@ -494,24 +533,20 @@ class Mesh:
             pass
         return self.Compute()
 
+    ## Removes all global hypotheses
     def RemoveGlobalHypotheses(self):
-        """
-        Removes all global hypotheses
-        """
         current_hyps = self.mesh.GetHypothesisList( self.geom )
         for hyp in current_hyps:
             self.mesh.RemoveHypothesis( self.geom, hyp )
             pass
         pass
 
+    ## Create a mesh group based on geometric object \a grp
+    #  and give a \a name, if this parameter is not defined
+    #  the name is the same as the geometric group name
+    #  @param grp  is a geometric group, a vertex, an edge, a face or a solid
+    #  @param name is the name of the mesh group
     def Group(self, grp, name=""):
-        """
-         Create a mesh group based on geometric object \a grp
-         and give a \a name, if this parameter is not defined
-         the name is the same as the geometric group name
-         \param grp  is a geometric group, a vertex, an edge, a face or a solid
-         \param name is the name of the mesh group
-        """
         if name == "":
             name = grp.GetName()
 
@@ -528,6 +563,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
@@ -544,39 +582,29 @@ class Mesh:
         else:
             return self.mesh.CreateGroupFromGEOM(type, name, grp)
 
+    ## Export the mesh in a file with the MED format and choice the \a version of MED format
+    #  @param f is the file name
+    #  @param version values are SMESH.MED_V2_1, SMESH.MED_V2_2
     def ExportToMED(self, f, version, opt=0):
-        """
-         Export the mesh in a file with the MED format and choice the \a version of MED format
-         \param f is the file name
-         \param version values are smesh.MED_V2_1, smesh.MED_V2_2
-        """
         self.mesh.ExportToMED(f, opt, version)
 
+    ## Export the mesh in a file with the MED format
+    #  @param f is the file name
     def ExportMED(self, f, opt=0):
-        """
-         Export the mesh in a file with the MED format
-         \param f is the file name
-        """
         self.mesh.ExportMED(f, opt)
 
+    ## Export the mesh in a file with the DAT format
+    #  @param f is the file name
     def ExportDAT(self, f):
-        """
-         Export the mesh in a file with the DAT format
-         \param f is the file name
-        """
         self.mesh.ExportDAT(f)
 
+    ## Export the mesh in a file with the UNV format
+    #  @param f is the file name
     def ExportUNV(self, f):
-        """
-         Export the mesh in a file with the UNV format
-         \param f is the file name
-        """
         self.mesh.ExportUNV(f)
 
+    ## Export the mesh in a file with the STL format
+    #  @param f is the file name
+    #  @param ascii defined the kind of file contents
     def ExportSTL(self, f, ascii=1):
-        """
-         Export the mesh in a file with the STL format
-         \param f is the file name
-         \param ascii defined the kind of file contents
-        """
         self.mesh.ExportSTL(f, ascii)
index 544e5d5a87d89c8ea5c444c8aa35e99e75ddd945..64c12cec8fb55c988777d79b6e64a0022e0b249d 100644 (file)
@@ -16,7 +16,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -51,6 +51,7 @@ EXPORT_HEADERS = \
        StdMeshers_AutomaticLength.hxx \
        StdMeshers_Distribution.hxx \
        StdMeshers_QuadranglePreference.hxx \
+       StdMeshers_QuadraticMesh.hxx \
        SMESH_StdMeshers.hxx
 
 EXPORT_PYSCRIPTS =
@@ -77,7 +78,8 @@ LIB_SRC = \
        StdMeshers_Hexa_3D.cxx \
        StdMeshers_AutomaticLength.cxx \
        StdMeshers_Distribution.cxx \
-       StdMeshers_QuadranglePreference.cxx
+       StdMeshers_QuadranglePreference.cxx \
+       StdMeshers_QuadraticMesh.cxx
 
 LIB_SERVER_IDL = 
 
@@ -88,10 +90,22 @@ BIN =
 BIN_SRC = 
 
 # additionnal information to compil and link file
-CPPFLAGS+= $(OCC_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
+CPPFLAGS+= \
+       $(OCC_INCLUDES) \
+       $(BOOST_CPPFLAGS) \
+       $(KERNEL_CXXFLAGS)
 
-LDFLAGS+= -lSMESHimpl -lMEFISTO2D $(OCC_LDPATH) -lTKAdvTools -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome \
-         -lCASCatch
+CXXFLAGS+= \
+       $(OCC_CXXFLAGS) \
+       $(KERNEL_CXXFLAGS) \
+       $(GEOM_CXXFLAGS)
+
+LDFLAGS+= \
+       -lSMESHimpl \
+       -lMEFISTO2D \
+       $(OCC_LDPATH) \
+       -lTKAdvTools \
+       $(KERNEL_LDFLAGS) \
+       $(GEOM_LDFLAGS)
 
 @CONCLUDE@
index b4953a35a10de1ca2ea2f78a3eab669d80b410a2..ea72ca0048b6d51b234ad591b4596ae258205c28 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 683ce0c3e32269d02358312117c2fe9fd7b35308..09b7edd15f02ce0c28874bd3c033afe66935270a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index fa74a7dc5d5a86ac3544761e0b76af666b2a14fc..a91ccebb8f9c7e086795d80b3682384d52c89847 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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 =
index d3f91e203f20ad2d0a730655ee59325ab7511577..a9194dce78d041aeb4d3bef936f9b19ff6a930cf 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 974ed2b08bfbed3aef0e9c92dd60f6e5eb1079b2..de3d52778050e031e42bc7f5690273eb45d0524d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 3334f5b6bb59003e7f90b9460481f9f6505e4223..f321c83d5a62e9a29b8bc0218656697f37cdfe2f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index a4465879ffb5cba8d27b680a2fc35e2f64031614..34d0df8531f938fb2de2d1471fb5d335829b43cd 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 //  $Header$
 
 #include "StdMeshers_Distribution.hxx"
-#include <CASCatch_CatchSignals.hxx>
-#include <CASCatch_Failure.hxx> 
-#include <CASCatch_ErrorHandler.hxx>
-#include <OSD.hxx>
+#include "CASCatch.hxx"
+
 #include <math_GaussSingleIntegration.hxx>
 #include <utilities.h>
 
@@ -45,9 +43,6 @@ Function::~Function()
 
 bool Function::value( const double, double& f ) const
 {
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   bool ok = true;
   if( myConv==0 )
   {
@@ -55,10 +50,9 @@ bool Function::value( const double, double& f ) const
     {
       f = pow( 10., f );
     }
-    CASCatch_CATCH(CASCatch_Failure)
+    CASCatch_CATCH(Standard_Failure)
     {
-      aCatchSignals.Deactivate();
-      Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+      Handle(Standard_Failure) aFail = Standard_Failure::Caught();
       f = 0.0;
       ok = false;
     }
@@ -128,10 +122,11 @@ double FunctionTable::integral( const int i ) const
 
 double FunctionTable::integral( const int i, const double d ) const
 {
-  double f, res = 0.0;
-  if( value( myData[2*i]+d, f ) )
-    res = ( myData[2*i+1] + f ) / 2.0 * d;
-
+  double f1,f2, res = 0.0;
+  if( value( myData[2*i]+d, f1 ) )
+    if(!value(myData[2*i], f2))
+      f2 = myData[2*i+1];
+  res = (f2+f1) * d / 2.0;
   return res;
 }
 
@@ -174,22 +169,17 @@ FunctionExpr::FunctionExpr( const char* str, const int conv )
   myVars( 1, 1 ),
   myValues( 1, 1 )
 {
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   bool ok = true;
   CASCatch_TRY
   {
     myExpr = ExprIntrp_GenExp::Create();
     myExpr->Process( ( Standard_CString )str );
   }
-  CASCatch_CATCH(CASCatch_Failure)
+  CASCatch_CATCH(Standard_Failure)
   {
-    aCatchSignals.Deactivate();
-    Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     ok = false;
   }
-  aCatchSignals.Deactivate();
 
   if( !ok || !myExpr->IsDone() )
     myExpr.Nullify();
@@ -214,23 +204,17 @@ bool FunctionExpr::value( const double t, double& f ) const
   if( myExpr.IsNull() )
     return false;
 
-  OSD::SetSignal( true );
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   ( ( TColStd_Array1OfReal& )myValues ).ChangeValue( 1 ) = t;
   bool ok = true;
   CASCatch_TRY {
     f = myExpr->Expression()->Evaluate( myVars, myValues );
   }
-  CASCatch_CATCH(CASCatch_Failure) {
-    aCatchSignals.Deactivate();
-    Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+  CASCatch_CATCH(Standard_Failure) {
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     f = 0.0;
     ok = false;
   }
 
-  aCatchSignals.Deactivate();
   ok = Function::value( t, f ) && ok;
   return ok;
 }
@@ -244,7 +228,7 @@ double FunctionExpr::integral( const double a, const double b ) const
     if( _int.IsDone() )
       res = _int.Value();
   }
-  CASCatch_CATCH(CASCatch_Failure)
+  CASCatch_CATCH(Standard_Failure)
   {
     res = 0.0;
     MESSAGE( "Exception in integral calculating" );
index 6fa3363421e22d4baaf5f6c9ed2d43231fc45d08..2dafda44ba83c375cfa82b056a38c0df4c14ce92 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 8186f0256955834f2ccc7773f9656657b0e8ab91..ccb6c4a5a38e37c1222921d7afb3cc68e0da00ad 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -44,6 +44,7 @@
 #include <TopTools_ListOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TColStd_MapOfInteger.hxx>
 
 #include <BRep_Tool.hxx>
 #include <Geom_Surface.hxx>
@@ -71,15 +72,11 @@ static bool ComputePentahedralMesh(SMESH_Mesh & aMesh,      const TopoDS_Shape & aSha
 //=============================================================================
 
 StdMeshers_Hexa_3D::StdMeshers_Hexa_3D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_3D_Algo(hypId, studyId, gen)
+                                       SMESH_Gen * gen):SMESH_3D_Algo(hypId, studyId, gen)
 {
-       MESSAGE("StdMeshers_Hexa_3D::StdMeshers_Hexa_3D");
-       _name = "Hexa_3D";
-//   _shapeType = TopAbs_SOLID;
-       _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID); // 1 bit /shape type
-//   MESSAGE("_shapeType octal " << oct << _shapeType);
-       for (int i = 0; i < 6; i++)
-               _quads[i] = 0;
+  MESSAGE("StdMeshers_Hexa_3D::StdMeshers_Hexa_3D");
+  _name = "Hexa_3D";
+  _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);      // 1 bit /shape type
 }
 
 //=============================================================================
@@ -90,11 +87,27 @@ StdMeshers_Hexa_3D::StdMeshers_Hexa_3D(int hypId, int studyId,
 
 StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D()
 {
-       MESSAGE("StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D");
-       for (int i = 0; i < 6; i++)
-               StdMeshers_Quadrangle_2D::QuadDelete(_quads[i]);
+  MESSAGE("StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D");
 }
 
+//================================================================================
+/*!
+ * \brief Clear fields and return the argument
+  * \param res - the value to return
+  * \retval bool - the argument value
+ */
+//================================================================================
+
+bool StdMeshers_Hexa_3D::ClearAndReturn(FaceQuadStruct* theQuads[6], const bool res)
+{
+  for (int i = 0; i < 6; i++) {
+    StdMeshers_Quadrangle_2D::QuadDelete(theQuads[i]);
+    theQuads[i] = NULL;
+  }
+  return res;
+}
+
+
 //=============================================================================
 /*!
  *  
@@ -147,6 +160,7 @@ static bool findIJ (const SMDS_MeshNode* node, const FaceQuadStruct * quad, int&
   return true;
 }
 
+
 //=============================================================================
 /*!
  * Hexahedron mesh on hexaedron like form
@@ -164,534 +178,540 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
        const TopoDS_Shape & aShape)throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
-       MESSAGE("StdMeshers_Hexa_3D::Compute");
-       //bool isOk = false;
-       SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       //SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-       //const SMESHDS_SubMesh *& subMeshDS = theSubMesh->GetSubMeshDS();
-
-       // 0.  - shape and face mesh verification
-       // 0.1 - shape must be a solid (or a shell) with 6 faces
-       //MESSAGE("---");
-
-       vector < SMESH_subMesh * >meshFaces;
-       for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next())
-       {
-               SMESH_subMesh *aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-               ASSERT(aSubMesh);
-               meshFaces.push_back(aSubMesh);
-       }
-       if (meshFaces.size() != 6)
-       {
-               SCRUTE(meshFaces.size());
-//             ASSERT(0);
-               return false;
-       }
-
-       // 0.2 - is each face meshed with Quadrangle_2D? (so, with a wire of 4 edges)
-       //MESSAGE("---");
-
-       for (int i = 0; i < 6; i++)
-       {
-         TopoDS_Shape aFace = meshFaces[i]->GetSubShape();
-         SMESH_Algo *algo = _gen->GetAlgo(aMesh, aFace);
-         string algoName = algo->GetName();
-          bool isAllQuad = false;
-         if (algoName == "Quadrangle_2D") {
-            SMESHDS_SubMesh * sm = meshDS->MeshElements( aFace );
-            if ( sm ) {
-              isAllQuad = true;
-              SMDS_ElemIteratorPtr eIt = sm->GetElements();
-              while ( isAllQuad && eIt->more() )
-                isAllQuad = ( eIt->next()->NbNodes() == 4 );
-            }
-          }
-          if ( ! isAllQuad ) {
-           //modified by NIZNHY-PKV Wed Nov 17 15:31:37 2004 f
-            bool bIsOk;
-            //
-            bIsOk=ComputePentahedralMesh(aMesh, aShape);
-            if (bIsOk) {
-              return true;
-            }
-           //modified by NIZNHY-PKV Wed Nov 17 15:31:42 2004 t
-           SCRUTE(algoName);
-           //                  ASSERT(0);
-           return false;
-         }
-         StdMeshers_Quadrangle_2D *quadAlgo =
-           dynamic_cast < StdMeshers_Quadrangle_2D * >(algo);
-         ASSERT(quadAlgo);
-         try
-           {
-             _quads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aFace);
-             // *** to delete after usage
-           }
-         catch(SALOME_Exception & S_ex)
-           {
-             // *** delete _quads
-             // *** throw exception
-             //                        ASSERT(0);
-             return false;
-           }
-
-         // 0.2.1 - number of points on the opposite edges must be the same
-         if (_quads[i]->nbPts[0] != _quads[i]->nbPts[2] ||
-             _quads[i]->nbPts[1] != _quads[i]->nbPts[3])
-           {
-             MESSAGE("different number of points on the opposite edges of face " << i);
-             //                  ASSERT(0);
-             return false;
-           }
-       }
-
-       // 1.  - identify faces and vertices of the "cube"
-       // 1.1 - ancestor maps vertex->edges in the cube
-       //MESSAGE("---");
-
-       TopTools_IndexedDataMapOfShapeListOfShape MS;
-       TopExp::MapShapesAndAncestors(aShape, TopAbs_VERTEX, TopAbs_EDGE, MS);
-
-       // 1.2 - first face is choosen as face Y=0 of the unit cube
-       //MESSAGE("---");
-
-       const TopoDS_Shape & aFace = meshFaces[0]->GetSubShape();
-       const TopoDS_Face & F = TopoDS::Face(aFace);
-
-       // 1.3 - identify the 4 vertices of the face Y=0: V000, V100, V101, V001
-       //MESSAGE("---");
-
-       int i = 0;
-       TopoDS_Edge E = _quads[0]->edge[i];     //edge will be Y=0,Z=0 on unit cube
-       double f, l;
-       Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopoDS_Vertex VFirst, VLast;
-       TopExp::Vertices(E, VFirst, VLast);     // corresponds to f and l
-       bool isForward =
-               (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0);
-
-       if (isForward)
-       {
-               _cube.V000 = VFirst;    // will be (0,0,0) on the unit cube
-               _cube.V100 = VLast;             // will be (1,0,0) on the unit cube
-       }
-       else
-       {
-               _cube.V000 = VLast;
-               _cube.V100 = VFirst;
-       }
-
-       i = 1;
-       E = _quads[0]->edge[i];
-       C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopExp::Vertices(E, VFirst, VLast);
-       isForward = (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0);
-       if (isForward)
-               _cube.V101 = VLast;             // will be (1,0,1) on the unit cube
-       else
-               _cube.V101 = VFirst;
+  MESSAGE("StdMeshers_Hexa_3D::Compute");
+  SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
+  
+  // 0.  - shape and face mesh verification
+  // 0.1 - shape must be a solid (or a shell) with 6 faces
+  //MESSAGE("---");
+
+  vector < SMESH_subMesh * >meshFaces;
+  for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next()) {
+    SMESH_subMesh *aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
+    ASSERT(aSubMesh);
+    meshFaces.push_back(aSubMesh);
+  }
+  if (meshFaces.size() != 6) {
+    SCRUTE(meshFaces.size());
+    return false;
+  }
 
-       i = 2;
-       E = _quads[0]->edge[i];
-       C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-       TopExp::Vertices(E, VFirst, VLast);
-       isForward = (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0);
-       if (isForward)
-               _cube.V001 = VLast;             // will be (0,0,1) on the unit cube
-       else
-               _cube.V001 = VFirst;
+  // 0.2 - is each face meshed with Quadrangle_2D? (so, with a wire of 4 edges)
+  //MESSAGE("---");
+
+  // tool for working with quadratic elements
+  SMESH_MesherHelper aTool (aMesh);
+  _quadraticMesh = aTool.IsQuadraticSubMesh(aShape);
+
+  // cube structure
+  typedef struct cubeStruct
+  {
+    TopoDS_Vertex V000;
+    TopoDS_Vertex V001;
+    TopoDS_Vertex V010;
+    TopoDS_Vertex V011;
+    TopoDS_Vertex V100;
+    TopoDS_Vertex V101;
+    TopoDS_Vertex V110;
+    TopoDS_Vertex V111;
+    faceQuadStruct* quad_X0;
+    faceQuadStruct* quad_X1;
+    faceQuadStruct* quad_Y0;
+    faceQuadStruct* quad_Y1;
+    faceQuadStruct* quad_Z0;
+    faceQuadStruct* quad_Z1;
+    Point3DStruct* np; // normalised 3D coordinates
+  } CubeStruct;
+
+  CubeStruct aCube;
+
+  // bounding faces
+  FaceQuadStruct* aQuads[6];
+  for (int i = 0; i < 6; i++)
+    aQuads[i] = 0;
+
+  for (int i = 0; i < 6; i++) {
+    TopoDS_Shape aFace = meshFaces[i]->GetSubShape();
+    SMESH_Algo *algo = _gen->GetAlgo(aMesh, aFace);
+    string algoName = algo->GetName();
+    bool isAllQuad = false;
+    if (algoName == "Quadrangle_2D") {
+      SMESHDS_SubMesh * sm = meshDS->MeshElements( aFace );
+      if ( sm ) {
+        isAllQuad = true;
+        SMDS_ElemIteratorPtr eIt = sm->GetElements();
+        while ( isAllQuad && eIt->more() ) {
+          const SMDS_MeshElement* elem =  eIt->next();
+          isAllQuad = ( elem->NbNodes()==4 ||(_quadraticMesh && elem->NbNodes()==8) );
+        }
+      }
+    }
+    if ( ! isAllQuad ) {
+      //modified by NIZNHY-PKV Wed Nov 17 15:31:37 2004 f
+      bool bIsOk = ComputePentahedralMesh(aMesh, aShape);
+      return ClearAndReturn( aQuads, bIsOk );
+    }
+    StdMeshers_Quadrangle_2D *quadAlgo =
+      dynamic_cast < StdMeshers_Quadrangle_2D * >(algo);
+    ASSERT(quadAlgo);
+    try {
+      aQuads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aFace, _quadraticMesh);
+    }
+    catch(SALOME_Exception & S_ex) {
+      return ClearAndReturn( aQuads, false );
+    }
 
-       // 1.4 - find edge X=0, Z=0 (ancestor of V000 not in face Y=0)
-       //     - find edge X=1, Z=0 (ancestor of V100 not in face Y=0)
-       //     - find edge X=1, Z=1 (ancestor of V101 not in face Y=0) 
-       //     - find edge X=0, Z=1 (ancestor of V001 not in face Y=0)
-       //MESSAGE("---");
+    // 0.2.1 - number of points on the opposite edges must be the same
+    if (aQuads[i]->nbPts[0] != aQuads[i]->nbPts[2] ||
+        aQuads[i]->nbPts[1] != aQuads[i]->nbPts[3]) {
+      MESSAGE("different number of points on the opposite edges of face " << i);
+      //                  ASSERT(0);
+      // \begin{E.A.}
+      // Try to go into penta algorithm 'cause it has been improved.
+      // return ClearAndReturn( aQuads, false );
+      bool bIsOk = ComputePentahedralMesh(aMesh, aShape);
+      return ClearAndReturn( aQuads, bIsOk );
+      // \end{E.A.}
+    }
+  }
 
-       TopoDS_Edge E_0Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V000, MS);
-       ASSERT(!E_0Y0.IsNull());
+  // 1.  - identify faces and vertices of the "cube"
+  // 1.1 - ancestor maps vertex->edges in the cube
+  //MESSAGE("---");
 
-       TopoDS_Edge E_1Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V100, MS);
-       ASSERT(!E_1Y0.IsNull());
+  TopTools_IndexedDataMapOfShapeListOfShape MS;
+  TopExp::MapShapesAndAncestors(aShape, TopAbs_VERTEX, TopAbs_EDGE, MS);
 
-       TopoDS_Edge E_1Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V101, MS);
-       ASSERT(!E_1Y1.IsNull());
+  // 1.2 - first face is choosen as face Y=0 of the unit cube
+  //MESSAGE("---");
 
-       TopoDS_Edge E_0Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V001, MS);
-       ASSERT(!E_0Y1.IsNull());
+  const TopoDS_Shape & aFace = meshFaces[0]->GetSubShape();
+  const TopoDS_Face & F = TopoDS::Face(aFace);
 
-       // 1.5 - identify the 4 vertices in face Y=1: V010, V110, V111, V011
-       //MESSAGE("---");
+  // 1.3 - identify the 4 vertices of the face Y=0: V000, V100, V101, V001
+  //MESSAGE("---");
 
-       TopExp::Vertices(E_0Y0, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V000))
-               _cube.V010 = VLast;
-       else
-               _cube.V010 = VFirst;
+  int i = 0;
+  TopoDS_Edge E = aQuads[0]->edge[i];  //edge will be Y=0,Z=0 on unit cube
+  double f, l;
+  Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
+  TopoDS_Vertex VFirst, VLast;
+  TopExp::Vertices(E, VFirst, VLast);  // corresponds to f and l
+  bool isForward = (((l - f) * (aQuads[0]->last[i] - aQuads[0]->first[i])) > 0);
 
-       TopExp::Vertices(E_1Y0, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V100))
-               _cube.V110 = VLast;
-       else
-               _cube.V110 = VFirst;
-
-       TopExp::Vertices(E_1Y1, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V101))
-               _cube.V111 = VLast;
-       else
-               _cube.V111 = VFirst;
+  if (isForward) {
+    aCube.V000 = VFirst;       // will be (0,0,0) on the unit cube
+    aCube.V100 = VLast;                // will be (1,0,0) on the unit cube
+  }
+  else {
+    aCube.V000 = VLast;
+    aCube.V100 = VFirst;
+  }
 
-       TopExp::Vertices(E_0Y1, VFirst, VLast);
-       if (VFirst.IsSame(_cube.V001))
-               _cube.V011 = VLast;
-       else
-               _cube.V011 = VFirst;
-
-       // 1.6 - find remaining faces given 4 vertices
-       //MESSAGE("---");
-
-       _indY0 = 0;
-       _cube.quad_Y0 = _quads[_indY0];
-
-       _indY1 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V010, _cube.V011, _cube.V110, _cube.V111);
-       _cube.quad_Y1 = _quads[_indY1];
-
-       _indZ0 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V000, _cube.V010, _cube.V100, _cube.V110);
-       _cube.quad_Z0 = _quads[_indZ0];
-
-       _indZ1 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V001, _cube.V011, _cube.V101, _cube.V111);
-       _cube.quad_Z1 = _quads[_indZ1];
-
-       _indX0 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V000, _cube.V001, _cube.V010, _cube.V011);
-       _cube.quad_X0 = _quads[_indX0];
-
-       _indX1 = GetFaceIndex(aMesh, aShape, meshFaces,
-               _cube.V100, _cube.V101, _cube.V110, _cube.V111);
-       _cube.quad_X1 = _quads[_indX1];
-
-       //MESSAGE("---");
-
-       // 1.7 - get convertion coefs from face 2D normalized to 3D normalized
-
-       Conv2DStruct cx0;                       // for face X=0
-       Conv2DStruct cx1;                       // for face X=1
-       Conv2DStruct cy0;
-       Conv2DStruct cy1;
-       Conv2DStruct cz0;
-       Conv2DStruct cz1;
-
-       GetConv2DCoefs(*_cube.quad_X0, meshFaces[_indX0]->GetSubShape(),
-               _cube.V000, _cube.V010, _cube.V011, _cube.V001, cx0);
-       GetConv2DCoefs(*_cube.quad_X1, meshFaces[_indX1]->GetSubShape(),
-               _cube.V100, _cube.V110, _cube.V111, _cube.V101, cx1);
-       GetConv2DCoefs(*_cube.quad_Y0, meshFaces[_indY0]->GetSubShape(),
-               _cube.V000, _cube.V100, _cube.V101, _cube.V001, cy0);
-       GetConv2DCoefs(*_cube.quad_Y1, meshFaces[_indY1]->GetSubShape(),
-               _cube.V010, _cube.V110, _cube.V111, _cube.V011, cy1);
-       GetConv2DCoefs(*_cube.quad_Z0, meshFaces[_indZ0]->GetSubShape(),
-               _cube.V000, _cube.V100, _cube.V110, _cube.V010, cz0);
-       GetConv2DCoefs(*_cube.quad_Z1, meshFaces[_indZ1]->GetSubShape(),
-               _cube.V001, _cube.V101, _cube.V111, _cube.V011, cz1);
-
-       // 1.8 - create a 3D structure for normalized values
-
-       //MESSAGE("---");
-        int nbx = _cube.quad_Z0->nbPts[0];
-        if (cz0.a1 == 0.) nbx = _cube.quad_Z0->nbPts[1];
+  i = 1;
+  E = aQuads[0]->edge[i];
+  C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
+  TopExp::Vertices(E, VFirst, VLast);
+  isForward = (((l - f) * (aQuads[0]->last[i] - aQuads[0]->first[i])) > 0);
+  if (isForward)
+    aCube.V101 = VLast;                // will be (1,0,1) on the unit cube
+  else
+    aCube.V101 = VFirst;
+
+  i = 2;
+  E = aQuads[0]->edge[i];
+  C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
+  TopExp::Vertices(E, VFirst, VLast);
+  isForward = (((l - f) * (aQuads[0]->last[i] - aQuads[0]->first[i])) > 0);
+  if (isForward)
+    aCube.V001 = VLast;                // will be (0,0,1) on the unit cube
+  else
+    aCube.V001 = VFirst;
+
+  // 1.4 - find edge X=0, Z=0 (ancestor of V000 not in face Y=0)
+  //     - find edge X=1, Z=0 (ancestor of V100 not in face Y=0)
+  //     - find edge X=1, Z=1 (ancestor of V101 not in face Y=0) 
+  //     - find edge X=0, Z=1 (ancestor of V001 not in face Y=0)
+  //MESSAGE("---");
+
+  TopoDS_Edge E_0Y0 = EdgeNotInFace(aMesh, aShape, F, aCube.V000, MS);
+  ASSERT(!E_0Y0.IsNull());
+
+  TopoDS_Edge E_1Y0 = EdgeNotInFace(aMesh, aShape, F, aCube.V100, MS);
+  ASSERT(!E_1Y0.IsNull());
+
+  TopoDS_Edge E_1Y1 = EdgeNotInFace(aMesh, aShape, F, aCube.V101, MS);
+  ASSERT(!E_1Y1.IsNull());
+
+  TopoDS_Edge E_0Y1 = EdgeNotInFace(aMesh, aShape, F, aCube.V001, MS);
+  ASSERT(!E_0Y1.IsNull());
+
+  // 1.5 - identify the 4 vertices in face Y=1: V010, V110, V111, V011
+  //MESSAGE("---");
+
+  TopExp::Vertices(E_0Y0, VFirst, VLast);
+  if (VFirst.IsSame(aCube.V000))
+    aCube.V010 = VLast;
+  else
+    aCube.V010 = VFirst;
+
+  TopExp::Vertices(E_1Y0, VFirst, VLast);
+  if (VFirst.IsSame(aCube.V100))
+    aCube.V110 = VLast;
+  else
+    aCube.V110 = VFirst;
+
+  TopExp::Vertices(E_1Y1, VFirst, VLast);
+  if (VFirst.IsSame(aCube.V101))
+    aCube.V111 = VLast;
+  else
+    aCube.V111 = VFirst;
+
+  TopExp::Vertices(E_0Y1, VFirst, VLast);
+  if (VFirst.IsSame(aCube.V001))
+    aCube.V011 = VLast;
+  else
+    aCube.V011 = VFirst;
+
+  // 1.6 - find remaining faces given 4 vertices
+  //MESSAGE("---");
+
+  int _indY0 = 0;
+  aCube.quad_Y0 = aQuads[_indY0];
+
+  int _indY1 = GetFaceIndex(aMesh, aShape, meshFaces,
+                            aCube.V010, aCube.V011, aCube.V110, aCube.V111);
+  aCube.quad_Y1 = aQuads[_indY1];
+
+  int _indZ0 = GetFaceIndex(aMesh, aShape, meshFaces,
+                            aCube.V000, aCube.V010, aCube.V100, aCube.V110);
+  aCube.quad_Z0 = aQuads[_indZ0];
+
+  int _indZ1 = GetFaceIndex(aMesh, aShape, meshFaces,
+                            aCube.V001, aCube.V011, aCube.V101, aCube.V111);
+  aCube.quad_Z1 = aQuads[_indZ1];
+
+  int _indX0 = GetFaceIndex(aMesh, aShape, meshFaces,
+                            aCube.V000, aCube.V001, aCube.V010, aCube.V011);
+  aCube.quad_X0 = aQuads[_indX0];
+
+  int _indX1 = GetFaceIndex(aMesh, aShape, meshFaces,
+                            aCube.V100, aCube.V101, aCube.V110, aCube.V111);
+  aCube.quad_X1 = aQuads[_indX1];
+
+  //MESSAGE("---");
+
+  // 1.7 - get convertion coefs from face 2D normalized to 3D normalized
+
+  Conv2DStruct cx0;                    // for face X=0
+  Conv2DStruct cx1;                    // for face X=1
+  Conv2DStruct cy0;
+  Conv2DStruct cy1;
+  Conv2DStruct cz0;
+  Conv2DStruct cz1;
+
+  GetConv2DCoefs(*aCube.quad_X0, meshFaces[_indX0]->GetSubShape(),
+                 aCube.V000, aCube.V010, aCube.V011, aCube.V001, cx0);
+  GetConv2DCoefs(*aCube.quad_X1, meshFaces[_indX1]->GetSubShape(),
+                 aCube.V100, aCube.V110, aCube.V111, aCube.V101, cx1);
+  GetConv2DCoefs(*aCube.quad_Y0, meshFaces[_indY0]->GetSubShape(),
+                 aCube.V000, aCube.V100, aCube.V101, aCube.V001, cy0);
+  GetConv2DCoefs(*aCube.quad_Y1, meshFaces[_indY1]->GetSubShape(),
+                 aCube.V010, aCube.V110, aCube.V111, aCube.V011, cy1);
+  GetConv2DCoefs(*aCube.quad_Z0, meshFaces[_indZ0]->GetSubShape(),
+                 aCube.V000, aCube.V100, aCube.V110, aCube.V010, cz0);
+  GetConv2DCoefs(*aCube.quad_Z1, meshFaces[_indZ1]->GetSubShape(),
+                 aCube.V001, aCube.V101, aCube.V111, aCube.V011, cz1);
+
+  // 1.8 - create a 3D structure for normalized values
+  
+  //MESSAGE("---");
+  int nbx = aCube.quad_Z0->nbPts[0];
+  if (cz0.a1 == 0.) nbx = aCube.quad_Z0->nbPts[1];
  
-        int nby = _cube.quad_X0->nbPts[0];
-        if (cx0.a1 == 0.) nby = _cube.quad_X0->nbPts[1];
+  int nby = aCube.quad_X0->nbPts[0];
+  if (cx0.a1 == 0.) nby = aCube.quad_X0->nbPts[1];
  
-        int nbz = _cube.quad_Y0->nbPts[0];
-        if (cy0.a1 != 0.) nbz = _cube.quad_Y0->nbPts[1];
+  int nbz = aCube.quad_Y0->nbPts[0];
+  if (cy0.a1 != 0.) nbz = aCube.quad_Y0->nbPts[1];
 
-       int i1, j1, nbxyz = nbx * nby * nbz;
-       Point3DStruct *np = new Point3DStruct[nbxyz];
+  int i1, j1, nbxyz = nbx * nby * nbz;
+  Point3DStruct *np = new Point3DStruct[nbxyz];
 
-       // 1.9 - store node indexes of faces
+  // 1.9 - store node indexes of faces
 
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX0]->GetSubShape());
-
-               faceQuadStruct *quad = _cube.quad_X0;
-               int i = 0;                              // j = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
+  {
+    const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX0]->GetSubShape());
 
+    faceQuadStruct *quad = aCube.quad_X0;
+    int i = 0;                         // j = x/face , k = y/face
+    int nbdown = quad->nbPts[0];
+    int nbright = quad->nbPts[1];
 
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+    SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
                        
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int j = cx0.ia * i1 + cx0.ib * j1 + cx0.ic;     // j = x/face
-                               int k = cx0.ja * i1 + cx0.jb * j1 + cx0.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
+    while(itf->more()) {
+      const SMDS_MeshNode * node = itf->next();
+      if(aTool.IsMedium(node))
+        continue;
+      findIJ( node, quad, i1, j1 );
+      int ij1 = j1 * nbdown + i1;
+      quad->uv_grid[ij1].node = node;
+    }
 
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX1]->GetSubShape());
+    for (int i1 = 0; i1 < nbdown; i1++)
+      for (int j1 = 0; j1 < nbright; j1++) {
+        int ij1 = j1 * nbdown + i1;
+        int j = cx0.ia * i1 + cx0.ib * j1 + cx0.ic;    // j = x/face
+        int k = cx0.ja * i1 + cx0.jb * j1 + cx0.jc;    // k = y/face
+        int ijk = k * nbx * nby + j * nbx + i;
+        //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
+        np[ijk].node = quad->uv_grid[ij1].node;
+        //SCRUTE(np[ijk].nodeId);
+      }
+  }
 
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+  {
+    const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX1]->GetSubShape());
 
-               faceQuadStruct *quad = _cube.quad_X1;
-               int i = nbx - 1;                // j = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
+    SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
 
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
+    faceQuadStruct *quad = aCube.quad_X1;
+    int i = nbx - 1;           // j = x/face , k = y/face
+    int nbdown = quad->nbPts[0];
+    int nbright = quad->nbPts[1];
 
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int j = cx1.ia * i1 + cx1.ib * j1 + cx1.ic;     // j = x/face
-                               int k = cx1.ja * i1 + cx1.jb * j1 + cx1.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
+    while(itf->more()) {
+      const SMDS_MeshNode * node = itf->next();
+      if(aTool.IsMedium(node))
+        continue;
+      findIJ( node, quad, i1, j1 );
+      int ij1 = j1 * nbdown + i1;
+      quad->uv_grid[ij1].node = node;
+    }
 
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY0]->GetSubShape());
+    for (int i1 = 0; i1 < nbdown; i1++)
+      for (int j1 = 0; j1 < nbright; j1++) {
+        int ij1 = j1 * nbdown + i1;
+        int j = cx1.ia * i1 + cx1.ib * j1 + cx1.ic;    // j = x/face
+        int k = cx1.ja * i1 + cx1.jb * j1 + cx1.jc;    // k = y/face
+        int ijk = k * nbx * nby + j * nbx + i;
+        //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
+        np[ijk].node = quad->uv_grid[ij1].node;
+        //SCRUTE(np[ijk].nodeId);
+      }
+  }
 
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+  {
+    const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY0]->GetSubShape());
 
-               faceQuadStruct *quad = _cube.quad_Y0;
-               int j = 0;                              // i = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
+    SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
 
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
+    faceQuadStruct *quad = aCube.quad_Y0;
+    int j = 0;                         // i = x/face , k = y/face
+    int nbdown = quad->nbPts[0];
+    int nbright = quad->nbPts[1];
 
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cy0.ia * i1 + cy0.ib * j1 + cy0.ic;     // i = x/face
-                               int k = cy0.ja * i1 + cy0.jb * j1 + cy0.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
+    while(itf->more()) {
+      const SMDS_MeshNode * node = itf->next();
+      if(aTool.IsMedium(node))
+        continue;
+      findIJ( node, quad, i1, j1 );
+      int ij1 = j1 * nbdown + i1;
+      quad->uv_grid[ij1].node = node;
+    }
 
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY1]->GetSubShape());
+    for (int i1 = 0; i1 < nbdown; i1++)
+      for (int j1 = 0; j1 < nbright; j1++) {
+        int ij1 = j1 * nbdown + i1;
+        int i = cy0.ia * i1 + cy0.ib * j1 + cy0.ic;    // i = x/face
+        int k = cy0.ja * i1 + cy0.jb * j1 + cy0.jc;    // k = y/face
+        int ijk = k * nbx * nby + j * nbx + i;
+        //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
+        np[ijk].node = quad->uv_grid[ij1].node;
+        //SCRUTE(np[ijk].nodeId);
+      }
+  }
 
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+  {
+    const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY1]->GetSubShape());
 
-               faceQuadStruct *quad = _cube.quad_Y1;
-               int j = nby - 1;                // i = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
+    SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
 
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
+    faceQuadStruct *quad = aCube.quad_Y1;
+    int j = nby - 1;           // i = x/face , k = y/face
+    int nbdown = quad->nbPts[0];
+    int nbright = quad->nbPts[1];
 
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cy1.ia * i1 + cy1.ib * j1 + cy1.ic;     // i = x/face
-                               int k = cy1.ja * i1 + cy1.jb * j1 + cy1.jc;     // k = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
+    while(itf->more()) {
+      const SMDS_MeshNode * node = itf->next();
+      if(aTool.IsMedium(node))
+        continue;
+      findIJ( node, quad, i1, j1 );
+      int ij1 = j1 * nbdown + i1;
+      quad->uv_grid[ij1].node = node;
+    }
 
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ0]->GetSubShape());
+    for (int i1 = 0; i1 < nbdown; i1++)
+      for (int j1 = 0; j1 < nbright; j1++) {
+        int ij1 = j1 * nbdown + i1;
+        int i = cy1.ia * i1 + cy1.ib * j1 + cy1.ic;    // i = x/face
+        int k = cy1.ja * i1 + cy1.jb * j1 + cy1.jc;    // k = y/face
+        int ijk = k * nbx * nby + j * nbx + i;
+        //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
+        np[ijk].node = quad->uv_grid[ij1].node;
+        //SCRUTE(np[ijk].nodeId);
+      }
+  }
 
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+  {
+    const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ0]->GetSubShape());
 
-               faceQuadStruct *quad = _cube.quad_Z0;
-               int k = 0;                              // i = x/face , j = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
+    SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
 
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
+    faceQuadStruct *quad = aCube.quad_Z0;
+    int k = 0;                         // i = x/face , j = y/face
+    int nbdown = quad->nbPts[0];
+    int nbright = quad->nbPts[1];
 
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cz0.ia * i1 + cz0.ib * j1 + cz0.ic;     // i = x/face
-                               int j = cz0.ja * i1 + cz0.jb * j1 + cz0.jc;     // j = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ1]->GetSubShape());
-
-               SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+    while(itf->more()) {
+      const SMDS_MeshNode * node = itf->next();
+      if(aTool.IsMedium(node))
+        continue;
+      findIJ( node, quad, i1, j1 );
+      int ij1 = j1 * nbdown + i1;
+      quad->uv_grid[ij1].node = node;
+    }
 
-               faceQuadStruct *quad = _cube.quad_Z1;
-               int k = nbz - 1;                // i = x/face , j = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
+    for (int i1 = 0; i1 < nbdown; i1++)
+      for (int j1 = 0; j1 < nbright; j1++) {
+        int ij1 = j1 * nbdown + i1;
+        int i = cz0.ia * i1 + cz0.ib * j1 + cz0.ic;    // i = x/face
+        int j = cz0.ja * i1 + cz0.jb * j1 + cz0.jc;    // j = y/face
+        int ijk = k * nbx * nby + j * nbx + i;
+        //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
+        np[ijk].node = quad->uv_grid[ij1].node;
+        //SCRUTE(np[ijk].nodeId);
+      }
+  }
 
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                        findIJ( node, quad, i1, j1 );
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
+  {
+    const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ1]->GetSubShape());
+
+    SMDS_NodeIteratorPtr itf= aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
+
+    faceQuadStruct *quad = aCube.quad_Z1;
+    int k = nbz - 1;           // i = x/face , j = y/face
+    int nbdown = quad->nbPts[0];
+    int nbright = quad->nbPts[1];
+    
+    while(itf->more()) {
+      const SMDS_MeshNode * node = itf->next();
+      if(aTool.IsMedium(node))
+        continue;
+      findIJ( node, quad, i1, j1 );
+      int ij1 = j1 * nbdown + i1;
+      quad->uv_grid[ij1].node = node;
+    }
 
-               for (int i1 = 0; i1 < nbdown; i1++)
-                       for (int j1 = 0; j1 < nbright; j1++)
-                       {
-                               int ij1 = j1 * nbdown + i1;
-                               int i = cz1.ia * i1 + cz1.ib * j1 + cz1.ic;     // i = x/face
-                               int j = cz1.ja * i1 + cz1.jb * j1 + cz1.jc;     // j = y/face
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
-                               np[ijk].node = quad->uv_grid[ij1].node;
-                               //SCRUTE(np[ijk].nodeId);
-                       }
-       }
+    for (int i1 = 0; i1 < nbdown; i1++)
+      for (int j1 = 0; j1 < nbright; j1++) {
+        int ij1 = j1 * nbdown + i1;
+        int i = cz1.ia * i1 + cz1.ib * j1 + cz1.ic;    // i = x/face
+        int j = cz1.ja * i1 + cz1.jb * j1 + cz1.jc;    // j = y/face
+        int ijk = k * nbx * nby + j * nbx + i;
+        //MESSAGE(" "<<ij1<<" "<<i<<" "<<j<<" "<<ijk);
+        np[ijk].node = quad->uv_grid[ij1].node;
+        //SCRUTE(np[ijk].nodeId);
+      }
+  }
 
-       // 2.0 - for each node of the cube:
-       //       - get the 8 points 3D = 8 vertices of the cube
-       //       - get the 12 points 3D on the 12 edges of the cube
-       //       - get the 6 points 3D on the 6 faces with their ID
-       //       - compute the point 3D
-       //       - store the point 3D in SMESHDS, store its ID in 3D structure
-
-        int shapeID = meshDS->ShapeToIndex( aShape );
-
-       Pt3 p000, p001, p010, p011, p100, p101, p110, p111;
-       Pt3 px00, px01, px10, px11;
-       Pt3 p0y0, p0y1, p1y0, p1y1;
-       Pt3 p00z, p01z, p10z, p11z;
-       Pt3 pxy0, pxy1, px0z, px1z, p0yz, p1yz;
-
-       GetPoint(p000, 0, 0, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p001, 0, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
-       GetPoint(p010, 0, nby - 1, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p011, 0, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
-       GetPoint(p100, nbx - 1, 0, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p101, nbx - 1, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
-       GetPoint(p110, nbx - 1, nby - 1, 0, nbx, nby, nbz, np, meshDS);
-       GetPoint(p111, nbx - 1, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
-
-       for (int i = 1; i < nbx - 1; i++)
-       {
-               for (int j = 1; j < nby - 1; j++)
-               {
-                       for (int k = 1; k < nbz - 1; k++)
-                       {
-                               // *** seulement maillage regulier
-                               // 12 points on edges
-                               GetPoint(px00, i, 0, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px01, i, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px10, i, nby - 1, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px11, i, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
-
-                               GetPoint(p0y0, 0, j, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p0y1, 0, j, nbz - 1, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p1y0, nbx - 1, j, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p1y1, nbx - 1, j, nbz - 1, nbx, nby, nbz, np, meshDS);
-
-                               GetPoint(p00z, 0, 0, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p01z, 0, nby - 1, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p10z, nbx - 1, 0, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p11z, nbx - 1, nby - 1, k, nbx, nby, nbz, np, meshDS);
-
-                               // 12 points on faces
-                               GetPoint(pxy0, i, j, 0, nbx, nby, nbz, np, meshDS);
-                               GetPoint(pxy1, i, j, nbz - 1, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px0z, i, 0, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(px1z, i, nby - 1, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p0yz, 0, j, k, nbx, nby, nbz, np, meshDS);
-                               GetPoint(p1yz, nbx - 1, j, k, nbx, nby, nbz, np, meshDS);
-
-                               int ijk = k * nbx * nby + j * nbx + i;
-                               double x = double (i) / double (nbx - 1);       // *** seulement
-                               double y = double (j) / double (nby - 1);       // *** maillage
-                               double z = double (k) / double (nbz - 1);       // *** regulier
-
-                               Pt3 X;
-                               for (int i = 0; i < 3; i++)
-                               {
-                                       X[i] =
-                                               (1 - x) * p0yz[i] + x * p1yz[i]
-                                               + (1 - y) * px0z[i] + y * px1z[i]
-                                               + (1 - z) * pxy0[i] + z * pxy1[i]
-                                               - (1 - x) * ((1 - y) * p00z[i] + y * p01z[i])
-                                               - x * ((1 - y) * p10z[i] + y * p11z[i])
-                                               - (1 - y) * ((1 - z) * px00[i] + z * px01[i])
-                                               - y * ((1 - z) * px10[i] + z * px11[i])
-                                               - (1 - z) * ((1 - x) * p0y0[i] + x * p1y0[i])
-                                               - z * ((1 - x) * p0y1[i] + x * p1y1[i])
-                                               + (1 - x) * ((1 - y) * ((1 - z) * p000[i] + z * p001[i])
-                                               + y * ((1 - z) * p010[i] + z * p011[i]))
-                                               + x * ((1 - y) * ((1 - z) * p100[i] + z * p101[i])
-                                               + y * ((1 - z) * p110[i] + z * p111[i]));
-                               }
-
-                               SMDS_MeshNode * node = meshDS->AddNode(X[0], X[1], X[2]);
-                               np[ijk].node = node;
-                                meshDS->SetNodeInVolume(node, shapeID);
-                       }
-               }
-       }
+  // 2.0 - for each node of the cube:
+  //       - get the 8 points 3D = 8 vertices of the cube
+  //       - get the 12 points 3D on the 12 edges of the cube
+  //       - get the 6 points 3D on the 6 faces with their ID
+  //       - compute the point 3D
+  //       - store the point 3D in SMESHDS, store its ID in 3D structure
+
+  int shapeID = meshDS->ShapeToIndex( aShape );
+
+  Pt3 p000, p001, p010, p011, p100, p101, p110, p111;
+  Pt3 px00, px01, px10, px11;
+  Pt3 p0y0, p0y1, p1y0, p1y1;
+  Pt3 p00z, p01z, p10z, p11z;
+  Pt3 pxy0, pxy1, px0z, px1z, p0yz, p1yz;
+
+  GetPoint(p000, 0, 0, 0, nbx, nby, nbz, np, meshDS);
+  GetPoint(p001, 0, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
+  GetPoint(p010, 0, nby - 1, 0, nbx, nby, nbz, np, meshDS);
+  GetPoint(p011, 0, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
+  GetPoint(p100, nbx - 1, 0, 0, nbx, nby, nbz, np, meshDS);
+  GetPoint(p101, nbx - 1, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
+  GetPoint(p110, nbx - 1, nby - 1, 0, nbx, nby, nbz, np, meshDS);
+  GetPoint(p111, nbx - 1, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
+
+  for (int i = 1; i < nbx - 1; i++) {
+    for (int j = 1; j < nby - 1; j++) {
+      for (int k = 1; k < nbz - 1; k++) {
+        // *** seulement maillage regulier
+        // 12 points on edges
+        GetPoint(px00, i, 0, 0, nbx, nby, nbz, np, meshDS);
+        GetPoint(px01, i, 0, nbz - 1, nbx, nby, nbz, np, meshDS);
+        GetPoint(px10, i, nby - 1, 0, nbx, nby, nbz, np, meshDS);
+        GetPoint(px11, i, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS);
+
+        GetPoint(p0y0, 0, j, 0, nbx, nby, nbz, np, meshDS);
+        GetPoint(p0y1, 0, j, nbz - 1, nbx, nby, nbz, np, meshDS);
+        GetPoint(p1y0, nbx - 1, j, 0, nbx, nby, nbz, np, meshDS);
+        GetPoint(p1y1, nbx - 1, j, nbz - 1, nbx, nby, nbz, np, meshDS);
+
+        GetPoint(p00z, 0, 0, k, nbx, nby, nbz, np, meshDS);
+        GetPoint(p01z, 0, nby - 1, k, nbx, nby, nbz, np, meshDS);
+        GetPoint(p10z, nbx - 1, 0, k, nbx, nby, nbz, np, meshDS);
+        GetPoint(p11z, nbx - 1, nby - 1, k, nbx, nby, nbz, np, meshDS);
+
+        // 12 points on faces
+        GetPoint(pxy0, i, j, 0, nbx, nby, nbz, np, meshDS);
+        GetPoint(pxy1, i, j, nbz - 1, nbx, nby, nbz, np, meshDS);
+        GetPoint(px0z, i, 0, k, nbx, nby, nbz, np, meshDS);
+        GetPoint(px1z, i, nby - 1, k, nbx, nby, nbz, np, meshDS);
+        GetPoint(p0yz, 0, j, k, nbx, nby, nbz, np, meshDS);
+        GetPoint(p1yz, nbx - 1, j, k, nbx, nby, nbz, np, meshDS);
+
+        int ijk = k * nbx * nby + j * nbx + i;
+        double x = double (i) / double (nbx - 1);      // *** seulement
+        double y = double (j) / double (nby - 1);      // *** maillage
+        double z = double (k) / double (nbz - 1);      // *** regulier
+
+        Pt3 X;
+        for (int i = 0; i < 3; i++) {
+          X[i] = (1 - x) * p0yz[i] + x * p1yz[i]
+                 + (1 - y) * px0z[i] + y * px1z[i]
+                 + (1 - z) * pxy0[i] + z * pxy1[i]
+                 - (1 - x) * ((1 - y) * p00z[i] + y * p01z[i])
+                 - x * ((1 - y) * p10z[i] + y * p11z[i])
+                 - (1 - y) * ((1 - z) * px00[i] + z * px01[i])
+                 - y * ((1 - z) * px10[i] + z * px11[i])
+                 - (1 - z) * ((1 - x) * p0y0[i] + x * p1y0[i])
+                 - z * ((1 - x) * p0y1[i] + x * p1y1[i])
+                 + (1 - x) * ((1 - y) * ((1 - z) * p000[i] + z * p001[i])
+                 + y * ((1 - z) * p010[i] + z * p011[i]))
+                 + x * ((1 - y) * ((1 - z) * p100[i] + z * p101[i])
+                 + y * ((1 - z) * p110[i] + z * p111[i]));
+        }
+
+        SMDS_MeshNode * node = meshDS->AddNode(X[0], X[1], X[2]);
+        np[ijk].node = node;
+        meshDS->SetNodeInVolume(node, shapeID);
+      }
+    }
+  }
 
   // find orientation of furute volumes according to MED convention
   vector< bool > forward( nbx * nby );
   SMDS_VolumeTool vTool;
-  for (int i = 0; i < nbx - 1; i++)
-    for (int j = 0; j < nby - 1; j++)
-    {
+  for (int i = 0; i < nbx - 1; i++) {
+    for (int j = 0; j < nby - 1; j++) {
       int n1 = j * nbx + i;
       int n2 = j * nbx + i + 1;
       int n3 = (j + 1) * nbx + i + 1;
@@ -706,51 +726,53 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
       vTool.Set( &tmpVol );
       forward[ n1 ] = vTool.IsForward();
     }
+  }
 
-       //2.1 - for each node of the cube (less 3 *1 Faces):
-       //      - store hexahedron in SMESHDS
-       MESSAGE("Storing hexahedron into the DS");
-       for (int i = 0; i < nbx - 1; i++)
-               for (int j = 0; j < nby - 1; j++)
-                {
-                        bool isForw = forward.at( j * nbx + i );
-                       for (int k = 0; k < nbz - 1; k++)
-                       {
-                               int n1 = k * nbx * nby + j * nbx + i;
-                               int n2 = k * nbx * nby + j * nbx + i + 1;
-                               int n3 = k * nbx * nby + (j + 1) * nbx + i + 1;
-                               int n4 = k * nbx * nby + (j + 1) * nbx + i;
-                               int n5 = (k + 1) * nbx * nby + j * nbx + i;
-                               int n6 = (k + 1) * nbx * nby + j * nbx + i + 1;
-                               int n7 = (k + 1) * nbx * nby + (j + 1) * nbx + i + 1;
-                               int n8 = (k + 1) * nbx * nby + (j + 1) * nbx + i;
-
-                               SMDS_MeshVolume * elt;
-                                if ( isForw )
-                                  elt = meshDS->AddVolume(np[n1].node,
-                                                          np[n2].node,
-                                                          np[n3].node,
-                                                          np[n4].node,
-                                                          np[n5].node,
-                                                          np[n6].node,
-                                                          np[n7].node,
-                                                          np[n8].node);
-                                else
-                                  elt = meshDS->AddVolume(np[n1].node,
-                                                          np[n4].node,
-                                                          np[n3].node,
-                                                          np[n2].node,
-                                                          np[n5].node,
-                                                          np[n8].node,
-                                                          np[n7].node,
-                                                          np[n6].node);
-
-                                meshDS->SetMeshElementOnShape(elt, shapeID);
-                              }
-                      }
+  //2.1 - for each node of the cube (less 3 *1 Faces):
+  //      - store hexahedron in SMESHDS
+  MESSAGE("Storing hexahedron into the DS");
+  for (int i = 0; i < nbx - 1; i++) {
+    for (int j = 0; j < nby - 1; j++) {
+      bool isForw = forward.at( j * nbx + i );
+      for (int k = 0; k < nbz - 1; k++) {
+        int n1 = k * nbx * nby + j * nbx + i;
+        int n2 = k * nbx * nby + j * nbx + i + 1;
+        int n3 = k * nbx * nby + (j + 1) * nbx + i + 1;
+        int n4 = k * nbx * nby + (j + 1) * nbx + i;
+        int n5 = (k + 1) * nbx * nby + j * nbx + i;
+        int n6 = (k + 1) * nbx * nby + j * nbx + i + 1;
+        int n7 = (k + 1) * nbx * nby + (j + 1) * nbx + i + 1;
+        int n8 = (k + 1) * nbx * nby + (j + 1) * nbx + i;
+
+        SMDS_MeshVolume * elt;
+        if ( isForw ) {
+          //elt = meshDS->AddVolume(np[n1].node, np[n2].node,
+          //                        np[n3].node, np[n4].node,
+          //                        np[n5].node, np[n6].node,
+          //                        np[n7].node, np[n8].node);
+          elt = aTool.AddVolume(np[n1].node, np[n2].node,
+                                np[n3].node, np[n4].node,
+                                np[n5].node, np[n6].node,
+                                np[n7].node, np[n8].node);
+        }
+        else {
+          //elt = meshDS->AddVolume(np[n1].node, np[n4].node,
+          //                        np[n3].node, np[n2].node,
+          //                        np[n5].node, np[n8].node,
+          //                        np[n7].node, np[n6].node);
+          elt = aTool.AddVolume(np[n1].node, np[n4].node,
+                                np[n3].node, np[n2].node,
+                                np[n5].node, np[n8].node,
+                                np[n7].node, np[n6].node);
+        }
+        
+        meshDS->SetMeshElementOnShape(elt, shapeID);
+      }
+    }
+  }
   if ( np ) delete [] np;
-       //MESSAGE("End of StdMeshers_Hexa_3D::Compute()");
-       return true;
+  //MESSAGE("End of StdMeshers_Hexa_3D::Compute()");
+  return ClearAndReturn( aQuads, true );
 }
 
 //=============================================================================
@@ -1067,3 +1089,4 @@ bool ComputePentahedralMesh(SMESH_Mesh & aMesh,   const TopoDS_Shape & aShape)
   return bOK;
 }
 
+
index 66d0c61ca6c8695a303548a84fa1ff64f9273d6a..4fa9311c73472f1dd2294a5d652745fc3e453fc4 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -25,7 +25,6 @@
 //           Moved here from SMESH_Hexa_3D.hxx
 //  Author : Paul RASCLE, EDF
 //  Module : SMESH
-//  $Header$
 
 #ifndef _SMESH_HEXA_3D_HXX_
 #define _SMESH_HEXA_3D_HXX_
 #include "StdMeshers_Quadrangle_2D.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
+#include "SMESH_MesherHelper.hxx"
+
 typedef struct point3Dstruct
 {
-       const SMDS_MeshNode * node;
+  const SMDS_MeshNode * node;
 } Point3DStruct;
 
 typedef double Pt3[3];
@@ -60,25 +61,6 @@ typedef struct conv2dstruct
   int jc;
 } Conv2DStruct;
 
-typedef struct cubeStruct
-{
-  TopoDS_Vertex V000;
-  TopoDS_Vertex V001;
-  TopoDS_Vertex V010;
-  TopoDS_Vertex V011;
-  TopoDS_Vertex V100;
-  TopoDS_Vertex V101;
-  TopoDS_Vertex V110;
-  TopoDS_Vertex V111;
-  faceQuadStruct* quad_X0;
-  faceQuadStruct* quad_X1;
-  faceQuadStruct* quad_Y0;
-  faceQuadStruct* quad_Y1;
-  faceQuadStruct* quad_Z0;
-  faceQuadStruct* quad_Z1;
-  Point3DStruct* np; // normalised 3D coordinates
-} CubeStruct;
-
 class STDMESHERS_EXPORT StdMeshers_Hexa_3D:
   public SMESH_3D_Algo
 {
@@ -129,14 +111,7 @@ protected:
                Point3DStruct *np,
                const SMESHDS_Mesh* meshDS);
 
-  CubeStruct _cube;
-  FaceQuadStruct* _quads[6];
-  int _indX0;
-  int _indX1;
-  int _indY0;
-  int _indY1;
-  int _indZ0;
-  int _indZ1;
+  bool ClearAndReturn(FaceQuadStruct* theQuads[6], const bool res);
 };
 
 #endif
index 55adccca72137a63a0418add6caa2716a891281c..e055a9247b6243b7261b21800db6f73a76b8aad6 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index de55cab867bb01d6688cb3c725b6a26f00221c27..7fa99ee5ed19326777c93a46903b5505900f4def 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 90010a213b98c1e502c3b9c45f13077d3f92efd2..6fd6bbcf73b87721f572854cab62c3508ec2b9a5 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index ce30c3440c94f9c27f69b4c111fe9db706fe88c7..79a85df7fdec11580a7d71ccf5cfe5379b1b869c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index dbda4d1ca647389ecda70ac05de20df53115212e..49ac4365d5089d7ba3a16bbd1b076dd664d9b233 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TopTools_ListOfShape.hxx>
 
-#include <string>
-
-using namespace std;
-//#include <algorithm>
-
 //=============================================================================
 /*!
  *  
@@ -73,19 +68,19 @@ using namespace std;
 //=============================================================================
 
 StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen)
+                                             SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen)
 {
-       MESSAGE("StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D");
-       _name = "MEFISTO_2D";
-//   _shapeType = TopAbs_FACE;
-       _shapeType = (1 << TopAbs_FACE);
-       _compatibleHypothesis.push_back("MaxElementArea");
-       _compatibleHypothesis.push_back("LengthFromEdges");
-
-       _edgeLength = 0;
-       _maxElementArea = 0;
-       _hypMaxElementArea = NULL;
-       _hypLengthFromEdges = NULL;
+  MESSAGE("StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D");
+  _name = "MEFISTO_2D";
+  _shapeType = (1 << TopAbs_FACE);
+  _compatibleHypothesis.push_back("MaxElementArea");
+  _compatibleHypothesis.push_back("LengthFromEdges");
+
+  _edgeLength = 0;
+  _maxElementArea = 0;
+  _hypMaxElementArea = NULL;
+  _hypLengthFromEdges = NULL;
+  myTool = 0;
 }
 
 //=============================================================================
@@ -96,7 +91,7 @@ StdMeshers_MEFISTO_2D::StdMeshers_MEFISTO_2D(int hypId, int studyId,
 
 StdMeshers_MEFISTO_2D::~StdMeshers_MEFISTO_2D()
 {
-       MESSAGE("StdMeshers_MEFISTO_2D::~StdMeshers_MEFISTO_2D");
+  MESSAGE("StdMeshers_MEFISTO_2D::~StdMeshers_MEFISTO_2D");
 }
 
 //=============================================================================
@@ -185,112 +180,124 @@ bool StdMeshers_MEFISTO_2D::CheckHypothesis
 
 bool StdMeshers_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
 {
-       MESSAGE("StdMeshers_MEFISTO_2D::Compute");
+  MESSAGE("StdMeshers_MEFISTO_2D::Compute");
 
-       if (_hypLengthFromEdges)
-               _edgeLength = ComputeEdgeElementLength(aMesh, aShape);
+  if (_hypLengthFromEdges)
+    _edgeLength = ComputeEdgeElementLength(aMesh, aShape);
+  
+  bool isOk = false;
+  //const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
+  //SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
 
-       bool isOk = false;
-       //const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       //SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-
-       const TopoDS_Face & FF = TopoDS::Face(aShape);
-       bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-       TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-
-       Z nblf;                                         //nombre de lignes fermees (enveloppe en tete)
-       Z *nudslf = NULL;                       //numero du dernier sommet de chaque ligne fermee
-       R2 *uvslf = NULL;
-       Z nbpti = 0;                            //nombre points internes futurs sommets de la triangulation
-       R2 *uvpti = NULL;
-
-       Z nbst;
-       R2 *uvst = NULL;
-       Z nbt;
-       Z *nust = NULL;
-       Z ierr = 0;
-
-       Z nutysu = 1;                           // 1: il existe un fonction areteideale_()
-       // Z  nutysu=0;              // 0: on utilise aretmx
-       R aretmx = _edgeLength;         // longueur max aretes future triangulation
-
-       nblf = NumberOfWires(F);
-
-       nudslf = new Z[1 + nblf];
-       nudslf[0] = 0;
-       int iw = 1;
-       int nbpnt = 0;
-
-       myOuterWire = BRepTools::OuterWire(F);
-       nbpnt += NumberOfPoints(aMesh, myOuterWire);
-        if ( nbpnt < 3 ) // ex: a circle with 2 segments
-          return false;
-       nudslf[iw++] = nbpnt;
-
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               if (!myOuterWire.IsSame(W))
-               {
-                       nbpnt += NumberOfPoints(aMesh, W);
-                       nudslf[iw++] = nbpnt;
-               }
-       }
+  const TopoDS_Face & FF = TopoDS::Face(aShape);
+  bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
+  TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
 
-        // avoid passing same uv points for a vertex common to 2 wires
-        TopTools_IndexedDataMapOfShapeListOfShape VWMap;
-        if ( iw - 1 > 1 ) // nbofWires > 1
-          TopExp::MapShapesAndAncestors( F , TopAbs_VERTEX, TopAbs_WIRE, VWMap );
+  Z nblf;                                              //nombre de lignes fermees (enveloppe en tete)
+  Z *nudslf = NULL;                    //numero du dernier sommet de chaque ligne fermee
+  R2 *uvslf = NULL;
+  Z nbpti = 0;                         //nombre points internes futurs sommets de la triangulation
+  R2 *uvpti = NULL;
+  
+  Z nbst;
+  R2 *uvst = NULL;
+  Z nbt;
+  Z *nust = NULL;
+  Z ierr = 0;
+
+  Z nutysu = 1;                                // 1: il existe un fonction areteideale_()
+  // Z  nutysu=0;              // 0: on utilise aretmx
+  R aretmx = _edgeLength;              // longueur max aretes future triangulation
+  
+  nblf = NumberOfWires(F);
+  
+  nudslf = new Z[1 + nblf];
+  nudslf[0] = 0;
+  int iw = 1;
+  int nbpnt = 0;
+
+  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
+    delete myTool; myTool = 0;
+    return false;
+  }
+  nudslf[iw++] = nbpnt;
 
-       uvslf = new R2[nudslf[nblf]];
-       int m = 0;
+  for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next()) {
+    const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
+    if (!myOuterWire.IsSame(W)) {
+      nbpnt += NumberOfPoints(aMesh, W);
+      nudslf[iw++] = nbpnt;
+    }
+  }
 
-        double scalex, scaley;
-        ComputeScaleOnFace(aMesh, F, scalex, scaley);
+  // avoid passing same uv points for a vertex common to 2 wires
+  TopTools_IndexedDataMapOfShapeListOfShape VWMap;
+  if ( iw - 1 > 1 ) // nbofWires > 1
+    TopExp::MapShapesAndAncestors( F , TopAbs_VERTEX, TopAbs_WIRE, VWMap );
 
-        map<int, const SMDS_MeshNode*> mefistoToDS;    // correspondence mefisto index--> points IDNodes
-       if ( !LoadPoints(aMesh, F, myOuterWire, uvslf, m,
-                         mefistoToDS, scalex, scaley, VWMap))
-          return false;
+  uvslf = new R2[nudslf[nblf]];
+  int m = 0;
 
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               if (!myOuterWire.IsSame(W))
-               {
-                       if (! LoadPoints(aMesh, F, W, uvslf, m,
-                                         mefistoToDS, scalex, scaley, VWMap ))
-                          return false;
-               }
-       }
+  double scalex, scaley;
+  ComputeScaleOnFace(aMesh, F, scalex, scaley);
 
-       uvst = NULL;
-       nust = NULL;
-       aptrte(nutysu, aretmx,
-               nblf, nudslf, uvslf, nbpti, uvpti, nbst, uvst, nbt, nust, ierr);
-
-       if (ierr == 0)
-         {
-           MESSAGE("... End Triangulation Generated Triangle Number " << nbt);
-           MESSAGE("                                    Node Number " << nbst);
-           StoreResult(aMesh, nbst, uvst, nbt, nust, F,
-                       faceIsForward, mefistoToDS, scalex, scaley);
-           isOk = true;
-         }
-       else
-       {
-               MESSAGE("Error in Triangulation");
-               isOk = false;
-       }
-       if (nudslf != NULL)
-               delete[]nudslf;
-       if (uvslf != NULL)
-               delete[]uvslf;
-       if (uvst != NULL)
-               delete[]uvst;
-       if (nust != NULL)
-               delete[]nust;
-       return isOk;
+  map<int, const SMDS_MeshNode*> mefistoToDS;  // correspondence mefisto index--> points IDNodes
+  if ( !LoadPoints(aMesh, F, myOuterWire, uvslf, m,
+                   mefistoToDS, scalex, scaley, VWMap) ) {
+    delete myTool; myTool = 0;
+    return false;
+  }
+
+  for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
+  {
+    const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
+    if (!myOuterWire.IsSame(W))
+    {
+      if (! LoadPoints(aMesh, F, W, uvslf, m,
+                       mefistoToDS, scalex, scaley, VWMap )) {
+        delete myTool; myTool = 0;
+        return false;
+      }
+    }
+  }
+
+  uvst = NULL;
+  nust = NULL;
+  aptrte(nutysu, aretmx,
+         nblf, nudslf, uvslf, nbpti, uvpti, nbst, uvst, nbt, nust, ierr);
+
+  if (ierr == 0)
+  {
+    MESSAGE("... End Triangulation Generated Triangle Number " << nbt);
+    MESSAGE("                                    Node Number " << nbst);
+    StoreResult(aMesh, nbst, uvst, nbt, nust, F,
+                faceIsForward, mefistoToDS, scalex, scaley);
+    isOk = true;
+  }
+  else
+  {
+    MESSAGE("Error in Triangulation");
+    isOk = false;
+  }
+  if (nudslf != NULL)
+    delete[]nudslf;
+  if (uvslf != NULL)
+    delete[]uvslf;
+  if (uvst != NULL)
+    delete[]uvst;
+  if (nust != NULL)
+    delete[]nust;
+  delete myTool; myTool = 0;
+
+  return isOk;
 }
 
 //=======================================================================
@@ -355,7 +362,8 @@ static bool fixCommonVertexUV (gp_Pnt2d &           theUV,
                                const TopoDS_Wire&   theOW,
                                const TopoDS_Face&   theF,
                                const TopTools_IndexedDataMapOfShapeListOfShape & theVWMap,
-                               SMESH_Mesh &         theMesh)
+                               SMESH_Mesh &         theMesh,
+                               bool CreateQuadratic)
 {
   if( theW.IsSame( theOW ) ||
       !theVWMap.Contains( theV )) return false;
@@ -418,10 +426,12 @@ static bool fixCommonVertexUV (gp_Pnt2d &           theUV,
       umin = l;
       umax = f;
     }
-    else
-    {
+    else {
       while ( nIt->more() ) {
         const SMDS_MeshNode* node = nIt->next();
+        // check if node is medium
+        if ( CreateQuadratic && SMESH_MesherHelper::IsMedium( node, SMDSAbs_Edge ))
+          continue;
         const SMDS_EdgePosition* epos =
           static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
         double u = epos->GetUParameter();
@@ -516,15 +526,17 @@ bool StdMeshers_MEFISTO_2D::LoadPoints(SMESH_Mesh &        aMesh,
     while ( nodeIt->more() )
     {
       node = nodeIt->next();
+      if ( _quadraticMesh && SMESH_MesherHelper::IsMedium( node, SMDSAbs_Edge ))
+        continue;
       const SMDS_EdgePosition* epos =
         static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-      params[ epos->GetUParameter() ] = node;
-    }
-    int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-    if ( nbPoints != params.size())
-    {
-      MESSAGE( "BAD NODE ON EDGE POSITIONS" );
-      return false;
+      double param = epos->GetUParameter();
+      if ( !isForward ) param = -param;
+      if ( !params.insert( make_pair( param, node )).second )
+      {
+        MESSAGE( "BAD NODE ON EDGE POSITIONS" );
+        return false;
+      }
     }
 
     // --- load 2D values into MEFISTO structure,
@@ -536,7 +548,7 @@ bool StdMeshers_MEFISTO_2D::LoadPoints(SMESH_Mesh &        aMesh,
 
     // vertex node
     gp_Pnt2d p = C2d->Value( uFirst ).XY().Multiplied( scale );
-    if ( fixCommonVertexUV( p, V, W, myOuterWire, F, VWMap, aMesh ))
+    if ( fixCommonVertexUV( p, V, W, myOuterWire, F, VWMap, aMesh, _quadraticMesh ))
       myNodesOnCommonV.push_back( idFirst );
     mOnVertex.push_back( m );
     uvslf[m].x = p.X();
@@ -548,22 +560,13 @@ bool StdMeshers_MEFISTO_2D::LoadPoints(SMESH_Mesh &        aMesh,
 
     // internal nodes
     map<double, const SMDS_MeshNode*>::iterator u_n = params.begin();
-    map<double, const SMDS_MeshNode*>::reverse_iterator u_n_rev = params.rbegin();
-    for ( int i = 0; i < nbPoints; ++i )
+    for ( int i = 0; u_n != params.end(); ++u_n, ++i )
     {
-      if ( isForward ) {
-        u    = u_n->first;
-        node = u_n->second;
-        ++u_n;
-      } else {
-        u    = u_n_rev->first;
-        node = u_n_rev->second;
-        ++u_n_rev;
-      }
+      u = isForward ? u_n->first : - u_n->first;
       gp_Pnt2d p = C2d->Value( u ).XY().Multiplied( scale );
       uvslf[m].x = p.X();
       uvslf[m].y = p.Y();
-      mefistoToDS[m + 1] = node;
+      mefistoToDS[m + 1] = u_n->second;
       //MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
       //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
       m++;
@@ -714,37 +717,31 @@ void StdMeshers_MEFISTO_2D::StoreResult(SMESH_Mesh & aMesh,
   }
 
   m = 0;
-  //int mt = 0;
-
-  //SCRUTE(faceIsForward);
-  for (n = 1; n <= nbt; n++)
-  {
-    int inode1 = nust[m++];
-    int inode2 = nust[m++];
-    int inode3 = nust[m++];
 
-    const SMDS_MeshNode *n1, *n2, *n3;
-    n1 = mefistoToDS[inode1];
-    n2 = mefistoToDS[inode2];
-    n3 = mefistoToDS[inode3];
-    //MESSAGE("-- "<<inode1<<" "<<inode2<<" "<<inode3);
+  // triangle points must be in trigonometric order if face is Forward
+  // else they must be put clockwise
 
-    // triangle points must be in trigonometric order if face is Forward
-    // else they must be put clockwise
+  bool triangleIsWellOriented = faceIsForward;
 
-    bool triangleIsWellOriented = faceIsForward;
+  for (n = 1; n <= nbt; n++)
+  {
+    const SMDS_MeshNode * n1 = mefistoToDS[ nust[m++] ];
+    const SMDS_MeshNode * n2 = mefistoToDS[ nust[m++] ];
+    const SMDS_MeshNode * n3 = mefistoToDS[ nust[m++] ];
 
     SMDS_MeshElement * elt;
     if (triangleIsWellOriented)
-      elt = meshDS->AddFace(n1, n2, n3);
+      //elt = meshDS->AddFace(n1, n2, n3);
+      elt = myTool->AddFace(n1, n2, n3);
     else
-      elt = meshDS->AddFace(n1, n3, n2);
+      //elt = meshDS->AddFace(n1, n3, n2);
+      elt = myTool->AddFace(n1, n3, n2);
 
     meshDS->SetMeshElementOnShape(elt, faceID);
     m++;
   }
 
-  // remove bad elements build on vertices shared by wires
+  // remove bad elements built on vertices shared by wires
 
   list<const SMDS_MeshNode*>::iterator itN = myNodesOnCommonV.begin();
   for ( ; itN != myNodesOnCommonV.end(); itN++ )
@@ -780,17 +777,14 @@ double StdMeshers_MEFISTO_2D::ComputeEdgeElementLength(SMESH_Mesh & aMesh,
        //MESSAGE("StdMeshers_MEFISTO_2D::ComputeEdgeElementLength");
        // **** a mettre dans SMESH_2D_Algo ?
 
-       const TopoDS_Face & FF = TopoDS::Face(aShape);
+       //const TopoDS_Face & FF = TopoDS::Face(aShape);
        //bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-       TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
+       //TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
 
        double meanElementLength = 100;
        double wireLength = 0;
        int wireElementsNumber = 0;
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               for (TopExp_Explorer expe(W, TopAbs_EDGE); expe.More(); expe.Next())
+               for (TopExp_Explorer expe(aShape, TopAbs_EDGE); expe.More(); expe.Next())
                {
                        const TopoDS_Edge & E = TopoDS::Edge(expe.Current());
                        int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
@@ -798,7 +792,6 @@ double StdMeshers_MEFISTO_2D::ComputeEdgeElementLength(SMESH_Mesh & aMesh,
                        wireLength += length;
                        wireElementsNumber += nb;
                }
-       }
        if (wireElementsNumber)
                meanElementLength = wireLength / wireElementsNumber;
        //SCRUTE(meanElementLength);
index 7ffad59c78842c8c4e41e4a4d635f8475049689f..f9601490fd308cd54f528abc7a512662a054ab92 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -35,6 +35,8 @@
 #include "SMESH_2D_Algo.hxx"
 #include <TopoDS_Wire.hxx>
 
+#include "SMESH_MesherHelper.hxx"
+
 class SMDS_MeshNode;
 class TopTools_IndexedDataMapOfShapeListOfShape;
 class TopoDS_Face;
@@ -97,6 +99,8 @@ protected:
 
   TopoDS_Wire myOuterWire;
   std::list<const SMDS_MeshNode*> myNodesOnCommonV;
+
+  SMESH_MesherHelper* myTool; // toll for working with quadratic elements
 };
 
 #endif
index 08c69e68b2f8407750a0367c26954e47ce1b6333..f02d21e9ed2fe335019b1c17956b8a9be489bdc8 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index c5e18996f2702d24eb76886794c368fa673e10cc..e8e33aa1aecc13e5fa7f5c2630cb4941df9ea4aa 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 679ccb4c583df711bcdd6362f2043f84ecb4a916..42b8b469e73ea14d8badf9c65e8680cea55ae2f2 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 7def314df60086ed3db012679a6eed02c8e18df9..16dc5a6043d4da2908190b9187d5a344f8631d07 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 4448ef4cabee20762e65d82b53de76868c82c108..7e0bd11cba2a99bdf275618dfd96ceb70c230f7d 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 2d5fc760895ef9478cf0b09ae53797c854a38823..5cbbb4265ac6cde7f221af8f95dc6882768cb52b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 139ea22e6c57ec9632ce393da9338c2826057cac..76cd67965ccfda360d1dfd8f9ab4c64f322a2e8a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include "SMESHDS_SubMesh.hxx"
 #include "SMESH_Mesh.hxx"
 
-#include <CASCatch_CatchSignals.hxx>
-#include <CASCatch_ErrorHandler.hxx>
-#include <CASCatch_Failure.hxx> 
+#include "CASCatch.hxx"
+
 #include <ExprIntrp_GenExp.hxx>
 #include <Expr_Array1OfNamedUnknown.hxx>
 #include <Expr_NamedUnknown.hxx>
-#include <OSD.hxx>
 #include <TColStd_Array1OfReal.hxx>
 #include <TCollection_AsciiString.hxx>
 #include <TopExp.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
 
-#include <Standard_ErrorHandler.hxx>
-
 using namespace std;
 
 const double PRECISION = 1e-7;
@@ -174,8 +170,8 @@ void StdMeshers_NumberOfSegments::SetScaleFactor(double scaleFactor)
     throw SALOME_Exception(LOCALIZED("not a scale distribution"));
   if (scaleFactor < PRECISION)
     throw SALOME_Exception(LOCALIZED("scale factor must be positive"));
-  if (fabs(scaleFactor - 1.0) < PRECISION)
-    throw SALOME_Exception(LOCALIZED("scale factor must not be equal to 1"));
+  //if (fabs(scaleFactor - 1.0) < PRECISION)
+  //  throw SALOME_Exception(LOCALIZED("scale factor must not be equal to 1"));
 
   if (fabs(_scaleFactor - scaleFactor) > PRECISION)
   {
@@ -216,10 +212,6 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& ta
   double prev = -PRECISION;
   bool isSame = table.size() == _table.size();
 
-  OSD::SetSignal( true );
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   bool pos = false;
   for (i=0; i < table.size()/2; i++) {
     double par = table[i*2];
@@ -230,10 +222,9 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& ta
       {
        val = pow( 10.0, val );
       }
-      CASCatch_CATCH(CASCatch_Failure)
+      CASCatch_CATCH(Standard_Failure)
       {
-       aCatchSignals.Deactivate();
-       Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+       Handle(Standard_Failure) aFail = Standard_Failure::Caught();
        throw SALOME_Exception( LOCALIZED( "invalid value"));
        return;
       }
@@ -258,7 +249,6 @@ void StdMeshers_NumberOfSegments::SetTableFunction(const std::vector<double>& ta
     }
     prev = par;
   }
-  aCatchSignals.Deactivate();
 
   if( !pos )
     throw SALOME_Exception(LOCALIZED("value of table function is not positive"));
@@ -320,10 +310,6 @@ bool process( const TCollection_AsciiString& str, int convMode,
              bool& non_neg, bool& non_zero,
              bool& singulars, double& sing_point )
 {
-  OSD::SetSignal( true );
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   bool parsed_ok = true;
   Handle( ExprIntrp_GenExp ) myExpr;
   CASCatch_TRY
@@ -331,13 +317,11 @@ bool process( const TCollection_AsciiString& str, int convMode,
     myExpr = ExprIntrp_GenExp::Create();
     myExpr->Process( str.ToCString() );
   }
-  CASCatch_CATCH(CASCatch_Failure)
+  CASCatch_CATCH(Standard_Failure)
   {
-    aCatchSignals.Deactivate();
-    Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     parsed_ok = false;
   }
-  aCatchSignals.Deactivate();
 
   syntax = false;
   args = false;
index 664bf13da15801a7b1bbebd805aed4a7a128d883..b967dc933b1f83de8ae218febaef966b4f9ca55e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index ad6ebc83198609b882539342061257d2b33e4f5d..ec275531750d4ec12d681aad088e52810c4fd6bf 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -51,6 +51,9 @@
 #include <TopoDS_Shell.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <gp_Pnt.hxx>
+#include <BRepTools.hxx>
+#include <BRepTools_WireExplorer.hxx>
+#include <TopTools_MapOfShape.hxx>
 
 #include <stdio.h>
 #include <algorithm>
@@ -70,7 +73,20 @@ StdMeshers_Penta_3D::StdMeshers_Penta_3D()
   myTol3D=0.1;
   myWallNodesMaps.resize( SMESH_Block::NbFaces() );
   myShapeXYZ.resize( SMESH_Block::NbSubShapes() );
+  myTool = 0;
 }
+
+//=======================================================================
+//function : ~StdMeshers_Penta_3D
+//purpose  : 
+//=======================================================================
+
+StdMeshers_Penta_3D::~StdMeshers_Penta_3D()
+{
+  if ( myTool )
+    delete myTool;
+}
+
 //=======================================================================
 //function : Compute
 //purpose  : 
@@ -91,33 +107,43 @@ bool StdMeshers_Penta_3D::Compute(SMESH_Mesh& aMesh,
   if (myErrorStatus){
     return bOK;
   }
+
+  myTool = new SMESH_MesherHelper(aMesh);
+  myCreateQuadratic = myTool->IsQuadraticSubMesh(aShape);
+
   //
   MakeBlock();
-    if (myErrorStatus){
+  if (myErrorStatus){
+    delete myTool; myTool = 0;
+    return bOK;
+  }
+  //
+  ClearMeshOnFxy1();
+  if (myErrorStatus) {
+    delete myTool; myTool = 0;
     return bOK;
   }
   //
   MakeNodes();
   if (myErrorStatus){
+    delete myTool; myTool = 0;
     return bOK;
   }
   //
   MakeConnectingMap();
   //
-  ClearMeshOnFxy1();
-  if (myErrorStatus) {
-    return bOK;
-  }
-  //
   MakeMeshOnFxy1();
   if (myErrorStatus) {
+    delete myTool; myTool = 0;
     return bOK;
   }
   //
   MakeVolumeMesh();
   //
+  delete myTool; myTool = 0;
   return !bOK;
 }
+
 //=======================================================================
 //function : MakeNodes
 //purpose  : 
@@ -144,12 +170,24 @@ void StdMeshers_Penta_3D::MakeNodes()
   // 1.1 Horizontal size
   myJSize=0;
   for (i=0; i<aNbSIDs; ++i) {
-    const TopoDS_Shape& aS=myBlock.Shape(aSIDs[i]);
+    const TopoDS_Shape& aS = myBlock.Shape(aSIDs[i]);
     SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aS);
     ASSERT(aSubMesh);
-    SMESHDS_SubMesh *aSM=aSubMesh->GetSubMeshDS();
-    iNbN=aSM->NbNodes();
-    myJSize+=iNbN;
+    SMESHDS_SubMesh *aSM = aSubMesh->GetSubMeshDS();
+    if(!myCreateQuadratic) {
+      iNbN = aSM->NbNodes();
+    }
+    else {
+      iNbN = 0;
+      SMDS_NodeIteratorPtr itn = aSM->GetNodes();
+      while(itn->more()) {
+        const SMDS_MeshNode* aNode = itn->next();
+        if(myTool->IsMedium(aNode))
+          continue;
+        iNbN++;
+      }
+    }
+    myJSize += iNbN;
   }
   //printf("***  Horizontal: number of nodes summary=%d\n", myJSize);
   //
@@ -159,9 +197,21 @@ void StdMeshers_Penta_3D::MakeNodes()
     const TopoDS_Shape& aS=myBlock.Shape(SMESH_Block::ID_E00z);
     SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aS);
     ASSERT(aSubMesh);
-    SMESHDS_SubMesh *aSM=aSubMesh->GetSubMeshDS();
-    iNbN=aSM->NbNodes();
-    myISize+=iNbN;
+    SMESHDS_SubMesh *aSM = aSubMesh->GetSubMeshDS();
+    if(!myCreateQuadratic) {
+      iNbN = aSM->NbNodes();
+    }
+    else {
+      iNbN = 0;
+      SMDS_NodeIteratorPtr itn = aSM->GetNodes();
+      while(itn->more()) {
+        const SMDS_MeshNode* aNode = itn->next();
+        if(myTool->IsMedium(aNode))
+          continue;
+        iNbN++;
+      }
+    }
+    myISize += iNbN;
   }
   //printf("***  Vertical: number of nodes on edges and vertices=%d\n", myISize);
   //
@@ -177,18 +227,19 @@ void StdMeshers_Penta_3D::MakeNodes()
   // vertices
   for (k=0; k<aNbSIDs; ++k) {
     aSID=aSIDs[k];
-    const TopoDS_Shape& aS=myBlock.Shape(aSID);
-    SMDS_NodeIteratorPtr ite =pMesh->GetSubMeshContaining(aS)->GetSubMeshDS()->GetNodes();
+    const TopoDS_Shape& aS = myBlock.Shape(aSID);
+    SMDS_NodeIteratorPtr ite = pMesh->GetSubMeshContaining(aS)->GetSubMeshDS()->GetNodes();
     while(ite->more()) {
       const SMDS_MeshNode* aNode = ite->next();
+      if(myTool->IsMedium(aNode))
+        continue;
       aNodeID=aNode->GetID();
       //
       aTNode.SetNode(aNode);
       aTNode.SetShapeSupportID(aSID);
       aTNode.SetBaseNodeID(aNodeID);
       //
-      if ( SMESH_Block::IsEdgeID (aSID))
-      {
+      if ( SMESH_Block::IsEdgeID (aSID)) {
         const SMDS_EdgePosition* epos =
           static_cast<const SMDS_EdgePosition*>(aNode->GetPosition().get());
         myBlock.ComputeParameters( epos->GetUParameter(), aS, aCoords );
@@ -200,7 +251,7 @@ void StdMeshers_Penta_3D::MakeNodes()
         aP3D.SetCoord(aX, aY, aZ);
         myBlock.ComputeParameters(aP3D, aS, aCoords);
       }
-      iErr=myBlock.ErrorStatus();
+      iErr = myBlock.ErrorStatus();
       if (iErr) {
         MESSAGE("StdMeshers_Penta_3D::MakeNodes()," <<
                 "SMESHBlock: ComputeParameters operation failed");
@@ -325,8 +376,7 @@ void StdMeshers_Penta_3D::MakeNodes()
 
   // 3.3 set XYZ of vertices, and initialize of the rest
   SMESHDS_Mesh* aMesh = GetMesh()->GetMeshDS();
-  for ( int id = SMESH_Block::ID_V000; id < SMESH_Block::ID_Shell; ++id )
-  {
+  for ( int id = SMESH_Block::ID_V000; id < SMESH_Block::ID_Shell; ++id ) {
     if ( SMESH_Block::IsVertexID( id )) {
       TopoDS_Shape V = myBlock.Shape( id );
       SMESHDS_SubMesh* sm = aMesh->MeshElements( V );
@@ -344,23 +394,46 @@ void StdMeshers_Penta_3D::MakeNodes()
   SMESH_Block::TShapeID aSSID, aBNSSID;
   StdMeshers_TNode aTN;
   //
-  for (j=0; j<myJSize; ++j)
-  {
+
+  // create top face and find UV for it's corners
+  const TopoDS_Face& TopFace = TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy1));
+  SMESHDS_Mesh* meshDS = pMesh->GetMeshDS();
+  int topfaceID = meshDS->ShapeToIndex(TopFace);
+  const TopoDS_Vertex& v001 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V001));
+  SMDS_NodeIteratorPtr itn = pMesh->GetSubMeshContaining(v001)->GetSubMeshDS()->GetNodes();
+  const SMDS_MeshNode* N = itn->next();
+  gp_XY UV001 = myTool->GetNodeUV(TopFace,N);
+  const TopoDS_Vertex& v101 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V101));
+  itn = pMesh->GetSubMeshContaining(v101)->GetSubMeshDS()->GetNodes();
+  N = itn->next();
+  gp_XY UV101 = myTool->GetNodeUV(TopFace,N);
+  const TopoDS_Vertex& v011 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V011));
+  itn = pMesh->GetSubMeshContaining(v011)->GetSubMeshDS()->GetNodes();
+  N = itn->next();
+  gp_XY UV011 = myTool->GetNodeUV(TopFace,N);
+  const TopoDS_Vertex& v111 = TopoDS::Vertex(myBlock.Shape(SMESH_Block::ID_V111));
+  itn = pMesh->GetSubMeshContaining(v111)->GetSubMeshDS()->GetNodes();
+  N = itn->next();
+  gp_XY UV111 = myTool->GetNodeUV(TopFace,N);
+
+  for (j=0; j<myJSize; ++j) {
     // base node info
-    const StdMeshers_TNode& aBN=myTNodes[j];
-    aBNSSID=(SMESH_Block::TShapeID)aBN.ShapeSupportID();
-    iBNID=aBN.BaseNodeID();
-    const gp_XYZ& aBNXYZ=aBN.NormCoord();
+    const StdMeshers_TNode& aBN = myTNodes[j];
+    aBNSSID = (SMESH_Block::TShapeID)aBN.ShapeSupportID();
+    iBNID = aBN.BaseNodeID();
+    const gp_XYZ& aBNXYZ = aBN.NormCoord();
     bool createNode = ( aBNSSID == SMESH_Block::ID_Fxy0 );
     //
     // set XYZ on horizontal edges and get node columns of faces:
     // 2 columns for each face, between which a base node is located
     vector<const SMDS_MeshNode*>* nColumns[8];
     double ratio[4]; // base node position between columns [0.-1.]
-    if ( createNode )
-      for ( k = 0; k < 4; ++k )
+    if ( createNode ) {
+      for ( k = 0; k < 4; ++k ) {
         ratio[ k ] = SetHorizEdgeXYZ (aBNXYZ, wallFaceID[ k ],
                                       nColumns[k*2], nColumns[k*2+1]);
+      }
+    }
     //
     // XYZ on the bottom and top faces
     const SMDS_MeshNode* n = aBN.Node();
@@ -368,8 +441,9 @@ void StdMeshers_Penta_3D::MakeNodes()
     myShapeXYZ[ SMESH_Block::ID_Fxy1 ].SetCoord( 0., 0., 0. );
     //
     // first create or find a top node, then the rest ones in a column
-    for (i=myISize-1; i>0; --i)
-    {
+    for (i=myISize-1; i>0; --i) {
+      bIsUpperLayer = (i==(myISize-1));
+      gp_XY UV_Ex01, UV_Ex11, UV_E0y1, UV_E1y1;
       if ( createNode ) {
         // set XYZ on vertical edges and faces
         for ( k = 0; k < 4; ++k ) {
@@ -377,11 +451,28 @@ void StdMeshers_Penta_3D::MakeNodes()
           myShapeXYZ[ verticEdgeID[ k ] ].SetCoord( n->X(), n->Y(), n->Z() );
           //
           n = (*nColumns[k*2]) [ i ];
+          gp_XY tmp1;
+          if( i==myISize-1 ) {
+            tmp1 = myTool->GetNodeUV(TopFace,n);
+            tmp1 = ( 1. - ratio[ k ]) * tmp1;
+          }
           gp_XYZ xyz( n->X(), n->Y(), n->Z() );
           myShapeXYZ[ wallFaceID[ k ]] = ( 1. - ratio[ k ]) * xyz;
           n = (*nColumns[k*2+1]) [ i ];
           xyz.SetCoord( n->X(), n->Y(), n->Z() );
           myShapeXYZ[ wallFaceID[ k ]] += ratio[ k ] * xyz;
+          if( i==myISize-1 ) {
+            gp_XY tmp2 = myTool->GetNodeUV(TopFace,n);
+            tmp1 +=  ratio[ k ] * tmp2;
+            if( k==0 )
+              UV_Ex01 = tmp1;
+            else if( k==1 )
+              UV_Ex11 = tmp1;
+            else if( k==2 )
+              UV_E0y1 = tmp1;
+            else
+              UV_E1y1 = tmp1;
+          }
         }
       }
       // fill current node info
@@ -395,7 +486,6 @@ void StdMeshers_Penta_3D::MakeNodes()
       aCoords.SetCoord(aX, aY, aZ);
       //
       //   suporting shape ID
-      bIsUpperLayer=(i==(myISize-1));
       ShapeSupportID(bIsUpperLayer, aBNSSID, aSSID);
       if (myErrorStatus) {
         MESSAGE("StdMeshers_Penta_3D::MakeNodes() ");
@@ -418,6 +508,30 @@ void StdMeshers_Penta_3D::MakeNodes()
         if ( bIsUpperLayer ) {
           const SMDS_MeshNode* n = aTN.Node();
           myShapeXYZ[ SMESH_Block::ID_Fxy1 ].SetCoord( n->X(), n->Y(), n->Z() );
+          // set node on top face:
+          // find UV parameter for this node
+          //              UV_Ex11
+          //   UV011+-----+----------+UV111
+          //        |                |
+          //        |                |
+          // UV_E0y1+     +node      +UV_E1y1
+          //        |                |
+          //        |                |
+          //        |                |
+          //   UV001+-----+----------+UV101
+          //              UV_Ex01
+          gp_Pnt2d aP;
+          double u = aCoords.X(), v = aCoords.Y();
+          double u1 = ( 1. - u ), v1 = ( 1. - v );
+          aP.ChangeCoord()  = UV_Ex01 * v1;
+          aP.ChangeCoord() += UV_Ex11 * v;
+          aP.ChangeCoord() += UV_E0y1 * u1;
+          aP.ChangeCoord() += UV_E1y1 * u;
+          aP.ChangeCoord() -= UV001 * u1 * v1;
+          aP.ChangeCoord() -= UV101 * u  * v1;
+          aP.ChangeCoord() -= UV011 * u1 * v;
+          aP.ChangeCoord() -= UV111 * u  * v;
+          meshDS->SetNodeOnFace((SMDS_MeshNode*)n, topfaceID, aP.X(), aP.Y());
         }
       }
       if (myErrorStatus) {
@@ -456,10 +570,13 @@ void StdMeshers_Penta_3D::MakeNodes()
   */
   //DEB t
 }
+
+
 //=======================================================================
 //function : FindNodeOnShape
 //purpose  : 
 //=======================================================================
+
 void StdMeshers_Penta_3D::FindNodeOnShape(const TopoDS_Shape& aS,
                                          const gp_XYZ&       aParams,
                                           const int           z,
@@ -470,14 +587,13 @@ void StdMeshers_Penta_3D::FindNodeOnShape(const TopoDS_Shape& aS,
   double aX, aY, aZ, aD, aTol2, minD;
   gp_Pnt aP1, aP2;
   //
-  SMESH_Mesh* pMesh=GetMesh();
-  aTol2=myTol3D*myTol3D;
+  SMESH_Mesh* pMesh = GetMesh();
+  aTol2 = myTol3D*myTol3D;
   minD = 1.e100;
-  SMDS_MeshNode* pNode=NULL;
+  SMDS_MeshNode* pNode = NULL;
   //
   if ( aS.ShapeType() == TopAbs_FACE ||
-       aS.ShapeType() == TopAbs_EDGE )
-  {
+       aS.ShapeType() == TopAbs_EDGE ) {
     // find a face ID to which aTN belongs to
     int faceID;
     if ( aS.ShapeType() == TopAbs_FACE )
@@ -492,13 +608,13 @@ void StdMeshers_Penta_3D::FindNodeOnShape(const TopoDS_Shape& aS,
     }
     ASSERT( SMESH_Block::IsFaceID( faceID ));
     int fIndex = SMESH_Block::ShapeIndex( faceID );
-    StdMeshers_IJNodeMap & ijNodes= myWallNodesMaps[ fIndex ];
+    StdMeshers_IJNodeMap & ijNodes = myWallNodesMaps[ fIndex ];
     // look for a base node in ijNodes
     const SMDS_MeshNode* baseNode = pMesh->GetMeshDS()->FindNode( aTN.BaseNodeID() );
     StdMeshers_IJNodeMap::const_iterator par_nVec = ijNodes.begin();
     for ( ; par_nVec != ijNodes.end(); par_nVec++ )
       if ( par_nVec->second[ 0 ] == baseNode ) {
-        pNode=(SMDS_MeshNode*)par_nVec->second.at( z );
+        pNode = (SMDS_MeshNode*)par_nVec->second.at( z );
         aTN.SetNode(pNode);
         return;
       }
@@ -510,6 +626,8 @@ void StdMeshers_Penta_3D::FindNodeOnShape(const TopoDS_Shape& aS,
     pMesh->GetSubMeshContaining(aS)->GetSubMeshDS()->GetNodes();
   while(ite->more()) {
     const SMDS_MeshNode* aNode = ite->next();
+    if(myTool->IsMedium(aNode))
+      continue;
     aX=aNode->X();
     aY=aNode->Y();
     aZ=aNode->Z();
@@ -532,6 +650,7 @@ void StdMeshers_Penta_3D::FindNodeOnShape(const TopoDS_Shape& aS,
   //myErrorStatus=11; // can not find the node;
 }
 
+
 //=======================================================================
 //function : SetHorizEdgeXYZ
 //purpose  : 
@@ -583,6 +702,7 @@ double StdMeshers_Penta_3D::SetHorizEdgeXYZ(const gp_XYZ&                  aBase
   return r;
 }
 
+
 //=======================================================================
 //function : MakeVolumeMesh
 //purpose  : 
@@ -593,20 +713,20 @@ void StdMeshers_Penta_3D::MakeVolumeMesh()
   //
   int i, j, ij, ik, i1, i2, aSSID; 
   //
-  SMESH_Mesh*   pMesh =GetMesh();
-  SMESHDS_Mesh* meshDS=pMesh->GetMeshDS();
+  SMESH_Mesh*   pMesh = GetMesh();
+  SMESHDS_Mesh* meshDS = pMesh->GetMeshDS();
   //
   int shapeID = meshDS->ShapeToIndex( myShape );
   //
   // 1. Set Node In Volume
-  ik=myISize-1;
+  ik = myISize-1;
   for (i=1; i<ik; ++i){
     for (j=0; j<myJSize; ++j){
       ij=i*myJSize+j;
-      const StdMeshers_TNode& aTN=myTNodes[ij];
+      const StdMeshers_TNode& aTN = myTNodes[ij];
       aSSID=aTN.ShapeSupportID();
       if (aSSID==SMESH_Block::ID_NONE) {
-       SMDS_MeshNode* aNode=(SMDS_MeshNode*)aTN.Node();
+       SMDS_MeshNode* aNode = (SMDS_MeshNode*)aTN.Node();
        meshDS->SetNodeInVolume(aNode, shapeID);
       }
     }
@@ -621,22 +741,28 @@ void StdMeshers_Penta_3D::MakeVolumeMesh()
   const TopoDS_Face& aFxy0=
     TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy0));
   SMESH_subMesh *aSubMesh0 = pMesh->GetSubMeshContaining(aFxy0);
-  SMESHDS_SubMesh *aSM0=aSubMesh0->GetSubMeshDS();
+  SMESHDS_SubMesh *aSM0 = aSubMesh0->GetSubMeshDS();
   //
-  itf=aSM0->GetElements();
+  itf = aSM0->GetElements();
   while(itf->more()) {
-    const SMDS_MeshElement* pE0=itf->next();
+    const SMDS_MeshElement* pE0 = itf->next();
     //
     int nbFaceNodes = pE0->NbNodes();
+    if(myCreateQuadratic)
+      nbFaceNodes = nbFaceNodes/2;
     if ( aN.size() < nbFaceNodes * 2 )
       aN.resize( nbFaceNodes * 2 );
     //
     k=0;
     aItNodes=pE0->nodesIterator();
     while (aItNodes->more()) {
-      const SMDS_MeshElement* pNode=aItNodes->next();
-      aID0=pNode->GetID();
-      aJ[k]=GetIndexOnLayer(aID0);
+      //const SMDS_MeshElement* pNode = aItNodes->next();
+      const SMDS_MeshNode* pNode =
+        static_cast<const SMDS_MeshNode*> (aItNodes->next());
+      if(myTool->IsMedium(pNode))
+        continue;
+      aID0 = pNode->GetID();
+      aJ[k] = GetIndexOnLayer(aID0);
       if (myErrorStatus) {
         MESSAGE("StdMeshers_Penta_3D::MakeVolumeMesh");
        return;
@@ -646,19 +772,19 @@ void StdMeshers_Penta_3D::MakeVolumeMesh()
     }
     //
     bool forward = true;
-    for (i=0; i<ik; ++i){
+    for (i=0; i<ik; ++i) {
       i1=i;
       i2=i+1;
       for(j=0; j<nbFaceNodes; ++j) {
-       ij=i1*myJSize+aJ[j];
-       const StdMeshers_TNode& aTN1=myTNodes[ij];
-       const SMDS_MeshNode* aN1=aTN1.Node();
+       ij = i1*myJSize+aJ[j];
+       const StdMeshers_TNode& aTN1 = myTNodes[ij];
+       const SMDS_MeshNode* aN1 = aTN1.Node();
        aN[j]=aN1;
        //
        ij=i2*myJSize+aJ[j];
-       const StdMeshers_TNode& aTN2=myTNodes[ij];
-       const SMDS_MeshNode* aN2=aTN2.Node();
-       aN[j+nbFaceNodes]=aN2;
+       const StdMeshers_TNode& aTN2 = myTNodes[ij];
+       const SMDS_MeshNode* aN2 = aTN2.Node();
+       aN[j+nbFaceNodes] = aN2;
       }
       // check if volume orientation will be ok
       if ( i == 0 ) {
@@ -685,20 +811,30 @@ void StdMeshers_Penta_3D::MakeVolumeMesh()
       SMDS_MeshVolume* aV = 0;
       switch ( nbFaceNodes ) {
       case 3:
-        if ( forward )
-          aV = meshDS->AddVolume(aN[0], aN[1], aN[2],
-                                 aN[3], aN[4], aN[5]);
-        else
-          aV = meshDS->AddVolume(aN[0], aN[2], aN[1],
-                                 aN[3], aN[5], aN[4]);
+        if ( forward ) {
+          //aV = meshDS->AddVolume(aN[0], aN[1], aN[2],
+          //                       aN[3], aN[4], aN[5]);
+          aV = myTool->AddVolume(aN[0], aN[1], aN[2], aN[3], aN[4], aN[5]);
+        }
+        else {
+          //aV = meshDS->AddVolume(aN[0], aN[2], aN[1],
+          //                       aN[3], aN[5], aN[4]);
+          aV = myTool->AddVolume(aN[0], aN[2], aN[1], aN[3], aN[5], aN[4]);
+        }
         break;
       case 4:
-        if ( forward )
-          aV = meshDS->AddVolume(aN[0], aN[1], aN[2], aN[3],
+        if ( forward ) {
+          //aV = meshDS->AddVolume(aN[0], aN[1], aN[2], aN[3],
+          //                       aN[4], aN[5], aN[6], aN[7]);
+          aV = myTool->AddVolume(aN[0], aN[1], aN[2], aN[3],
                                  aN[4], aN[5], aN[6], aN[7]);
-        else
-          aV = meshDS->AddVolume(aN[0], aN[3], aN[2], aN[1],
+        }
+        else {
+          //aV = meshDS->AddVolume(aN[0], aN[3], aN[2], aN[1],
+          //                       aN[4], aN[7], aN[6], aN[5]);
+          aV = myTool->AddVolume(aN[0], aN[3], aN[2], aN[1],
                                  aN[4], aN[7], aN[6], aN[5]);
+        }
         break;
       default:
         continue;
@@ -727,74 +863,68 @@ void StdMeshers_Penta_3D::MakeMeshOnFxy1()
   const TopoDS_Face& aFxy1=
     TopoDS::Face(myBlock.Shape(SMESH_Block::ID_Fxy1));
   //
-  SMESH_Mesh* pMesh=GetMesh();
+  SMESH_Mesh* pMesh = GetMesh();
   SMESHDS_Mesh * meshDS = pMesh->GetMeshDS();
   //
   SMESH_subMesh *aSubMesh0 = pMesh->GetSubMeshContaining(aFxy0);
-  SMESHDS_SubMesh *aSM0=aSubMesh0->GetSubMeshDS();
+  SMESHDS_SubMesh *aSM0 = aSubMesh0->GetSubMeshDS();
   //
   // set nodes on aFxy1
-  aLevel=myISize-1;
-  itn=aSM0->GetNodes();
-  aNbNodes=aSM0->NbNodes();
+  aLevel = myISize-1;
+  itn = aSM0->GetNodes();
+  aNbNodes = aSM0->NbNodes();
   //printf("** aNbNodes=%d\n", aNbNodes);
-  while(itn->more()) {
-    const SMDS_MeshNode* aN0=itn->next();
-    aID0=aN0->GetID();
-    aJ=GetIndexOnLayer(aID0);
-    if (myErrorStatus) {
-      MESSAGE("StdMeshers_Penta_3D::MakeMeshOnFxy1() ");
-      return;
-    }
-    //
-    ij=aLevel*myJSize+aJ;
-    const StdMeshers_TNode& aTN1=myTNodes[ij];
-    SMDS_MeshNode* aN1=(SMDS_MeshNode*)aTN1.Node();
-    //
-    meshDS->SetNodeOnFace(aN1, aFxy1);
-  }
+
   //
   // set elements on aFxy1
   vector<const SMDS_MeshNode*> aNodes1;
   //
-  itf=aSM0->GetElements();
+  itf = aSM0->GetElements();
   while(itf->more()) {
-    const SMDS_MeshElement * pE0=itf->next();
-    aElementType=pE0->GetType();
+    const SMDS_MeshElement* pE0 = itf->next();
+    aElementType = pE0->GetType();
     if (!aElementType==SMDSAbs_Face) {
       continue;
     }
-    aNbNodes=pE0->NbNodes();
+    aNbNodes = pE0->NbNodes();
+    if(myCreateQuadratic)
+      aNbNodes = aNbNodes/2;
 //     if (aNbNodes!=3) {
 //       continue;
 //     }
     if ( aNodes1.size() < aNbNodes )
       aNodes1.resize( aNbNodes );
     //
-    k=aNbNodes-1; // reverse a face
-    aItNodes=pE0->nodesIterator();
+    k = aNbNodes-1; // reverse a face
+    aItNodes = pE0->nodesIterator();
     while (aItNodes->more()) {
-      const SMDS_MeshElement* pNode=aItNodes->next();
-      aID0=pNode->GetID();
-      aJ=GetIndexOnLayer(aID0);
+      //const SMDS_MeshElement* pNode = aItNodes->next();
+      const SMDS_MeshNode* pNode =
+        static_cast<const SMDS_MeshNode*> (aItNodes->next());
+      if(myTool->IsMedium(pNode))
+        continue;
+      aID0 = pNode->GetID();
+      aJ = GetIndexOnLayer(aID0);
       if (myErrorStatus) {
         MESSAGE("StdMeshers_Penta_3D::MakeMeshOnFxy1() ");
        return;
       }
       //
-      ij=aLevel*myJSize+aJ;
-      const StdMeshers_TNode& aTN1=myTNodes[ij];
-      const SMDS_MeshNode* aN1=aTN1.Node();
-      aNodes1[k]=aN1;
+      ij = aLevel*myJSize + aJ;
+      const StdMeshers_TNode& aTN1 = myTNodes[ij];
+      const SMDS_MeshNode* aN1 = aTN1.Node();
+      aNodes1[k] = aN1;
       --k;
     }
     SMDS_MeshFace * face = 0;
     switch ( aNbNodes ) {
     case 3:
-      face = meshDS->AddFace(aNodes1[0], aNodes1[1], aNodes1[2]);
+      //face = meshDS->AddFace(aNodes1[0], aNodes1[1], aNodes1[2]);
+      face = myTool->AddFace(aNodes1[0], aNodes1[1], aNodes1[2]);
       break;
     case 4:
-      face = meshDS->AddFace(aNodes1[0], aNodes1[1], aNodes1[2], aNodes1[3]);
+      //face = meshDS->AddFace(aNodes1[0], aNodes1[1], aNodes1[2], aNodes1[3]);
+      face = myTool->AddFace(aNodes1[0], aNodes1[1], aNodes1[2], aNodes1[3]);
       break;
     default:
       continue;
@@ -802,6 +932,7 @@ void StdMeshers_Penta_3D::MakeMeshOnFxy1()
     meshDS->SetMeshElementOnShape(face, aFxy1);
   }
 }
+
 //=======================================================================
 //function : ClearMeshOnFxy1
 //purpose  : 
@@ -838,6 +969,7 @@ int StdMeshers_Penta_3D::GetIndexOnLayer(const int aID)
   j=(*aMapIt).second;
   return j;
 }
+
 //=======================================================================
 //function : MakeConnectingMap
 //purpose  : 
@@ -852,6 +984,7 @@ void StdMeshers_Penta_3D::MakeConnectingMap()
     myConnectingMap[aBNID]=j;
   }
 }
+
 //=======================================================================
 //function : CreateNode
 //purpose  : 
@@ -879,8 +1012,7 @@ void StdMeshers_Penta_3D::CreateNode(const bool bIsUpperLayer,
 //     // point inside solid
 //     myBlock.Point(aParams, aP);
 //   }
-  if (bIsUpperLayer)
-  {
+  if (bIsUpperLayer) {
     double u = aParams.X(), v = aParams.Y();
     double u1 = ( 1. - u ), v1 = ( 1. - v );
     aP.ChangeCoord()  = myShapeXYZ[ SMESH_Block::ID_Ex01 ] * v1;
@@ -893,8 +1025,7 @@ void StdMeshers_Penta_3D::CreateNode(const bool bIsUpperLayer,
     aP.ChangeCoord() -= myShapeXYZ[ SMESH_Block::ID_V011 ] * u1 * v;
     aP.ChangeCoord() -= myShapeXYZ[ SMESH_Block::ID_V111 ] * u  * v;
   }
-  else
-  {
+  else {
     SMESH_Block::ShellPoint( aParams, myShapeXYZ, aP.ChangeCoord() );
   }
   //
@@ -906,12 +1037,14 @@ void StdMeshers_Penta_3D::CreateNode(const bool bIsUpperLayer,
   //
   aX=aP.X(); aY=aP.Y(); aZ=aP.Z(); 
   //
-  SMESH_Mesh* pMesh=GetMesh();
-  SMESHDS_Mesh* pMeshDS=pMesh->GetMeshDS();
+  SMESH_Mesh* pMesh = GetMesh();
+  SMESHDS_Mesh* pMeshDS = pMesh->GetMeshDS();
   //
   pNode = pMeshDS->AddNode(aX, aY, aZ);
+  
   aTN.SetNode(pNode);
 }
+
 //=======================================================================
 //function : ShapeSupportID
 //purpose  : 
@@ -980,32 +1113,192 @@ void StdMeshers_Penta_3D::MakeBlock()
   SMDSAbs_ElementType aElementType;
   SMESH_Mesh* pMesh=GetMesh();
   //
-  iCnt=0;
-  iNbF=aM.Extent();
+  iCnt = 0;
+  iNbF = aM.Extent();
   for (i=1; i<=iNbF; ++i) {
-    const TopoDS_Shape& aF=aM(i);
+    const TopoDS_Shape& aF = aM(i);
     SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aF);
     ASSERT(aSubMesh);
-    SMESHDS_SubMesh *aSM=aSubMesh->GetSubMeshDS();
-    SMDS_ElemIteratorPtr itf=aSM->GetElements();
+    SMESHDS_SubMesh *aSM = aSubMesh->GetSubMeshDS();
+    SMDS_ElemIteratorPtr itf = aSM->GetElements();
     while(itf->more()) {
-      const SMDS_MeshElement * pElement=itf->next();
-      aElementType=pElement->GetType();
+      const SMDS_MeshElement * pElement = itf->next();
+      aElementType = pElement->GetType();
       if (aElementType==SMDSAbs_Face) {
-       iNbNodes=pElement->NbNodes();
-       if (iNbNodes==3) {
-         aFTr=aF;
+       iNbNodes = pElement->NbNodes();
+       if ( iNbNodes==3 || (myCreateQuadratic && iNbNodes==6) ) {
+         aFTr = aF;
          ++iCnt;
          if (iCnt>1) {
-            MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
-           myErrorStatus=5; // more than one face has triangulation
-           return;
+           // \begin{E.A.}
+           // The current algorithm fails if there is more that one
+           // face wich contains triangles ...
+           // In that case, replace return by break to try another
+           // method (coded in "if (iCnt != 1) { ... }")
+           //
+            // MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
+           // myErrorStatus=5; // more than one face has triangulation
+           // return;
+           break;
+           // \end{E.A.}
          }
          break; // next face
        }
       }
     }
   }
+  //
+  // \begin{E.A.}
+  // The current algorithm fails if "iCnt != 1", the case "iCnt == 0"
+  // was not reached 'cause it was not called from Hexa_3D ... Now it
+  // can occurs and in my opinion, it is the most common case.
+  //
+  if (iCnt != 1) {
+    // The suggested algorithm is the following :
+    //
+    // o Check that nb_of_faces == 6 and nb_of_edges == 12
+    //   then the shape is tologically equivalent to a box
+    // o In a box, there are three set of four // edges ...
+    //   In the cascade notation, it seems to be the edges
+    //   numbered : 
+    //     - 1, 3, 5, 7
+    //     - 2, 4, 6, 8
+    //     - 9, 10, 11, 12
+    // o For each one of this set, check if the four edges
+    //   have the same number of element.
+    // o If so, check if the "corresponding" // faces contains
+    //   only quads. It's the faces numbered:
+    //     - 1, 2, 3, 4
+    //     - 1, 2, 5, 6
+    //     - 3, 4, 5, 6
+    // o If so, check if the opposite edges of each // faces
+    //   have the same number of elements. It is the edges
+    //   numbered :
+    //     - 2 and 4, 6 and 8, 9 and 10, 11 and 12
+    //     - 1 and 3, 5 and 7, 9 and 11, 10 and 12
+    //     - 1 and 5, 3 and 7, 4 and 8, 2 and 6
+    // o If so, check if the two other faces have the same
+    //   number of elements. It is the faces numbered:
+    //     - 5, 6
+    //     - 3, 4
+    //     - 1, 2
+    //   This test should be improved to test if the nodes
+    //   of the two faces are really "en face".
+    // o If so, one of the two faces is a candidate to an extrusion,
+    //   It is the faces numbered :
+    //     - 5
+    //     - 3
+    //     - 1
+    // o Finally, if there is only one candidate, let do the
+    //   extrusion job for the corresponding face
+    //
+    int isOK = 0;
+    //
+    int iNbF = aM.Extent();
+    if (iNbF == 6) {
+      //
+      int nb_f1 = pMesh->GetSubMeshContaining(aM(1))->GetSubMeshDS()->NbElements();
+      int nb_f2 = pMesh->GetSubMeshContaining(aM(2))->GetSubMeshDS()->NbElements();
+      int nb_f3 = pMesh->GetSubMeshContaining(aM(3))->GetSubMeshDS()->NbElements();
+      int nb_f4 = pMesh->GetSubMeshContaining(aM(4))->GetSubMeshDS()->NbElements();
+      int nb_f5 = pMesh->GetSubMeshContaining(aM(5))->GetSubMeshDS()->NbElements();
+      int nb_f6 = pMesh->GetSubMeshContaining(aM(6))->GetSubMeshDS()->NbElements();
+      //
+      int has_only_quad_f1 = 1;
+      int has_only_quad_f2 = 1;
+      int has_only_quad_f3 = 1;
+      int has_only_quad_f4 = 1;
+      int has_only_quad_f5 = 1;
+      int has_only_quad_f6 = 1;
+      //
+      for (i=1; i<=iNbF; ++i) {
+       int ok = 1;
+       const TopoDS_Shape& aF = aM(i);
+       SMESH_subMesh *aSubMesh = pMesh->GetSubMeshContaining(aF);
+       SMESHDS_SubMesh *aSM = aSubMesh->GetSubMeshDS();
+       SMDS_ElemIteratorPtr itf = aSM->GetElements();
+       while(itf->more()) {
+         const SMDS_MeshElement * pElement = itf->next();
+         aElementType = pElement->GetType();
+         if (aElementType==SMDSAbs_Face) {
+           iNbNodes = pElement->NbNodes();
+           if ( iNbNodes!=4 ) {
+             ok = 0;
+             break ;
+           }
+         }
+       }
+       if (i==1) has_only_quad_f1 = ok ;
+       if (i==2) has_only_quad_f2 = ok ;
+       if (i==3) has_only_quad_f3 = ok ;
+       if (i==4) has_only_quad_f4 = ok ;
+       if (i==5) has_only_quad_f5 = ok ;
+       if (i==6) has_only_quad_f6 = ok ;
+      }
+      //
+      TopTools_IndexedMapOfShape aE;
+      TopExp::MapShapes(myShape, TopAbs_EDGE, aE);
+      int iNbE = aE.Extent();
+      if (iNbE == 12) {
+       //
+       int nb_e01 = pMesh->GetSubMeshContaining(aE(1))->GetSubMeshDS()->NbElements();
+       int nb_e02 = pMesh->GetSubMeshContaining(aE(2))->GetSubMeshDS()->NbElements();
+       int nb_e03 = pMesh->GetSubMeshContaining(aE(3))->GetSubMeshDS()->NbElements();
+       int nb_e04 = pMesh->GetSubMeshContaining(aE(4))->GetSubMeshDS()->NbElements();
+       int nb_e05 = pMesh->GetSubMeshContaining(aE(5))->GetSubMeshDS()->NbElements();
+       int nb_e06 = pMesh->GetSubMeshContaining(aE(6))->GetSubMeshDS()->NbElements();
+       int nb_e07 = pMesh->GetSubMeshContaining(aE(7))->GetSubMeshDS()->NbElements();
+       int nb_e08 = pMesh->GetSubMeshContaining(aE(8))->GetSubMeshDS()->NbElements();
+       int nb_e09 = pMesh->GetSubMeshContaining(aE(9))->GetSubMeshDS()->NbElements();
+       int nb_e10 = pMesh->GetSubMeshContaining(aE(10))->GetSubMeshDS()->NbElements();
+       int nb_e11 = pMesh->GetSubMeshContaining(aE(11))->GetSubMeshDS()->NbElements();
+       int nb_e12 = pMesh->GetSubMeshContaining(aE(12))->GetSubMeshDS()->NbElements();
+       //
+       int nb_ok = 0 ;
+       //
+       if ( (nb_e01==nb_e03) && (nb_e03==nb_e05) && (nb_e05==nb_e07) ) {
+         if ( has_only_quad_f1 && has_only_quad_f2 && has_only_quad_f3 && has_only_quad_f4 ) {
+           if ( (nb_e09==nb_e10) && (nb_e08==nb_e06) && (nb_e11==nb_e12) && (nb_e04==nb_e02) ) {
+             if (nb_f5==nb_f6) {
+               nb_ok += 1;
+               aFTr = aM(5);
+             }
+           }
+         }
+       }
+       if ( (nb_e02==nb_e04) && (nb_e04==nb_e06) && (nb_e06==nb_e08) ) {
+         if ( has_only_quad_f1 && has_only_quad_f2 && has_only_quad_f5 && has_only_quad_f6 ) {
+           if ( (nb_e01==nb_e03) && (nb_e10==nb_e12) && (nb_e05==nb_e07) && (nb_e09==nb_e11) ) {
+             if (nb_f3==nb_f4) {
+               nb_ok += 1;
+               aFTr = aM(3);
+             }
+           }
+         }
+       }
+       if ( (nb_e09==nb_e10) && (nb_e10==nb_e11) && (nb_e11==nb_e12) ) {
+         if ( has_only_quad_f3 && has_only_quad_f4 && has_only_quad_f5 && has_only_quad_f6 ) {
+           if ( (nb_e01==nb_e05) && (nb_e02==nb_e06) && (nb_e03==nb_e07) && (nb_e04==nb_e08) ) {
+             if (nb_f1==nb_f2) {
+               nb_ok += 1;
+               aFTr = aM(1);
+             }
+           }
+         }
+       }
+       //
+       if ( nb_ok == 1 ) {
+         isOK = 1;
+       }
+       //
+      }
+    }
+    if (!isOK) {
+      myErrorStatus=5; // more than one face has triangulation
+      return;
+    }
+  }
+  // \end{E.A.}
   // 
   // 1. Vetrices V00, V001;
   //
@@ -1013,7 +1306,7 @@ void StdMeshers_Penta_3D::MakeBlock()
   TopExp::MapShapesAndAncestors(myShape, TopAbs_VERTEX, TopAbs_EDGE, aMVES);
   //
   // 1.1 Base vertex V000
-  iNbE=aME.Extent();
+  iNbE = aME.Extent();
   if (iNbE!=4){
     MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
     myErrorStatus=7; // too few edges are in base face aFTr 
@@ -1080,7 +1373,7 @@ void StdMeshers_Penta_3D::MakeBlock()
   // 2. Load Block
   const TopoDS_Shell& aShell=TopoDS::Shell(aME(1));
   myBlock.Load(aShell, aV000, aV001);
-  iErr=myBlock.ErrorStatus();
+  iErr = myBlock.ErrorStatus();
   if (iErr) {
     MESSAGE("StdMeshers_Penta_3D::MakeBlock() ");
     myErrorStatus=100; // SMESHBlock: Load operation failed
@@ -1154,10 +1447,10 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
   bool rev1, CumOri = false;
   TopExp_Explorer exp( theFace, TopAbs_EDGE );
   int nbEdges = 0;
-  for ( ; exp.More(); exp.Next() )
-  {
-    if ( ++nbEdges > 4 )
+  for ( ; exp.More(); exp.Next() ) {
+    if ( ++nbEdges > 4 ) {
       return false; // more than 4 edges in theFace
+    }
     TopoDS_Edge e = TopoDS::Edge( exp.Current() );
     if ( theBaseEdge.IsSame( e ))
       continue;
@@ -1174,8 +1467,9 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
     else
       e2 = e;
   }
-  if ( nbEdges < 4 )
-    return false; // lass than 4 edges in theFace
+  if ( nbEdges < 4 ) {
+    return false; // less than 4 edges in theFace
+  }
 
   // submeshes corresponding to shapes
   SMESHDS_SubMesh* smFace = theMesh->MeshElements( theFace );
@@ -1200,13 +1494,32 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
     return false;
   }
   if ( sm1->NbNodes() * smb->NbNodes() != smFace->NbNodes() ) {
-    MESSAGE( "Wrong nb face nodes: " <<
-            sm1->NbNodes()<<" "<<smb->NbNodes()<<" "<<smFace->NbNodes());
-    return false;
+    // check quadratic case
+    if ( myCreateQuadratic ) {
+      int n1 = sm1->NbNodes()/2;
+      int n2 = smb->NbNodes()/2;
+      int n3 = sm1->NbNodes() - n1;
+      int n4 = smb->NbNodes() - n2;
+      int nf = sm1->NbNodes()*smb->NbNodes() - n3*n4;
+      if( nf != smFace->NbNodes() ) {
+        MESSAGE( "Wrong nb face nodes: " <<
+                sm1->NbNodes()<<" "<<smb->NbNodes()<<" "<<smFace->NbNodes());
+        return false;
+      }
+    }
+    else {
+      MESSAGE( "Wrong nb face nodes: " <<
+              sm1->NbNodes()<<" "<<smb->NbNodes()<<" "<<smFace->NbNodes());
+      return false;
+    }
   }
   // IJ size
   int vsize = sm1->NbNodes() + 2;
   int hsize = smb->NbNodes() + 2;
+  if(myCreateQuadratic) {
+    vsize = vsize - sm1->NbNodes()/2 -1;
+    hsize = hsize - smb->NbNodes()/2 -1;
+  }
 
   // load nodes from theBaseEdge
 
@@ -1226,12 +1539,15 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
   double range = l - f;
   SMDS_NodeIteratorPtr nIt = smb->GetNodes();
   const SMDS_MeshNode* node;
-  while ( nIt->more() )
-  {
+  while ( nIt->more() ) {
     node = nIt->next();
+    if(myTool->IsMedium(node))
+      continue;
     const SMDS_EdgePosition* pos =
       dynamic_cast<const SMDS_EdgePosition*>( node->GetPosition().get() );
-    if ( !pos ) return false;
+    if ( !pos ) {
+      return false;
+    }
     double u = ( pos->GetUParameter() - f ) / range;
     vector<const SMDS_MeshNode*> & nVec = theIJNodes[ u ];
     nVec.resize( vsize, nullNode );
@@ -1246,19 +1562,21 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
 
   map< double, const SMDS_MeshNode*> sortedNodes; // sort by param on edge
   nIt = sm1->GetNodes();
-  while ( nIt->more() )
-  {
+  while ( nIt->more() ) {
     node = nIt->next();
+    if(myTool->IsMedium(node))
+      continue;
     const SMDS_EdgePosition* pos =
       dynamic_cast<const SMDS_EdgePosition*>( node->GetPosition().get() );
-    if ( !pos ) return false;
+    if ( !pos ) {
+      return false;
+    }
     sortedNodes.insert( make_pair( pos->GetUParameter(), node ));
   }
   loadedNodes.insert( nVecf[ vsize - 1 ] = smVft->GetNodes()->next() );
   map< double, const SMDS_MeshNode*>::iterator u_n = sortedNodes.begin();
   int row = rev1 ? vsize - 1 : 0;
-  for ( ; u_n != sortedNodes.end(); u_n++ )
-  {
+  for ( ; u_n != sortedNodes.end(); u_n++ ) {
     if ( rev1 ) row--;
     else        row++;
     loadedNodes.insert( nVecf[ row ] = u_n->second );
@@ -1267,12 +1585,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,
@@ -1285,8 +1603,7 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
   StdMeshers_IJNodeMap::iterator par_nVec_2 = par_nVec_1;
   // loop on columns
   int col = 0;
-  for ( par_nVec_2++; par_nVec_2 != theIJNodes.end(); par_nVec_1++, par_nVec_2++ )
-  {
+  for ( par_nVec_2++; par_nVec_2 != theIJNodes.end(); par_nVec_1++, par_nVec_2++ ) {
     col++;
     row = 0;
     const SMDS_MeshNode* n1 = par_nVec_1->second[ row ];
@@ -1295,10 +1612,10 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
     do {
       // look for a face by 2 nodes
       face = SMESH_MeshEditor::FindFaceInSet( n1, n2, allFaces, foundFaces );
-      if ( face )
-      {
+      if ( face ) {
         int nbFaceNodes = face->NbNodes();
-        if ( nbFaceNodes > 4 ) {
+        if ( (!myCreateQuadratic && nbFaceNodes>4) ||
+             (myCreateQuadratic && nbFaceNodes>8) ) {
           MESSAGE(" Too many nodes in a face: " << nbFaceNodes );
           return false;
         }
@@ -1308,6 +1625,8 @@ bool StdMeshers_Penta_3D::LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
         eIt = face->nodesIterator() ;
         while ( !found && eIt->more() ) {
           node = static_cast<const SMDS_MeshNode*>( eIt->next() );
+          if(myTool->IsMedium(node))
+            continue;
           found = loadedNodes.insert( node ).second;
           if ( !found && node != n1 && node != n2 )
             n3 = node;
@@ -1318,20 +1637,23 @@ 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 )
+          if ( nbFaceNodes==4 || (myCreateQuadratic && nbFaceNodes==8) ) {
             n1 = par_nVec_1->second[ row ];
+          }
         }
-        else if (nbFaceNodes == 3 &&
-                 n3 == par_nVec_1->second[ row ] )
+        else if ( (nbFaceNodes==3 || (myCreateQuadratic && nbFaceNodes==6) )  &&
+                 n3 == par_nVec_1->second[ row ] ) {
           n1 = n3;
+        }
         else {
           MESSAGE( "Not quad mesh, column "<< col );
           return false;
         }
       }
-    } while ( face && n1 && n2 );
+    }
+    while ( face && n1 && n2 );
 
     if ( row < vsize - 1 ) {
       MESSAGE( "Too few nodes in column "<< col <<": "<< row+1);
@@ -1390,17 +1712,18 @@ int StdMeshers_SMESHBlock::ErrorStatus() const
 {
   return myErrorStatus;
 }
+
 //=======================================================================
 //function : Load
 //purpose  : 
 //=======================================================================
 void StdMeshers_SMESHBlock::Load(const TopoDS_Shell& theShell)
 {
-  
   TopoDS_Vertex aV000, aV001;
   //
   Load(theShell, aV000, aV001);
 }
+
 //=======================================================================
 //function : Load
 //purpose  : 
@@ -1416,12 +1739,13 @@ void StdMeshers_SMESHBlock::Load(const TopoDS_Shell& theShell,
   bool bOk;
   //
   myShapeIDMap.Clear();  
-  bOk=myTBlock.LoadBlockShapes(myShell, theV000, theV001, myShapeIDMap);
+  bOk = myTBlock.LoadBlockShapes(myShell, theV000, theV001, myShapeIDMap);
   if (!bOk) {
     myErrorStatus=2;
     return;
   }
 }
+
 //=======================================================================
 //function : ComputeParameters
 //purpose  : 
@@ -1431,24 +1755,25 @@ void StdMeshers_SMESHBlock::ComputeParameters(const gp_Pnt& thePnt,
 {
   ComputeParameters(thePnt, myShell, theXYZ);
 }
+
 //=======================================================================
 //function : ComputeParameters
 //purpose  : 
 //=======================================================================
 void StdMeshers_SMESHBlock::ComputeParameters(const gp_Pnt& thePnt,
                                              const TopoDS_Shape& theShape,
-                                             gp_XYZ& theXYZ)
+                                              gp_XYZ& theXYZ)
 {
   myErrorStatus=0;
   //
   int aID;
   bool bOk;
   //
-  aID=ShapeID(theShape);
+  aID = ShapeID(theShape);
   if (myErrorStatus) {
     return;
   }
-  bOk=myTBlock.ComputeParameters(thePnt, theXYZ, aID);
+  bOk = myTBlock.ComputeParameters(thePnt, theXYZ, aID);
   if (!bOk) {
     myErrorStatus=4; // problems with computation Parameters 
     return;
@@ -1469,12 +1794,12 @@ void StdMeshers_SMESHBlock::ComputeParameters(const double& theU,
   int aID;
   bool bOk=false;
   //
-  aID=ShapeID(theShape);
+  aID = ShapeID(theShape);
   if (myErrorStatus) {
     return;
   }
   if ( SMESH_Block::IsEdgeID( aID ))
-      bOk=myTBlock.EdgeParameters( aID, theU, theXYZ );
+      bOk = myTBlock.EdgeParameters( aID, theU, theXYZ );
   if (!bOk) {
     myErrorStatus=4; // problems with computation Parameters 
     return;
@@ -1492,6 +1817,7 @@ void StdMeshers_SMESHBlock::ComputeParameters(const double& theU,
   //
   Point(theParams, aS, aP3D);
 }
+
 //=======================================================================
 //function : Point
 //purpose  : 
@@ -1500,15 +1826,15 @@ void StdMeshers_SMESHBlock::ComputeParameters(const double& theU,
                                   const TopoDS_Shape& theShape,
                                   gp_Pnt& aP3D)
 {
-  myErrorStatus=0;
+  myErrorStatus = 0;
   //
   int aID;
-  bool bOk=false;
+  bool bOk = false;
   gp_XYZ aXYZ(99.,99.,99.);
   aP3D.SetXYZ(aXYZ);
   //
   if (theShape.IsNull()) {
-    bOk=myTBlock.ShellPoint(theParams, aXYZ);
+    bOk = myTBlock.ShellPoint(theParams, aXYZ);
   }
   //
   else {
@@ -1518,14 +1844,14 @@ void StdMeshers_SMESHBlock::ComputeParameters(const double& theU,
     }
     //
     if (SMESH_Block::IsVertexID(aID)) {
-      bOk=myTBlock.VertexPoint(aID, aXYZ);
+      bOk = myTBlock.VertexPoint(aID, aXYZ);
     }
     else if (SMESH_Block::IsEdgeID(aID)) {
-      bOk=myTBlock.EdgePoint(aID, theParams, aXYZ);
+      bOk = myTBlock.EdgePoint(aID, theParams, aXYZ);
     }
     //
     else if (SMESH_Block::IsFaceID(aID)) {
-      bOk=myTBlock.FacePoint(aID, theParams, aXYZ);
+      bOk = myTBlock.FacePoint(aID, theParams, aXYZ);
     }
   }
   if (!bOk) {
@@ -1534,6 +1860,7 @@ void StdMeshers_SMESHBlock::ComputeParameters(const double& theU,
   }
   aP3D.SetXYZ(aXYZ);
 }
+
 //=======================================================================
 //function : ShapeID
 //purpose  : 
@@ -1561,6 +1888,7 @@ int StdMeshers_SMESHBlock::ShapeID(const TopoDS_Shape& theShape)
   myErrorStatus=2; // unknown shape;
   return aID;
 }
+
 //=======================================================================
 //function : Shape
 //purpose  : 
@@ -1580,3 +1908,5 @@ const TopoDS_Shape& StdMeshers_SMESHBlock::Shape(const int theID)
   const TopoDS_Shape& aS=myShapeIDMap.FindKey(theID);
   return aS;
 }
+
+
index fdc189bbd95a4f5d41db5c20570aedd3c168d1ba..18787686c434217f5ed50d29bed1d8aeb382f77f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include <TopoDS_Vertex.hxx>
 #include <TopoDS_Shell.hxx>
 #include <TopTools_IndexedMapOfOrientedShape.hxx>
+#include <TColStd_MapOfInteger.hxx>
 
 #include "SMESH_Block.hxx"
 
+#include "SMESH_MesherHelper.hxx"
+
 typedef std::map< double, std::vector<const SMDS_MeshNode*> > StdMeshers_IJNodeMap;
 
 class STDMESHERS_EXPORT StdMeshers_SMESHBlock {
@@ -167,7 +170,7 @@ class STDMESHERS_EXPORT StdMeshers_Penta_3D {
   public: // methods
     StdMeshers_Penta_3D();
     
-    //~StdMeshers_Penta_3D();
+    ~StdMeshers_Penta_3D();
     
     bool Compute(SMESH_Mesh& , const TopoDS_Shape& );
     
@@ -183,10 +186,10 @@ class STDMESHERS_EXPORT StdMeshers_Penta_3D {
       return myTol3D;
     }
 
-    static bool LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
-                            const TopoDS_Face&     theFace,
-                            const TopoDS_Edge&     theBaseEdge,
-                            SMESHDS_Mesh*          theMesh);
+    bool LoadIJNodes(StdMeshers_IJNodeMap & theIJNodes,
+                     const TopoDS_Face&     theFace,
+                     const TopoDS_Edge&     theBaseEdge,
+                     SMESHDS_Mesh*          theMesh);
     // Load nodes bound to theFace into column (vectors) and rows
     // of theIJNodes.
     // The value of theIJNodes map is a vector of ordered nodes so
@@ -253,6 +256,9 @@ class STDMESHERS_EXPORT StdMeshers_Penta_3D {
     //
     vector<StdMeshers_IJNodeMap> myWallNodesMaps; // nodes on a face
     vector<gp_XYZ>            myShapeXYZ; // point on each sub-shape
+
+    bool myCreateQuadratic;
+    SMESH_MesherHelper* myTool; // toll for working with quadratic elements
 };
 
 #endif
index 6672e2565b6416d1bb3f04d0f71321c7ceefd812..2591d309d49f73e2a62f2fdf5e6709517a536950 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -40,7 +40,7 @@ StdMeshers_Propagation::StdMeshers_Propagation (int hypId, int studyId,
      : SMESH_Hypothesis(hypId, studyId, gen)
 {
   _name = GetName();
-  _param_algo_dim = -2;
+  _param_algo_dim = -1; // 1D auxiliary
 }
 
 //=============================================================================
index 7f255e11646cf19d6f86ed4a3cfd63548aa11252..3f6fb714a6adb52335322aa1e35f866c97976c86 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 60dc49499a294c3105ab47ca96822d07a64afb65..b16eeb58e41bdec8eb8d38a2d167597121233c8f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 3102422b81f747147261dcf5b3c8b4794831bb44..3d00d7acd6fec8a768822ca9ab3c0421b6f5b355 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 93bbc2e5fc9c9baa268adb414fbcd0191154bec9..5d330d58598f8ae0f352ada0b3a754daa4e93aad 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -46,6 +46,7 @@
 #include <Geom2d_Curve.hxx>
 #include <GeomAdaptor_Curve.hxx>
 #include <GCPnts_UniformAbscissa.hxx>
+#include <TopExp.hxx>
 
 #include <Precision.hxx>
 #include <gp_Pnt2d.hxx>
@@ -80,6 +81,7 @@ StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D (int hypId, int studyId, SMES
   _name = "Quadrangle_2D";
   _shapeType = (1 << TopAbs_FACE);
   _compatibleHypothesis.push_back("QuadranglePreference");
+  myTool = 0;
 }
 
 //=============================================================================
@@ -91,6 +93,8 @@ StdMeshers_Quadrangle_2D::StdMeshers_Quadrangle_2D (int hypId, int studyId, SMES
 StdMeshers_Quadrangle_2D::~StdMeshers_Quadrangle_2D()
 {
   MESSAGE("StdMeshers_Quadrangle_2D::~StdMeshers_Quadrangle_2D");
+  if ( myTool )
+    delete myTool;
 }
 
 //=============================================================================
@@ -128,11 +132,17 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
   aMesh.GetSubMesh(aShape);
 
+  if ( !myTool )
+    myTool = new SMESH_MesherHelper(aMesh);
+  _quadraticMesh = myTool->IsQuadraticSubMesh(aShape);
+
   //FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
   FaceQuadStruct* quad = CheckNbEdges(aMesh, aShape);
 
-  if (!quad)
+  if (!quad) {
+    delete myTool; myTool = 0;
     return false;
+  }
 
   if(myQuadranglePreference) {
     int n1 = quad->nbPts[0];
@@ -144,14 +154,18 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
     ntmp = ntmp*2;
     if( nfull==ntmp && ( (n1!=n3) || (n2!=n4) ) ) {
       // special path for using only quandrangle faces
-      return ComputeQuadPref(aMesh, aShape, quad);
+      bool ok = ComputeQuadPref(aMesh, aShape, quad);
+      delete myTool; myTool = 0;
+      return ok;
     }
   }
 
   // set normalized grid on unit square in parametric domain
   SetNormalizedGrid(aMesh, aShape, quad);
-  if (!quad)
+  if (!quad) {
+    delete myTool; myTool = 0;
     return false;
+  }
 
   // --- compute 3D values on points, store points & quadrangles
 
@@ -180,7 +194,7 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
       quad->uv_grid[ij].node = node;
     }
   }
-
+  
   // mesh faces
 
   //             [2]
@@ -194,16 +208,16 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   //     0 > > > > > > > > nbhoriz
   //              i
   //             [0]
-
+  
   i = 0;
   int ilow = 0;
   int iup = nbhoriz - 1;
   if (quad->isEdgeOut[3]) { ilow++; } else { if (quad->isEdgeOut[1]) iup--; }
-
+  
   int jlow = 0;
   int jup = nbvertic - 1;
   if (quad->isEdgeOut[0]) { jlow++; } else { if (quad->isEdgeOut[2]) jup--; }
-
+  
   // regular quadrangles
   for (i = ilow; i < iup; i++) {
     for (j = jlow; j < jup; j++) {
@@ -212,11 +226,12 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
       b = quad->uv_grid[j * nbhoriz + i + 1].node;
       c = quad->uv_grid[(j + 1) * nbhoriz + i + 1].node;
       d = quad->uv_grid[(j + 1) * nbhoriz + i].node;
-      SMDS_MeshFace * face = meshDS->AddFace(a, b, c, d);
+      //SMDS_MeshFace * face = meshDS->AddFace(a, b, c, d);
+      SMDS_MeshFace* face = myTool->AddFace(a, b, c, d);
       meshDS->SetMeshElementOnShape(face, geomFaceID);
     }
   }
-
+  
   UVPtStruct *uv_e0 = quad->uv_edges[0];
   UVPtStruct *uv_e1 = quad->uv_edges[1];
   UVPtStruct *uv_e2 = quad->uv_edges[2];
@@ -225,7 +240,7 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   double eps = Precision::Confusion();
 
   // Boundary quadrangles
-
+  
   if (quad->isEdgeOut[0]) {
     // Down edge is out
     // 
@@ -237,14 +252,14 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
     // .  .  .  .  .  .  .  .  . __ down edge nodes
     // 
     // >->->->->->->->->->->->-> -- direction of processing
-
+      
     int g = 0; // number of last processed node in the regular grid
-
+    
     // number of last node of the down edge to be processed
     int stop = nbdown - 1;
     // if right edge is out, we will stop at a node, previous to the last one
     if (quad->isEdgeOut[1]) stop--;
-
+    
     // for each node of the down edge find nearest node
     // in the first row of the regular grid and link them
     for (i = 0; i < stop; i++) {
@@ -252,18 +267,19 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
       a = uv_e0[i].node;
       b = uv_e0[i + 1].node;
       gp_Pnt pb (b->X(), b->Y(), b->Z());
-
+      
       // find node c in the regular grid, which will be linked with node b
       int near = g;
       if (i == stop - 1) {
         // right bound reached, link with the rightmost node
         near = iup;
         c = quad->uv_grid[nbhoriz + iup].node;
-      } else {
+      }
+      else {
         // find in the grid node c, nearest to the b
         double mind = RealLast();
         for (int k = g; k <= iup; k++) {
-
+          
           const SMDS_MeshNode *nk;
           if (k < ilow) // this can be, if left edge is out
             nk = uv_e3[1].node; // get node from the left edge
@@ -283,14 +299,17 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
       }
 
       if (near == g) { // make triangle
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+        //SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+        SMDS_MeshFace* face = myTool->AddFace(a, b, c);
         meshDS->SetMeshElementOnShape(face, geomFaceID);
-      } else { // make quadrangle
+      }
+      else { // make quadrangle
         if (near - 1 < ilow)
           d = uv_e3[1].node;
         else
           d = quad->uv_grid[nbhoriz + near - 1].node;
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+        //SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+        SMDS_MeshFace* face = myTool->AddFace(a, b, c, d);
         meshDS->SetMeshElementOnShape(face, geomFaceID);
 
         // if node d is not at position g - make additional triangles
@@ -301,7 +320,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
               d = uv_e3[1].node;
             else
               d = quad->uv_grid[nbhoriz + k - 1].node;
-            SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+            //SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+            SMDS_MeshFace* face = myTool->AddFace(a, c, d);
             meshDS->SetMeshElementOnShape(face, geomFaceID);
           }
         }
@@ -363,14 +383,17 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
         }
 
         if (near == g) { // make triangle
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+          //SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+          SMDS_MeshFace* face = myTool->AddFace(a, b, c);
           meshDS->SetMeshElementOnShape(face, geomFaceID);
-        } else { // make quadrangle
+        }
+        else { // make quadrangle
           if (near + 1 > iup)
             d = uv_e1[nbright - 2].node;
           else
             d = quad->uv_grid[nbhoriz*(nbvertic - 2) + near + 1].node;
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+          //SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+          SMDS_MeshFace* face = myTool->AddFace(a, b, c, d);
           meshDS->SetMeshElementOnShape(face, geomFaceID);
 
           if (near + 1 < g) { // if d not is at g - make additional triangles
@@ -380,7 +403,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
                 d = uv_e1[nbright - 2].node;
               else
                 d = quad->uv_grid[nbhoriz*(nbvertic - 2) + k + 1].node;
-              SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+              //SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+              SMDS_MeshFace* face = myTool->AddFace(a, c, d);
               meshDS->SetMeshElementOnShape(face, geomFaceID);
             }
           }
@@ -428,14 +452,17 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
       }
 
       if (near == g) { // make triangle
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+        //SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+        SMDS_MeshFace* face = myTool->AddFace(a, b, c);
         meshDS->SetMeshElementOnShape(face, geomFaceID);
-      } else { // make quadrangle
+      }
+      else { // make quadrangle
         if (near - 1 < jlow)
           d = uv_e0[nbdown - 2].node;
         else
           d = quad->uv_grid[nbhoriz*near - 2].node;
-        SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+        //SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+        SMDS_MeshFace* face = myTool->AddFace(a, b, c, d);
         meshDS->SetMeshElementOnShape(face, geomFaceID);
 
         if (near - 1 > g) { // if d not is at g - make additional triangles
@@ -445,7 +472,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
               d = uv_e0[nbdown - 2].node;
             else
               d = quad->uv_grid[nbhoriz*k - 2].node;
-            SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+            //SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+            SMDS_MeshFace* face = myTool->AddFace(a, c, d);
             meshDS->SetMeshElementOnShape(face, geomFaceID);
           }
         }
@@ -490,14 +518,17 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
         }
 
         if (near == g) { // make triangle
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+          //SMDS_MeshFace* face = meshDS->AddFace(a, b, c);
+          SMDS_MeshFace* face = myTool->AddFace(a, b, c);
           meshDS->SetMeshElementOnShape(face, geomFaceID);
-        } else { // make quadrangle
+        }
+        else { // make quadrangle
           if (near + 1 > jup)
             d = uv_e2[1].node;
           else
             d = quad->uv_grid[nbhoriz*(near + 1) + 1].node;
-          SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+          //SMDS_MeshFace* face = meshDS->AddFace(a, b, c, d);
+          SMDS_MeshFace* face = myTool->AddFace(a, b, c, d);
           meshDS->SetMeshElementOnShape(face, geomFaceID);
 
           if (near + 1 < g) { // if d not is at g - make additional triangles
@@ -507,7 +538,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
                 d = uv_e2[1].node;
               else
                 d = quad->uv_grid[nbhoriz*(k + 1) + 1].node;
-              SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+              //SMDS_MeshFace* face = meshDS->AddFace(a, c, d);
+              SMDS_MeshFace* face = myTool->AddFace(a, c, d);
               meshDS->SetMeshElementOnShape(face, geomFaceID);
             }
           }
@@ -518,6 +550,8 @@ bool StdMeshers_Quadrangle_2D::Compute (SMESH_Mesh& aMesh,
   }
 
   QuadDelete(quad);
+  delete myTool; myTool = 0;
+
   bool isOk = true;
   return isOk;
 }
@@ -557,7 +591,13 @@ FaceQuadStruct* StdMeshers_Quadrangle_2D::CheckNbEdges(SMESH_Mesh & aMesh,
     int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
     if (nbEdges < 4) {
       quad->edge[nbEdges] = E;
-      quad->nbPts[nbEdges] = nb + 2; // internal points + 2 extrema
+      if(!_quadraticMesh) {
+        quad->nbPts[nbEdges] = nb + 2; // internal points + 2 extrema
+      }
+      else {
+        int tmp = nb/2;
+        quad->nbPts[nbEdges] = tmp + 2; // internal not medium points + 2 extrema
+      }
     }
     nbEdges++;
   }
@@ -571,18 +611,21 @@ FaceQuadStruct* StdMeshers_Quadrangle_2D::CheckNbEdges(SMESH_Mesh & aMesh,
   return quad;
 }
 
-
 //=============================================================================
 /*!
- *  
+ *  CheckAnd2Dcompute
  */
 //=============================================================================
 
 FaceQuadStruct *StdMeshers_Quadrangle_2D::CheckAnd2Dcompute
-  (SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) throw(SALOME_Exception)
+                           (SMESH_Mesh & aMesh,
+                            const TopoDS_Shape & aShape,
+                            const bool CreateQuadratic) throw(SALOME_Exception)
 {
   Unexpect aCatch(SalomeException);
 
+  _quadraticMesh = CreateQuadratic;
+
   FaceQuadStruct *quad = CheckNbEdges(aMesh, aShape);
 
   if(!quad) return 0;
@@ -1185,13 +1228,13 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref
       for(j=1; j<nl; j++) {
         if(WisF) {
           SMDS_MeshFace* F =
-            meshDS->AddFace(NodesL.Value(i,j), NodesL.Value(i+1,j),
+            myTool->AddFace(NodesL.Value(i,j), NodesL.Value(i+1,j),
                             NodesL.Value(i+1,j+1), NodesL.Value(i,j+1));
           meshDS->SetMeshElementOnShape(F, geomFaceID);
         }
         else {
           SMDS_MeshFace* F =
-            meshDS->AddFace(NodesL.Value(i,j), NodesL.Value(i,j+1),
+            myTool->AddFace(NodesL.Value(i,j), NodesL.Value(i,j+1),
                             NodesL.Value(i+1,j+1), NodesL.Value(i+1,j));
           meshDS->SetMeshElementOnShape(F, geomFaceID);
         }
@@ -1252,13 +1295,13 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref
       for(j=1; j<nr; j++) {
         if(WisF) {
           SMDS_MeshFace* F =
-            meshDS->AddFace(NodesR.Value(i,j), NodesR.Value(i+1,j),
+            myTool->AddFace(NodesR.Value(i,j), NodesR.Value(i+1,j),
                             NodesR.Value(i+1,j+1), NodesR.Value(i,j+1));
           meshDS->SetMeshElementOnShape(F, geomFaceID);
         }
         else {
           SMDS_MeshFace* F =
-            meshDS->AddFace(NodesR.Value(i,j), NodesR.Value(i,j+1),
+            myTool->AddFace(NodesR.Value(i,j), NodesR.Value(i,j+1),
                             NodesR.Value(i+1,j+1), NodesR.Value(i+1,j));
           meshDS->SetMeshElementOnShape(F, geomFaceID);
         }
@@ -1335,13 +1378,13 @@ bool StdMeshers_Quadrangle_2D::ComputeQuadPref
     for(j=1; j<nbv; j++) {
       if(WisF) {
         SMDS_MeshFace* F =
-          meshDS->AddFace(NodesC.Value(i,j), NodesC.Value(i+1,j),
+          myTool->AddFace(NodesC.Value(i,j), NodesC.Value(i+1,j),
                           NodesC.Value(i+1,j+1), NodesC.Value(i,j+1));
         meshDS->SetMeshElementOnShape(F, geomFaceID);
       }
       else {
         SMDS_MeshFace* F =
-          meshDS->AddFace(NodesC.Value(i,j), NodesC.Value(i,j+1),
+          myTool->AddFace(NodesC.Value(i,j), NodesC.Value(i,j+1),
                           NodesC.Value(i+1,j+1), NodesC.Value(i+1,j));
         meshDS->SetMeshElementOnShape(F, geomFaceID);
       }
@@ -1389,16 +1432,47 @@ UVPtStruct* StdMeshers_Quadrangle_2D::LoadEdgePoints2 (SMESH_Mesh & aMesh,
 
   map<double, const SMDS_MeshNode *> params;
   SMDS_NodeIteratorPtr ite = aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
+  int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
 
-  while(ite->more()) {
-    const SMDS_MeshNode* node = ite->next();
-    const SMDS_EdgePosition* epos =
-      static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-    double param = epos->GetUParameter();
-    params[param] = node;
+  if(!_quadraticMesh) {
+    while(ite->more()) {
+      const SMDS_MeshNode* node = ite->next();
+      const SMDS_EdgePosition* epos =
+        static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
+      double param = epos->GetUParameter();
+      params[param] = node;
+    }
+  }
+  else {
+    vector<const SMDS_MeshNode*> nodes(nbPoints+2);
+    nodes[0] = idFirst;
+    nodes[nbPoints+1] = idLast;
+    nbPoints = nbPoints/2;
+    int nn = 1;
+    while(ite->more()) {
+      const SMDS_MeshNode* node = ite->next();
+      nodes[nn++] = node;
+      // check if node is medium
+      bool IsMedium = false;
+      SMDS_ElemIteratorPtr itn = node->GetInverseElementIterator();
+      while (itn->more()) {
+        const SMDS_MeshElement* elem = itn->next();
+        if ( elem->GetType() != SMDSAbs_Edge )
+          continue;
+        if(elem->IsMediumNode(node)) {
+          IsMedium = true;
+          break;
+        }
+      }
+      if(IsMedium)
+        continue;
+      const SMDS_EdgePosition* epos =
+        static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
+      double param = epos->GetUParameter();
+      params[param] = node;
+    }
   }
 
-  int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
   if (nbPoints != params.size()) {
     MESSAGE( "BAD NODE ON EDGE POSITIONS" );
     return 0;
@@ -1523,21 +1597,60 @@ UVPtStruct* StdMeshers_Quadrangle_2D::LoadEdgePoints (SMESH_Mesh & aMesh,
 
   // --- edge internal IDNodes (relies on good order storage, not checked)
 
+//  if(_quadraticMesh) {
+    // fill myNLinkNodeMap
+//    SMDS_ElemIteratorPtr iter = aMesh.GetSubMesh(E)->GetSubMeshDS()->GetElements();
+//    while(iter->more()) {
+//      const SMDS_MeshElement* elem = iter->next();
+//      SMDS_ElemIteratorPtr nodeIt = elem->nodesIterator();
+//      const SMDS_MeshNode* n1 = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+//      const SMDS_MeshNode* n2 = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+//      const SMDS_MeshNode* n3 = static_cast<const SMDS_MeshNode*>( nodeIt->next() );
+//      NLink link(( n1 < n2 ? n1 : n2 ), ( n1 < n2 ? n2 : n1 ));
+//      myNLinkNodeMap.insert(NLinkNodeMap::value_type(link,n3));
+//      myNLinkNodeMap[link] = n3;
+//    }
+//  }
+
   map<double, const SMDS_MeshNode *> params;
   SMDS_NodeIteratorPtr ite = aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
+  int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
 
-  while(ite->more())
-  {
-    const SMDS_MeshNode* node = ite->next();
-    const SMDS_EdgePosition* epos =
-      static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
-    double param = epos->GetUParameter();
-    params[param] = node;
+  if(!_quadraticMesh) {
+    while(ite->more()) {
+      const SMDS_MeshNode* node = ite->next();
+      const SMDS_EdgePosition* epos =
+        static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
+      double param = epos->GetUParameter();
+      params[param] = node;
+    }
+  }
+  else {
+    nbPoints = nbPoints/2;
+    while(ite->more()) {
+      const SMDS_MeshNode* node = ite->next();
+      // check if node is medium
+      bool IsMedium = false;
+      SMDS_ElemIteratorPtr itn = node->GetInverseElementIterator();
+      while (itn->more()) {
+        const SMDS_MeshElement* elem = itn->next();
+        if ( elem->GetType() != SMDSAbs_Edge )
+          continue;
+        if(elem->IsMediumNode(node)) {
+          IsMedium = true;
+          break;
+        }
+      }
+      if(IsMedium)
+        continue;
+      const SMDS_EdgePosition* epos =
+        static_cast<const SMDS_EdgePosition*>(node->GetPosition().get());
+      double param = epos->GetUParameter();
+      params[param] = node;
+    }
   }
 
-  int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-  if (nbPoints != params.size())
-  {
+  if (nbPoints != params.size()) {
     MESSAGE( "BAD NODE ON EDGE POSITIONS" );
     return 0;
   }
index 5d117fd5213fd5ea7d4e46ad3dea2c448178c30c..ac7e63108909501b3c915216a6a1fff53233ed03 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
 #include "SMESH_Mesh.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
-class SMDS_MeshNode;
+#include "gp_XY.hxx"
+
+#include "SMESH_MesherHelper.hxx"
+
+//class SMDS_MeshNode;
 
 typedef struct uvPtStruct
 {
@@ -77,11 +81,17 @@ public:
     throw (SALOME_Exception);
 
   FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh,
-                                   const TopoDS_Shape& aShape)
+                                   const TopoDS_Shape& aShape,
+                                    const bool CreateQuadratic)
     throw (SALOME_Exception);
 
   static void QuadDelete(FaceQuadStruct* quad);
 
+  /**
+   * Returns NLinkNodeMap from myTool
+   */
+  const NLinkNodeMap& GetNLinkNodeMap() { return myTool->GetNLinkNodeMap(); }
+
   ostream & SaveTo(ostream & save);
   istream & LoadFrom(istream & load);
   friend ostream & operator << (ostream & save, StdMeshers_Quadrangle_2D & hyp);
@@ -122,6 +132,8 @@ protected:
   // construction of quadrangles if the number of nodes on opposite edges
   // is not the same in the case where the global number of nodes on edges is even
   bool myQuadranglePreference;
+
+  SMESH_MesherHelper* myTool; // toll for working with quadratic elements
 };
 
 #endif
index db601eec8532a42e33d53cf3b0378fb848d3e177..f6146f8b6e29d4e94720eb64617ddaa96e4a5c1f 100644 (file)
@@ -28,6 +28,8 @@
 #ifndef _StdMeshers_QuadraticMesh_HXX_
 #define _StdMeshers_QuadraticMesh_HXX_
 
+#include "SMESH_StdMeshers.hxx"
+
 #include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 
@@ -39,7 +41,7 @@
  * The 3D mesher generates quadratic volumes only if all boundary faces
  * are quadratic ones, else it fails.
  */
-class StdMeshers_QuadraticMesh:public SMESH_Hypothesis
+class STDMESHERS_EXPORT StdMeshers_QuadraticMesh:public SMESH_Hypothesis
 {
  public:
   StdMeshers_QuadraticMesh(int hypId, int studyId, SMESH_Gen * gen);
index 1723d6549b3627d60e9388ded200925cdddf6982..9e76b7ba9d3cfe2611e4aeb2c73bf5ca9e8e413e 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -31,6 +31,8 @@
 #include "StdMeshers_Distribution.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_Mesh.hxx"
+#include "SMESH_HypoFilter.hxx"
+#include "SMESH_subMesh.hxx"
 
 #include "StdMeshers_LocalLength.hxx"
 #include "StdMeshers_NumberOfSegments.hxx"
@@ -42,7 +44,6 @@
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
 #include "SMDS_EdgePosition.hxx"
-#include "SMESH_subMesh.hxx"
 
 #include "Utils_SALOME_Exception.hxx"
 #include "utilities.h"
@@ -88,6 +89,8 @@ StdMeshers_Regular_1D::StdMeshers_Regular_1D(int hypId, int studyId,
        _compatibleHypothesis.push_back("Deflection1D");
        _compatibleHypothesis.push_back("Arithmetic1D");
        _compatibleHypothesis.push_back("AutomaticLength");
+
+       _compatibleHypothesis.push_back("QuadraticMesh"); // auxiliary !!!
 }
 
 //=============================================================================
@@ -107,22 +110,37 @@ StdMeshers_Regular_1D::~StdMeshers_Regular_1D()
 //=============================================================================
 
 bool StdMeshers_Regular_1D::CheckHypothesis
-                         (SMESH_Mesh& aMesh,
-                          const TopoDS_Shape& aShape,
+                         (SMESH_Mesh&                          aMesh,
+                          const TopoDS_Shape&                  aShape,
                           SMESH_Hypothesis::Hypothesis_Status& aStatus)
 {
   _hypType = NONE;
+  _quadraticMesh = false;
+
+  const bool ignoreAuxiliaryHyps = false;
+  const list <const SMESHDS_Hypothesis * > & hyps =
+    GetUsedHypothesis(aMesh, aShape, ignoreAuxiliaryHyps);
+
+  // find non-auxiliary hypothesis
+  const SMESHDS_Hypothesis *theHyp = 0;
+  list <const SMESHDS_Hypothesis * >::const_iterator h = hyps.begin();
+  for ( ; h != hyps.end(); ++h ) {
+    if ( static_cast<const SMESH_Hypothesis*>(*h)->IsAuxiliary() ) {
+      if ( strcmp( "QuadraticMesh", (*h)->GetName() ) == 0 )
+        _quadraticMesh = true;
+    }
+    else {
+      if ( !theHyp )
+        theHyp = *h; // use only the first non-auxiliary hypothesis
+    }
+  }
 
-  const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
-  if (hyps.size() == 0)
+  if ( !theHyp )
   {
     aStatus = SMESH_Hypothesis::HYP_MISSING;
     return false;  // can't work without a hypothesis
   }
 
-  // use only the first hypothesis
-  const SMESHDS_Hypothesis *theHyp = hyps.front();
-
   string hypName = theHyp->GetName();
 
   if (hypName == "LocalLength")
@@ -267,7 +285,8 @@ static bool computeParamByFunc(Adaptor3d_Curve& C3d, double first, double last,
                                int nbSeg, Function& func,
                                list<double>& theParams)
 {
-  OSD::SetSignal( true );
+  // never do this way
+  //OSD::SetSignal( true );
 
   if( nbSeg<=0 )
     return false;
@@ -327,7 +346,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);
 
@@ -348,21 +367,34 @@ 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:
         {
           double scale = _value[ SCALE_FACTOR_IND ];
-          if ( theReverse )
-            scale = 1. / scale;
-          double alpha = pow( scale , 1.0 / (_ivalue[ NB_SEGMENTS_IND ] - 1));
-          double factor = (l - f) / (1 - pow( alpha,_ivalue[ NB_SEGMENTS_IND ]));
-
-          int i, NbPoints = 1 + _ivalue[ NB_SEGMENTS_IND ];
-          for ( i = 2; i < NbPoints; i++ )
-          {
-            double param = f + factor * (1 - pow(alpha, i - 1));
-            theParams.push_back( param );
+
+          if (fabs(scale - 1.0) < Precision::Confusion()) {
+            // special case to avoid division on zero
+            for (int i = 1; i < NbSegm; i++) {
+              double param = f + (l - f) * i / NbSegm;
+              theParams.push_back( param );
+            }
+          } else {
+            // general case of scale distribution
+            if ( theReverse )
+              scale = 1.0 / scale;
+
+            double alpha = pow(scale, 1.0 / (NbSegm - 1));
+            double factor = (l - f) / (1.0 - pow(alpha, NbSegm));
+
+            for (int i = 1; i < NbSegm; i++) {
+              double param = f + factor * (1.0 - pow(alpha, i));
+              theParams.push_back( param );
+            }
           }
           return true;
         }
@@ -390,7 +422,6 @@ bool StdMeshers_Regular_1D::computeInternalParameters(const TopoDS_Edge& theEdge
         return false;
       }
     }
-
     GCPnts_UniformAbscissa Discret(C3d, eltSize, f, l);
     if ( !Discret.IsDone() )
       return false;
@@ -470,7 +501,7 @@ bool StdMeshers_Regular_1D::computeInternalParameters(const TopoDS_Edge& theEdge
 
   case DEFLECTION: {
 
-    GCPnts_UniformDeflection Discret(C3d, _value[ DEFLECTION_IND ], true);
+    GCPnts_UniformDeflection Discret(C3d, _value[ DEFLECTION_IND ], f, l, true);
     if ( !Discret.IsDone() )
       return false;
 
@@ -527,24 +558,25 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
 
   ASSERT(!VLast.IsNull());
   lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-  if (!lid->more())
-  {
+  if (!lid->more()) {
     MESSAGE (" NO NODE BUILT ON VERTEX ");
     return false;
   }
   const SMDS_MeshNode * idLast = lid->next();
 
-  if (!Curve.IsNull())
-  {
+  if (!Curve.IsNull()) {
     list< double > params;
     bool reversed = false;
     if ( !_mainEdge.IsNull() )
       reversed = aMesh.IsReversedInChain( EE, _mainEdge );
     try {
-      if ( ! computeInternalParameters( E, params, reversed ))
+      if ( ! computeInternalParameters( E, params, reversed )) {
+        //cout << "computeInternalParameters() failed" <<endl;
         return false;
+      }
     }
     catch ( Standard_Failure ) {
+      //cout << "computeInternalParameters() failed, Standard_Failure" <<endl;
       return false;
     }
 
@@ -552,9 +584,14 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
     // only internal nodes receive an edge position with param on curve
 
     const SMDS_MeshNode * idPrev = idFirst;
+    double parPrev = f;
+    double parLast = l;
+//     if(reversed) {
+//       parPrev = l;
+//       parLast = f;
+//     }
     
-    for (list<double>::iterator itU = params.begin(); itU != params.end(); itU++)
-    {
+    for (list<double>::iterator itU = params.begin(); itU != params.end(); itU++) {
       double param = *itU;
       gp_Pnt P = Curve->Value(param);
 
@@ -562,17 +599,39 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
       SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
       meshDS->SetNodeOnEdge(node, shapeID, param);
 
-      SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
-      meshDS->SetMeshElementOnShape(edge, shapeID);
+      if(_quadraticMesh) {
+        // create medium node
+        double prm = ( parPrev + param )/2;
+        gp_Pnt PM = Curve->Value(prm);
+        SMDS_MeshNode * NM = meshDS->AddNode(PM.X(), PM.Y(), PM.Z());
+        meshDS->SetNodeOnEdge(NM, shapeID, prm);
+        SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node, NM);
+        meshDS->SetMeshElementOnShape(edge, shapeID);
+      }
+      else {
+        SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
+        meshDS->SetMeshElementOnShape(edge, shapeID);
+      }
+
       idPrev = node;
+      parPrev = param;
+    }
+    if(_quadraticMesh) {
+      double prm = ( parPrev + parLast )/2;
+      gp_Pnt PM = Curve->Value(prm);
+      SMDS_MeshNode * NM = meshDS->AddNode(PM.X(), PM.Y(), PM.Z());
+      meshDS->SetNodeOnEdge(NM, shapeID, prm);
+      SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast, NM);
+      meshDS->SetMeshElementOnShape(edge, shapeID);
+    }
+    else {
+      SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast);
+      meshDS->SetMeshElementOnShape(edge, shapeID);
     }
-    SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast);
-    meshDS->SetMeshElementOnShape(edge, shapeID);
   }
-  else
-  {
+  else {
     // Edge is a degenerated Edge : We put n = 5 points on the edge.
-    int NbPoints = 5;
+    const int NbPoints = 5;
     BRep_Tool::Range(E, f, l);
     double du = (l - f) / (NbPoints - 1);
     //MESSAGE("************* Degenerated edge! *****************");
@@ -582,18 +641,36 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
     gp_Pnt P = BRep_Tool::Pnt(V1);
 
     const SMDS_MeshNode * idPrev = idFirst;
-    for (int i = 2; i < NbPoints; i++)
-    {
+    for (int i = 2; i < NbPoints; i++) {
       double param = f + (i - 1) * du;
       SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
+      if(_quadraticMesh) {
+        // create medium node
+        double prm = param - du/2.;
+        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);
+      }
+      else {
+        SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
+        meshDS->SetMeshElementOnShape(edge, shapeID);
+      }
       meshDS->SetNodeOnEdge(node, shapeID, param);
-
-      SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
-      meshDS->SetMeshElementOnShape(edge, shapeID);
       idPrev = node;
     }
-    SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast);
-    meshDS->SetMeshElementOnShape(edge, shapeID);
+    if(_quadraticMesh) {
+      // create medium node
+      double prm = l - du/2.;
+      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);
+    }
+    else {
+      SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast);
+      meshDS->SetMeshElementOnShape(edge, shapeID);
+    }
   }
   return true;
 }
@@ -604,40 +681,47 @@ bool StdMeshers_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aSh
  */
 //=============================================================================
 
-const list <const SMESHDS_Hypothesis *> & StdMeshers_Regular_1D::GetUsedHypothesis(
-       SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
+const list <const SMESHDS_Hypothesis *> &
+StdMeshers_Regular_1D::GetUsedHypothesis(SMESH_Mesh &         aMesh,
+                                         const TopoDS_Shape & aShape,
+                                         const bool           ignoreAuxiliary)
 {
   _usedHypList.clear();
-  _usedHypList = GetAppliedHypothesis(aMesh, aShape);  // copy
-  int nbHyp = _usedHypList.size();
   _mainEdge.Nullify();
+
+  SMESH_HypoFilter auxiliaryFilter, compatibleFilter;
+  auxiliaryFilter.Init( SMESH_HypoFilter::IsAuxiliary() );
+  const bool ignoreAux = true;
+  InitCompatibleHypoFilter( compatibleFilter, ignoreAux );
+
+  // get non-auxiliary assigned to aShape
+  int nbHyp = aMesh.GetHypotheses( aShape, compatibleFilter, _usedHypList, false );
+
   if (nbHyp == 0)
   {
     // Check, if propagated from some other edge
     if (aShape.ShapeType() == TopAbs_EDGE &&
         aMesh.IsPropagatedHypothesis(aShape, _mainEdge))
     {
-      // Propagation of 1D hypothesis from <aMainEdge> on this edge
-      //_usedHypList = GetAppliedHypothesis(aMesh, _mainEdge); // copy
-      // use a general method in order not to nullify _mainEdge
-      _usedHypList = SMESH_Algo::GetUsedHypothesis(aMesh, _mainEdge);  // copy
-      nbHyp = _usedHypList.size();
+      // Propagation of 1D hypothesis from <aMainEdge> on this edge;
+      // get non-auxiliary assigned to _mainEdge
+      nbHyp = aMesh.GetHypotheses( _mainEdge, compatibleFilter, _usedHypList, true );
     }
   }
-  if (nbHyp == 0)
+
+  if (nbHyp == 0) // nothing propagated nor assigned to aShape
   {
-    TopTools_ListIteratorOfListOfShape ancIt( aMesh.GetAncestors( aShape ));
-    for (; ancIt.More(); ancIt.Next())
-    {
-      const TopoDS_Shape& ancestor = ancIt.Value();
-      _usedHypList = GetAppliedHypothesis(aMesh, ancestor);    // copy
-      nbHyp = _usedHypList.size();
-      if (nbHyp == 1)
-        break;
-    }
+    SMESH_Algo::GetUsedHypothesis( aMesh, aShape, ignoreAuxiliary );
+    nbHyp = _usedHypList.size();
   }
-  if (nbHyp > 1)
-    _usedHypList.clear();      //only one compatible hypothesis allowed
+  else
+  {
+    // get auxiliary hyps from aShape
+    aMesh.GetHypotheses( aShape, auxiliaryFilter, _usedHypList, true );
+  }
+  if ( nbHyp > 1 && ignoreAuxiliary )
+    _usedHypList.clear(); //only one compatible non-auxiliary hypothesis allowed
+
   return _usedHypList;
 }
 
index 7bdd3cc017b27b88701391a25d5868acba08fa5e..c8a856d0b2b287550f33c885579de43514af0030 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -51,7 +51,7 @@ public:
                       const TopoDS_Shape& aShape);
 
   virtual const std::list <const SMESHDS_Hypothesis *> &
-    GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
+    GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape, const bool=true);
 
   ostream & SaveTo(ostream & save);
   istream & LoadFrom(istream & load);
index 46320768f3043d2b1653c6ae1c14afac224d73c2..14563332d058318b4ea780fb94ac2a0429cfdcb7 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d3bae0aaa93ba8357f26a020b135ff6bf7081951..c680b980279c74f7907596a460be2a76ef08ebeb 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index def734a2cbde74368aefe00b8461c70db7d9eaeb..5d7689351db037e037b905bee0f3cd699072625f 100644 (file)
@@ -16,7 +16,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -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 \
@@ -62,24 +62,26 @@ LIB_CLIENT_IDL = \
 
 ## pb in dependencies search
 LIB_CLIENT_IDL += \
+       SALOME_Comm.idl \
        SALOMEDS.idl \
        SALOME_GenericObj.idl \
        SALOME_ContainerManager.idl \
        SALOME_Component.idl \
-       GEOM_Gen.idl
+       GEOM_Gen.idl \
+       MED.idl
 
 LIB_SERVER_IDL = 
 
 # additionnal information to compil and link file
 
 CPPFLAGS += $(QT_INCLUDES) $(VTK_INCLUDES) $(OGL_INCLUDES) $(OCC_INCLUDES) $(PYTHON_INCLUDES) \
-            -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome \
+            $(KERNEL_CXXFLAGS) $(GUI_CXXFLAGS) $(GEOM_CXXFLAGS) \
             $(BOOST_CPPFLAGS) $(QWT_INCLUDES)
 
-CXXFLAGS += -I${KERNEL_ROOT_DIR}/include/salome -I${GUI_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
+CXXFLAGS += $(KERNEL_CXXFLAGS) $(GUI_CXXFLAGS) $(GEOM_CXXFLAGS)
 
 LDFLAGS += -lSMESH -lVTKViewer -lSalomeApp -lSMESHObject -lSMESHFiltersSelection $(OCC_KERNEL_LIBS) \
-         -lTKBO -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -L${GUI_ROOT_DIR}/lib/salome \
+         -lTKBO $(KERNEL_LDFLAGS) $(GEOM_LDFLAGS) $(GUI_LDFLAGS) \
          $(QWT_LIBS)
 
 @CONCLUDE@
index 50904baa9249f881b498f0adf3e351239c50dbea..589a487df4a192149497a421079aa0fbc1871aea 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -25,8 +25,6 @@
 //  Module : SMESH
 //  $Header$
 
-#include "SMESH_StdMeshersGUI.hxx"
-
 #include "StdMeshersGUI_StdHypothesisCreator.h"
 #include "StdMeshersGUI_NbSegmentsCreator.h"
 
index 0d66dc53aa903a601113b0c772855057ee3a08f0..e1a410cbaaa36e60cb73d82112ab522f4e641c4e 100644 (file)
@@ -1,11 +1,28 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #include "StdMeshersGUI_DistrPreview.h"
+#include "CASCatch.hxx"
+
 #include <Expr_NamedUnknown.hxx>
 #include <Expr_GeneralExpression.hxx>
-#include <CASCatch_CatchSignals.hxx>
-#include <CASCatch_Failure.hxx> 
-#include <CASCatch_ErrorHandler.hxx>
-#include <OSD.hxx>
 
 StdMeshersGUI_DistrPreview::StdMeshersGUI_DistrPreview( QWidget* p, StdMeshers::StdMeshers_NumberOfSegments_ptr h )
 : QwtPlot( p ),
@@ -223,20 +240,14 @@ void StdMeshersGUI_DistrPreview::update()
   delete[] y;
   x = y = 0;
 
-  OSD::SetSignal( true );
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   CASCatch_TRY
   {   
     replot();
   }
-  CASCatch_CATCH(CASCatch_Failure)
+  CASCatch_CATCH(Standard_Failure)
   {
-    aCatchSignals.Deactivate();
-    Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
   }
-  aCatchSignals.Deactivate();
 }
 
 void StdMeshersGUI_DistrPreview::showError()
@@ -273,22 +284,17 @@ bool isCorrectArg( const Handle( Expr_GeneralExpression )& expr )
 
 bool StdMeshersGUI_DistrPreview::init( const QString& str )
 {
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   bool parsed_ok = true;
   CASCatch_TRY
   {
     myExpr = ExprIntrp_GenExp::Create();
     myExpr->Process( ( Standard_CString ) str.latin1() );
   }
-  CASCatch_CATCH(CASCatch_Failure)
+  CASCatch_CATCH(Standard_Failure)
   {
-    aCatchSignals.Deactivate();
-    Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     parsed_ok = false;
   }
-  aCatchSignals.Deactivate();
 
   bool syntax = false, args = false;
   if( parsed_ok && myExpr->IsDone() )
@@ -318,23 +324,18 @@ double StdMeshersGUI_DistrPreview::funcValue( const double t, bool& ok )
 
 double StdMeshersGUI_DistrPreview::calc( bool& ok )
 {
-  OSD::SetSignal( true );
   double res = 0.0;
 
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   ok = true;
   CASCatch_TRY {   
     res = myExpr->Expression()->Evaluate( myVars, myValues );
   }
-  CASCatch_CATCH(CASCatch_Failure) {
-    aCatchSignals.Deactivate();
-    Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+  CASCatch_CATCH(Standard_Failure) {
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     ok = false;
     res = 0.0;
   }
-  aCatchSignals.Deactivate();
+
   return res;
 }
 
@@ -345,9 +346,6 @@ bool StdMeshersGUI_DistrPreview::isDone() const
 
 bool StdMeshersGUI_DistrPreview::convert( double& v ) const
 {
-  CASCatch_CatchSignals aCatchSignals;
-  aCatchSignals.Activate();
-
   bool ok = true;
   switch( myConv )
   {
@@ -355,12 +353,15 @@ bool StdMeshersGUI_DistrPreview::convert( double& v ) const
     {
       CASCatch_TRY
       { 
+       // in StdMeshers_NumberOfSegments.cc
+       // const double PRECISION = 1e-7;
+       //
+       if(v < -7) v = -7.0;
        v = pow( 10.0, v );
       }
-      CASCatch_CATCH(CASCatch_Failure)
+      CASCatch_CATCH(Standard_Failure)
       {
-       aCatchSignals.Deactivate();
-       Handle(CASCatch_Failure) aFail = CASCatch_Failure::Caught();
+       Handle(Standard_Failure) aFail = Standard_Failure::Caught();
        v = 0.0;
        ok = false;
       }
@@ -372,6 +373,6 @@ bool StdMeshersGUI_DistrPreview::convert( double& v ) const
       v = 0;
     break;
   }
-  aCatchSignals.Deactivate();
+
   return ok;
 }
index 88768a8a0efbfd2b9ab7a285f54a5b964c5e4052..ef230ccb38a5b96303933cf943effd8066bb4da9 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/ or email : webmaster.salome@opencascade.com
+//
 
 #ifndef STD_MESHERS_GUI_DISTR_PREVIEW_HEADER
 #define STD_MESHERS_GUI_DISTR_PREVIEW_HEADER
index 31eeae6fe03d1f32d4ef788aba96e16443d34ba5..3d0d2ae44f28ebf7524a43680ffb8c30e0994ebf 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 32e336e2e6922d9372b1b0b025831269dd86244a..a61db1577c21db6852c54604bfca4352971a8bff 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index f190fb2cadf89be7b3b8fc888e2eb8a341622bfc..02bb83a356cdcb578b31c91ef7f67121d99f86db 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/ or email : webmaster.salome@opencascade.com
+//
 
 #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 df7989c4e6164f263e3b27423d840d2aa8cdc792..7002e032e4da7b5ce37f80abc42feee81e4cc758 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/ or email : webmaster.salome@opencascade.com
+//
 
 #ifndef NB_SEGMENTS_CREATOR_HEADER
 #define NB_SEGMENTS_CREATOR_HEADER
index 33abb069897bd290f7f5810b5814199a8e352e07..e90634cf74bae4ac7df2701785f724710825d5fd 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -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 752ba403fe58990c786d3fc2268b990dd17eb73c..92767007ed4df9930c61d898043faad10847b0e4 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -57,8 +57,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 c5978633b7c83adf77460ff2c2f825b720b72f92..c7397e2e16d9e8037ab360743c68d65285a3d35e 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/ or email : webmaster.salome@opencascade.com
+#
 # 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".
@@ -80,10 +99,14 @@ msgstr "mesh_tree_algo_quad.png"
 msgid "ICON_SMESH_TREE_HYPO_MaxElementArea"
 msgstr "mesh_tree_hypo_area.png"
 
-#mesh_tree_hypo_area
+#mesh_tree_hypo_quadranglepreference
 msgid "ICON_SMESH_TREE_HYPO_QuadranglePreference"
 msgstr "mesh_tree_algo_quad.png"
 
+#mesh_tree_hypo_quadraticmesh
+msgid "ICON_SMESH_TREE_HYPO_QuadraticMesh"
+msgstr "mesh_tree_hypo_length.png"
+
 #mesh_tree_hypo_length
 msgid "ICON_SMESH_TREE_HYPO_LocalLength"
 msgstr "mesh_tree_hypo_length.png"
index dc86b0046d7236927dc760fbfa74c62ac71464e0..b7d2616daf6d7ec0fcec682d7d4c17785791d2ba 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/ or email : webmaster.salome@opencascade.com
+#
 # 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 2a5a9c1c41d0ca6723a38fd73f765ba2293b2227..ab8e80f0312d577158ece039e85620c15cc303ee 100644 (file)
@@ -16,7 +16,7 @@
 #  License along with this library; if not, write to the Free Software 
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 # 
-#  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 #
 #
@@ -53,6 +53,7 @@ EXPORT_HEADERS = \
        StdMeshers_Hexa_3D_i.hxx \
        StdMeshers_AutomaticLength_i.hxx \
        StdMeshers_QuadranglePreference_i.hxx \
+       StdMeshers_QuadraticMesh_i.hxx \
        SMESH_StdMeshers_I.hxx
 
 # Libraries targets
@@ -76,7 +77,8 @@ LIB_SRC = \
         StdMeshers_MEFISTO_2D_i.cxx \
        StdMeshers_Hexa_3D_i.cxx \
        StdMeshers_AutomaticLength_i.cxx \
-       StdMeshers_QuadranglePreference_i.cxx
+       StdMeshers_QuadranglePreference_i.cxx \
+       StdMeshers_QuadraticMesh_i.cxx
 
 LIB_SERVER_IDL = SMESH_BasicHypothesis.idl
 
@@ -91,13 +93,12 @@ BIN =
 BIN_SRC = 
 
 # additionnal information to compil and link file
-CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
-           -I${GEOM_ROOT_DIR}/include/salome $(BOOST_CPPFLAGS)
-CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome -I${GEOM_ROOT_DIR}/include/salome
+CPPFLAGS+= $(OCC_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) \
+           $(GEOM_CXXFLAGS) $(BOOST_CPPFLAGS)
+CXXFLAGS+= $(OCC_CXXFLAGS) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) $(GEOM_CXXFLAGS)
 
 #IDLCXXFLAGS+= -Wbtp
 
-#LDFLAGS+= $(HDF5_LIBS) -lStdMeshers -lSMESHEngine -lSalomeLifeCycleCORBA -L${KERNEL_ROOT_DIR}/lib/salome -L${GEOM_ROOT_DIR}/lib/salome -lSalomeGenericObj
-LDFLAGS+= $(HDF5_LIBS) -lStdMeshers -lSMESHEngine -L${KERNEL_ROOT_DIR}/lib/salome
+LDFLAGS+= $(HDF5_LIBS) -lStdMeshers -lSMESHEngine $(KERNEL_LDFLAGS)
 
 @CONCLUDE@
index ecd770cf7b746ad3ba546f6c16b7c8fe3d5a41ea..ef47c3f0a1d058c083e08f9c012df002300e3b98 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 7a3ffb7fceba255a60198c60e90f0b6bcb5d3018..8c6ad55cdc5587b70f98af80f7b18c6af01c0611 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index b93f6a4093e60c7ab2cef311a872e9baee4a03e0..278a70efa1ff3720189fe6bc58920eb41caafa48 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 08185ff1b43be139a5de8fbeeb64b063e88079da..b378a1eb5279767ed54cbea7afc1d49678094b70 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d38b7968ed3f2884f199d3eb524e34808e3b9267..b5b3cff5b08d979fd30943c17cdd6c6ebb88c983 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 533394dfa45dfe50831bb1c033c54ed5b36fa6c1..2274345db56d1b78a8614df7a4464e2046a0f080 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index ff362cf0c06cfe41c23c0dc27721246ba80b1ac6..8f98cd6e180c2dffcc91913f91c22e70afdce7e8 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 0656a612c1b8b93928d2a479df8734e9a52c22a6..1910da3b116d72ad3abdbee5506551388f7c8e8f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 75659d2654f49b76450052f896a5adbd2c3122da..d96af29ef8d9a77aa6c65f9162fbcd34ba05956a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 0ec4e95bb95e9b48dc34b70361c00db35006f5cb..c7ebd3322d197025cde4a10af006d4148d1b169c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 3a84d59c24d7a79db901925a0b5783c0c7dc6c81..4190c1b8c8c91b4f13fd1fb87da1b5bc7547c6a1 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index cb76262c5a9def4aa47d0a824aa0fb1a6b69a43b..62c73cbc8695589cfba5d011f139c1c86cd17a5a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index eee3c9e8975210ca593133e6537f9e14036a0769..316ea8d8e87abef5271761b4e8ac7b76a2c9e462 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 3016118a24b1210b5380d0071d9798946e7f6db1..5f7d7ca8337ba8b26e3f12fd593e224b27d743c4 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index f8cb9063897cee06dce6eaf5f86ef425a7d78066..a9e7f9f52f0c1efed975b92edfa13f31cc7ee71a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 94f9cac8ad15f9ce0dcde2c390e1b1db9a52eea7..f9201c74f18613e76b5086735fb112e03c149866 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 061148259f0ef6b0c3ccf1f686da66a200eed30c..c85a005f5e6590e6b190aa32555a947b7c8305c2 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index ee1f0529decc0f697b0e17cea145594683f5bb78..f5429359b98813a95e86ef4b96d8974959aa98df 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index af8a23f71abf00a5bcef94f2d078f2ef8abd2f99..92775c5ff1ee6875ba457c78b6bad58b0a0a03f7 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index bf730f257da722d872b99684fa7d0903cd9f84c9..ef0b1e327f5a062b432ae4fc3f86577f44a7f442 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index a9579654c52a128fdf5b89827af46e6ccc6d592a..7f164a290e6960c76bec2c1310961437d8b99172 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -79,8 +79,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 );
@@ -100,8 +102,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 );
@@ -309,7 +312,7 @@ void StdMeshers_NumberOfSegments_i::SetExpressionFunction(const char* expr)
   try {
     this->GetImpl()->SetExpressionFunction( expr );
     // Update Python script
-    SMESH::TPythonDump() << _this() << ".SetExpressionFunction( " << expr << " )";
+    SMESH::TPythonDump() << _this() << ".SetExpressionFunction( '" << expr << "' )";
   }
   catch ( SALOME_Exception& S_ex ) {
     THROW_SALOME_CORBA_EXCEPTION( S_ex.what(),
index f84844bdb55af512159429f9d1465a498f9a2ca9..a1dda71e448bd7c08e953e6b69689243ddb6212c 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index f59bfc645fa5f436e2e386d22ff7a3baed5b6991..f800850171740b7e4713359c9f8b8be607d140bd 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index a9fdfe16afb57bc712b1a001a8f9013a721b7c5e..188b6481024df5be401cf5f8dbd48fef96ce35f7 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 35006230d5d0cd0f2954cf7f859139270d2edb95..dc2eb803d3fe09bd7879854cb121fe9358185419 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index cdc3e8f0c2b08ff88dd24e8b37deec03d97703c0..f4897d680bfdad488dc1b13b5d807b270595c99b 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 8e68d1375504fb7669e7203c07bd3b3cf2482c91..8031a92de920d230fe722170456625e8d0d3d8fe 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 4cbfa7fd43d2d460d6d8bce2ac752d54c9146236..3c30544338c34a1bb208eb06c3cea584bb8a23c0 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 90c74e3d9da9e354f21c6ab62d066249040df64e..fc901f4e700660f0fb71c38f2b05bb3c45fccab4 100644 (file)
@@ -30,6 +30,8 @@
 #ifndef _SMESH_QuadraticMesh_I_HXX_
 #define _SMESH_QuadraticMesh_I_HXX_
 
+#include "SMESH_StdMeshers_I.hxx"
+
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
 
@@ -41,7 +43,7 @@ class SMESH_Gen;
 // ======================================================
 // Local Length hypothesis
 // ======================================================
-class StdMeshers_QuadraticMesh_i:
+class STDMESHERS_I_EXPORT StdMeshers_QuadraticMesh_i:
   public virtual POA_StdMeshers::StdMeshers_QuadraticMesh,
   public virtual SMESH_Hypothesis_i
 {
index 0a75340ebc8bde84c7fb1dbc50657aa985029f72..5ecf5c443e58fb73e5960c73eebfbe9299539adf 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 42148a9c725867d3b9f740cb0453b984b4e36514..5ecf97ef45571b0444d7a2b1b6c11d8d7f6ada23 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d6c4c675b18f6697d0caf447a6fb0ec40021ae99..298f828911ee3e76c8fee503b02ce74931b4ad8f 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index 5a8c602b783bccea2189cea8af0824c9df01ab1c..506bb912c306d31bba335c82ab6704fbb3cb398a 100644 (file)
@@ -17,7 +17,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
index d44b6701761895b62ae4ec4cb85f7f769808d172..e9708c506fdb3a03ec0b5bd67808cf1572732108 100644 (file)
@@ -16,7 +16,7 @@
 //  License along with this library; if not, write to the Free Software 
 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
 // 
-//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -40,6 +40,7 @@
 #include "StdMeshers_Propagation_i.hxx"
 #include "StdMeshers_LengthFromEdges_i.hxx"
 #include "StdMeshers_QuadranglePreference_i.hxx"
+#include "StdMeshers_QuadraticMesh_i.hxx"
 #include "StdMeshers_MaxElementArea_i.hxx"
 #include "StdMeshers_MaxElementVolume_i.hxx"
 #include "StdMeshers_NotConformAllowed_i.hxx"
 #include "StdMeshers_Quadrangle_2D_i.hxx"
 #include "StdMeshers_Hexa_3D_i.hxx"
 
-using namespace std;
+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"; }
+};
 
 //=============================================================================
 /*!
@@ -68,39 +73,41 @@ STDMESHERS_I_EXPORT
 
     // 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 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;