Salome HOME
DCQ : Merge with Ecole_Ete_a6.
authoryfr <yfr@opencascade.com>
Fri, 18 Jun 2004 08:55:35 +0000 (08:55 +0000)
committeryfr <yfr@opencascade.com>
Fri, 18 Jun 2004 08:55:35 +0000 (08:55 +0000)
343 files changed:
doc/salome/gui/SMESH/SMESH.log [new file with mode: 0755]
doc/salome/gui/SMESH/cshdat_robohelp.htm [new file with mode: 0755]
doc/salome/gui/SMESH/cshdat_webhelp.htm [new file with mode: 0755]
doc/salome/gui/SMESH/default.css [new file with mode: 0755]
doc/salome/gui/SMESH/default.skn [new file with mode: 0755]
doc/salome/gui/SMESH/default_ns.css [new file with mode: 0755]
doc/salome/gui/SMESH/ehlpdhtm.js [new file with mode: 0755]
doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/about_hypotheses.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/about_meshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/about_meshing_algorithms.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/about_modification_of_meshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/about_quality_controls.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/area_of_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/aspect_ratio.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/computing_meshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/connectivity.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/constructing_meshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/constructing_submeshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/displacing_nodes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/displaying_elements_numbers.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/editing_hypotheses.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/introduction_to_smesh.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/length_of_edges.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/local_length_hypothesis.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/minimum_angle.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/running_smesh_module.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/scalar_bar_properties.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/shading.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/shrink.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/skew.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/taper.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/using_smesh_module.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/view_update.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/viewing_mesh_info.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/visualization_modes.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/visualization_properties.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/warp.htm [new file with mode: 0755]
doc/salome/gui/SMESH/files/wireframe.htm [new file with mode: 0755]
doc/salome/gui/SMESH/i_blue.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image10.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image11.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image12.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image22.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image24.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image24.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image25.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image25.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image26.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image26.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image27.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image27.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image28.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image28.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image29.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image29.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image3.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image31.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image32.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image33.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image34.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image35.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image36.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image37.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image38.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image39.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image4.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image4.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image40.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image41.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image42.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image43.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image44.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image45.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image46.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image47.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image48.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image49.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image50.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image51.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image52.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image53.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image55.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image56.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image6.gif [new file with mode: 0755]
doc/salome/gui/SMESH/image6.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image7.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image8.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/image9.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/note1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/exemple.gif [new file with mode: 0755]
doc/salome/gui/SMESH/pics/new.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/smesh.html [new file with mode: 0755]
doc/salome/gui/SMESH/smesh_csh.html [new file with mode: 0755]
doc/salome/gui/SMESH/smesh_rhc.html [new file with mode: 0755]
doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/webhelp.cab [new file with mode: 0755]
doc/salome/gui/SMESH/webhelp.jar [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whftdata.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whftdata0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whftdata0.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whfts.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whfts.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whfts.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whfwdata.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whfwdata0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whfwdata0.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whgdata.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whgdata0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whgdata0.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whglo.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whglo.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whglo.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whidata.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whidx.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whidx.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whidx.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whtdata.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whtdata0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whtdata0.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whtoc.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whtoc.js [new file with mode: 0755]
doc/salome/gui/SMESH/whdata/whtoc.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whestart.ico [new file with mode: 0755]
doc/salome/gui/SMESH/whfbody.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whfdhtml.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whfform.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whfhost.js [new file with mode: 0755]
doc/salome/gui/SMESH/whform.js [new file with mode: 0755]
doc/salome/gui/SMESH/whframes.js [new file with mode: 0755]
doc/salome/gui/SMESH/whgbody.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whexpbar.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf1.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf2.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstf3.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl1.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl10.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl11.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl12.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl13.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl14.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl15.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl16.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl17.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl18.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl19.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl2.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl20.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl21.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl22.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl3.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl4.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl5.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl6.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl7.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl8.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstfl9.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstg0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlsti0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt0.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt1.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt10.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt11.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt12.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt2.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt3.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt4.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt5.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt6.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt7.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt8.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whlstt9.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvf30.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvf31.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvf32.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvf33.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvl31.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvl32.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvl33.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvp30.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvp31.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvp32.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvp33.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvt30.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvt31.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvt32.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdata/whnvt33.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdef.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whgdhtml.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whghost.js [new file with mode: 0755]
doc/salome/gui/SMESH/whhost.js [new file with mode: 0755]
doc/salome/gui/SMESH/whibody.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whidhtml.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whiform.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whihost.js [new file with mode: 0755]
doc/salome/gui/SMESH/whlang.js [new file with mode: 0755]
doc/salome/gui/SMESH/whmozemu.js [new file with mode: 0755]
doc/salome/gui/SMESH/whmsg.js [new file with mode: 0755]
doc/salome/gui/SMESH/whnjs.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whphost.js [new file with mode: 0755]
doc/salome/gui/SMESH/whproj.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whproj.js [new file with mode: 0755]
doc/salome/gui/SMESH/whproj.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whproxy.js [new file with mode: 0755]
doc/salome/gui/SMESH/whres.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whrstart.ico [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_banner.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_blank.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_frmset01.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_frmset010.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_info.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_mbars.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_papplet.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_pdhtml.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_plist.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whskin_tbars.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whst_topics.xml [new file with mode: 0755]
doc/salome/gui/SMESH/whstart.ico [new file with mode: 0755]
doc/salome/gui/SMESH/whstart.js [new file with mode: 0755]
doc/salome/gui/SMESH/whstub.js [new file with mode: 0755]
doc/salome/gui/SMESH/wht_abge.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/wht_abgi.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/wht_abgw.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/wht_abte.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/wht_abti.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/wht_abtw.jpg [new file with mode: 0755]
doc/salome/gui/SMESH/wht_fts_h.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_fts_n.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_glo_h.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_glo_n.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_go.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_hide.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_idx_h.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_idx_n.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_logo1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_logo2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_next.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_next_g.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_prev.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_prev_g.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_spac.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_sync.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab0.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab3.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab4.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab5.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab6.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab7.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_tab8.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_toc1.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_toc2.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_toc3.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_toc4.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_toc_h.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_toc_n.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_ws.gif [new file with mode: 0755]
doc/salome/gui/SMESH/wht_ws_g.gif [new file with mode: 0755]
doc/salome/gui/SMESH/whtbar.js [new file with mode: 0755]
doc/salome/gui/SMESH/whtdhtml.htm [new file with mode: 0755]
doc/salome/gui/SMESH/whthost.js [new file with mode: 0755]
doc/salome/gui/SMESH/whtopic.js [new file with mode: 0755]
doc/salome/gui/SMESH/whutils.js [new file with mode: 0755]
doc/salome/gui/SMESH/whver.js [new file with mode: 0755]
doc/salome/tui/Makefile.in [new file with mode: 0644]
doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html [new file with mode: 0644]
doc/salome/tui/SMESH/HTML/SMESH_Gen.html [new file with mode: 0644]
doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html [new file with mode: 0644]
doc/salome/tui/SMESH/HTML/SMESH_Mesh.html [new file with mode: 0644]
doc/salome/tui/SMESH/doxyfile [new file with mode: 0755]
doc/salome/tui/SMESH/sources/Application-About.png [new file with mode: 0755]
doc/salome/tui/SMESH/sources/Application-About1.jpg [new file with mode: 0755]
doc/salome/tui/SMESH/sources/application.gif [new file with mode: 0644]
doc/salome/tui/SMESH/sources/application.jpg [new file with mode: 0755]
doc/salome/tui/SMESH/sources/bg_salome.gif [new file with mode: 0755]
doc/salome/tui/SMESH/sources/logocorp.gif [new file with mode: 0755]
doc/salome/tui/SMESH/sources/myheader.html [new file with mode: 0755]
doc/salome/tui/SMESH/sources/occ.gif [new file with mode: 0755]
doc/salome/tui/SMESH/sources/static/PluginMeshers.html [new file with mode: 0755]
doc/salome/tui/SMESH/sources/static/doxygen.css [new file with mode: 0755]
doc/salome/tui/SMESH/sources/static/page2.html [new file with mode: 0755]
doc/salome/tui/SMESH/sources/static/tree.js [new file with mode: 0755]
doc/salome/tui/SMESH/sources/static/treeview.js [new file with mode: 0644]
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_Gen.cxx
src/SMESH/SMESH_Gen.hxx
src/SMESH/SMESH_Group.cxx [new file with mode: 0644]
src/SMESH/SMESH_Group.hxx [new file with mode: 0644]
src/SMESH/SMESH_Hexa_3D.cxx [deleted file]
src/SMESH/SMESH_Hexa_3D.hxx [deleted file]
src/SMESH/SMESH_Hypothesis.cxx
src/SMESH/SMESH_Hypothesis.hxx
src/SMESH/SMESH_HypothesisCreator.hxx [deleted file]
src/SMESH/SMESH_HypothesisFactory.cxx [deleted file]
src/SMESH/SMESH_HypothesisFactory.hxx [deleted file]
src/SMESH/SMESH_LengthFromEdges.cxx [deleted file]
src/SMESH/SMESH_LengthFromEdges.hxx [deleted file]
src/SMESH/SMESH_LocalLength.cxx [deleted file]
src/SMESH/SMESH_LocalLength.hxx [deleted file]
src/SMESH/SMESH_MEFISTO_2D.cxx [deleted file]
src/SMESH/SMESH_MEFISTO_2D.hxx [deleted file]
src/SMESH/SMESH_MaxElementArea.cxx [deleted file]
src/SMESH/SMESH_MaxElementArea.hxx [deleted file]
src/SMESH/SMESH_MaxElementVolume.cxx [deleted file]
src/SMESH/SMESH_MaxElementVolume.hxx [deleted file]
src/SMESH/SMESH_Mesh.cxx
src/SMESH/SMESH_Mesh.hxx
src/SMESH/SMESH_NETGEN_3D.cxx [deleted file]
src/SMESH/SMESH_NETGEN_3D.hxx [deleted file]
src/SMESH/SMESH_NumberOfSegments.cxx [deleted file]
src/SMESH/SMESH_NumberOfSegments.hxx [deleted file]
src/SMESH/SMESH_Quadrangle_2D.cxx [deleted file]
src/SMESH/SMESH_Quadrangle_2D.hxx [deleted file]
src/SMESH/SMESH_Regular_1D.cxx [deleted file]
src/SMESH/SMESH_Regular_1D.hxx [deleted file]
src/SMESH/SMESH_subMesh.cxx
src/SMESH/SMESH_subMesh.hxx

diff --git a/doc/salome/gui/SMESH/SMESH.log b/doc/salome/gui/SMESH/SMESH.log
new file mode 100755 (executable)
index 0000000..4552b09
--- /dev/null
@@ -0,0 +1,288 @@
+|SourceProjectName:SMESH.hpr\r
+|DestinationProjectName:smesh.html\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
+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
+whdata\whtoc.js\r
+whdata\whtoc.xml\r
+whdata\whtoc.htm\r
+whdata\whtdata.js\r
+whdata\whidx.js\r
+whdata\whidx.xml\r
+whdata\whidx.htm\r
+whdata\whidata.js\r
+whdata\whfts.js\r
+whdata\whfts.xml\r
+whdata\whfts.htm\r
+whdata\whglo.js\r
+whdata\whglo.xml\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
+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
+default.skn\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
+files\1d_meshing_algorithm.htm\r
+files\2d_(quadrangle)_meshing_algorithm.htm\r
+files\2d_meshing_algorithm.htm\r
+files\3d_meshing_algorithm.htm\r
+files\about_hypotheses.htm\r
+files\about_meshes.htm\r
+files\about_meshing_algorithms.htm\r
+files\about_modification_of_meshes.htm\r
+files\about_quality_controls.htm\r
+files\adding_nodes_and_elements.htm\r
+files\area_of_elements.htm\r
+files\aspect_ratio.htm\r
+files\changing_orientation_of_elements.htm\r
+files\computing_meshes.htm\r
+files\connectivity.htm\r
+files\constructing_meshes.htm\r
+files\constructing_submeshes.htm\r
+files\diagonal_iversion_of_elements.htm\r
+files\displacing_nodes.htm\r
+files\displaying_elements_numbers.htm\r
+files\displaying_nodes_numbers.htm\r
+files\editing_hypotheses.htm\r
+files\importing_and_exporting_meshes.htm\r
+files\introduction_to_smesh.htm\r
+files\length_of_edges.htm\r
+files\local_length_hypothesis.htm\r
+files\max._element_area_hypothesis.htm\r
+files\max._element_volume_hypothsis.htm\r
+files\minimum_angle.htm\r
+files\number_of_segments_hypothesis.htm\r
+files\reassigning_hypotheses_and_algorithms.htm\r
+files\removing_nodes_and_elements.htm\r
+files\running_smesh_module.htm\r
+files\scalar_bar_properties.htm\r
+files\shading.htm\r
+files\shrink.htm\r
+files\skew.htm\r
+files\taper.htm\r
+files\tetrahedron_(netgen)_meshing_algorithm.htm\r
+files\using_smesh_module.htm\r
+files\view_update.htm\r
+files\viewing_mesh_info.htm\r
+files\visualization_modes.htm\r
+files\visualization_properties.htm\r
+files\warp.htm\r
+files\wireframe.htm\r
+texture_horiz_ltbluebubbles.jpg\r
+ehlpdhtm.js\r
+smesh.glo\r
+default.css\r
+image3.jpg\r
+image55.gif\r
+image44.gif\r
+image33.gif\r
+image22.gif\r
+image25.jpg\r
+image4.jpg\r
+image56.gif\r
+image45.gif\r
+image34.gif\r
+image26.jpg\r
+image2.gif\r
+image46.gif\r
+image35.gif\r
+image27.jpg\r
+image24.gif\r
+image6.jpg\r
+image47.gif\r
+image36.gif\r
+image28.jpg\r
+image25.gif\r
+image4.gif\r
+image7.jpg\r
+image48.gif\r
+image37.gif\r
+image29.jpg\r
+image26.gif\r
+image8.jpg\r
+image49.gif\r
+image38.gif\r
+image27.gif\r
+note1.gif\r
+image6.gif\r
+image9.jpg\r
+image39.gif\r
+image28.gif\r
+image29.gif\r
+i_blue.jpg\r
+image50.gif\r
+pics\new.jpg\r
+image10.jpg\r
+image51.gif\r
+image40.gif\r
+image11.jpg\r
+image52.gif\r
+image41.gif\r
+image12.jpg\r
+pics\exemple.gif\r
+image53.gif\r
+image42.gif\r
+image31.gif\r
+image43.gif\r
+image32.gif\r
+image24.jpg\r
+smesh.ppf\r
+default_ns.css\r
+whdata\whtdata0.xml\r
+whdata\whtdata0.htm\r
+whdata\whftdata0.xml\r
+whdata\whftdata0.htm\r
+whdata\whfwdata0.xml\r
+whdata\whfwdata0.htm\r
+whdata\whgdata0.xml\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\whlstt10.htm\r
+whgdata\whlstt11.htm\r
+whgdata\whlstt12.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\whlstf0.htm\r
+whgdata\whlstf1.htm\r
+whgdata\whlstf2.htm\r
+whgdata\whlstf3.htm\r
+whgdata\whlstg0.htm\r
+smesh.html\r
+smesh_csh.html\r
+smesh_rhc.html\r
diff --git a/doc/salome/gui/SMESH/cshdat_robohelp.htm b/doc/salome/gui/SMESH/cshdat_robohelp.htm
new file mode 100755 (executable)
index 0000000..3baed18
--- /dev/null
@@ -0,0 +1,252 @@
+<html>\r
+<head>\r
+<title>SMESH reference manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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
+//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.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
diff --git a/doc/salome/gui/SMESH/cshdat_webhelp.htm b/doc/salome/gui/SMESH/cshdat_webhelp.htm
new file mode 100755 (executable)
index 0000000..5712886
--- /dev/null
@@ -0,0 +1,251 @@
+<html>\r
+<head>\r
+<title>SMESH reference manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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
diff --git a/doc/salome/gui/SMESH/default.css b/doc/salome/gui/SMESH/default.css
new file mode 100755 (executable)
index 0000000..d2d425a
--- /dev/null
@@ -0,0 +1,209 @@
+/*=(===============================================================)*/\r
+\r
+/*=(===============================================================)*/\r
+/*=(Created with RoboEditor.)=======================================*/\r
+/*=(===============================================================)*/\r
+\r
+BODY {\r
+       background-color: #ffffff;\r
+       font-family: "Times New Roman", serif;\r
+}\r
+\r
+H1 {\r
+       font-weight: bold;\r
+       font-size: 24.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H1 {\r
+       font-weight: bold;\r
+       font-size: 24.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H2 {\r
+       font-weight: bold;\r
+       font-size: 18.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H2 {\r
+       font-weight: bold;\r
+       font-size: 18.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H3 {\r
+       font-weight: bold;\r
+       font-size: 14.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H3 {\r
+       font-weight: bold;\r
+       font-size: 14.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H4 {\r
+       font-weight: bold;\r
+       font-size: 12.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H4 {\r
+       font-weight: bold;\r
+       font-size: 12.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H5 {\r
+       font-weight: bold;\r
+       font-size: 10.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H5 {\r
+       font-weight: bold;\r
+       font-size: 10.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+H6 {\r
+       font-weight: bold;\r
+       font-size: 8.0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-H6 {\r
+       font-weight: bold;\r
+       font-size: 8.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+P {\r
+       font-size: 12.0pt;\r
+       margin-top: 0pt;\r
+       margin-bottom: 0pt;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-P {\r
+       font-size: 12.0pt;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\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
+       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
+}\r
+\r
+SPAN.expandtext {\r
+       font-style: italic;\r
+       font-weight: normal;\r
+       color: #ff0000;\r
+}\r
+\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
+       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
+}\r
+\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
+       /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ \r
+}\r
+\r
+SPAN.glosstext {\r
+       font-style: italic;\r
+       font-weight: normal;\r
+       color: #0000ff;\r
+}\r
+\r
+OL,\r
+UL {\r
+       margin-top: 0px;\r
+       margin-bottom: 0px;\r
+}\r
+\r
+A:active {\r
+}\r
+\r
+A:hover {\r
+       x-text-underline: Off;\r
+       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
+}\r
+\r
+A:link {\r
+       x-text-underline: Off;\r
+       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
+}\r
+\r
+A:visited {\r
+       x-text-underline: Off;\r
+       /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ \r
+}\r
+\r
+P.TODO {\r
+       font-weight: normal;\r
+       font-style: italic;\r
+       font-family: "Arial Black", sans-serif;\r
+}\r
+\r
+/*=(Generated Code)=================================================*/\r
+/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/\r
+/*begin!kadov{{=====================================================*/ \r
+LI.kadov-P-CTODO {\r
+       font-weight: normal;\r
+       font-style: italic;\r
+       font-family: "Arial Black", sans-serif;\r
+}\r
+/*}}end!kadov=======================================================*/ \r
+\r
+\r
+\r
+\r
+/*=(===============================================================)*/\r
diff --git a/doc/salome/gui/SMESH/default.skn b/doc/salome/gui/SMESH/default.skn
new file mode 100755 (executable)
index 0000000..f162a66
--- /dev/null
@@ -0,0 +1,262 @@
+<?xml version="1.0"?>\r
+<sqwebskin version="1.0">\r
+       <summary>\r
+               <skinname>Default</skinname>\r
+               <defaulttab>Contents</defaulttab>\r
+               <font>font-family:Arial font-size:8pt font-weight:normal font-style:normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal</font>\r
+               <color></color>\r
+       </summary>\r
+       <panesummary>\r
+               <![CDATA[\r
+<frameset rows="32,*" >\r
+<frame name="Custom Toolbar Pane" noresize="yes" scrolling="no" id="3" />\r
+<frameset cols="220,*" frameborder="1" borderspace="0" >\r
+<frameset rows="24,*" >\r
+<frame name="MiniBar Pane" marginwidth="-1" scrolling="no" id="6" />\r
+<frame name="Navigation Pane" id="2" />\r
+</frameset>\r
+<frame name="Topic Pane" frameborder="1" borderspace="1" bordercolor="Gray" marginwidth="-1" marginheight="-1" id="4" />\r
+</frameset>\r
+</frameset>\r
+]]>\r
+       </panesummary>\r
+       <frameset rows="32,*">\r
+               <frame name="Custom Toolbar Pane" noresize="yes" scrolling="no" id="3"/>\r
+               <frameset cols="220,*" frameborder="1" borderspace="0">\r
+                       <frameset rows="24,*">\r
+                               <frame name="MiniBar Pane" marginwidth="-1" scrolling="no" id="6"/>\r
+                               <frame name="Navigation Pane" id="2"/>\r
+                       </frameset>\r
+                       <frame name="Topic Pane" frameborder="1" borderspace="1" bordercolor="Gray" marginwidth="-1" marginheight="-1" id="4"/>\r
+               </frameset>\r
+       </frameset>\r
+       <pane name="Custom Toolbar Pane">\r
+               <image></image>\r
+               <color>background:#99ccff</color>\r
+               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+               <btnselected>\r
+                       <color>background:#639ace</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White</font>\r
+               </btnselected>\r
+               <alignment>left</alignment>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-content" id="1">\r
+                       <name>Contents</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-index" id="2">\r
+                       <name>Index</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-search" id="3">\r
+                       <name>Search</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-glossary" id="4">\r
+                       <name>Glossary</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-websearch" id="5">\r
+                       <name>WebSearch</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="Form Mode" type="built-in-form" id="6">\r
+                       <name>Search Input</name>\r
+                       <image></image>\r
+                       <color></color>\r
+                       <textbox width="20"/>\r
+                       <title>\r
+                               <text></text>\r
+                       </title>\r
+                       <button mode="default graphic mode">\r
+                       </button>\r
+               </toolbaritem>\r
+               <toolbaritem mode="Logo Mode" type="built-in-logo" id="7">\r
+                       <name>Logo</name>\r
+                       <image></image>\r
+                       <author>eHelp Corporation</author>\r
+               </toolbaritem>\r
+       </pane>\r
+       <pane name="MiniBar Pane">\r
+               <image></image>\r
+               <color>background:#99ccff</color>\r
+               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+               <btnselected>\r
+                       <color>background:#639ace</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:White</font>\r
+               </btnselected>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-previous" id="8">\r
+                       <name>Previous</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-next" id="9">\r
+                       <name>Next</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-synctoc" id="10">\r
+                       <name>Sync TOC</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+               <toolbaritem mode="BtnWithIcon Mode" type="built-in-hide" id="11">\r
+                       <name>Hide</name>\r
+                       <text>::??DefaultWebSkinText??::</text>\r
+                       <color></color>\r
+                       <image></image>\r
+                       <icontype>default</icontype>\r
+                       <selected>\r
+                               <color></color>\r
+                               <image></image>\r
+                               <icontype>default</icontype>\r
+                       </selected>\r
+                       <style>100</style>\r
+               </toolbaritem>\r
+       </pane>\r
+       <pane name="Navigation Pane">\r
+               <image></image>\r
+               <color></color>\r
+               <label>\r
+                       <image></image>\r
+                       <color></color>\r
+               </label>\r
+               <subpane name="Contents">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+               </subpane>\r
+               <subpane name="Index">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+                       <inputbox>\r
+                               <image></image>\r
+                               <color>background:White</color>\r
+                               <textbox width="0"/>\r
+                               <title>\r
+                                       <text>::??DefaultWebSkinText??::</text>\r
+                                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               </title>\r
+                               <button mode="none">\r
+                               </button>\r
+                       </inputbox>\r
+               </subpane>\r
+               <subpane name="Search">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+                       <inputbox>\r
+                               <image></image>\r
+                               <color>background:White</color>\r
+                               <textbox width="0"/>\r
+                               <title>\r
+                                       <text>::??DefaultWebSkinText??::</text>\r
+                                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               </title>\r
+                               <button mode="default graphic mode">\r
+                               </button>\r
+                       </inputbox>\r
+               </subpane>\r
+               <subpane name="Glossary">\r
+                       <image></image>\r
+                       <color>background:White alink:Silver hover-color:Navy</color>\r
+                       <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Black</font>\r
+                       <definitiontext>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               <color>background:White</color>\r
+                               <image></image>\r
+                       </definitiontext>\r
+                       <definition>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <color></color>\r
+                               <image></image>\r
+                       </definition>\r
+                       <termtext>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <font>font-family:Tahoma font-size:8pt font-weight:Normal font-style:Normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal font-color:Navy</font>\r
+                               <color>background:White</color>\r
+                               <image></image>\r
+                       </termtext>\r
+                       <term>\r
+                               <text>::??DefaultWebSkinText??::</text>\r
+                               <color></color>\r
+                               <image></image>\r
+                       </term>\r
+               </subpane>\r
+       </pane>\r
+       <pane name="Topic Pane">\r
+               <in-topic-navbar>\r
+                       <alignment>none</alignment>\r
+               </in-topic-navbar>\r
+       </pane>\r
+</sqwebskin>\r
diff --git a/doc/salome/gui/SMESH/default_ns.css b/doc/salome/gui/SMESH/default_ns.css
new file mode 100755 (executable)
index 0000000..020a671
--- /dev/null
@@ -0,0 +1,122 @@
+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:1; \r
+   margin-bottom:1; \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:1; \r
+       margin-bottom:1;  }\r
+ol ul { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
+ul ul { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
+ul ol { \r
+       margin-top:1; \r
+       margin-bottom:1;  }\r
diff --git a/doc/salome/gui/SMESH/ehlpdhtm.js b/doc/salome/gui/SMESH/ehlpdhtm.js
new file mode 100755 (executable)
index 0000000..86d26ea
--- /dev/null
@@ -0,0 +1,4033 @@
+// eHelp® Corporation Dynamic HTML JavaScript \r
+// Copyright© 1998-2001 eHelp® Corporation.All rights reserved.\r
+// Version=4.57\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 gbBsIE             = (gstrBsAgent.indexOf('msie') != -1);\r
+var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1));\r
+var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -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
+\r
+var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));\r
+var gbBsIE5                    = false;\r
+var gbBsIE55           = false;\r
+\r
+gbBsIE = (navigator.appName.indexOf("Microsoft") != -1);\r
+\r
+if (parseInt(navigator.appVersion) >= 4) {\r
+       gbBsIE4 = (navigator.appName.indexOf("Microsoft") != -1);\r
+\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
+var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);\r
+var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));\r
+var gbBsOp3                    = (gstrBsAgent.indexOf('opera') != -1);\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
+\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
+       {\r
+               gBsOnUnLoads[nElement]();\r
+       }\r
+}\r
+\r
+function BSSCOnMouseOver()\r
+{\r
+       if (!BsscHasExtJs()) return;\r
+       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)\r
+       {\r
+               gBsOnMouseOvers[nElement]();\r
+       }\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
+\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 = document.all.tags("BODY")[0];\r
+               if( typeof(objBody) == "object" )\r
+               {\r
+                       objBody.insertAdjacentHTML("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) {\r
+//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...\r
+          if (gbBsNS6)\r
+               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");\r
+          else\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 (gbBsIE4) {\r
+               document.write("<STYLE TYPE='text/css'>");\r
+               if (gbBsMac) {\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
+//Define variable arguments as: strTitle, strUrl\r
+function MTE() \r
+{\r
+       this.strTitle = MTE.arguments[0];\r
+       if (MTE.arguments.length > 1)\r
+               this.strURL = MTE.arguments[1];\r
+       else\r
+               this.strURL = this.strTitle;\r
+}\r
+\r
+// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js)\r
+function PopupMenu_SetTopicList(aPopupTopicArray)\r
+{\r
+       gbPopupMenuTopicList = aPopupTopicArray;\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
+function _PopupMenu_Invoke(fn_arguments)\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) || ((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
+               // Create a temporary window first to ensure the real popup comes up on top\r
+               var wndTemp = window.open("", "temp", strParam);\r
+\r
+               // Create the real popup window\r
+               var wndPopupLinks = window.open("", "popuplinks", strParam);\r
+\r
+               // Close the temporary\r
+               wndTemp.close();\r
+\r
+               wndPopupLinks.document.open("text/html");\r
+               wndPopupLinks.document.write("<html><head></head>");\r
+               wndPopupLinks.document.write("<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
+                       wndPopupLinks.document.write(strParaLine);\r
+               }\r
+               wndPopupLinks.document.write("</body></html>");\r
+               wndPopupLinks.document.close();\r
+               window.gbInPopupMenu = true;\r
+               if (!gbBsIE) {\r
+                       wndPopupLinks.focus();\r
+               }\r
+\r
+               return false;\r
+       }\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) {\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) {\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
+               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) {\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
+               // 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
+\r
+function PopupMenu_Timeout()\r
+{\r
+       window.gbPopupMenuTimeoutExpired = true;\r
+}\r
+\r
+function PopupMenu_Over(e)\r
+{\r
+    if (gbBsIE4) {\r
+               e.srcElement.className = "PopupOver";\r
+    } else if (gbBsNS4) {\r
+//             this.bgColor = "red";\r
+//        e.target.document.className = "PopupOver";\r
+    }\r
+       return;\r
+}\r
+\r
+function PopupMenu_Out(e)\r
+{\r
+    if (gbBsIE4) {\r
+               e.srcElement.className = "PopupNotOver";\r
+    } else if (gbBsNS4) {\r
+        this.bgColor = "#f0f0f0";\r
+    }\r
+       return;\r
+}\r
+\r
+\r
+function PopupMenu_HandleClick(e)\r
+{\r
+       if (window.gbPopupMenuTimeoutExpired) {\r
+\r
+               window.gbInPopupMenu = false;\r
+\r
+               if (gbBsNS4 && !gbBsNS6) {\r
+                       window.releaseEvents(Event.MOUSEDOWN);\r
+               }\r
+\r
+               var layerPopup = null;\r
+               var stylePopup = null;\r
+               if (gbBsIE4) {\r
+                       layerPopup = document.all["PopupMenu"];\r
+                       stylePopup = layerPopup.style;\r
+                       stylePopup.visibility = "hidden";\r
+               } else if (gbBsNS6) {\r
+                       layerPopup = document.getElementById("PopupMenu");\r
+                       layerPopup.style.visibility = "hidden";\r
+               } else if (gbBsNS4) {\r
+                       layerPopup = document.layers.PopupMenu;\r
+                       layerPopup.visibility = "hide";\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
+// This function should be deleted when all old projects are cleaned up\r
+function BSPSWritePopupFrameForIE4()\r
+{\r
+       return false;\r
+}\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+function BSSCPopup_ClickMac()\r
+{\r
+       if ((!DHTMLPopupSupport()) && (gbBsIE4))\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 = el.parentElement;\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
+//////////////////////////////////////////////////////////////////////\r
+\r
+function BsPopupOnClick()\r
+{\r
+       if (!gbBsIE4)\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
+\r
+/// Section End - General and relative topics (JavaScript 1.0)\r
+\r
+/// Section Begin  - Popup (JavaScript 1.0)\r
+\r
+//Begin to support previous popup functions\r
+//////////////////////////////////////////////////////////////////////////////////////////////\r
+//\r
+//     Begin DHTML Popup Functions\r
+//\r
+//////////////////////////////////////////////////////////////////////////////////////////////\r
+//variables used to isolate the browser type\r
+var gBsDoc                     = null;                 \r
+var gBsSty                     = null;\r
+var gBsHtm                     = null;\r
+var gBsStyVisShow      = null;\r
+var gBsStyVisHide      = null;\r
+var gBsClientWidth     = 640;\r
+var gBsClientHeight = 480;\r
+var gBsBrowser         = null;\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 eval("document.all['" + getPopupTopicID(nIndex) + "']").style;\r
+}\r
+\r
+function getPopupShadowStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupShadowID(nIndex) + "']").style;\r
+}\r
+\r
+function getPopupIFrame(nIndex)\r
+{\r
+\r
+       return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");\r
+}\r
+\r
+function getPopupDivStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupID(nIndex) + "']").style;\r
+}\r
+\r
+function getPopupIFrameStyle(nIndex)\r
+{\r
+       return eval("document.all['" + getPopupIFrameName(nIndex) + "'].style");\r
+}\r
+\r
+\r
+function findDiv(strURL)\r
+{\r
+       var i = 0;\r
+       for (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
+       var i = 0; \r
+       for (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
+       var i = 0;\r
+       for (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
+       var i = 0; \r
+       for (i = 0; i < arrayPopupURL.length; i ++ )\r
+               getPopupDivStyle(i).visibility = gBsStyVisHide;\r
+}\r
+\r
+function getCurrentPopupIFrame()\r
+{\r
+       var i = 0;\r
+       for (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
+\r
+//the browser information itself\r
+function _BSPSBrowserItself()\r
+{\r
+       var agent  = navigator.userAgent.toLowerCase();\r
+       this.major = parseInt(navigator.appVersion);\r
+       this.minor = parseFloat(navigator.appVersion);\r
+       this.ns    = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1)));\r
+       this.ns2   = ((this.ns) && (this.major == 2));\r
+       this.ns3   = ((this.ns) && (this.major == 3));\r
+       this.ns4   = ((this.ns) && (this.major >= 4));\r
+       this.ns6   = ((this.ns) && (this.major >= 5));\r
+       this.ie    = (agent.indexOf("msie") != -1);\r
+       this.ie3   = ((this.ie) && (this.major == 2));\r
+       this.ie4   = ((this.ie) && (this.major >= 4));\r
+       this.op3   = (agent.indexOf("opera") != -1);\r
+\r
+       if (this.ns4)\r
+       {\r
+               gBsDoc          = "document";\r
+               gBsSty          = "";\r
+               gBsHtm          = ".document";\r
+               gBsStyVisShow   = "show";\r
+               gBsStyVisHide   = "hide";\r
+\r
+       }\r
+       else if (this.ie4)\r
+       {\r
+               gBsDoc           = "document.all";\r
+               gBsSty          = ".style";\r
+               gBsHtm          = "";\r
+               gBsStyVisShow   = "visible";\r
+               gBsStyVisHide   = "hidden";\r
+       }\r
+}\r
+\r
+//Here is the browser type \r
+function _BSPSGetBrowserInfo()\r
+{\r
+       gBsBrowser      = new _BSPSBrowserItself();\r
+}\r
+\r
+_BSPSGetBrowserInfo();\r
+\r
+//Get client size info\r
+function _BSPSGetClientSize()\r
+{\r
+       if (gBsBrowser.ns4)\r
+       {\r
+               gBsClientWidth  = innerWidth;\r
+               gBsClientHeight = innerHeight;\r
+\r
+       }\r
+       else if (gBsBrowser.ie4)\r
+       {\r
+               gBsClientWidth  = document.body.clientWidth;\r
+               gBsClientHeight = document.body.clientHeight;\r
+       }\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
+\r
+function DHTMLPopupSupport()\r
+{\r
+       if ((gbBsIE4) && (!gbBsMac)) {\r
+               return true;\r
+       }\r
+       return false;\r
+}\r
+\r
+\r
+\r
+function BSSCPopup_IsPopup()\r
+{\r
+       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {\r
+               return true;\r
+       } else if ((gbBsNS4 || gbBsIE4) && (this.name.indexOf(gstrPopupID) != -1)) {\r
+               return true;\r
+       } else {\r
+               return false;\r
+       }\r
+}\r
+\r
+\r
+// If there is a hyperlink in a popup window, display the hyperlink in\r
+// the original window.\r
+if (BSSCPopup_IsPopup() && !gbBsIE4) {\r
+       document.write("<base target=\"_parent\">");\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 = document.all.tags("BODY")[0];\r
+       if( typeof(objBody) != "object" )\r
+               return;\r
+\r
+       objBody.insertAdjacentHTML("beforeEnd", strPopupDiv);\r
+}\r
+\r
+function BSSCPopup_Timeout(nIndex, nToken)\r
+{\r
+    if (!IsValidToken(nToken)) return;\r
+\r
+       if ((getPopupIFrame(nIndex).document.readyState == "complete") &&\r
+               (getPopupIFrame(nIndex).document.body != null)) {\r
+               window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow;\r
+               setClear(nIndex);\r
+               window.gbPopupTimeoutExpired = true;\r
+\r
+               BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);\r
+               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;\r
+\r
+               if (!gbOrignalOnMouseDown && document.onmousedown)\r
+                       gbOrignalOnMouseDown = document.onmousedown;\r
+\r
+               document.onmousedown = BSSCPopupParentClicked;\r
+\r
+       } else {\r
+               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);\r
+       }\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 = tagsObject.all.tags("A");\r
+       BSSCPopup_ChangeTargettoParent2(collA);\r
+\r
+       var collIMG = tagsObject.all.tags("IMG");\r
+       BSSCPopup_ChangeTargettoParent2(collIMG);\r
+}\r
+\r
+function BSSCPopup_ChangeTargettoParent2(colls)\r
+{\r
+       var j = 0;\r
+       if (colls != null)  {\r
+               for (j = 0; j < colls.length; j ++ )\r
+               {\r
+                       var strtemp = colls[j].href;\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
+               // If we are already in a popup, replace the contents\r
+       //      if (BSSCPopup_IsPopup()) {\r
+       //              parent._BSSCPopup(strURL, cuswidth, cusheight);\r
+       //      } else {\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
+\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
+       //      }\r
+\r
+       } else {\r
+               _BSSCPopup2(strURL, cuswidth, cusheight);\r
+       }\r
+       return;\r
+}\r
+\r
+if (gbBsIE55)\r
+{\r
+       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;\r
+       window.onbeforeunload = window_BUnload;\r
+}\r
+       \r
+function window_BUnload()\r
+{\r
+       for (var i = 0; i < arrayPopupURL.length; i ++)\r
+               document.all(getPopupID(i)).outerHTML = "";\r
+       arrayPopupURL.length = 0;       \r
+       if (ehlpdhtm_fOldBefureUnload)\r
+               ehlpdhtm_fOldBefureUnload();\r
+}\r
+\r
+function _BSSCPopup2(strURL, width, height)\r
+{\r
+       if (window.name == gstrPopupSecondWindowName) {\r
+               window.location = strURL;\r
+       } else {\r
+               if (!gbBsMac || !gBsBrowser.ns4) {\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
+               // Launch a separate window\r
+               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";\r
+               if (gBsBrowser.ns) {\r
+                       if (gBsBrowser.ns6) {\r
+                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;\r
+                               strParam += ",screenX=" + nX + ",screenY=" + nY;\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
+               window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);\r
+\r
+               if (gBsBrowser.ns4) {\r
+                       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE);\r
+                       window.gPopupWindow.onclick = NonIEPopup_HandleClick;\r
+                       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;\r
+               }\r
+               else if (gBsBrowser.ie4)\r
+               {\r
+                       setTimeout("setPopupFocus();", 100);\r
+               }\r
+       }\r
+       return;\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
+               if (e.target.target == "")\r
+                       window.location.href = e.target.href;\r
+               else\r
+                       window.open(e.target.href, e.target.target);\r
+                       \r
+               if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) {\r
+                       this.close();\r
+               }\r
+       } else {\r
+               this.close();\r
+       }\r
+       return false;\r
+\r
+}\r
+\r
+function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)\r
+{      \r
+       if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") {\r
+               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);\r
+               return;\r
+       }\r
+    if (!IsValidToken(nToken)) return;\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
+\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
+\r
+       // Determine the width and height for the window\r
+       //var size = new BSSCSize(0, 0);\r
+       //BSSCGetContentSize(window.getPopupIFrame(nIndex), size);\r
+       //var nWidth = size.x;\r
+       //var nHeight = size.y;\r
+\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
+       //      if (nWidth < 40 || nHeight < 40) return;  // there must be something terribly wrong.\r
+\r
+       window.getPopupDivStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupDivStyle(nIndex).pixelHeight = nHeight;\r
+\r
+       window.getPopupShadowStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupShadowStyle(nIndex).pixelHeight = nHeight;\r
+       window.getPopupTopicStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupTopicStyle(nIndex).pixelHeight = nHeight;\r
+       if (gbBsIE55)\r
+       {\r
+               window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2;\r
+               window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2;\r
+               window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2;\r
+               window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2;\r
+       }\r
+\r
+       window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth;\r
+       window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight;\r
+       if (gbBsIE55)\r
+       {\r
+               window.getPopupIFrameStyle(nIndex).top = 0;\r
+               window.getPopupIFrameStyle(nIndex).left = 0;\r
+       }\r
+       \r
+       var strURL = getPopupURL(nIndex);\r
+       if (strURL.indexOf("#") != -1)\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 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 = window.getPopupDivStyle(nIndex).pixelWidth;\r
+       var nHeight = window.getPopupDivStyle(nIndex).pixelHeight;\r
+\r
+       if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) {\r
+               nTop = nClickY + 10;\r
+       } else {\r
+               nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20;\r
+       }\r
+       if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) {\r
+               nLeft = nClickX;\r
+       } else {\r
+               nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8;\r
+       }\r
+       \r
+       if (nTop < document.body.scrollTop ) nTop  = document.body.scrollTop + 1;\r
+       if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1;\r
+\r
+\r
+       window.getPopupDivStyle(nIndex).left = nLeft;\r
+       window.getPopupDivStyle(nIndex).top = nTop;\r
+\r
+       // Set the location of the background blocks\r
+       window.getPopupShadowStyle(nIndex).left = 6;\r
+       window.getPopupShadowStyle(nIndex).top = 6;\r
+       if (gbBsIE55)\r
+       {\r
+               window.getPopupShadowStyle(nIndex).left = 4;\r
+               window.getPopupShadowStyle(nIndex).top = 4;\r
+       }\r
+\r
+       if (gbBsMac) {\r
+               // Total hack on the iMac to get the IFrame to position properly\r
+               window.getPopupIFrameStyle(nIndex).pixelLeft = 100;\r
+               window.getPopupIFrameStyle(nIndex).pixelLeft = 0;\r
+               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it\r
+               window.getPopupIFrame(nIndex).window.BSSCOnLoad();\r
+       }\r
+\r
+       BSSCPopup_Timeout(nIndex , nToken );\r
+       \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 (!((gBsBrowser.ie4) || (gBsBrowser.ns4)))\r
+               return;\r
+\r
+       if (gbBsMac) {\r
+               size.x = 300;\r
+               size.y = 300;\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
+       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
+       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
+               // Handle absurd cases just in case IE flakes\r
+       //              if (size.y < 100) {\r
+       //                      size.y = 100;\r
+       //              }\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
+                       //i = 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 * 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
+                               //i ++;\r
+                               \r
+                       }\r
+                       //size.x = x - gBscrollWidth;\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
+       \r
+       // no reload no scrollbar.\r
+       //size.x = size.x + 16;  //reserve a width for scrollbar (IE 4.0 only)\r
+\r
+       thisWindow.resizeTo(size.x, size.y);\r
+       thisWindow.resizeTo(size.x, size.y);\r
+       return;\r
+}\r
+\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
+\r
+function BSSCPopupClicked()\r
+{\r
+       if (!window.gbPopupTimeoutExpired) {\r
+               return false;\r
+       }\r
+\r
+\r
+       var popupIFrame = getCurrentPopupIFrame();\r
+       if (popupIFrame == null) {\r
+               return true;\r
+       }\r
+\r
+/*\r
+       if ("undefined" != typeof(popupIFrame.gbInPopupMenu) &&\r
+               popupIFrame.gbInPopupMenu) {\r
+               return true;\r
+       }*/\r
+\r
+       if (!((popupIFrame.window.event != null) &&\r
+           (popupIFrame.window.event.srcElement != null) &&\r
+           ((popupIFrame.window.event.srcElement.tagName == "A") ||\r
+           (popupIFrame.window.event.srcElement.tagName == "IMG")))) {\r
+               document.onmousedown = gbOrignalOnMouseDown;\r
+\r
+       // Simply hide the popup\r
+               hideAll();\r
+\r
+               window.gbPopupTimeoutExpired = false;\r
+\r
+               return true;\r
+       }\r
+}\r
+\r
+\r
+//trace the mouse over's position for hotspot\r
+function  BSPSPopupOnMouseOver(event)\r
+{\r
+       if (gBsBrowser.ie4) {\r
+               window.gnPopupClickX = event.clientX + document.body.scrollLeft;\r
+               window.gnPopupClickY = event.clientY + document.body.scrollTop;\r
+               window.gnPopupScreenClickX = event.screenX;\r
+               window.gnPopupScreenClickY = event.screenY;\r
+       } else if (gBsBrowser.ns4) {\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
+\r
+function BSSCHidePopupWindow()\r
+{\r
+       if (window.gPopupWindow != null) {\r
+               if (gBsBrowser.ns4) {\r
+                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {\r
+                               window.gPopupWindow.close();\r
+                               window.gPopupWindow = null;\r
+                       }\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
+var s_strAgent = navigator.userAgent.toLowerCase();\r
+var s_nVer        = parseInt(navigator.appVersion);\r
+\r
+var s_bIE  = (s_strAgent.indexOf('msie') != -1);\r
+var s_bNS  = (s_strAgent.indexOf('mozilla') != -1) && ((s_strAgent.indexOf('spoofer') == -1) && (s_strAgent.indexOf('compatible') == -1));\r
+var s_bOpera   = (s_strAgent.indexOf('opera') != -1);\r
+\r
+var s_bIE3Before = ((s_bIE) && (s_nVer <= 2));\r
+var s_bNS3Before = ((s_bNS) && (s_nVer <= 3));\r
+\r
+var s_bNS2             = ((s_bNS) && (s_nVer <= 2));\r
+var s_bNS3             = ((s_bNS) && (s_nVer == 3));\r
+var s_bIE300301        = ((s_bIE) && (s_nVer == 2) && ((s_strAgent.indexOf("3.00") != -1)||(s_strAgent.indexOf("3.0a") != -1)||(s_strAgent.indexOf("3.0b")!=-1)||(s_strAgent.indexOf("3.01")!=-1)));\r
+var s_bIE302   = ((s_bIE) && (s_nVer == 2) && (s_strAgent.indexOf("3.02") != -1));\r
+\r
+\r
+function HasExtJs()\r
+{\r
+       if (s_bIE3Before) { return false;}\r
+       if (s_bNS3Before) {     return false;}\r
+       if (typeof (BsGeneralOnLoad) == "undefined"){ return false; }\r
+       return true;\r
+}\r
+\r
+\r
+function BSSCCreatePopupDiv()\r
+{\r
+       return;\r
+}\r
+\r
+\r
+function WritePopupMenuLayer()\r
+{\r
+       if (HasExtJs()) {_WritePopupMenuLayer();}\r
+}\r
+\r
+function BSSCPopup(strURL, width, height)\r
+{\r
+       if (HasExtJs()) { \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 (!s_bNS3) {\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 (!s_bNS3) {\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 (HasExtJs()) {\r
+               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);\r
+       }\r
+       if (s_bNS3Before || s_bIE3Before )      {\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 (s_bNS2 || s_bOpera){\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 (!s_bNS3) {\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
+\r
+function PopupMenu_InvokeReady()\r
+{\r
+       if (gbWndPopupLinks != null) {\r
+               gbWndPopupLinks.document.open("text/html");\r
+               gbWndPopupLinks.document.write("<html><head>");\r
+               if (s_bNS2 || s_bOpera) {\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 (!s_bNS3 && 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<el.children.length; i++)\r
+       {\r
+               var child = el.children[i];\r
+               if( child.tagName == "SCRIPT" || child.tagName == "!" )\r
+                       continue;\r
+\r
+               if( child.id != "" )\r
+               {\r
+                       // to wipe out the onload effects\r
+                       var onLoadEffect = child.style.getAttribute( "x-on-pageload" );\r
+                       if( (onLoadEffect != null) && (onLoadEffect > "") )\r
+                               child.style.setAttribute( "x-on-pageload", "" );\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<el.children.length; i++)\r
+                       x += kadovRetrieveTextInner( el.children[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 nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);\r
+       if( nRTItemsOpen < nDTCTagOpen )\r
+               return strRawHTML;\r
+       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, 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( !CCSSP.bIsWinOS && !CCSSP.bIsSunOS)\r
+               return 0;\r
+\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+\r
+       var src = el.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 = document.all.item(name);\r
+       if( !srcDiv )\r
+               return 1;\r
+\r
+       var type = el.getAttribute( "x-popup-type" );\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
+                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
+                       var elParentPra = kadovFindParentParagraph(el);\r
+                       if( elParentPra )\r
+                               elParentPra.insertAdjacentHTML( "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
+                       srcDiv.outerHTML = ""; // empty the original DIV tag\r
+                       el.insertAdjacentHTML( "AfterEnd", newSpan );\r
+               }\r
+       }\r
+       return 0;\r
+}\r
+\r
+function kadovTextPopup( el )\r
+{\r
+       if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS) || (window.event == null) )\r
+               return;\r
+       window.event.cancelBubble = true;\r
+\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+\r
+       var src = el.getAttribute( "x-use-popup" );\r
+       if(!src)\r
+               return;\r
+\r
+       var name = src;\r
+       if( src.substr(0,1) == "#" ) \r
+               name = src.substr(1, src.length-1) + "_tmp";\r
+       var srcDiv = document.all.item(name);\r
+       if( !srcDiv )\r
+               return;\r
+\r
+       var type = el.getAttribute( "x-popup-type" );\r
+       var setup = el.getAttribute( "x-tmp-setup" );\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
+       return;\r
+}\r
+\r
+function kadovFindParentParagraph( el )\r
+{\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\r
+       if( (!el) || el.tagName == "BODY" )\r
+               return null;\r
+       if( kadovIsParagraph(el.parentElement) )\r
+               return el.parentElement;\r
+       else\r
+               return kadovFindParentParagraph( el.parentElement );\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 kadovTextPopupInit( el )\r
+{\r
+       if( (!gbBsIE4) || (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS))\r
+               return;\r
+               \r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(el);\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( !gbBsIE4 )\r
+               return;\r
+       if( typeof(el) == "string" )\r
+               el = document.all.item(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 = document.all.item(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
+       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 = document.all.item(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( el.parentElement );\r
+}\r
+\r
+function kadovInitEffects( element )\r
+{\r
+       if( !gbBsIE4 )\r
+               return;\r
+       var srcElement = element;\r
+       if( typeof(srcElement) == "string" )\r
+       {\r
+               srcElement = document.all.item(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( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS ) || 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
+\r
+/// Section End  - kadov DHTM (JavaScript 1.2)\r
+\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.strAgent = navigator.userAgent.toLowerCase(); \r
+CCSSP.nAppVersion = parseInt(navigator.appVersion);\r
+\r
+CCSSP.bIsWinOS = ((CCSSP.strAgent.indexOf("win") >= 0) || (CCSSP.strAgent.indexOf("16bit") >= 0));\r
+CCSSP.bIsMacOS = (CCSSP.strAgent.indexOf("mac") >= 0);\r
+CCSSP.bIsSunOS = (CCSSP.strAgent.indexOf("sunos") != -1);\r
+\r
+CCSSP.bIsIE = (navigator.appName.indexOf("Microsoft") >= 0);\r
+CCSSP.bIsIE4 = (CCSSP.bIsIE && (CCSSP.nAppVersion >= 4));\r
+CCSSP.bIsIE5 = (CCSSP.bIsIE4 && (CCSSP.strAgent.indexOf("msie 5") != -1) )\r
+\r
+CCSSP.bIsNav = (navigator.appName.indexOf("Netscape") >= 0);\r
+CCSSP.bIsNav4 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 4));\r
+CCSSP.bIsNav6 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 5));\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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 (CCSSP.bIsNav4 && !CCSSP.bIsNav6)\r
+               return ;\r
+       var oldHandler = "";\r
+       if (CCSSP.bIsMacOS && CCSSP.bIsIE4)\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( CCSSP.bIsIE4 )\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( CCSSP.bIsNav4 ) // 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
+                       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
+       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );\r
+}\r
+\r
+CCSSP.GetWindowHeight = function()\r
+{// retrieve the height of available content in browser window\r
+       if( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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( CCSSP.bIsNav4 )\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(CCSSP.bIsNav4 ) \r
+               if (CCSSP.bIsNav6)\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( progeny.parentElement == progenitor.parentElement )\r
+               return false;\r
+       else\r
+               return CCSSP.IsDescendant( progenitor, progeny.parentElement );\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 (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;\r
+    case "fadeout" :\r
+       return (CCSSP.bIsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;\r
+    case "rockrollstatic" :\r
+    case "rockroll" :\r
+       return (CCSSP.bIsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;\r
\r
+    case "glow":\r
+       return (CCSSP.bIsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;\r
+    case "dropshadow":\r
+       return (CCSSP.bIsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;\r
+    case "transition" :\r
+       return (CCSSP.bIsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;\r
+    case "blur" :\r
+       return (CCSSP.bIsIE4)? 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 (CCSSP.bIsIE4)? 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 (CCSSP.bIsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;\r
+    case "boderchange": \r
+    case "stylechange":\r
+       return (CCSSP.bIsIE4)? 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( CCSSP.bIsIE5 && 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( CCSSP.bIsIE5 && 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( CCSSP.bIsIE5 && 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") && (child.parentElement.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
+\r
+/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)\r
+\r
+//// Segment End -- (JavaScript 1.2)\r
diff --git a/doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm
new file mode 100755 (executable)
index 0000000..d34ee9f
--- /dev/null
@@ -0,0 +1,126 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>1D meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 27px; height: 24px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n1D meshing algorithms\nWire discretization");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Wire discretization</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 1D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>edges</B></span><span>. \r
+ </span></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Wire discretization meshing algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Wire discretization \r
+ </B></span>or click <img src="../image51.gif" width="27px" height="24px" border="0" class="img_whs3"> button in the toolbar.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm
new file mode 100755 (executable)
index 0000000..08f3568
--- /dev/null
@@ -0,0 +1,126 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>2D (Quadrangle) meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 26px; height: 27px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n2D meshing algorithms\nQuadrangle meshing algorithm");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Quadrangle meshing algorithm</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 2D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>faces</B></span><span>. \r
+ </span></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Quadrangle meshing algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Quadrangle (Mapping) \r
+ </B></span>or click <img src="../image56.gif" width="26px" height="27px" border="0" class="img_whs3"> button in the toolbar.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm
new file mode 100755 (executable)
index 0000000..0ce5d1a
--- /dev/null
@@ -0,0 +1,126 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>2D meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 27px; height: 24px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n2D meshing algorithms\nTriangle meshing algorithm");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Triangle (Mefisto) meshing algorithm</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 2D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>faces</B></span><span>. \r
+ </span></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Triangle meshing algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Triangle (Mefisto) \r
+ </B></span>or click <img src="../image55.gif" width="27px" height="24px" border="0" class="img_whs3"> button in the toolbar.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm
new file mode 100755 (executable)
index 0000000..9139ce1
--- /dev/null
@@ -0,0 +1,127 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>3D meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 26px; height: 24px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nHexahedron meshing algorithm");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Hexahedron meshing algorithm</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span><span>. \r
+ </span></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Hexahedron meshing algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Hexahedron (i,j,k) \r
+ &nbsp;</B></span>or \r
+ click <img src="../image53.gif" width="26px" height="24px" border="0" class="img_whs3"> button in the toolbar.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_hypotheses.htm b/doc/salome/gui/SMESH/files/about_hypotheses.htm
new file mode 100755 (executable)
index 0000000..bd2a4f2
--- /dev/null
@@ -0,0 +1,186 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>About hypotheses</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=479>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+ol.whs3 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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
+ In <span style="font-weight: bold;"><B>SMESH </B></span>there are the following \r
+ basic hypotheses:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li style="list-style: circle;"\r
+               type=circle\r
+               class=kadov-p><p>For meshing of <span style="font-weight: bold;"><B>edges</B></span>:</p></li>\r
+       \r
+       <ul type="disc" class="whs2">\r
+               \r
+               <li class=kadov-p><p><a href="local_length_hypothesis.htm">Local \r
+ Length</a> </p></li>\r
+               \r
+               <li class=kadov-p><p><a href="number_of_segments_hypothesis.htm">Number \r
+ of segments</a></p></li>\r
+       </ul>\r
+       \r
+       <li style="list-style: circle;"\r
+               type=circle\r
+               class=kadov-p><p>For meshing of <span style="font-weight: bold;"><B>faces</B></span>: \r
+ </p></li>\r
+</ul>\r
+\r
+<ol type="disc" class="whs3">\r
+       \r
+       <ul type="disc" class="whs2">\r
+               \r
+               <li class=kadov-p><p><a href="max._element_area_hypothesis.htm">Max \r
+ Element Area</a></p></li>\r
+       </ul>\r
+</ol>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li style="list-style: circle;"\r
+               type=circle\r
+               class=kadov-p><p>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> &nbsp;</p></li>\r
+       </ul>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p>The choice of a hypothesis depends on:</p>\r
+\r
+<p>&nbsp;</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
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_meshes.htm b/doc/salome/gui/SMESH/files/about_meshes.htm
new file mode 100755 (executable)
index 0000000..a269b3a
--- /dev/null
@@ -0,0 +1,274 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>About meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1398>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {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-style: none; border: none; width: 36px; height: 38px; float: none;}\r
+p.whs8 {font-weight: bold; text-indent: 1px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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 SMESH 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 SMESH functions \r
+ destined for modification of generated meshes. More about this functionality \r
+ of SMESH <a href="about_modification_of_meshes.htm">see here</a>. </p></li>\r
+</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm b/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm
new file mode 100755 (executable)
index 0000000..bce08e1
--- /dev/null
@@ -0,0 +1,181 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>About meshing algorithms</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=422>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+ul.whs3 {list-style: circle;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\nAbout 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>About 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 SMESH module contains a set of meshing algorithms, \r
+ which are used for meshing of all kinds of entities (1D, 2D, 3D) composing \r
+ geometrical 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><a href="1d_meshing_algorithm.htm">Wire discretization \r
+ meshing algorithm</a></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><a href="2d_meshing_algorithm.htm">Triangle \r
+ meshing algorithm</a></p></li>\r
+               \r
+               <li class=kadov-p><p><a href="2d_(quadrangle)_meshing_algorithm.htm">Quadrangle \r
+ meshing algorithm</a></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 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><a href="3d_meshing_algorithm.htm">Hexahedron \r
+ meshing algorithm</a></p></li>\r
+               \r
+               <li class=kadov-p><p><a href="tetrahedron_(netgen)_meshing_algorithm.htm">Tetrahedron \r
+ meshing algorithm</a></p></li>\r
+       </ul>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_modification_of_meshes.htm b/doc/salome/gui/SMESH/files/about_modification_of_meshes.htm
new file mode 100755 (executable)
index 0000000..bfbef4f
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>About modification of meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=0>\r
+<meta name=layout-height content=0>\r
+<meta name=layout-width content=0>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nAbout modification of 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>About modification of meshes</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/about_quality_controls.htm b/doc/salome/gui/SMESH/files/about_quality_controls.htm
new file mode 100755 (executable)
index 0000000..e9f144d
--- /dev/null
@@ -0,0 +1,154 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>About quality controls</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=422>\r
+<meta name=layout-width content=575>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {text-align: justify;}\r
+img_whs2 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
+ul.whs3 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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 SMESH is destined for visual control of the \r
+ generated 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">In SMESH you have at your disposal the \r
+ following 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="length_of_edges.htm">Length \r
+ of edges</a></p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1"><a href="area_of_elements.htm">Area \r
+ of elements</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 \r
+ angle</a></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm b/doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm
new file mode 100755 (executable)
index 0000000..dc7efc3
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Adding nodes and elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=0>\r
+<meta name=layout-height content=0>\r
+<meta name=layout-width content=0>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Adding nodes and elements</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/area_of_elements.htm b/doc/salome/gui/SMESH/files/area_of_elements.htm
new file mode 100755 (executable)
index 0000000..3fc6e5c
--- /dev/null
@@ -0,0 +1,143 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Area of elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=688>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 22px; height: 23px;}\r
+img_whs4 {border-style: none; border: none; width: 469px; height: 326px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nQuality controls\nArea 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Area of elements</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 of elements </B></span>mesh \r
+ quality 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>Quality \r
+ Controls &gt; Area </B></span>or click <img src="../image35.gif" width="22px" height="23px" 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">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image4.jpg" width="469px" height="326px" border="0" class="img_whs4"></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/aspect_ratio.htm b/doc/salome/gui/SMESH/files/aspect_ratio.htm
new file mode 100755 (executable)
index 0000000..b7e6cdb
--- /dev/null
@@ -0,0 +1,185 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Aspect Ratio</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1101>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {margin-left: 80px;}\r
+img_whs4 {border-style: none; border: none; width: 238px; height: 205px;}\r
+p.whs5 {margin-left: 0px;}\r
+img_whs6 {border-style: none; border: none; width: 226px; height: 70px;}\r
+p.whs7 {margin-left: 40px;}\r
+img_whs8 {border-style: none; border: none; width: 25px; height: 24px;}\r
+img_whs9 {border-style: none; border: none; width: 467px; height: 327px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs5 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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 a the <span style="font-weight: bold;"><B>Aspect \r
+ Ratio</B></span> is calculated as the ratio of the length, h2, of the edge \r
+ of this triangle, to the height, h1. The ratio of h2 to h1 is then multiplied \r
+ by &nbsp;3<span \r
+ style="vertical-align: Super; font-size: 10pt;"><font size=2 style="font-size:10pt;">(1/2)</font></span> /2, so that \r
+ a \93perfect\94 element in the shape of an equilateral triangle will be equal \r
+ to 1. This procedure is repeated for the remaining two edges of the triangle, \r
+ and the largest value is retained as the <span style="font-weight: bold;"><B>Aspect \r
+ Ratio</B></span> for the element.</p></li>\r
+</ul>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image26.jpg" width="238px" height="205px" border="0" class="img_whs4"></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\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 ratio of the \r
+ element's longest side to its shortest side.</p></li>\r
+</ul>\r
+\r
+<p class="whs3"><img src="../image22.gif" width="226px" height="70px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Aspect Ratio quality criterion to your mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs7">1. Display your mesh in the viewer.</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7">2. Choose <span style="font-weight: bold;"><B>Quality \r
+ Controls &gt; Aspect Ratio </B></span>or click <img src="../image37.gif" width="25px" height="24px" border="0" class="img_whs8"> button in the \r
+ toolbar. Your mesh will be displayed in the viewer with its elements colored \r
+ according to the applied mesh quality control criterion:</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<p class="whs7"><img src="../image7.jpg" width="467px" height="327px" border="0" class="img_whs9"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm b/doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm
new file mode 100755 (executable)
index 0000000..0df9544
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Changing orientation of elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=0>\r
+<meta name=layout-height content=0>\r
+<meta name=layout-width content=0>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Changing orientation of elements</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/computing_meshes.htm b/doc/salome/gui/SMESH/files/computing_meshes.htm
new file mode 100755 (executable)
index 0000000..17cf3cc
--- /dev/null
@@ -0,0 +1,128 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Computing meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 25px; height: 24px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nComputing 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Computing meshes</h1>\r
+\r
+<p>The final step in generation of your mesh is its computation.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To compute a mesh:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. Select your mesh in the <span style="font-weight: bold;"><B>Object \r
+ Browser</B></span>.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select<span style="font-weight: bold;"><B> Compute </B></span>or \r
+ click <img src="../image28.gif" width="25px" height="24px" border="0" class="img_whs2"> button of the toolbar. </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/connectivity.htm b/doc/salome/gui/SMESH/files/connectivity.htm
new file mode 100755 (executable)
index 0000000..f845f0d
--- /dev/null
@@ -0,0 +1,106 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Connectivity</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=0>\r
+<meta name=layout-height content=0>\r
+<meta name=layout-width content=0>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Connectivity</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/constructing_meshes.htm b/doc/salome/gui/SMESH/files/constructing_meshes.htm
new file mode 100755 (executable)
index 0000000..5c46cb7
--- /dev/null
@@ -0,0 +1,159 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Constructing meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=653>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 0px;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {margin-left: 40px;}\r
+img_whs4 {border-style: none; border: none; width: 22px; height: 24px;}\r
+p.whs5 {margin-left: 80px;}\r
+img_whs6 {border-style: none; border: none; width: 304px; height: 305px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs1 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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 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 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=TODO>&nbsp;</p>\r
+\r
+<p class="whs3">In the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span>menu select<span style="font-weight: bold;"><B> Global Hyp. </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="../image31.gif" width="304px" height="305px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/constructing_submeshes.htm b/doc/salome/gui/SMESH/files/constructing_submeshes.htm
new file mode 100755 (executable)
index 0000000..1c9396e
--- /dev/null
@@ -0,0 +1,160 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Constructing submeshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=688>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 0px;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {margin-left: 40px;}\r
+img_whs4 {border-style: none; border: none; width: 27px; height: 25px;}\r
+p.whs5 {margin-left: 80px;}\r
+img_whs6 {border-style: none; border: none; width: 304px; height: 339px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs1 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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="../image29.gif" width="304px" height="339px" border="0" class="img_whs6"></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm b/doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm
new file mode 100755 (executable)
index 0000000..da44a89
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Diagonal iversion of elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=573>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Diagonal inversion of elements</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/displacing_nodes.htm b/doc/salome/gui/SMESH/files/displacing_nodes.htm
new file mode 100755 (executable)
index 0000000..8c2d3e0
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Displacing nodes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\nDisplacing 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Displacing nodes</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/displaying_elements_numbers.htm b/doc/salome/gui/SMESH/files/displaying_elements_numbers.htm
new file mode 100755 (executable)
index 0000000..dd57c5f
--- /dev/null
@@ -0,0 +1,151 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Displaying elements numbers</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=687>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+p.whs2 {margin-left: 0px;}\r
+img_whs3 {border-style: none; border: none; width: 436px; height: 367px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs2 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nMesh info\nDisplaying elements numbers");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Displaying elements numbers</h1>\r
+\r
+<p>In SMESH 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. From the <span style="font-weight: bold;"><B>Numbering \r
+ </B></span>menu select<span style="font-weight: bold;"><B> Display Elements #</B></span>.</p>\r
+\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="../image29.jpg" width="436px" height="367px" border="0" class="img_whs3"></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm b/doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm
new file mode 100755 (executable)
index 0000000..1e776ee
--- /dev/null
@@ -0,0 +1,152 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Displaying nodes numbers</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=685>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+p.whs2 {margin-left: 0px;}\r
+img_whs3 {border-style: none; border: none; width: 436px; height: 365px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs2 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nMesh info\nDisplaying nodes numbers");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Displaying nodes numbers</h1>\r
+\r
+<p>In SMESH 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. From the <span style="font-weight: bold;"><B>Numbering \r
+ </B></span>menu select <span style="font-weight: bold;"><B>&nbsp;Display \r
+ Nodes #</B></span>.</p>\r
+\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="../image28.jpg" width="436px" height="365px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/editing_hypotheses.htm b/doc/salome/gui/SMESH/files/editing_hypotheses.htm
new file mode 100755 (executable)
index 0000000..e36d19b
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Editing hypotheses</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nEditing meshes\nEditing 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Editing hypotheses</h1>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm b/doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm
new file mode 100755 (executable)
index 0000000..e627b5a
--- /dev/null
@@ -0,0 +1,150 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Importing and exporting meshes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=419>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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 SMESH 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=TODO>To export 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>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">2. 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">3. Click the <span style="font-weight: bold;"><B>OK \r
+ </B></span>button. </p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/introduction_to_smesh.htm b/doc/salome/gui/SMESH/files/introduction_to_smesh.htm
new file mode 100755 (executable)
index 0000000..cdfcac2
--- /dev/null
@@ -0,0 +1,200 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Introduction to SMESH</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=688>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+ul.whs2 {list-style: disc;}\r
+ul.whs3 {list-style: circle;}\r
+p.whs4 {margin-left: 40px;}\r
+p.whs5 {margin-left: 40px; font-weight: bold;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nIntroduction to SMESH");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Introduction to SMESH</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>SMESH</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. SMESH 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">&nbsp;</p>\r
+\r
+<p class="whs5">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="whs5">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 of elements</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 angle</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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/length_of_edges.htm b/doc/salome/gui/SMESH/files/length_of_edges.htm
new file mode 100755 (executable)
index 0000000..e49ef74
--- /dev/null
@@ -0,0 +1,140 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Length of edges</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=671>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 27px; height: 24px;}\r
+img_whs4 {border-style: none; border: none; width: 468px; height: 327px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nQuality controls\nLength of 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Length of edges</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 of edges 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>Quality \r
+ Controls &gt; Length </B></span>or click <img src="../image34.gif" width="27px" height="24px" border="0" class="img_whs3"> 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="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image3.jpg" width="468px" height="327px" border="0" class="img_whs4"></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/local_length_hypothesis.htm b/doc/salome/gui/SMESH/files/local_length_hypothesis.htm
new file mode 100755 (executable)
index 0000000..10316ea
--- /dev/null
@@ -0,0 +1,171 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Local Length hypothesis</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=896>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {font-weight: bold; margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 367px; height: 224px;}\r
+p.whs4 {margin-left: 40px;}\r
+img_whs5 {border-style: none; border: none; width: 26px; height: 24px;}\r
+p.whs6 {margin-left: 80px;}\r
+img_whs7 {border-style: none; border: none; width: 304px; height: 233px;}\r
+p.whs8 {margin-left: 0px;}\r
+ul.whs9 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs8 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nLocal Length 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Local Length hypothesis</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Local Length </B></span>hypothesis \r
+ can be applied for meshing of edges composing your geometrical object. \r
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>length</B></span> \r
+ of segments, which will split these edges. The points on the edges generated \r
+ by these segments will represent nodes of your mesh. Later these nodes \r
+ will be used for meshing of the faces abutting to these edges.</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image41.gif" width="367px" height="224px" border="0" class="img_whs3"></p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class=TODO>To define the Local Length hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs4">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Average Length </B></span>or \r
+ <img src="../image42.gif" width="26px" height="24px" border="0" class="img_whs5"> click button. The following dialog box will appear:</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs6"><img src="../image43.gif" width="304px" height="233px" border="0" class="img_whs7"></p>\r
+\r
+<p class="whs6">&nbsp;</p>\r
+\r
+<p class="whs8">In this dialog box you can set:</p>\r
+\r
+<p class="whs8">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs9">\r
+       \r
+       <li class=kadov-p><p class="whs8"><span style="font-weight: bold;"><B>Name \r
+ </B></span>of your Local Length hypothesis</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs8"><span style="font-weight: bold;"><B>Length \r
+ </B></span>of segments which will split the edges of your geometrical object</p></li>\r
+</ul>\r
+\r
+<p class="whs8">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm b/doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm
new file mode 100755 (executable)
index 0000000..826189f
--- /dev/null
@@ -0,0 +1,166 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Max. Element Area hypothesis</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=634>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 25px; height: 24px;}\r
+p.whs4 {margin-left: 80px;}\r
+img_whs5 {border-style: none; border: none; width: 304px; height: 233px;}\r
+p.whs6 {margin-left: 0px;}\r
+ul.whs7 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs6 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Max Element Area hypothesis</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
+ can be applied for meshing of 2D faces composing your geometrical object. \r
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
+ area </B></span>of meshing elements (depending on the chosen meshing algorithm \r
+ it can be <span style="font-weight: bold;"><B>triangles</B></span> or <span style="font-weight: bold;"><B>quadrangles</B></span>), \r
+ which will compose the mesh of these 2D faces. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To define the Max Element Area hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Max Element Area </B></span>or \r
+ <img src="../image47.gif" width="25px" height="24px" border="0" class="img_whs3"> click button. The following dialog box will appear:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image48.gif" width="304px" height="233px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs6">In this dialog box you can set:</p>\r
+\r
+<p class="whs6">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs7">\r
+       \r
+       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Name \r
+ </B></span>of your Max Element Area hypothesis</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Max. \r
+ Area</B></span>:<span style="font-weight: bold;"> <B></B></span>the maximum area<span \r
+ style="font-weight: bold;"> <B></B></span>of meshing elements</p></li>\r
+</ul>\r
+\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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm b/doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm
new file mode 100755 (executable)
index 0000000..40a8482
--- /dev/null
@@ -0,0 +1,167 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Max. Element volume hypothsis</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=653>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 25px; height: 24px;}\r
+p.whs4 {margin-left: 80px;}\r
+img_whs5 {border-style: none; border: none; width: 304px; height: 233px;}\r
+p.whs6 {margin-left: 0px;}\r
+ul.whs7 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs6 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Max Element Volume hypothesis</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>Max Element Area </B></span>hypothesis \r
+ can be applied for meshing of 3D objects composing your geometrical object. \r
+ Definition of this hypothesis consists of setting the <span style="font-weight: bold;"><B>maximum \r
+ volume </B></span>of 3D meshing elements (depending on the chosen meshing \r
+ algorithm it can be <span style="font-weight: bold;"><B>hexahedrons </B></span>or \r
+ <span style="font-weight: bold;"><B>tetrahedrons</B></span>), which will compose \r
+ the mesh of these 3D objects. </p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To define the Max Element Volume hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Max Element Volume \r
+ </B></span>or <img src="../image50.gif" width="25px" height="24px" border="0" class="img_whs3"> click button. The following dialog box will appear:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image49.gif" width="304px" height="233px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs6">In this dialog box you can set:</p>\r
+\r
+<p class="whs6">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs7">\r
+       \r
+       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Name \r
+ </B></span>of your Max Element Volume hypothesis</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs6"><span style="font-weight: bold;"><B>Max. \r
+ Volume</B></span>:<span style="font-weight: bold;"> <B></B></span>the maximum volume \r
+ of 3D meshing elements</p></li>\r
+</ul>\r
+\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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/minimum_angle.htm b/doc/salome/gui/SMESH/files/minimum_angle.htm
new file mode 100755 (executable)
index 0000000..7cfc229
--- /dev/null
@@ -0,0 +1,139 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Minimum angle</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=653>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 24px; height: 24px;}\r
+img_whs4 {border-style: none; border: none; width: 467px; height: 328px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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>Quality \r
+ Controls &gt; Minimum angle </B></span>or click <img src="../image38.gif" width="24px" height="24px" border="0" class="img_whs3"> button. 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="../image8.jpg" width="467px" height="328px" border="0" class="img_whs4"></p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm b/doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm
new file mode 100755 (executable)
index 0000000..ec3ce9c
--- /dev/null
@@ -0,0 +1,171 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Number of segments hypothesis</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=905>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 431px; height: 233px;}\r
+img_whs4 {border-style: none; border: none; width: 25px; height: 24px;}\r
+p.whs5 {margin-left: 80px;}\r
+img_whs6 {border-style: none; border: none; width: 304px; height: 233px;}\r
+p.whs7 {margin-left: 0px;}\r
+ul.whs8 {list-style: disc;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs7 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining hypotheses\nNumber of segments 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Number of segments hypothesis</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> <span style="font-weight: bold;"><B>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="whs2"><img src="../image46.gif" width="431px" height="233px" border="0" class="img_whs3"></p>\r
+\r
+<p class=TODO>To define the Number of segments hypothesis:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Nb. Segments </B></span>or \r
+ <img src="../image45.gif" width="25px" height="24px" border="0" class="img_whs4"> click button. The following dialog box will appear:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs5"><img src="../image44.gif" width="304px" height="233px" border="0" class="img_whs6"></p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs7">In this dialog box you can set:</p>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<ul type="disc" class="whs8">\r
+       \r
+       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Name \r
+ </B></span>of your Local Length hypothesis</p></li>\r
+       \r
+       <li class=kadov-p><p class="whs7"><span style="font-weight: bold;"><B>Segments</B></span>:<span \r
+ style="font-weight: bold;"> <B></B></span>the number<span style="font-weight: bold;"> \r
+ <B></B></span>of segments which will split the edges of your geometrical object</p></li>\r
+</ul>\r
+\r
+<p class="whs7">&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm b/doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm
new file mode 100755 (executable)
index 0000000..245bf84
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Reassigning hypotheses and algorithms</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nEditing meshes\nReassigning hypotheses and 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Reassigning hypotheses and algorithms</h1>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm b/doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm
new file mode 100755 (executable)
index 0000000..7029acd
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Removing nodes and elements</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=0>\r
+<meta name=layout-height content=0>\r
+<meta name=layout-width content=0>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nModifying meshes\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Removing nodes and elements</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/running_smesh_module.htm b/doc/salome/gui/SMESH/files/running_smesh_module.htm
new file mode 100755 (executable)
index 0000000..d42bc50
--- /dev/null
@@ -0,0 +1,172 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Running SMESH module</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1495>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {font-family: 'Times New Roman', serif;}\r
+ol.whs2 {list-style: decimal;}\r
+img_whs3 {border-style: none; border: none; width: 32px; height: 34px; float: none;}\r
+p.whs4 {margin-left: 40px;}\r
+img_whs5 {border-style: none; border: none; width: 574px; height: 404px;}\r
+p.whs6 {font-family:'Times New Roman' , serif; background-image:url(../texture_horiz_ltbluebubbles.jpg); }\r
+img_whs7 {border-style: none; border: none; float: none; width: 36px; height: 38px;}\r
+p.whs8 {font-family: 'Times New Roman', serif; margin-left: 40px;}\r
+img_whs9 {border-style: none; border: none; width: 29px; height: 28px;}\r
+img_whs10 {border-style: none; border: none; width: 150px; height: 160px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nRunning SMESH 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Running SMESH module</h1>\r
+\r
+<p class=TODO>To start <span style="font-weight: bold;"><B>SMESH </B></span><span \r
+ class=glossterm>module</span> in SALOME:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<ol type="1" class="whs2">\r
+       \r
+       <li class=kadov-p><p class="whs1">Run \r
+ SALOME </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs1">Create \r
+ a new study by clicking <img src="../pics/new.jpg" x-maintain-ratio="TRUE" width="32px" height="34px" border="0" class="img_whs3"> icon in the main toolbar. The \r
+ following SALOME standard window will appear: &nbsp;</p></li>\r
+</ol>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../image11.jpg" width="574px" height="404px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs6"><img src="../note1.gif" x-maintain-ratio="TRUE" width="36px" height="38px" border="0" class="img_whs7"> Before launching the SMESH module, you should set the VTK \r
+ viewer as default viewer for creation of a new study window. In SMESH \r
+ you can generate and work with meshes only in VTK viewer. </p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
+\r
+<p class="whs8">&nbsp;&nbsp;&nbsp;&nbsp;3. \r
+ In the bottom toolbar click <img src="../image25.jpg" width="29px" height="28px" border="0" class="img_whs9"> icon or &nbsp;from \r
+ the bottom Choose box</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../image24.jpg" width="150px" height="160px" border="0" class="img_whs10"></p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select \r
+ <span style="font-weight: bold;"><B>SMESH</B></span>.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">The initial desktop of \r
+ the SALOME platform will be updated with some additional toolbars and \r
+ menus related to the <span style="font-weight: bold;"><B>SMESH</B></span> component \r
+ . It will look like as follows:</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image12.jpg" width="574px" height="404px" border="0" class="img_whs5"></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/scalar_bar_properties.htm b/doc/salome/gui/SMESH/files/scalar_bar_properties.htm
new file mode 100755 (executable)
index 0000000..7931785
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Scalar Bar properties</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nSetting SMESH preferences\nScalar Bar properties");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Scalar Bar properties</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/shading.htm b/doc/salome/gui/SMESH/files/shading.htm
new file mode 100755 (executable)
index 0000000..28db384
--- /dev/null
@@ -0,0 +1,109 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Shading</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 479px; height: 296px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<p><img src="../image4.gif" width="479px" height="296px" border="0" class="img_whs1"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/shrink.htm b/doc/salome/gui/SMESH/files/shrink.htm
new file mode 100755 (executable)
index 0000000..e7bc103
--- /dev/null
@@ -0,0 +1,109 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Shrink</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 480px; height: 292px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<p><img src="../image6.gif" width="480px" height="292px" border="0" class="img_whs1"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/skew.htm b/doc/salome/gui/SMESH/files/skew.htm
new file mode 100755 (executable)
index 0000000..39f2f82
--- /dev/null
@@ -0,0 +1,158 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Skew</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1099>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 0px; text-indent: 48px;}\r
+p.whs3 {margin-left: 40px;}\r
+img_whs4 {border-style: none; border: none; width: 453px; height: 411px;}\r
+img_whs5 {border-style: none; border: none; width: 24px; height: 23px;}\r
+img_whs6 {border-style: none; border: none; width: 467px; height: 326px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs2 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nQuality controls\nSkew 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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Skew 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>Skew angle</B></span> mesh \r
+ quality criterion reflects the angle between the lines that join opposite \r
+ sides 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 angle 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>Quality \r
+ Controls &gt; Skew </B></span>or click <img src="../image40.gif" width="24px" height="23px" border="0" class="img_whs5"> button of the toolbar. \r
+ Your mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image10.jpg" width="467px" height="326px" 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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/taper.htm b/doc/salome/gui/SMESH/files/taper.htm
new file mode 100755 (executable)
index 0000000..958fd05
--- /dev/null
@@ -0,0 +1,142 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Taper</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=824>\r
+<meta name=layout-width content=813>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
+img_whs2 {border-style: none; border: none; width: 791px; height: 170px;}\r
+p.whs3 {margin-left: 40px;}\r
+img_whs4 {border-style: none; border: none; width: 24px; height: 23px;}\r
+img_whs5 {border-style: none; border: none; width: 465px; height: 326px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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>Quality \r
+ Controls &gt; Taper </B></span>or click <img src="../image36.gif" width="24px" height="23px" border="0" class="img_whs4"> 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="whs3">&nbsp;</p>\r
+\r
+<p class="whs3"><img src="../image6.jpg" width="465px" height="326px" border="0" class="img_whs5"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm b/doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm
new file mode 100755 (executable)
index 0000000..c9f3589
--- /dev/null
@@ -0,0 +1,126 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Tetrahedron (Netgen) meshing algorithm</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 30px; height: 30px; float: none;}\r
+p.whs2 {margin-left: 40px;}\r
+img_whs3 {border-style: none; border: none; width: 26px; height: 24px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nCreating meshes\nDefining meshing algorithms\n3D meshing algorithms\nTetrahedron (Netgen) meshing algorithm");\r
+addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+\r
+       }\r
+       if (window.writeBtnStyle)\r
+               writeBtnStyle();\r
+\r
+       if (window.writeIntopicBar)\r
+               writeIntopicBar(1);\r
+\r
+       if (window.setRelStartPage)\r
+       {\r
+       setRelStartPage("../smesh.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Tetrahedron (Netgen) meshing algorithm</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"> This algorithm is used for meshing of 3D entities of \r
+ geometrical objects - <span style="font-weight: bold;"><B>volume objects</B></span><span>. \r
+ </span></p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<p class=TODO>To apply the Tetrahedron meshing algorithm:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs2">From the <span style="font-weight: bold;"><B>Hypotheses \r
+ </B></span>menu select <span style="font-weight: bold;"><B>Tetrahedron (Netgen) \r
+ </B></span>or click <img src="../image52.gif" width="26px" height="24px" border="0" class="img_whs3"> button in the toolbar.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/using_smesh_module.htm b/doc/salome/gui/SMESH/files/using_smesh_module.htm
new file mode 100755 (executable)
index 0000000..6a3250b
--- /dev/null
@@ -0,0 +1,106 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Using SMESH module</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Using SMESH </h1>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/view_update.htm b/doc/salome/gui/SMESH/files/view_update.htm
new file mode 100755 (executable)
index 0000000..d9a8405
--- /dev/null
@@ -0,0 +1,112 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>View update</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nSetting SMESH preferences\nView update");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>View update</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/viewing_mesh_info.htm b/doc/salome/gui/SMESH/files/viewing_mesh_info.htm
new file mode 100755 (executable)
index 0000000..956791a
--- /dev/null
@@ -0,0 +1,152 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Viewing mesh info</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=588>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+p.whs1 {margin-left: 40px;}\r
+img_whs2 {border-style: none; border: none; width: 21px; height: 20px;}\r
+p.whs3 {margin-left: 0px;}\r
+p.whs4 {margin-left: 80px;}\r
+img_whs5 {border-style: none; border: none; width: 258px; height: 282px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs3 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nMesh info\nViewing mesh info");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Viewing mesh info</h1>\r
+\r
+<p class=TODO>To view the information on meshes:</p>\r
+\r
+<p class=TODO>&nbsp;</p>\r
+\r
+<p class="whs1">1. Select your mesh in the <span style="font-weight: bold;"><B>Object \r
+ Browser</B></span>.</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">2. From the <span style="font-weight: bold;"><B>Mesh \r
+ </B></span><span>menu s</span>elect <span style="font-weight: bold;"><B>Mesh \r
+ infos </B></span>or click <img src="../image26.gif" width="21px" height="20px" border="0" class="img_whs2"> button of the toolbar. </p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs3">The following information will be displayed:</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs3">&nbsp;</p>\r
+\r
+<p class="whs4"><img src="../image27.gif" width="258px" height="282px" border="0" class="img_whs5"></p>\r
+\r
+<p class="whs4">&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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/visualization_modes.htm b/doc/salome/gui/SMESH/files/visualization_modes.htm
new file mode 100755 (executable)
index 0000000..648d5bc
--- /dev/null
@@ -0,0 +1,153 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Visualization modes</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
+ul.whs2 {list-style: disc;}\r
+p.whs3 {font-weight: bold;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nSetting SMESH preferences\nVisualization modes");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script><!--(Generated Script Links)========================================-->\r
+<!--(Generated Code)================================================-->\r
+<!--(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)==================-->\r
+<script type="text/javascript" language="JavaScript1.2" src="../ehlpdhtm.js" x-save-method="compute-relative" name="EHELP_DHTM"></script>\r
+<script type="text/javascript"\r
+               language=JavaScript1.2>\r
+<!-- \r
+if( typeof( kadovInitEffects ) != 'function' ) kadovInitEffects = new Function();if( typeof( kadovInitTrigger ) != 'function' ) kadovInitTrigger = new Function();if( typeof( kadovFilePopupInit ) != 'function' ) kadovFilePopupInit = new Function();if( typeof( kadovTextPopupInit ) != 'function' ) kadovTextPopupInit = new Function();\r
+ //-->\r
+</script>\r
+\r
+<!--(==============================================================)-->\r
+\r
+\r
+<h1>Visualization modes</h1>\r
+\r
+<p><img src="../i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1">In SMESH there are three visualization modes for displaying \r
+ meshes in the viewer:</p>\r
+\r
+<p>&nbsp;</p>\r
+\r
+<ul type="disc" class="whs2">\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="javascript:void(0);" id="a1" onMouseOver="if (parseInt(navigator.appVersion) >= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event);" class="BSSCPopup" onclick="BSSCPopup('wireframe.htm',520,325);return false;">Wireframe</a><script \r
+ type="text/javascript"\r
+       language=JavaScript1.2><!--\r
+kadovFilePopupInit('a1');\r
+//--></script></B></span> \r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="javascript:void(0);" id="a2" onMouseOver="if (parseInt(navigator.appVersion) >= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event);" class="BSSCPopup" onclick="BSSCPopup('shading.htm',520,325);return false;">Shading</a><script \r
+ type="text/javascript"\r
+       language=JavaScript1.2><!--\r
+kadovFilePopupInit('a2');\r
+//--></script></B></span> \r
+ </p></li>\r
+       \r
+       <li class=kadov-p><p class="whs3"><a href="javascript:void(0);" id="a3" onMouseOver="if (parseInt(navigator.appVersion) >= 4 && typeof(BSPSPopupOnMouseOver) == 'function') BSPSPopupOnMouseOver(event);" class="BSSCPopup" onclick="BSSCPopup('shrink.htm',520,325);return false;">Shrink</a><script \r
+ type="text/javascript"\r
+       language=JavaScript1.2><!--\r
+kadovFilePopupInit('a3');\r
+//--></script></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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/visualization_properties.htm b/doc/salome/gui/SMESH/files/visualization_properties.htm
new file mode 100755 (executable)
index 0000000..b08f357
--- /dev/null
@@ -0,0 +1,107 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Visualization properties</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\nSetting SMESH preferences\nVisualization properties");\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<h1>Visualization properties</h1>\r
+\r
+<p>Type topic text here.</p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/warp.htm b/doc/salome/gui/SMESH/files/warp.htm
new file mode 100755 (executable)
index 0000000..c336fd1
--- /dev/null
@@ -0,0 +1,171 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Warp</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=1161>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; float: none; width: 30px; height: 30px;}\r
+p.whs2 {margin-left: 40px;}\r
+p.whs3 {margin-left: 0px;}\r
+img_whs4 {border-style: none; border: none; width: 496px; height: 336px;}\r
+img_whs5 {border-style: none; border: none; width: 23px; height: 23px;}\r
+img_whs6 {border-style: none; border: none; width: 467px; height: 326px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript">\r
+<!--\r
+if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
+{\r
+  var strNSS = "<style type='text/css'>";\r
+  strNSS += "p.whs3 {margin-left:1; }";\r
+  strNSS +="</style>";\r
+  document.write(strNSS);\r
+}\r
+//-->\r
+</script>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       addTocInfo("SMESH module\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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\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>Quality \r
+ Controls &gt; Warp </B></span>or click <img src="../image39.gif" width="23px" height="23px" border="0" class="img_whs5"> button of the toolbar. \r
+ Your mesh will be displayed in the viewer with its elements colored according \r
+ to the applied mesh quality control criterion:</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs2"><img src="../image9.jpg" width="467px" height="326px" 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
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/files/wireframe.htm b/doc/salome/gui/SMESH/files/wireframe.htm
new file mode 100755 (executable)
index 0000000..0167066
--- /dev/null
@@ -0,0 +1,109 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
+\r
+<html>\r
+\r
+<!--(==============================================================)-->\r
+<!--(Document created with RoboEditor. )============================-->\r
+<!--(==============================================================)-->\r
+\r
+<head>\r
+\r
+<title>Wireframe</title>\r
+\r
+<!--(Meta)==========================================================-->\r
+\r
+<meta http-equiv=content-type content="text/html; charset=windows-1252">\r
+<meta name=generator content="RoboHELP by eHelp Corporation - www.ehelp.com">\r
+<meta name=generator-major-version content=0.1>\r
+<meta name=generator-minor-version content=1>\r
+<meta name=filetype content=kadov>\r
+<meta name=filetype-version content=1>\r
+<meta name=page-count content=1>\r
+<meta name=layout-height content=380>\r
+<meta name=layout-width content=700>\r
+\r
+\r
+<!--(Links)=========================================================-->\r
+\r
+ <link rel='stylesheet' href='../default_ns.css'>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
+<!--\r
+if (navigator.appName !="Netscape")\r
+{   document.write("<link rel='stylesheet' href='../default.css'>");}\r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+img_whs1 {border-style: none; border: none; width: 481px; height: 294px;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
+<!--\r
+function reDo() {\r
+  if (innerWidth != origWidth || innerHeight != origHeight)\r
+     location.reload();\r
+}\r
+if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
+       origWidth = innerWidth;\r
+       origHeight = innerHeight;\r
+       onresize = reDo;\r
+}\r
+onerror = null; \r
+//-->\r
+</script>\r
+<style type="text/css">\r
+<!--\r
+  div.WebHelpPopupMenu {position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;}\r
+-->\r
+</style>\r
+<script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
+<script type="text/javascript" language="javascript" src="../whver.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
+<script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
+</head>\r
+\r
+<!--(Body)==========================================================-->\r
+\r
+\r
+<body>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.gbWhTopic)\r
+{\r
+       if (window.addTocInfo)\r
+       {\r
+       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.html");\r
+\r
+               autoSync(0);\r
+               sendSyncInfo();\r
+               sendAveInfoOut();\r
+       }\r
+}\r
+else\r
+       document.location.reload();\r
+//-->\r
+</script>\r
+<p><img src="../image2.gif" width="481px" height="294px" border="0" class="img_whs1"></p>\r
+\r
+<script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(0);\r
+//-->\r
+</script>\r
+</body>\r
+\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/i_blue.jpg b/doc/salome/gui/SMESH/i_blue.jpg
new file mode 100755 (executable)
index 0000000..ed3acfa
Binary files /dev/null and b/doc/salome/gui/SMESH/i_blue.jpg differ
diff --git a/doc/salome/gui/SMESH/image10.jpg b/doc/salome/gui/SMESH/image10.jpg
new file mode 100755 (executable)
index 0000000..8c20c4c
Binary files /dev/null and b/doc/salome/gui/SMESH/image10.jpg differ
diff --git a/doc/salome/gui/SMESH/image11.jpg b/doc/salome/gui/SMESH/image11.jpg
new file mode 100755 (executable)
index 0000000..f08bfe0
Binary files /dev/null and b/doc/salome/gui/SMESH/image11.jpg differ
diff --git a/doc/salome/gui/SMESH/image12.jpg b/doc/salome/gui/SMESH/image12.jpg
new file mode 100755 (executable)
index 0000000..aa3ee34
Binary files /dev/null and b/doc/salome/gui/SMESH/image12.jpg differ
diff --git a/doc/salome/gui/SMESH/image2.gif b/doc/salome/gui/SMESH/image2.gif
new file mode 100755 (executable)
index 0000000..7ac734e
Binary files /dev/null and b/doc/salome/gui/SMESH/image2.gif differ
diff --git a/doc/salome/gui/SMESH/image22.gif b/doc/salome/gui/SMESH/image22.gif
new file mode 100755 (executable)
index 0000000..18b53bf
Binary files /dev/null and b/doc/salome/gui/SMESH/image22.gif differ
diff --git a/doc/salome/gui/SMESH/image24.gif b/doc/salome/gui/SMESH/image24.gif
new file mode 100755 (executable)
index 0000000..3d8032b
Binary files /dev/null and b/doc/salome/gui/SMESH/image24.gif differ
diff --git a/doc/salome/gui/SMESH/image24.jpg b/doc/salome/gui/SMESH/image24.jpg
new file mode 100755 (executable)
index 0000000..59570ba
Binary files /dev/null and b/doc/salome/gui/SMESH/image24.jpg differ
diff --git a/doc/salome/gui/SMESH/image25.gif b/doc/salome/gui/SMESH/image25.gif
new file mode 100755 (executable)
index 0000000..cd7c967
Binary files /dev/null and b/doc/salome/gui/SMESH/image25.gif differ
diff --git a/doc/salome/gui/SMESH/image25.jpg b/doc/salome/gui/SMESH/image25.jpg
new file mode 100755 (executable)
index 0000000..4b2d4df
Binary files /dev/null and b/doc/salome/gui/SMESH/image25.jpg differ
diff --git a/doc/salome/gui/SMESH/image26.gif b/doc/salome/gui/SMESH/image26.gif
new file mode 100755 (executable)
index 0000000..62eef53
Binary files /dev/null and b/doc/salome/gui/SMESH/image26.gif differ
diff --git a/doc/salome/gui/SMESH/image26.jpg b/doc/salome/gui/SMESH/image26.jpg
new file mode 100755 (executable)
index 0000000..3a02cb9
Binary files /dev/null and b/doc/salome/gui/SMESH/image26.jpg differ
diff --git a/doc/salome/gui/SMESH/image27.gif b/doc/salome/gui/SMESH/image27.gif
new file mode 100755 (executable)
index 0000000..d21b890
Binary files /dev/null and b/doc/salome/gui/SMESH/image27.gif differ
diff --git a/doc/salome/gui/SMESH/image27.jpg b/doc/salome/gui/SMESH/image27.jpg
new file mode 100755 (executable)
index 0000000..d2f32b1
Binary files /dev/null and b/doc/salome/gui/SMESH/image27.jpg differ
diff --git a/doc/salome/gui/SMESH/image28.gif b/doc/salome/gui/SMESH/image28.gif
new file mode 100755 (executable)
index 0000000..21f54bf
Binary files /dev/null and b/doc/salome/gui/SMESH/image28.gif differ
diff --git a/doc/salome/gui/SMESH/image28.jpg b/doc/salome/gui/SMESH/image28.jpg
new file mode 100755 (executable)
index 0000000..8ec5266
Binary files /dev/null and b/doc/salome/gui/SMESH/image28.jpg differ
diff --git a/doc/salome/gui/SMESH/image29.gif b/doc/salome/gui/SMESH/image29.gif
new file mode 100755 (executable)
index 0000000..e748b6f
Binary files /dev/null and b/doc/salome/gui/SMESH/image29.gif differ
diff --git a/doc/salome/gui/SMESH/image29.jpg b/doc/salome/gui/SMESH/image29.jpg
new file mode 100755 (executable)
index 0000000..c405124
Binary files /dev/null and b/doc/salome/gui/SMESH/image29.jpg differ
diff --git a/doc/salome/gui/SMESH/image3.jpg b/doc/salome/gui/SMESH/image3.jpg
new file mode 100755 (executable)
index 0000000..172c020
Binary files /dev/null and b/doc/salome/gui/SMESH/image3.jpg differ
diff --git a/doc/salome/gui/SMESH/image31.gif b/doc/salome/gui/SMESH/image31.gif
new file mode 100755 (executable)
index 0000000..c2a9a77
Binary files /dev/null and b/doc/salome/gui/SMESH/image31.gif differ
diff --git a/doc/salome/gui/SMESH/image32.gif b/doc/salome/gui/SMESH/image32.gif
new file mode 100755 (executable)
index 0000000..a1ee2ee
Binary files /dev/null and b/doc/salome/gui/SMESH/image32.gif differ
diff --git a/doc/salome/gui/SMESH/image33.gif b/doc/salome/gui/SMESH/image33.gif
new file mode 100755 (executable)
index 0000000..ecdd47b
Binary files /dev/null and b/doc/salome/gui/SMESH/image33.gif differ
diff --git a/doc/salome/gui/SMESH/image34.gif b/doc/salome/gui/SMESH/image34.gif
new file mode 100755 (executable)
index 0000000..963095f
Binary files /dev/null and b/doc/salome/gui/SMESH/image34.gif differ
diff --git a/doc/salome/gui/SMESH/image35.gif b/doc/salome/gui/SMESH/image35.gif
new file mode 100755 (executable)
index 0000000..0e3b30f
Binary files /dev/null and b/doc/salome/gui/SMESH/image35.gif differ
diff --git a/doc/salome/gui/SMESH/image36.gif b/doc/salome/gui/SMESH/image36.gif
new file mode 100755 (executable)
index 0000000..7236ef8
Binary files /dev/null and b/doc/salome/gui/SMESH/image36.gif differ
diff --git a/doc/salome/gui/SMESH/image37.gif b/doc/salome/gui/SMESH/image37.gif
new file mode 100755 (executable)
index 0000000..edd5263
Binary files /dev/null and b/doc/salome/gui/SMESH/image37.gif differ
diff --git a/doc/salome/gui/SMESH/image38.gif b/doc/salome/gui/SMESH/image38.gif
new file mode 100755 (executable)
index 0000000..087f6e2
Binary files /dev/null and b/doc/salome/gui/SMESH/image38.gif differ
diff --git a/doc/salome/gui/SMESH/image39.gif b/doc/salome/gui/SMESH/image39.gif
new file mode 100755 (executable)
index 0000000..b206af1
Binary files /dev/null and b/doc/salome/gui/SMESH/image39.gif differ
diff --git a/doc/salome/gui/SMESH/image4.gif b/doc/salome/gui/SMESH/image4.gif
new file mode 100755 (executable)
index 0000000..d23b2a3
Binary files /dev/null and b/doc/salome/gui/SMESH/image4.gif differ
diff --git a/doc/salome/gui/SMESH/image4.jpg b/doc/salome/gui/SMESH/image4.jpg
new file mode 100755 (executable)
index 0000000..c90ba78
Binary files /dev/null and b/doc/salome/gui/SMESH/image4.jpg differ
diff --git a/doc/salome/gui/SMESH/image40.gif b/doc/salome/gui/SMESH/image40.gif
new file mode 100755 (executable)
index 0000000..becc12a
Binary files /dev/null and b/doc/salome/gui/SMESH/image40.gif differ
diff --git a/doc/salome/gui/SMESH/image41.gif b/doc/salome/gui/SMESH/image41.gif
new file mode 100755 (executable)
index 0000000..2e132c2
Binary files /dev/null and b/doc/salome/gui/SMESH/image41.gif differ
diff --git a/doc/salome/gui/SMESH/image42.gif b/doc/salome/gui/SMESH/image42.gif
new file mode 100755 (executable)
index 0000000..fdfb1b1
Binary files /dev/null and b/doc/salome/gui/SMESH/image42.gif differ
diff --git a/doc/salome/gui/SMESH/image43.gif b/doc/salome/gui/SMESH/image43.gif
new file mode 100755 (executable)
index 0000000..e1e7b17
Binary files /dev/null and b/doc/salome/gui/SMESH/image43.gif differ
diff --git a/doc/salome/gui/SMESH/image44.gif b/doc/salome/gui/SMESH/image44.gif
new file mode 100755 (executable)
index 0000000..4c9cc1a
Binary files /dev/null and b/doc/salome/gui/SMESH/image44.gif differ
diff --git a/doc/salome/gui/SMESH/image45.gif b/doc/salome/gui/SMESH/image45.gif
new file mode 100755 (executable)
index 0000000..aaf1d20
Binary files /dev/null and b/doc/salome/gui/SMESH/image45.gif differ
diff --git a/doc/salome/gui/SMESH/image46.gif b/doc/salome/gui/SMESH/image46.gif
new file mode 100755 (executable)
index 0000000..0f00ea7
Binary files /dev/null and b/doc/salome/gui/SMESH/image46.gif differ
diff --git a/doc/salome/gui/SMESH/image47.gif b/doc/salome/gui/SMESH/image47.gif
new file mode 100755 (executable)
index 0000000..8d63f4d
Binary files /dev/null and b/doc/salome/gui/SMESH/image47.gif differ
diff --git a/doc/salome/gui/SMESH/image48.gif b/doc/salome/gui/SMESH/image48.gif
new file mode 100755 (executable)
index 0000000..1d5704b
Binary files /dev/null and b/doc/salome/gui/SMESH/image48.gif differ
diff --git a/doc/salome/gui/SMESH/image49.gif b/doc/salome/gui/SMESH/image49.gif
new file mode 100755 (executable)
index 0000000..92f715c
Binary files /dev/null and b/doc/salome/gui/SMESH/image49.gif differ
diff --git a/doc/salome/gui/SMESH/image50.gif b/doc/salome/gui/SMESH/image50.gif
new file mode 100755 (executable)
index 0000000..f2d52be
Binary files /dev/null and b/doc/salome/gui/SMESH/image50.gif differ
diff --git a/doc/salome/gui/SMESH/image51.gif b/doc/salome/gui/SMESH/image51.gif
new file mode 100755 (executable)
index 0000000..a1502c4
Binary files /dev/null and b/doc/salome/gui/SMESH/image51.gif differ
diff --git a/doc/salome/gui/SMESH/image52.gif b/doc/salome/gui/SMESH/image52.gif
new file mode 100755 (executable)
index 0000000..2049e09
Binary files /dev/null and b/doc/salome/gui/SMESH/image52.gif differ
diff --git a/doc/salome/gui/SMESH/image53.gif b/doc/salome/gui/SMESH/image53.gif
new file mode 100755 (executable)
index 0000000..2049e09
Binary files /dev/null and b/doc/salome/gui/SMESH/image53.gif differ
diff --git a/doc/salome/gui/SMESH/image55.gif b/doc/salome/gui/SMESH/image55.gif
new file mode 100755 (executable)
index 0000000..7858e6e
Binary files /dev/null and b/doc/salome/gui/SMESH/image55.gif differ
diff --git a/doc/salome/gui/SMESH/image56.gif b/doc/salome/gui/SMESH/image56.gif
new file mode 100755 (executable)
index 0000000..e19be5b
Binary files /dev/null and b/doc/salome/gui/SMESH/image56.gif differ
diff --git a/doc/salome/gui/SMESH/image6.gif b/doc/salome/gui/SMESH/image6.gif
new file mode 100755 (executable)
index 0000000..2bfa829
Binary files /dev/null and b/doc/salome/gui/SMESH/image6.gif differ
diff --git a/doc/salome/gui/SMESH/image6.jpg b/doc/salome/gui/SMESH/image6.jpg
new file mode 100755 (executable)
index 0000000..7dda1f9
Binary files /dev/null and b/doc/salome/gui/SMESH/image6.jpg differ
diff --git a/doc/salome/gui/SMESH/image7.jpg b/doc/salome/gui/SMESH/image7.jpg
new file mode 100755 (executable)
index 0000000..d6728e2
Binary files /dev/null and b/doc/salome/gui/SMESH/image7.jpg differ
diff --git a/doc/salome/gui/SMESH/image8.jpg b/doc/salome/gui/SMESH/image8.jpg
new file mode 100755 (executable)
index 0000000..c542c46
Binary files /dev/null and b/doc/salome/gui/SMESH/image8.jpg differ
diff --git a/doc/salome/gui/SMESH/image9.jpg b/doc/salome/gui/SMESH/image9.jpg
new file mode 100755 (executable)
index 0000000..9bca05a
Binary files /dev/null and b/doc/salome/gui/SMESH/image9.jpg differ
diff --git a/doc/salome/gui/SMESH/note1.gif b/doc/salome/gui/SMESH/note1.gif
new file mode 100755 (executable)
index 0000000..b53e21d
Binary files /dev/null and b/doc/salome/gui/SMESH/note1.gif differ
diff --git a/doc/salome/gui/SMESH/pics/exemple.gif b/doc/salome/gui/SMESH/pics/exemple.gif
new file mode 100755 (executable)
index 0000000..6350d17
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/exemple.gif differ
diff --git a/doc/salome/gui/SMESH/pics/new.jpg b/doc/salome/gui/SMESH/pics/new.jpg
new file mode 100755 (executable)
index 0000000..4fec7ad
Binary files /dev/null and b/doc/salome/gui/SMESH/pics/new.jpg differ
diff --git a/doc/salome/gui/SMESH/smesh.html b/doc/salome/gui/SMESH/smesh.html
new file mode 100755 (executable)
index 0000000..c5c12b4
--- /dev/null
@@ -0,0 +1,150 @@
+\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 http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+ <meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+ <meta name "description" content="WebHelp 2002">\r
+</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 = nWebhelpNavPaneMode;\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)                          \r
+               document.location = "whnjs.htm";\r
+       if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))\r
+               document.location = "whnjs.htm";\r
+       if (gbMac && gbIE4 && !gbIE5)           \r
+               document.location = "whnjs.htm";\r
+       //figure out which mode is the best\r
+       if ((nWebhelpNavPaneMode == 1) ||\r
+               (nWebhelpNavPaneMode == 2))\r
+       {\r
+               var gbDHTML = (nWebhelpNavPaneMode == 1);\r
+               if (nWebhelpNavPaneMode == 2)                                                           nViewFrameType = 2;\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 ((bNoApplet) && (nViewFrameType == 2))                                       nViewFrameType = 3;\r
+               if (gbOpera)                                                                                            nViewFrameType = 3;\r
+       }\r
+}\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
+</script>\r
+<script type="text/javascript" language="javascript" src="whstart.js"></script>\r
+<script type="text/javascript" language="javascript">\r
+<!--\r
+if (!gbIE4 && !gbNav4)\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_strVersion;\r
+  this.m_strDefAgent;\r
+  this.m_strAgentList;\r
+  this.m_bTrial;\r
+  this.m_bExpired;\r
+  this.m_bSinglePane;\r
+  this.m_strProduct;\r
+  this.m_strWindow;\r
+  this.m_strProject;\r
+  this.m_strContextID;\r
+  this.m_strCaption; \r
+  this.m_strURLSkinFile;\r
+  this.m_strURLResource;\r
+  this.m_strURLLogoImg;\r
+  this.m_strURLTopic;\r
+  this.m_strURLBase;\r
+  this.m_bShowSync;\r
+  this.m_bShowBrowseSequences;\r
+  this.m_bShowSearchInput;\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
+var strHTML = "<frameset rows=\"32,*\" hostof=\"parent:toolbar!startpage:yes\" frameborder=\"no\" border=\"0\"><frame src=\"whskin_tbars.htm\" id=\"toolbar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" noresize marginheight=\"0\" marginwidth=\"0\" title=\"Toolbar\"></frame><frame src=\"whskin_frmset01.htm\"  frameborder=\"yes\" border=\"1\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame></frameset>";\r
+document.write(strHTML);\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
diff --git a/doc/salome/gui/SMESH/smesh_csh.html b/doc/salome/gui/SMESH/smesh_csh.html
new file mode 100755 (executable)
index 0000000..187fb11
--- /dev/null
@@ -0,0 +1,100 @@
+<html>\r
+<head>\r
+<title>SMESH reference manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<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
+       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
+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.html b/doc/salome/gui/SMESH/smesh_rhc.html
new file mode 100755 (executable)
index 0000000..9acb37e
--- /dev/null
@@ -0,0 +1,100 @@
+<html>\r
+<head>\r
+<title>SMESH reference manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<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
+       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
+function isSamePath(strPath1, strPath2)\r
+{\r
+       return strPath1.toLowerCase() == strPath2.toLowerCase();\r
+}\r
+\r
+function goNext()\r
+{\r
+       gCurrent ++;\r
+       var len = gasProj.length;\r
+       if (gCurrent >= len)\r
+               return getHomePage()\r
+       else\r
+               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;\r
+       return "";\r
+}\r
+\r
+function getRelHomePage(strLocation)\r
+{\r
+       var strCurPPath = _getPath(strLocation);\r
+       var strOriPPath = _getPath(getHomePage());\r
+       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);\r
+       var strURL = getHomePage() + "#" + strRelPath;\r
+       return strURL;\r
+}\r
+\r
+function getHomePage()\r
+{\r
+       var strHomePage;\r
+       var strTmp = location.toString();\r
+       var nPos = strTmp.indexOf("#");\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strTmp.substring(0, nPos);\r
+       }\r
+       else\r
+       {\r
+          strHomePage = strTmp;\r
+       }\r
+       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);\r
+       var nPos = strHomePage.indexOf(gCSHSuffixName2);\r
+       if (nPos != -1)\r
+       {\r
+          strHomePage = strHomePage.substring(0,nPos);\r
+          if (nPos1 != -1)\r
+            strHomePage += ".html";\r
+          else\r
+            strHomePage += ".htm";\r
+       }\r
+       return strHomePage;\r
+}\r
+//-->\r
+</script>\r
+</head>\r
+<frameset rows="1,*">\r
+<frame name="dumb" src="about:blank"></frame>\r
+<frame name="csh" src="cshdat_robohelp.htm"></frame>           \r
+</frameset>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg b/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg
new file mode 100755 (executable)
index 0000000..a10d494
Binary files /dev/null and b/doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg differ
diff --git a/doc/salome/gui/SMESH/webhelp.cab b/doc/salome/gui/SMESH/webhelp.cab
new file mode 100755 (executable)
index 0000000..1458608
Binary files /dev/null and b/doc/salome/gui/SMESH/webhelp.cab differ
diff --git a/doc/salome/gui/SMESH/webhelp.jar b/doc/salome/gui/SMESH/webhelp.jar
new file mode 100755 (executable)
index 0000000..d985cac
Binary files /dev/null and b/doc/salome/gui/SMESH/webhelp.jar differ
diff --git a/doc/salome/gui/SMESH/whdata/whftdata.js b/doc/salome/gui/SMESH/whdata/whftdata.js
new file mode 100755 (executable)
index 0000000..9e3b6ab
--- /dev/null
@@ -0,0 +1,24 @@
+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
+window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whftdata0.htm b/doc/salome/gui/SMESH/whdata/whftdata0.htm
new file mode 100755 (executable)
index 0000000..fe18c10
--- /dev/null
@@ -0,0 +1,59 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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("1D meshing algorithm","files/1d_meshing_algorithm.htm");\r
+aTE("2D (Quadrangle) meshing algorithm","files/2d_(quadrangle)_meshing_algorithm.htm");\r
+aTE("2D meshing algorithm","files/2d_meshing_algorithm.htm");\r
+aTE("3D meshing algorithm","files/3d_meshing_algorithm.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 modification of meshes","files/about_modification_of_meshes.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("Aspect Ratio","files/aspect_ratio.htm");\r
+aTE("Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
+aTE("Computing meshes","files/computing_meshes.htm");\r
+aTE("Connectivity","files/connectivity.htm");\r
+aTE("Constructing meshes","files/constructing_meshes.htm");\r
+aTE("Constructing submeshes","files/constructing_submeshes.htm");\r
+aTE("Diagonal iversion of elements","files/diagonal_iversion_of_elements.htm");\r
+aTE("Displacing nodes","files/displacing_nodes.htm");\r
+aTE("Displaying elements numbers","files/displaying_elements_numbers.htm");\r
+aTE("Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
+aTE("Editing hypotheses","files/editing_hypotheses.htm");\r
+aTE("Importing and exporting meshes","files/importing_and_exporting_meshes.htm");\r
+aTE("Introduction to SMESH","files/introduction_to_smesh.htm");\r
+aTE("Length of edges","files/length_of_edges.htm");\r
+aTE("Local Length hypothesis","files/local_length_hypothesis.htm");\r
+aTE("Max. Element Area hypothesis","files/max._element_area_hypothesis.htm");\r
+aTE("Max. Element volume hypothsis","files/max._element_volume_hypothsis.htm");\r
+aTE("Minimum angle","files/minimum_angle.htm");\r
+aTE("Number of segments hypothesis","files/number_of_segments_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("Running SMESH module","files/running_smesh_module.htm");\r
+aTE("Scalar Bar properties","files/scalar_bar_properties.htm");\r
+aTE("Skew","files/skew.htm");\r
+aTE("Taper","files/taper.htm");\r
+aTE("Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
+aTE("Using SMESH module","files/using_smesh_module.htm");\r
+aTE("View update","files/view_update.htm");\r
+aTE("Viewing mesh info","files/viewing_mesh_info.htm");\r
+aTE("Visualization modes","files/visualization_modes.htm");\r
+aTE("Visualization properties","files/visualization_properties.htm");\r
+aTE("Warp","files/warp.htm");\r
+\r
+//-->\r
+</script>\r
+</script>\r
diff --git a/doc/salome/gui/SMESH/whdata/whftdata0.xml b/doc/salome/gui/SMESH/whdata/whftdata0.xml
new file mode 100755 (executable)
index 0000000..3a6d528
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<ftstdata>\r
+<topic name="1D meshing algorithm" url="files/1d_meshing_algorithm.htm" />\r
+<topic name="2D (Quadrangle) meshing algorithm" url="files/2d_(quadrangle)_meshing_algorithm.htm" />\r
+<topic name="2D meshing algorithm" url="files/2d_meshing_algorithm.htm" />\r
+<topic name="3D meshing algorithm" url="files/3d_meshing_algorithm.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 modification of meshes" url="files/about_modification_of_meshes.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="Aspect Ratio" url="files/aspect_ratio.htm" />\r
+<topic name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
+<topic name="Computing meshes" url="files/computing_meshes.htm" />\r
+<topic name="Connectivity" url="files/connectivity.htm" />\r
+<topic name="Constructing meshes" url="files/constructing_meshes.htm" />\r
+<topic name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
+<topic name="Diagonal iversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
+<topic name="Displacing nodes" url="files/displacing_nodes.htm" />\r
+<topic name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
+<topic name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
+<topic name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
+<topic name="Importing and exporting meshes" url="files/importing_and_exporting_meshes.htm" />\r
+<topic name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
+<topic name="Length of edges" url="files/length_of_edges.htm" />\r
+<topic name="Local Length hypothesis" url="files/local_length_hypothesis.htm" />\r
+<topic name="Max. Element Area hypothesis" url="files/max._element_area_hypothesis.htm" />\r
+<topic name="Max. Element volume hypothsis" url="files/max._element_volume_hypothsis.htm" />\r
+<topic name="Minimum angle" url="files/minimum_angle.htm" />\r
+<topic name="Number of segments hypothesis" url="files/number_of_segments_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="Running SMESH module" url="files/running_smesh_module.htm" />\r
+<topic name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
+<topic name="Skew" url="files/skew.htm" />\r
+<topic name="Taper" url="files/taper.htm" />\r
+<topic name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
+<topic name="Using SMESH module" url="files/using_smesh_module.htm" />\r
+<topic name="View update" url="files/view_update.htm" />\r
+<topic name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
+<topic name="Visualization modes" url="files/visualization_modes.htm" />\r
+<topic name="Visualization properties" url="files/visualization_properties.htm" />\r
+<topic name="Warp" url="files/warp.htm" />\r
+\r
+</ftstdata>  \r
diff --git a/doc/salome/gui/SMESH/whdata/whfts.htm b/doc/salome/gui/SMESH/whdata/whfts.htm
new file mode 100755 (executable)
index 0000000..977cbfa
--- /dev/null
@@ -0,0 +1,16 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
+</head>\r
+<body>\r
+<script language="javascript" src="whfts.js"></script>\r
+<script language="javascript">\r
+<!--\r
+iWM("0","z","whfwdata0.htm");\r
+\r
+iTM(0,42,"whftdata0.htm");\r
+\r
+-->\r
+</script>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whfts.js b/doc/salome/gui/SMESH/whdata/whfts.js
new file mode 100755 (executable)
index 0000000..2041512
--- /dev/null
@@ -0,0 +1,39 @@
+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
diff --git a/doc/salome/gui/SMESH/whdata/whfts.xml b/doc/salome/gui/SMESH/whdata/whfts.xml
new file mode 100755 (executable)
index 0000000..8322231
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<fts>\r
+<chunkinfo url="whfwdata0.xml" first="0" last="z"/>\r
+\r
+<tchunkinfo first="0" last="42" url="whftdata0.xml" />\r
+\r
+</fts>\r
diff --git a/doc/salome/gui/SMESH/whdata/whfwdata.js b/doc/salome/gui/SMESH/whdata/whfwdata.js
new file mode 100755 (executable)
index 0000000..463bfb0
--- /dev/null
@@ -0,0 +1,36 @@
+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
+window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whfwdata0.htm b/doc/salome/gui/SMESH/whdata/whfwdata0.htm
new file mode 100755 (executable)
index 0000000..8b0a6b8
--- /dev/null
@@ -0,0 +1,356 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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",5);\r
+aWE("0d",5);\r
+aWE("1",10,11,13,19,20,22,24,28,34,35,39,42);\r
+aWE("1d",0,5,6,23);\r
+aWE("2",10,11,13,19,20,22,24,28,34,35,39,42);\r
+aWE("2d",1,2,5,6,10,11,23,26,28,42);\r
+aWE("3",5,10,11,22,32,34,42);\r
+aWE("3d",3,5,6,23,27,36);\r
+aWE("3rd",5);\r
+aWE("4",5,10,11,34,35,42);\r
+aWE("5th",5);\r
+aWE("abut",25,29);\r
+aWE("accord",8,10,11,24,28,34,35,42);\r
+aWE("account",4);\r
+aWE("ad",9);\r
+aWE("addition",23);\r
+aWE("additional",5,32);\r
+aWE("adjacent",28);\r
+aWE("algorithm",0,1,2,3,4,5,6,8,10,15,16,23,26,27,30,36);\r
+aWE("allow",4,22,23);\r
+aWE("angl",8,23,28,34,42);\r
+aWE("any",5);\r
+aWE("ap",0,1,2,3,10,11,23,24,28,34,35,36,42);\r
+aWE("appear",15,16,25,26,27,29,32);\r
+aWE("appli",10,11,24,25,26,27,28,29,34,35,42);\r
+aWE("application",8);\r
+aWE("apply",4,15,16);\r
+aWE("approximate",29);\r
+aWE("arcsin",42);\r
+aWE("area",4,8,10,23,26,27,35);\r
+aWE("aspect",8,11,23);\r
+aWE("assign",42);\r
+aWE("averag",25,42);\r
+aWE("axi",42);\r
+aWE("bar",8,33);\r
+aWE("bas",4,10,23,42);\r
+aWE("basi",5);\r
+aWE("basic",4);\r
+aWE("befor",32);\r
+aWE("bisect",42);\r
+aWE("bisector",42);\r
+aWE("border",23);\r
+aWE("bottom",32);\r
+aWE("bound",5);\r
+aWE("boundary",4);\r
+aWE("box",15,16,22,25,26,27,29,32);\r
+aWE("brows",13,39);\r
+aWE("button",0,1,2,3,10,11,13,15,16,22,24,25,26,27,28,29,34,35,36,39,42);\r
+aWE("cad",5);\r
+aWE("calculat",8,11,35);\r
+aWE("calculation",4,10,24,28);\r
+aWE("chang",12);\r
+aWE("characteristic",8);\r
+aWE("characteriz",5);\r
+aWE("choic",4);\r
+aWE("choos",10,11,22,24,28,32,34,35,42);\r
+aWE("chosen",26,27);\r
+aWE("click",0,1,2,3,10,11,13,15,16,22,24,25,26,27,28,29,32,34,35,36,39,42);\r
+aWE("clos",5);\r
+aWE("color",8,10,11,24,28,34,35,42);\r
+aWE("combin",24);\r
+aWE("component",23,32);\r
+aWE("compos",4,5,6,8,19,25,26,27,29,34);\r
+aWE("comput",13);\r
+aWE("computation",13,15,16);\r
+aWE("condition",4);\r
+aWE("connection",5,23);\r
+aWE("connectivity",14);\r
+aWE("consider",5);\r
+aWE("consist",8,10,11,15,16,24,25,26,27,28,29,35);\r
+aWE("construct",15,16);\r
+aWE("construction",15,16);\r
+aWE("contain",5,6,22);\r
+aWE("contour",5);\r
+aWE("control",8,10,11,23,24,28,34,35,42);\r
+aWE("coordinat",5);\r
+aWE("corn",42);\r
+aWE("corner",42);\r
+aWE("correspond",5,8,22);\r
+aWE("could",5);\r
+aWE("creat",5,23,32,42);\r
+aWE("creation",5,32);\r
+aWE("criteria",23);\r
+aWE("criterion",10,11,24,28,34,35,42);\r
+aWE("cros",42);\r
+aWE("curv",5);\r
+aWE("deal",5);\r
+aWE("default",32);\r
+aWE("defin",5,11,25,26,27,29);\r
+aWE("definit",5,8,23,29);\r
+aWE("definition",25,26,27,29);\r
+aWE("deletion",23);\r
+aWE("depend",4,5,26,27);\r
+aWE("describ",5);\r
+aWE("desktop",32);\r
+aWE("destin",5,8,23);\r
+aWE("detail",4);\r
+aWE("diagonal",17,35);\r
+aWE("dialog",15,16,22,25,26,27,29);\r
+aWE("different",4);\r
+aWE("dimension",5);\r
+aWE("direct",5);\r
+aWE("direction",42);\r
+aWE("discretization",0,5,6);\r
+aWE("displac",18);\r
+aWE("display",8,10,11,19,20,24,28,34,35,39,40,42);\r
+aWE("disposal",8);\r
+aWE("distanc",42);\r
+aWE("don",5);\r
+aWE("edg",0,4,5,6,8,11,23,24,25,29,42);\r
+aWE("edit",21);\r
+aWE("element",4,5,8,9,10,11,12,17,19,23,24,26,27,28,31,34,35,42);\r
+aWE("encapsulat",16);\r
+aWE("ent",22);\r
+aWE("entiti",0,1,2,3,5,6,36);\r
+aWE("entity",5);\r
+aWE("equal",11);\r
+aWE("equilateral",11);\r
+aWE("etc",8);\r
+aWE("every",42);\r
+aWE("exampl",5);\r
+aWE("export",22,23);\r
+aWE("exportation",22);\r
+aWE("extend",42);\r
+aWE("fac",1,2,4,5,6,23,25,26,29,42);\r
+aWE("fil",22);\r
+aWE("final",13);\r
+aWE("find",22);\r
+aWE("fix",5);\r
+aWE("follow",4,5,6,8,11,15,16,19,20,25,26,27,29,32,39);\r
+aWE("format",22,23);\r
+aWE("four",5,42);\r
+aWE("fre",5,23);\r
+aWE("function",5);\r
+aWE("functionality",5,22);\r
+aWE("generat",4,5,8,23,25,29,32);\r
+aWE("generation",13);\r
+aWE("geom",5,23);\r
+aWE("geometric",5,8);\r
+aWE("geometrical",0,1,2,3,4,5,6,15,16,23,25,26,27,29,36);\r
+aWE("global",15);\r
+aWE("group",23);\r
+aWE("h",42);\r
+aWE("h1",11);\r
+aWE("h2",11);\r
+aWE("half",42);\r
+aWE("height",11,42);\r
+aWE("help",8);\r
+aWE("her",5,7,9,12,14,17,18,31,33,41);\r
+aWE("hexahedron",3,5,6,27);\r
+aWE("high",5);\r
+aWE("hyp",15,16);\r
+aWE("hypothes",0,1,2,3,4,15,16,21,23,25,26,27,29,30,36);\r
+aWE("hypothesi",4,25,26,27,29);\r
+aWE("i",3);\r
+aWE("icon",32);\r
+aWE("id",19,20);\r
+aWE("if",5);\r
+aWE("imp",5);\r
+aWE("import",22,23);\r
+aWE("importation",22);\r
+aWE("includ",5);\r
+aWE("indicat",42);\r
+aWE("info",39);\r
+aWE("information",5,39);\r
+aWE("initial",32);\r
+aWE("interest",5);\r
+aWE("introduction",23);\r
+aWE("invers",5);\r
+aWE("inversion",17);\r
+aWE("item",22);\r
+aWE("j",3);\r
+aWE("join",34);\r
+aWE("k",3);\r
+aWE("kind",6);\r
+aWE("l",42);\r
+aWE("largest",11);\r
+aWE("launch",32);\r
+aWE("length",4,8,11,23,24,25,29,42);\r
+aWE("level",4);\r
+aWE("lik",19,20,32);\r
+aWE("lin",5,34);\r
+aWE("local",4,16,23,25,29);\r
+aWE("location",22);\r
+aWE("longest",11);\r
+aWE("look",19,20,32);\r
+aWE("low",5);\r
+aWE("main",32);\r
+aWE("manag",4);\r
+aWE("map",1);\r
+aWE("max",4,23,26,27);\r
+aWE("maximum",26,27,34);\r
+aWE("mean",5);\r
+aWE("meaningful",5);\r
+aWE("measur",42);\r
+aWE("mefisto",2);\r
+aWE("menu",0,1,2,3,13,15,16,19,20,22,25,26,27,29,32,36,39);\r
+aWE("mesh",0,1,2,3,4,5,6,7,8,10,11,13,15,16,19,20,22,23,24,25,26,27,28,29,32,34,35,36,39,40,42);\r
+aWE("minimum",8,23,28);\r
+aWE("mod",40);\r
+aWE("model",5,23);\r
+aWE("modification",5,7,23);\r
+aWE("modul",5,6,23,32);\r
+aWE("mov",23);\r
+aWE("multi",23);\r
+aWE("multipli",11);\r
+aWE("nam",22,25,26,27,29);\r
+aWE("nb",29);\r
+aWE("netgen",36);\r
+aWE("new",32);\r
+aWE("nod",5,9,10,11,18,20,23,25,29,31,34,35,42);\r
+aWE("normal",42);\r
+aWE("notic",5);\r
+aWE("numb",4,5,23,29);\r
+aWE("number",19,20);\r
+aWE("object",0,1,2,3,4,6,13,15,16,25,26,27,29,36,39);\r
+aWE("ok",22);\r
+aWE("on",5,15,16);\r
+aWE("operation",23);\r
+aWE("opposit",34);\r
+aWE("option",5);\r
+aWE("ord",5);\r
+aWE("orientation",12);\r
+aWE("origin",42);\r
+aWE("own",5);\r
+aWE("paramet",5);\r
+aWE("parameter",4);\r
+aWE("parametric",5);\r
+aWE("particularity",5);\r
+aWE("perfect",11);\r
+aWE("perform",23);\r
+aWE("plan",42);\r
+aWE("planar",42);\r
+aWE("platform",32);\r
+aWE("point",5,25,29,42);\r
+aWE("position",5);\r
+aWE("possibl",4);\r
+aWE("present",5);\r
+aWE("presentation",8);\r
+aWE("preset",4);\r
+aWE("previous",15,16,23);\r
+aWE("procedur",11);\r
+aWE("produc",5);\r
+aWE("product",42);\r
+aWE("projection",42);\r
+aWE("properti",33,41);\r
+aWE("quad",42);\r
+aWE("quadrangl",1,5,6,10,11,24,26,28,34);\r
+aWE("quality",8,10,11,23,24,28,34,35,42);\r
+aWE("quantity",4);\r
+aWE("ratio",8,11,23,35,42);\r
+aWE("reassign",30);\r
+aWE("referenc",5,8);\r
+aWE("refin",4);\r
+aWE("reflect",34);\r
+aWE("relat",32);\r
+aWE("relation",5);\r
+aWE("relationship",5);\r
+aWE("remain",11);\r
+aWE("remov",31);\r
+aWE("repeat",11);\r
+aWE("represent",4,5,25,29,35);\r
+aWE("representation",5);\r
+aWE("restrict",5);\r
+aWE("result",4);\r
+aWE("retain",11);\r
+aWE("retriev",5);\r
+aWE("rough",4);\r
+aWE("run",32);\r
+aWE("s",11);\r
+aWE("salom",23,32);\r
+aWE("sam",5,29);\r
+aWE("scalar",8,33);\r
+aWE("se",5);\r
+aWE("search",22);\r
+aWE("segment",4,23,25,29);\r
+aWE("select",0,1,2,3,4,13,15,16,19,20,22,25,26,27,29,32,36,39);\r
+aWE("sens",5);\r
+aWE("separat",35);\r
+aWE("set",5,6,23,25,26,27,29,32);\r
+aWE("shad",40);\r
+aWE("shap",4,5,11);\r
+aWE("shortest",11,42);\r
+aWE("should",32);\r
+aWE("shown",8);\r
+aWE("shrink",40);\r
+aWE("sid",11,28,34);\r
+aWE("simpl",5);\r
+aWE("skew",8,23,34);\r
+aWE("smesh",4,5,6,8,19,20,22,23,32,37,40);\r
+aWE("so",4,11,35);\r
+aWE("spac",5);\r
+aWE("split",25,29);\r
+aWE("standard",22,32);\r
+aWE("start",32);\r
+aWE("step",13);\r
+aWE("study",32);\r
+aWE("sub",22);\r
+aWE("submesh",4,16);\r
+aWE("surfac",5);\r
+aWE("surround",5);\r
+aWE("t",5);\r
+aWE("taken",4);\r
+aWE("tap",8,23,35);\r
+aWE("tetrahedron",5,6,27,36);\r
+aWE("text",7,9,12,14,17,18,31,33,41);\r
+aWE("thre",5,40);\r
+aWE("toolbar",0,1,2,3,11,13,15,16,24,32,34,35,36,39,42);\r
+aWE("topic",7,9,12,14,17,18,31,33,41);\r
+aWE("topological",5);\r
+aWE("topology",5);\r
+aWE("triangl",2,5,6,10,11,24,26,28,34,35);\r
+aWE("two",5,11,28,35);\r
+aWE("typ",5,7,9,12,14,17,18,31,33,41);\r
+aWE("u",5);\r
+aWE("unv",22);\r
+aWE("updat",32,38);\r
+aWE("us",0,1,2,3,5,6,15,16,25,29,36,37);\r
+aWE("usag",8);\r
+aWE("v",5);\r
+aWE("valu",8,11,28,34);\r
+aWE("vector",42);\r
+aWE("vertex",5);\r
+aWE("view",10,11,19,20,24,28,32,34,35,38,39,40,42);\r
+aWE("visual",8);\r
+aWE("visualization",40,41);\r
+aWE("volum",3,4,5,6,23,27,36);\r
+aWE("vtk",32);\r
+aWE("warp",8,23,42);\r
+aWE("way",5);\r
+aWE("will",4,5,10,11,15,16,19,20,22,24,25,26,27,28,29,32,34,35,39,42);\r
+aWE("window",32);\r
+aWE("wir",0,6);\r
+aWE("wirefram",40);\r
+aWE("word",29);\r
+aWE("work",32);\r
+aWE("x",5,42);\r
+aWE("y",5);\r
+aWE("your",4,5,8,10,11,13,16,19,20,22,24,25,26,27,28,29,34,35,39,42);\r
+aWE("z",5);\r
+\r
+//-->\r
+</script>\r
+</script>\r
diff --git a/doc/salome/gui/SMESH/whdata/whfwdata0.xml b/doc/salome/gui/SMESH/whdata/whfwdata0.xml
new file mode 100755 (executable)
index 0000000..66eddc0
--- /dev/null
@@ -0,0 +1,344 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<ftswdata>\r
+<key name="0"> 5, </key>\r
+<key name="0d"> 5, </key>\r
+<key name="1"> 10,11,13,19,20,22,24,28,34,35,39,42, </key>\r
+<key name="1d"> 0,5,6,23, </key>\r
+<key name="2"> 10,11,13,19,20,22,24,28,34,35,39,42, </key>\r
+<key name="2d"> 1,2,5,6,10,11,23,26,28,42, </key>\r
+<key name="3"> 5,10,11,22,32,34,42, </key>\r
+<key name="3d"> 3,5,6,23,27,36, </key>\r
+<key name="3rd"> 5, </key>\r
+<key name="4"> 5,10,11,34,35,42, </key>\r
+<key name="5th"> 5, </key>\r
+<key name="abut"> 25,29, </key>\r
+<key name="accord"> 8,10,11,24,28,34,35,42, </key>\r
+<key name="account"> 4, </key>\r
+<key name="ad"> 9, </key>\r
+<key name="addition"> 23, </key>\r
+<key name="additional"> 5,32, </key>\r
+<key name="adjacent"> 28, </key>\r
+<key name="algorithm"> 0,1,2,3,4,5,6,8,10,15,16,23,26,27,30,36, </key>\r
+<key name="allow"> 4,22,23, </key>\r
+<key name="angl"> 8,23,28,34,42, </key>\r
+<key name="any"> 5, </key>\r
+<key name="ap"> 0,1,2,3,10,11,23,24,28,34,35,36,42, </key>\r
+<key name="appear"> 15,16,25,26,27,29,32, </key>\r
+<key name="appli"> 10,11,24,25,26,27,28,29,34,35,42, </key>\r
+<key name="application"> 8, </key>\r
+<key name="apply"> 4,15,16, </key>\r
+<key name="approximate"> 29, </key>\r
+<key name="arcsin"> 42, </key>\r
+<key name="area"> 4,8,10,23,26,27,35, </key>\r
+<key name="aspect"> 8,11,23, </key>\r
+<key name="assign"> 42, </key>\r
+<key name="averag"> 25,42, </key>\r
+<key name="axi"> 42, </key>\r
+<key name="bar"> 8,33, </key>\r
+<key name="bas"> 4,10,23,42, </key>\r
+<key name="basi"> 5, </key>\r
+<key name="basic"> 4, </key>\r
+<key name="befor"> 32, </key>\r
+<key name="bisect"> 42, </key>\r
+<key name="bisector"> 42, </key>\r
+<key name="border"> 23, </key>\r
+<key name="bottom"> 32, </key>\r
+<key name="bound"> 5, </key>\r
+<key name="boundary"> 4, </key>\r
+<key name="box"> 15,16,22,25,26,27,29,32, </key>\r
+<key name="brows"> 13,39, </key>\r
+<key name="button"> 0,1,2,3,10,11,13,15,16,22,24,25,26,27,28,29,34,35,36,39,42, </key>\r
+<key name="cad"> 5, </key>\r
+<key name="calculat"> 8,11,35, </key>\r
+<key name="calculation"> 4,10,24,28, </key>\r
+<key name="chang"> 12, </key>\r
+<key name="characteristic"> 8, </key>\r
+<key name="characteriz"> 5, </key>\r
+<key name="choic"> 4, </key>\r
+<key name="choos"> 10,11,22,24,28,32,34,35,42, </key>\r
+<key name="chosen"> 26,27, </key>\r
+<key name="click"> 0,1,2,3,10,11,13,15,16,22,24,25,26,27,28,29,32,34,35,36,39,42, </key>\r
+<key name="clos"> 5, </key>\r
+<key name="color"> 8,10,11,24,28,34,35,42, </key>\r
+<key name="combin"> 24, </key>\r
+<key name="component"> 23,32, </key>\r
+<key name="compos"> 4,5,6,8,19,25,26,27,29,34, </key>\r
+<key name="comput"> 13, </key>\r
+<key name="computation"> 13,15,16, </key>\r
+<key name="condition"> 4, </key>\r
+<key name="connection"> 5,23, </key>\r
+<key name="connectivity"> 14, </key>\r
+<key name="consider"> 5, </key>\r
+<key name="consist"> 8,10,11,15,16,24,25,26,27,28,29,35, </key>\r
+<key name="construct"> 15,16, </key>\r
+<key name="construction"> 15,16, </key>\r
+<key name="contain"> 5,6,22, </key>\r
+<key name="contour"> 5, </key>\r
+<key name="control"> 8,10,11,23,24,28,34,35,42, </key>\r
+<key name="coordinat"> 5, </key>\r
+<key name="corn"> 42, </key>\r
+<key name="corner"> 42, </key>\r
+<key name="correspond"> 5,8,22, </key>\r
+<key name="could"> 5, </key>\r
+<key name="creat"> 5,23,32,42, </key>\r
+<key name="creation"> 5,32, </key>\r
+<key name="criteria"> 23, </key>\r
+<key name="criterion"> 10,11,24,28,34,35,42, </key>\r
+<key name="cros"> 42, </key>\r
+<key name="curv"> 5, </key>\r
+<key name="deal"> 5, </key>\r
+<key name="default"> 32, </key>\r
+<key name="defin"> 5,11,25,26,27,29, </key>\r
+<key name="definit"> 5,8,23,29, </key>\r
+<key name="definition"> 25,26,27,29, </key>\r
+<key name="deletion"> 23, </key>\r
+<key name="depend"> 4,5,26,27, </key>\r
+<key name="describ"> 5, </key>\r
+<key name="desktop"> 32, </key>\r
+<key name="destin"> 5,8,23, </key>\r
+<key name="detail"> 4, </key>\r
+<key name="diagonal"> 17,35, </key>\r
+<key name="dialog"> 15,16,22,25,26,27,29, </key>\r
+<key name="different"> 4, </key>\r
+<key name="dimension"> 5, </key>\r
+<key name="direct"> 5, </key>\r
+<key name="direction"> 42, </key>\r
+<key name="discretization"> 0,5,6, </key>\r
+<key name="displac"> 18, </key>\r
+<key name="display"> 8,10,11,19,20,24,28,34,35,39,40,42, </key>\r
+<key name="disposal"> 8, </key>\r
+<key name="distanc"> 42, </key>\r
+<key name="don"> 5, </key>\r
+<key name="edg"> 0,4,5,6,8,11,23,24,25,29,42, </key>\r
+<key name="edit"> 21, </key>\r
+<key name="element"> 4,5,8,9,10,11,12,17,19,23,24,26,27,28,31,34,35,42, </key>\r
+<key name="encapsulat"> 16, </key>\r
+<key name="ent"> 22, </key>\r
+<key name="entiti"> 0,1,2,3,5,6,36, </key>\r
+<key name="entity"> 5, </key>\r
+<key name="equal"> 11, </key>\r
+<key name="equilateral"> 11, </key>\r
+<key name="etc"> 8, </key>\r
+<key name="every"> 42, </key>\r
+<key name="exampl"> 5, </key>\r
+<key name="export"> 22,23, </key>\r
+<key name="exportation"> 22, </key>\r
+<key name="extend"> 42, </key>\r
+<key name="fac"> 1,2,4,5,6,23,25,26,29,42, </key>\r
+<key name="fil"> 22, </key>\r
+<key name="final"> 13, </key>\r
+<key name="find"> 22, </key>\r
+<key name="fix"> 5, </key>\r
+<key name="follow"> 4,5,6,8,11,15,16,19,20,25,26,27,29,32,39, </key>\r
+<key name="format"> 22,23, </key>\r
+<key name="four"> 5,42, </key>\r
+<key name="fre"> 5,23, </key>\r
+<key name="function"> 5, </key>\r
+<key name="functionality"> 5,22, </key>\r
+<key name="generat"> 4,5,8,23,25,29,32, </key>\r
+<key name="generation"> 13, </key>\r
+<key name="geom"> 5,23, </key>\r
+<key name="geometric"> 5,8, </key>\r
+<key name="geometrical"> 0,1,2,3,4,5,6,15,16,23,25,26,27,29,36, </key>\r
+<key name="global"> 15, </key>\r
+<key name="group"> 23, </key>\r
+<key name="h"> 42, </key>\r
+<key name="h1"> 11, </key>\r
+<key name="h2"> 11, </key>\r
+<key name="half"> 42, </key>\r
+<key name="height"> 11,42, </key>\r
+<key name="help"> 8, </key>\r
+<key name="her"> 5,7,9,12,14,17,18,31,33,41, </key>\r
+<key name="hexahedron"> 3,5,6,27, </key>\r
+<key name="high"> 5, </key>\r
+<key name="hyp"> 15,16, </key>\r
+<key name="hypothes"> 0,1,2,3,4,15,16,21,23,25,26,27,29,30,36, </key>\r
+<key name="hypothesi"> 4,25,26,27,29, </key>\r
+<key name="i"> 3, </key>\r
+<key name="icon"> 32, </key>\r
+<key name="id"> 19,20, </key>\r
+<key name="if"> 5, </key>\r
+<key name="imp"> 5, </key>\r
+<key name="import"> 22,23, </key>\r
+<key name="importation"> 22, </key>\r
+<key name="includ"> 5, </key>\r
+<key name="indicat"> 42, </key>\r
+<key name="info"> 39, </key>\r
+<key name="information"> 5,39, </key>\r
+<key name="initial"> 32, </key>\r
+<key name="interest"> 5, </key>\r
+<key name="introduction"> 23, </key>\r
+<key name="invers"> 5, </key>\r
+<key name="inversion"> 17, </key>\r
+<key name="item"> 22, </key>\r
+<key name="j"> 3, </key>\r
+<key name="join"> 34, </key>\r
+<key name="k"> 3, </key>\r
+<key name="kind"> 6, </key>\r
+<key name="l"> 42, </key>\r
+<key name="largest"> 11, </key>\r
+<key name="launch"> 32, </key>\r
+<key name="length"> 4,8,11,23,24,25,29,42, </key>\r
+<key name="level"> 4, </key>\r
+<key name="lik"> 19,20,32, </key>\r
+<key name="lin"> 5,34, </key>\r
+<key name="local"> 4,16,23,25,29, </key>\r
+<key name="location"> 22, </key>\r
+<key name="longest"> 11, </key>\r
+<key name="look"> 19,20,32, </key>\r
+<key name="low"> 5, </key>\r
+<key name="main"> 32, </key>\r
+<key name="manag"> 4, </key>\r
+<key name="map"> 1, </key>\r
+<key name="max"> 4,23,26,27, </key>\r
+<key name="maximum"> 26,27,34, </key>\r
+<key name="mean"> 5, </key>\r
+<key name="meaningful"> 5, </key>\r
+<key name="measur"> 42, </key>\r
+<key name="mefisto"> 2, </key>\r
+<key name="menu"> 0,1,2,3,13,15,16,19,20,22,25,26,27,29,32,36,39, </key>\r
+<key name="mesh"> 0,1,2,3,4,5,6,7,8,10,11,13,15,16,19,20,22,23,24,25,26,27,28,29,32,34,35,36,39,40,42, </key>\r
+<key name="minimum"> 8,23,28, </key>\r
+<key name="mod"> 40, </key>\r
+<key name="model"> 5,23, </key>\r
+<key name="modification"> 5,7,23, </key>\r
+<key name="modul"> 5,6,23,32, </key>\r
+<key name="mov"> 23, </key>\r
+<key name="multi"> 23, </key>\r
+<key name="multipli"> 11, </key>\r
+<key name="nam"> 22,25,26,27,29, </key>\r
+<key name="nb"> 29, </key>\r
+<key name="netgen"> 36, </key>\r
+<key name="new"> 32, </key>\r
+<key name="nod"> 5,9,10,11,18,20,23,25,29,31,34,35,42, </key>\r
+<key name="normal"> 42, </key>\r
+<key name="notic"> 5, </key>\r
+<key name="numb"> 4,5,23,29, </key>\r
+<key name="number"> 19,20, </key>\r
+<key name="object"> 0,1,2,3,4,6,13,15,16,25,26,27,29,36,39, </key>\r
+<key name="ok"> 22, </key>\r
+<key name="on"> 5,15,16, </key>\r
+<key name="operation"> 23, </key>\r
+<key name="opposit"> 34, </key>\r
+<key name="option"> 5, </key>\r
+<key name="ord"> 5, </key>\r
+<key name="orientation"> 12, </key>\r
+<key name="origin"> 42, </key>\r
+<key name="own"> 5, </key>\r
+<key name="paramet"> 5, </key>\r
+<key name="parameter"> 4, </key>\r
+<key name="parametric"> 5, </key>\r
+<key name="particularity"> 5, </key>\r
+<key name="perfect"> 11, </key>\r
+<key name="perform"> 23, </key>\r
+<key name="plan"> 42, </key>\r
+<key name="planar"> 42, </key>\r
+<key name="platform"> 32, </key>\r
+<key name="point"> 5,25,29,42, </key>\r
+<key name="position"> 5, </key>\r
+<key name="possibl"> 4, </key>\r
+<key name="present"> 5, </key>\r
+<key name="presentation"> 8, </key>\r
+<key name="preset"> 4, </key>\r
+<key name="previous"> 15,16,23, </key>\r
+<key name="procedur"> 11, </key>\r
+<key name="produc"> 5, </key>\r
+<key name="product"> 42, </key>\r
+<key name="projection"> 42, </key>\r
+<key name="properti"> 33,41, </key>\r
+<key name="quad"> 42, </key>\r
+<key name="quadrangl"> 1,5,6,10,11,24,26,28,34, </key>\r
+<key name="quality"> 8,10,11,23,24,28,34,35,42, </key>\r
+<key name="quantity"> 4, </key>\r
+<key name="ratio"> 8,11,23,35,42, </key>\r
+<key name="reassign"> 30, </key>\r
+<key name="referenc"> 5,8, </key>\r
+<key name="refin"> 4, </key>\r
+<key name="reflect"> 34, </key>\r
+<key name="relat"> 32, </key>\r
+<key name="relation"> 5, </key>\r
+<key name="relationship"> 5, </key>\r
+<key name="remain"> 11, </key>\r
+<key name="remov"> 31, </key>\r
+<key name="repeat"> 11, </key>\r
+<key name="represent"> 4,5,25,29,35, </key>\r
+<key name="representation"> 5, </key>\r
+<key name="restrict"> 5, </key>\r
+<key name="result"> 4, </key>\r
+<key name="retain"> 11, </key>\r
+<key name="retriev"> 5, </key>\r
+<key name="rough"> 4, </key>\r
+<key name="run"> 32, </key>\r
+<key name="s"> 11, </key>\r
+<key name="salom"> 23,32, </key>\r
+<key name="sam"> 5,29, </key>\r
+<key name="scalar"> 8,33, </key>\r
+<key name="se"> 5, </key>\r
+<key name="search"> 22, </key>\r
+<key name="segment"> 4,23,25,29, </key>\r
+<key name="select"> 0,1,2,3,4,13,15,16,19,20,22,25,26,27,29,32,36,39, </key>\r
+<key name="sens"> 5, </key>\r
+<key name="separat"> 35, </key>\r
+<key name="set"> 5,6,23,25,26,27,29,32, </key>\r
+<key name="shad"> 40, </key>\r
+<key name="shap"> 4,5,11, </key>\r
+<key name="shortest"> 11,42, </key>\r
+<key name="should"> 32, </key>\r
+<key name="shown"> 8, </key>\r
+<key name="shrink"> 40, </key>\r
+<key name="sid"> 11,28,34, </key>\r
+<key name="simpl"> 5, </key>\r
+<key name="skew"> 8,23,34, </key>\r
+<key name="smesh"> 4,5,6,8,19,20,22,23,32,37,40, </key>\r
+<key name="so"> 4,11,35, </key>\r
+<key name="spac"> 5, </key>\r
+<key name="split"> 25,29, </key>\r
+<key name="standard"> 22,32, </key>\r
+<key name="start"> 32, </key>\r
+<key name="step"> 13, </key>\r
+<key name="study"> 32, </key>\r
+<key name="sub"> 22, </key>\r
+<key name="submesh"> 4,16, </key>\r
+<key name="surfac"> 5, </key>\r
+<key name="surround"> 5, </key>\r
+<key name="t"> 5, </key>\r
+<key name="taken"> 4, </key>\r
+<key name="tap"> 8,23,35, </key>\r
+<key name="tetrahedron"> 5,6,27,36, </key>\r
+<key name="text"> 7,9,12,14,17,18,31,33,41, </key>\r
+<key name="thre"> 5,40, </key>\r
+<key name="toolbar"> 0,1,2,3,11,13,15,16,24,32,34,35,36,39,42, </key>\r
+<key name="topic"> 7,9,12,14,17,18,31,33,41, </key>\r
+<key name="topological"> 5, </key>\r
+<key name="topology"> 5, </key>\r
+<key name="triangl"> 2,5,6,10,11,24,26,28,34,35, </key>\r
+<key name="two"> 5,11,28,35, </key>\r
+<key name="typ"> 5,7,9,12,14,17,18,31,33,41, </key>\r
+<key name="u"> 5, </key>\r
+<key name="unv"> 22, </key>\r
+<key name="updat"> 32,38, </key>\r
+<key name="us"> 0,1,2,3,5,6,15,16,25,29,36,37, </key>\r
+<key name="usag"> 8, </key>\r
+<key name="v"> 5, </key>\r
+<key name="valu"> 8,11,28,34, </key>\r
+<key name="vector"> 42, </key>\r
+<key name="vertex"> 5, </key>\r
+<key name="view"> 10,11,19,20,24,28,32,34,35,38,39,40,42, </key>\r
+<key name="visual"> 8, </key>\r
+<key name="visualization"> 40,41, </key>\r
+<key name="volum"> 3,4,5,6,23,27,36, </key>\r
+<key name="vtk"> 32, </key>\r
+<key name="warp"> 8,23,42, </key>\r
+<key name="way"> 5, </key>\r
+<key name="will"> 4,5,10,11,15,16,19,20,22,24,25,26,27,28,29,32,34,35,39,42, </key>\r
+<key name="window"> 32, </key>\r
+<key name="wir"> 0,6, </key>\r
+<key name="wirefram"> 40, </key>\r
+<key name="word"> 29, </key>\r
+<key name="work"> 32, </key>\r
+<key name="x"> 5,42, </key>\r
+<key name="y"> 5, </key>\r
+<key name="your"> 4,5,8,10,11,13,16,19,20,22,24,25,26,27,28,29,34,35,39,42, </key>\r
+<key name="z"> 5, </key>\r
+\r
+</ftswdata>  \r
diff --git a/doc/salome/gui/SMESH/whdata/whgdata.js b/doc/salome/gui/SMESH/whdata/whgdata.js
new file mode 100755 (executable)
index 0000000..7293273
--- /dev/null
@@ -0,0 +1,25 @@
+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
+window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whgdata0.htm b/doc/salome/gui/SMESH/whdata/whgdata0.htm
new file mode 100755 (executable)
index 0000000..9fbefcb
--- /dev/null
@@ -0,0 +1,31 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
diff --git a/doc/salome/gui/SMESH/whdata/whgdata0.xml b/doc/salome/gui/SMESH/whdata/whgdata0.xml
new file mode 100755 (executable)
index 0000000..de63592
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\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
diff --git a/doc/salome/gui/SMESH/whdata/whglo.htm b/doc/salome/gui/SMESH/whdata/whglo.htm
new file mode 100755 (executable)
index 0000000..d00c260
--- /dev/null
@@ -0,0 +1,14 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whglo.js b/doc/salome/gui/SMESH/whdata/whglo.js
new file mode 100755 (executable)
index 0000000..ded3d57
--- /dev/null
@@ -0,0 +1,33 @@
+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
diff --git a/doc/salome/gui/SMESH/whdata/whglo.xml b/doc/salome/gui/SMESH/whdata/whglo.xml
new file mode 100755 (executable)
index 0000000..dcdf6cf
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<glossary>\r
+<chunkinfo url="whgdata0.xml" first="Cell" last="Study" num="18" />\r
+\r
+</glossary>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whidata.js b/doc/salome/gui/SMESH/whdata/whidata.js
new file mode 100755 (executable)
index 0000000..c8c2a05
--- /dev/null
@@ -0,0 +1,88 @@
+// 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
+window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whidx.htm b/doc/salome/gui/SMESH/whdata/whidx.htm
new file mode 100755 (executable)
index 0000000..c0aa175
--- /dev/null
@@ -0,0 +1,13 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whidx.js b/doc/salome/gui/SMESH/whdata/whidx.js
new file mode 100755 (executable)
index 0000000..ded3d57
--- /dev/null
@@ -0,0 +1,33 @@
+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
diff --git a/doc/salome/gui/SMESH/whdata/whidx.xml b/doc/salome/gui/SMESH/whdata/whidx.xml
new file mode 100755 (executable)
index 0000000..3ca67b6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<index>\r
+\r
+</index>\r
diff --git a/doc/salome/gui/SMESH/whdata/whtdata.js b/doc/salome/gui/SMESH/whdata/whtdata.js
new file mode 100755 (executable)
index 0000000..64bcff9
--- /dev/null
@@ -0,0 +1,58 @@
+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 (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
+window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whtdata0.htm b/doc/salome/gui/SMESH/whdata/whtdata0.htm
new file mode 100755 (executable)
index 0000000..429476b
--- /dev/null
@@ -0,0 +1,66 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
+</head>\r
+<body>\r
+<script LANGUAGE="JavaScript" SRC="whtdata.js"></script>\r
+<script language="javascript">\r
+<!--\r
+ aTE(1,52,"SMESH module");\r
+   aTE(2,0,"Introduction to SMESH","files/introduction_to_smesh.htm");\r
+   aTE(2,0,"Running SMESH module","files/running_smesh_module.htm");\r
+   aTE(1,21,"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(1,5,"Defining hypotheses");\r
+       aTE(2,0,"About hypotheses","files/about_hypotheses.htm");\r
+       aTE(2,0,"Local Length hypothesis","files/local_length_hypothesis.htm");\r
+       aTE(2,0,"Number of segments hypothesis","files/number_of_segments_hypothesis.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(1,9,"Defining meshing algorithms");\r
+       aTE(2,0,"About meshing algorithms","files/about_meshing_algorithms.htm");\r
+       aTE(1,1,"1D meshing algorithms");\r
+         aTE(2,0,"Wire discretization","files/1d_meshing_algorithm.htm");\r
+       aTE(1,2,"2D meshing algorithms");\r
+         aTE(2,0,"Triangle meshing algorithm","files/2d_meshing_algorithm.htm");\r
+         aTE(2,0,"Quadrangle meshing algorithm","files/2d_(quadrangle)_meshing_algorithm.htm");\r
+       aTE(1,2,"3D meshing algorithms");\r
+         aTE(2,0,"Hexahedron meshing algorithm","files/3d_meshing_algorithm.htm");\r
+         aTE(2,0,"Tetrahedron (Netgen) meshing algorithm","files/tetrahedron_(netgen)_meshing_algorithm.htm");\r
+     aTE(2,0,"Constructing meshes","files/constructing_meshes.htm");\r
+     aTE(2,0,"Constructing submeshes","files/constructing_submeshes.htm");\r
+     aTE(2,0,"Computing meshes","files/computing_meshes.htm");\r
+   aTE(1,2,"Editing meshes");\r
+     aTE(2,0,"Reassigning hypotheses and algorithms","files/reassigning_hypotheses_and_algorithms.htm");\r
+     aTE(2,0,"Editing hypotheses","files/editing_hypotheses.htm");\r
+   aTE(1,8,"Quality controls");\r
+     aTE(2,0,"About quality controls","files/about_quality_controls.htm");\r
+     aTE(2,0,"Length of edges","files/length_of_edges.htm");\r
+     aTE(2,0,"Area of elements","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 angle","files/skew.htm");\r
+   aTE(1,6,"Modifying meshes");\r
+     aTE(2,0,"About modification of meshes","files/about_modification_of_meshes.htm");\r
+     aTE(2,0,"Adding nodes and elements","files/adding_nodes_and_elements.htm");\r
+     aTE(2,0,"Removing nodes and elements","files/removing_nodes_and_elements.htm");\r
+     aTE(2,0,"Displacing nodes","files/displacing_nodes.htm");\r
+     aTE(2,0,"Changing orientation of elements","files/changing_orientation_of_elements.htm");\r
+     aTE(2,0,"Diagonal inversion of elements","files/diagonal_iversion_of_elements.htm");\r
+   aTE(1,3,"Mesh info");\r
+     aTE(2,0,"Viewing mesh info","files/viewing_mesh_info.htm");\r
+     aTE(2,0,"Displaying nodes numbers","files/displaying_nodes_numbers.htm");\r
+     aTE(2,0,"Displaying elements numbers","files/displaying_elements_numbers.htm");\r
+   aTE(1,4,"Setting SMESH preferences");\r
+     aTE(2,0,"Visualization modes","files/visualization_modes.htm");\r
+     aTE(2,0,"Visualization properties","files/visualization_properties.htm");\r
+     aTE(2,0,"View update","files/view_update.htm");\r
+     aTE(2,0,"Scalar Bar properties","files/scalar_bar_properties.htm");\r
+\r
+//-->\r
+</script>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/whdata/whtdata0.xml b/doc/salome/gui/SMESH/whdata/whtdata0.xml
new file mode 100755 (executable)
index 0000000..175e762
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<tocdata>\r
+<book name="SMESH module" >\r
+  <item name="Introduction to SMESH" url="files/introduction_to_smesh.htm" />\r
+  <item name="Running SMESH 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
+    <book name="Defining hypotheses" >\r
+      <item name="About hypotheses" url="files/about_hypotheses.htm" />\r
+      <item name="Local Length hypothesis" url="files/local_length_hypothesis.htm" />\r
+      <item name="Number of segments hypothesis" url="files/number_of_segments_hypothesis.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
+    </book>\r
+    <book name="Defining meshing algorithms" >\r
+      <item name="About meshing algorithms" url="files/about_meshing_algorithms.htm" />\r
+      <book name="1D meshing algorithms" >\r
+        <item name="Wire discretization" url="files/1d_meshing_algorithm.htm" />\r
+      </book>\r
+      <book name="2D meshing algorithms" >\r
+        <item name="Triangle meshing algorithm" url="files/2d_meshing_algorithm.htm" />\r
+        <item name="Quadrangle meshing algorithm" url="files/2d_(quadrangle)_meshing_algorithm.htm" />\r
+      </book>\r
+      <book name="3D meshing algorithms" >\r
+        <item name="Hexahedron meshing algorithm" url="files/3d_meshing_algorithm.htm" />\r
+        <item name="Tetrahedron (Netgen) meshing algorithm" url="files/tetrahedron_(netgen)_meshing_algorithm.htm" />\r
+      </book>\r
+    </book>\r
+    <item name="Constructing meshes" url="files/constructing_meshes.htm" />\r
+    <item name="Constructing submeshes" url="files/constructing_submeshes.htm" />\r
+    <item name="Computing meshes" url="files/computing_meshes.htm" />\r
+  </book>\r
+  <book name="Editing meshes" >\r
+    <item name="Reassigning hypotheses and algorithms" url="files/reassigning_hypotheses_and_algorithms.htm" />\r
+    <item name="Editing hypotheses" url="files/editing_hypotheses.htm" />\r
+  </book>\r
+  <book name="Quality controls" >\r
+    <item name="About quality controls" url="files/about_quality_controls.htm" />\r
+    <item name="Length of edges" url="files/length_of_edges.htm" />\r
+    <item name="Area of elements" 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 angle" url="files/skew.htm" />\r
+  </book>\r
+  <book name="Modifying meshes" >\r
+    <item name="About modification of meshes" url="files/about_modification_of_meshes.htm" />\r
+    <item name="Adding nodes and elements" url="files/adding_nodes_and_elements.htm" />\r
+    <item name="Removing nodes and elements" url="files/removing_nodes_and_elements.htm" />\r
+    <item name="Displacing nodes" url="files/displacing_nodes.htm" />\r
+    <item name="Changing orientation of elements" url="files/changing_orientation_of_elements.htm" />\r
+    <item name="Diagonal inversion of elements" url="files/diagonal_iversion_of_elements.htm" />\r
+  </book>\r
+  <book name="Mesh info" >\r
+    <item name="Viewing mesh info" url="files/viewing_mesh_info.htm" />\r
+    <item name="Displaying nodes numbers" url="files/displaying_nodes_numbers.htm" />\r
+    <item name="Displaying elements numbers" url="files/displaying_elements_numbers.htm" />\r
+  </book>\r
+  <book name="Setting SMESH preferences" >\r
+    <item name="Visualization modes" url="files/visualization_modes.htm" />\r
+    <item name="Visualization properties" url="files/visualization_properties.htm" />\r
+    <item name="View update" url="files/view_update.htm" />\r
+    <item name="Scalar Bar properties" url="files/scalar_bar_properties.htm" />\r
+  </book>\r
+</book>\r
+\r
+</tocdata>\r
diff --git a/doc/salome/gui/SMESH/whdata/whtoc.htm b/doc/salome/gui/SMESH/whdata/whtoc.htm
new file mode 100755 (executable)
index 0000000..5f8c14e
--- /dev/null
@@ -0,0 +1,14 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whtoc.js b/doc/salome/gui/SMESH/whdata/whtoc.js
new file mode 100755 (executable)
index 0000000..1456050
--- /dev/null
@@ -0,0 +1,28 @@
+// 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
+       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
+window.onload = window_OnLoad;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whdata/whtoc.xml b/doc/salome/gui/SMESH/whdata/whtoc.xml
new file mode 100755 (executable)
index 0000000..bffb89a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<toc root="whtdata0.xml">\r
+\r
+</toc>\r
diff --git a/doc/salome/gui/SMESH/whestart.ico b/doc/salome/gui/SMESH/whestart.ico
new file mode 100755 (executable)
index 0000000..110f183
Binary files /dev/null and b/doc/salome/gui/SMESH/whestart.ico differ
diff --git a/doc/salome/gui/SMESH/whfbody.htm b/doc/salome/gui/SMESH/whfbody.htm
new file mode 100755 (executable)
index 0000000..300d23b
--- /dev/null
@@ -0,0 +1,37 @@
+<html>\r
+<head>\r
+<title>Search Result</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<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
diff --git a/doc/salome/gui/SMESH/whfdhtml.htm b/doc/salome/gui/SMESH/whfdhtml.htm
new file mode 100755 (executable)
index 0000000..ec6c521
--- /dev/null
@@ -0,0 +1,30 @@
+<html>\r
+<head>\r
+<title>Search Frame</TITLE>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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
diff --git a/doc/salome/gui/SMESH/whfform.htm b/doc/salome/gui/SMESH/whfform.htm
new file mode 100755 (executable)
index 0000000..e40b10b
--- /dev/null
@@ -0,0 +1,136 @@
+<html>\r
+<head>\r
+<title>Search Form</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whfhost.js b/doc/salome/gui/SMESH/whfhost.js
new file mode 100755 (executable)
index 0000000..a30564d
--- /dev/null
@@ -0,0 +1,916 @@
+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
+\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 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!=null&&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=0;\r
+       gbNot=false;\r
+       displayMsg(gsSearchMsg);\r
+       if(gsSK!="")\r
+               findOneKey();\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
+               return;\r
+       }\r
+       else{\r
+               displayTopics();\r
+               checkAgain();\r
+       }\r
+}\r
+\r
+function checkAgain()\r
+{\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='"+_textToHtml(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
+                       findOneKey();\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){\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)       break;\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
+       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whform.js b/doc/salome/gui/SMESH/whform.js
new file mode 100755 (executable)
index 0000000..075311e
--- /dev/null
@@ -0,0 +1,215 @@
+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
+       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whframes.js b/doc/salome/gui/SMESH/whframes.js
new file mode 100755 (executable)
index 0000000..0576afc
--- /dev/null
@@ -0,0 +1,78 @@
+// 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
+var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgbody.htm b/doc/salome/gui/SMESH/whgbody.htm
new file mode 100755 (executable)
index 0000000..8d30b1f
--- /dev/null
@@ -0,0 +1,35 @@
+<html>\r
+<head>\r
+<title>Glossary Term</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<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
diff --git a/doc/salome/gui/SMESH/whgdata/whexpbar.gif b/doc/salome/gui/SMESH/whgdata/whexpbar.gif
new file mode 100755 (executable)
index 0000000..e677dc6
Binary files /dev/null and b/doc/salome/gui/SMESH/whgdata/whexpbar.gif differ
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf0.htm b/doc/salome/gui/SMESH/whgdata/whlstf0.htm
new file mode 100755 (executable)
index 0000000..0e2fad9
--- /dev/null
@@ -0,0 +1,50 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody">\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_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>2d <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> </nobr><br><nobr>3d <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>6</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>3rd</b></a> <br><a href="../files/about_meshes.htm"><b>5th</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_A"></a><a name="subkey_AB"></a>abutting <a href="../files/number_of_segments_hypothesis.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_AC"></a><a name="subkey_AC"></a>according <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>account</b></a> <br><a name="bms_AD"></a><a name="subkey_AD"></a><a href="../files/adding_nodes_and_elements.htm"><b>adding</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>addition</b></a> <br><nobr>additional <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/minimum_angle.htm"><b>adjacent</b></a> <br><nobr><a name="bms_AL"></a><a name="subkey_AL"></a>algorithm <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>11</b></a> </nobr><br><nobr>algorithms <a href="../files/constructing_meshes.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/reassigning_hypotheses_and_algorithms.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> </nobr><br><a href="../files/about_hypotheses.htm"><b>allow</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>allowing</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>allows</b></a> <br><nobr><a name="bms_AN"></a><a name="subkey_AN"></a>angle <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><a href="../files/skew.htm"><b>angles</b></a> <br><a href="../files/about_meshes.htm"><b>any</b></a> <br><nobr><a name="bms_AP"></a><a name="subkey_AP"></a>appear <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/constructing_submeshes.htm"><b>6</b></a> <a href="../files/running_smesh_module.htm"><b>7</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>application</b></a> <br><nobr>applied <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/warp.htm"><b>9</b></a> <a href="../files/taper.htm"><b>10</b></a> <a href="../files/skew.htm"><b>11</b></a> </nobr><br><nobr>apply <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> </nobr><br><nobr>applying <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> </nobr><br><a href="../files/number_of_segments_hypothesis.htm"><b>approximately</b></a> <br><a name="bms_AR"></a><a name="subkey_AR"></a><a href="../files/warp.htm"><b>arcsine</b></a> <br><nobr>area <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> </nobr><br><a href="../files/taper.htm"><b>areas</b></a> <br><nobr><a name="bms_AS"></a><a name="subkey_AS"></a>aspect <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/warp.htm"><b>assigned</b></a> <br><nobr><a name="bms_AV"></a><a name="subkey_AV"></a>average <a href="../files/local_length_hypothesis.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a name="bms_AX"></a><a name="subkey_AX"></a><a href="../files/warp.htm"><b>axis</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_B"></a><a name="subkey_BA"></a>bar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><nobr>based <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>basic</b></a> <br><nobr>basing <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>basis</b></a> <br><a name="bms_BE"></a><a name="subkey_BE"></a><a href="../files/running_smesh_module.htm"><b>before</b></a> <br><a name="bms_BI"></a><a name="subkey_BI"></a><a href="../files/warp.htm"><b>bisecting</b></a> <br><a href="../files/warp.htm"><b>bisector</b></a> <br><a name="bms_BO"></a><a name="subkey_BO"></a><a href="../files/introduction_to_smesh.htm"><b>borders</b></a> <br><a href="../files/running_smesh_module.htm"><b>bottom</b></a> <br><a href="../files/about_hypotheses.htm"><b>boundary</b></a> <br><a href="../files/about_meshes.htm"><b>bounded</b></a> <br><a href="../files/about_meshes.htm"><b>bounding</b></a> <br><a href="../files/about_meshes.htm"><b>bounds</b></a> <br><nobr>box <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> <a href="../files/running_smesh_module.htm"><b>8</b></a> </nobr><br><nobr><a name="bms_BR"></a><a name="subkey_BR"></a>browser <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_BU"></a><a name="subkey_BU"></a>button <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.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/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> <a href="../files/minimum_angle.htm"><b>10</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../files/local_length_hypothesis.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_C"></a><a name="subkey_CA"></a><a href="../files/about_meshes.htm"><b>cad</b></a> <br><nobr>calculated <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>calculates</b></a> <br><nobr>calculation <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/length_of_edges.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>calculations</b></a> <br><a name="bms_CH"></a><a name="subkey_CH"></a><a href="../files/changing_orientation_of_elements.htm"><b>changing</b></a> <br><a href="../files/about_quality_controls.htm"><b>characteristic</b></a> <br><a href="../files/about_meshes.htm"><b>characterizes</b></a> <br><a href="../files/about_hypotheses.htm"><b>choice</b></a> <br><nobr>choose <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> <a href="../files/running_smesh_module.htm"><b>9</b></a> </nobr><br><nobr>chosen <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_CL"></a><a name="subkey_CL"></a>click <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.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/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> <a href="../files/minimum_angle.htm"><b>10</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>11</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>12</b></a> <a href="../files/local_length_hypothesis.htm"><b>13</b></a> <a href="../files/length_of_edges.htm"><b>14</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>19</b></a> <a href="../files/taper.htm"><b>20</b></a> <a href="../files/skew.htm"><b>21</b></a> <a href="../files/running_smesh_module.htm"><b>22</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>clicking</b></a> <br><a href="../files/about_meshes.htm"><b>closed</b></a> <br><nobr><a name="bms_CO"></a><a name="subkey_CO"></a>colored <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>coloring</b></a> <br><a href="../files/length_of_edges.htm"><b>combining</b></a> <br><nobr>component <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>compose <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>composed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><nobr>composing <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/displaying_elements_numbers.htm"><b>7</b></a> </nobr><br><nobr>computation <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>compute</b></a> <br><a href="../files/computing_meshes.htm"><b>computing</b></a> <br><a href="../files/about_hypotheses.htm"><b>conditions</b></a> <br><nobr>connections <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><a href="../files/connectivity.htm"><b>connectivity</b></a> <br><a href="../files/about_meshes.htm"><b>considered</b></a> <br><nobr>consisting <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr>consists <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> </nobr><br><nobr>construct <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>constructing <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>construction <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>contain <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>containing</b></a> <br><a href="../files/about_meshing_algorithms.htm"><b>contains</b></a> <br><a href="../files/about_meshes.htm"><b>contour</b></a> <br><nobr>control <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> </nobr><br><nobr>controls <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../files/taper.htm"><b>7</b></a> <a href="../files/skew.htm"><b>8</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>coordinates</b></a> <br><a href="../files/warp.htm"><b>corner</b></a> <br><a href="../files/warp.htm"><b>corners</b></a> <br><nobr>corresponding <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>could</b></a> <br><nobr><a name="bms_CR"></a><a name="subkey_CR"></a>create <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>created <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/warp.htm"><b>creating</b></a> <br><nobr>creation <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>criteria</b></a> <br><nobr>criterion <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/warp.htm"><b>5</b></a> <a href="../files/taper.htm"><b>6</b></a> <a href="../files/skew.htm"><b>7</b></a> </nobr><br><a href="../files/warp.htm"><b>cross</b></a> <br><a name="bms_CU"></a><a name="subkey_CU"></a><a href="../files/about_meshes.htm"><b>curve</b></a> <br>\r
+<br><br>\r
+<a name="bm_D"></a><a name="subkey_DE"></a><a href="../files/about_meshes.htm"><b>dealing</b></a> <br><a href="../files/running_smesh_module.htm"><b>default</b></a> <br><nobr>define <a href="../files/number_of_segments_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> </nobr><br><nobr>defined <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>definite <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>definition <a href="../files/number_of_segments_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>deletion</b></a> <br><nobr>depending <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> </nobr><br><nobr>depends <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>described</b></a> <br><a href="../files/running_smesh_module.htm"><b>desktop</b></a> <br><nobr>destined <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>detail</b></a> <br><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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf1.htm b/doc/salome/gui/SMESH/whgdata/whlstf1.htm
new file mode 100755 (executable)
index 0000000..78d0719
--- /dev/null
@@ -0,0 +1,59 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="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_DI"></a><a name="subkey_DI"></a>diagonal <a href="../files/diagonal_iversion_of_elements.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><nobr>dialog <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/constructing_submeshes.htm"><b>7</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>different</b></a> <br><a href="../files/about_meshes.htm"><b>dimension</b></a> <br><a href="../files/about_meshes.htm"><b>direct</b></a> <br><a href="../files/warp.htm"><b>direction</b></a> <br><nobr>discretization <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/displacing_nodes.htm"><b>displacing</b></a> <br><nobr>display <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> </nobr><br><nobr>displayed <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/warp.htm"><b>6</b></a> <a href="../files/viewing_mesh_info.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> </nobr><br><nobr>displaying <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/visualization_modes.htm"><b>3</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>disposal</b></a> <br><a href="../files/warp.htm"><b>distance</b></a> <br><a name="bms_DO"></a><a name="subkey_DO"></a><a href="../files/about_meshes.htm"><b>don</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_E"></a><a name="subkey_ED"></a>edge <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><nobr>edges <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshing_algorithms.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/length_of_edges.htm"><b>9</b></a> <a href="../files/introduction_to_smesh.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> </nobr><br><a href="../files/editing_hypotheses.htm"><b>editing</b></a> <br><nobr><a name="bms_EL"></a><a name="subkey_EL"></a>element <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</b></a> </nobr><br><nobr>elements <a href="../files/changing_orientation_of_elements.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>4</b></a> <a href="../files/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/displaying_elements_numbers.htm"><b>13</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>14</b></a> <a href="../files/warp.htm"><b>15</b></a> <a href="../files/taper.htm"><b>16</b></a> <a href="../files/skew.htm"><b>17</b></a> </nobr><br><a name="bms_EN"></a><a name="subkey_EN"></a><a href="../files/constructing_submeshes.htm"><b>encapsulate</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>enter</b></a> <br><nobr>entities <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>entity</b></a> <br><a name="bms_EQ"></a><a name="subkey_EQ"></a><a href="../files/aspect_ratio.htm"><b>equal</b></a> <br><a href="../files/aspect_ratio.htm"><b>equilateral</b></a> <br><a name="bms_ET"></a><a name="subkey_ET"></a><a href="../files/about_quality_controls.htm"><b>etc</b></a> <br><a name="bms_EV"></a><a name="subkey_EV"></a><a href="../files/warp.htm"><b>every</b></a> <br><a name="bms_EX"></a><a name="subkey_EX"></a><a href="../files/about_meshes.htm"><b>example</b></a> <br><nobr>export <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>exportation</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>exporting</b></a> <br><a href="../files/warp.htm"><b>extends</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_F"></a><a name="subkey_FA"></a>face <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>faces <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/introduction_to_smesh.htm"><b>9</b></a> </nobr><br><a name="bms_FI"></a><a name="subkey_FI"></a><a href="../files/importing_and_exporting_meshes.htm"><b>file</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>files</b></a> <br><a href="../files/computing_meshes.htm"><b>final</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>find</b></a> <br><a href="../files/about_meshes.htm"><b>fixed</b></a> <br><nobr><a name="bms_FO"></a><a name="subkey_FO"></a>following <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>5</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>6</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/viewing_mesh_info.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> </nobr><br><nobr>follows <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>3</b></a> <a href="../files/displaying_elements_numbers.htm"><b>4</b></a> <a href="../files/running_smesh_module.htm"><b>5</b></a> </nobr><br><nobr>format <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><nobr>four <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FR"></a><a name="subkey_FR"></a>free <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_FU"></a><a name="subkey_FU"></a>functionality <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>functions</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_G"></a><a name="subkey_GE"></a>generate <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </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/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> </nobr><br><a href="../files/computing_meshes.htm"><b>generation</b></a> <br><nobr>geom <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> </nobr><br><nobr>geometric <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><nobr>geometrical <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>7</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>8</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/introduction_to_smesh.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>15</b></a> </nobr><br><a name="bms_GL"></a><a name="subkey_GL"></a><a href="../files/constructing_meshes.htm"><b>global</b></a> <br><a name="bms_GR"></a><a name="subkey_GR"></a><a href="../files/introduction_to_smesh.htm"><b>grouping</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>groups</b></a> <br>\r
+<br><br>\r
+<a name="bm_H"></a><a name="subkey_H{"></a><a href="../files/warp.htm"><b>h</b></a> <br><a href="../files/aspect_ratio.htm"><b>h1</b></a> <br><a href="../files/aspect_ratio.htm"><b>h2</b></a> <br><a name="bms_HA"></a><a name="subkey_HA"></a><a href="../files/warp.htm"><b>half</b></a> <br><nobr><a name="bms_HE"></a><a name="subkey_HE"></a>height <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>help</b></a> <br><nobr>here <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.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/visualization_properties.htm"><b>9</b></a> <a href="../files/scalar_bar_properties.htm"><b>10</b></a> </nobr><br><nobr>hexahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/max._element_volume_hypothsis.htm"><b>hexahedrons</b></a> <br><a name="bms_HI"></a><a name="subkey_HI"></a><a href="../files/about_meshes.htm"><b>higher</b></a> <br><nobr><a name="bms_HY"></a><a name="subkey_HY"></a>hyp <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>hypotheses <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/introduction_to_smesh.htm"><b>12</b></a> <a href="../files/editing_hypotheses.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>15</b></a> </nobr><br><nobr>hypothesis <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>3</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_I"></a><a name="subkey_I{"></a><a href="../files/3d_meshing_algorithm.htm"><b>i</b></a> <br><a name="bms_IC"></a><a name="subkey_IC"></a><a href="../files/running_smesh_module.htm"><b>icon</b></a> <br><nobr><a name="bms_ID"></a><a name="subkey_ID"></a>id <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><a name="bms_IF"></a><a name="subkey_IF"></a><a href="../files/about_meshes.htm"><b>if</b></a> <br><a name="bms_IM"></a><a name="subkey_IM"></a><a href="../files/about_meshes.htm"><b>imply</b></a> <br><nobr>import <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/importing_and_exporting_meshes.htm"><b>importation</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>imported</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>importing</b></a> <br><a name="bms_IN"></a><a name="subkey_IN"></a><a href="../files/about_meshes.htm"><b>including</b></a> <br><a href="../files/warp.htm"><b>indicates</b></a> <br><a href="../files/viewing_mesh_info.htm"><b>info</b></a> <br><nobr>information <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/viewing_mesh_info.htm"><b>2</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>infos</b></a> <br><a href="../files/running_smesh_module.htm"><b>initial</b></a> <br><a href="../files/about_meshes.htm"><b>interested</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>introduction</b></a> <br><a href="../files/about_meshes.htm"><b>inverse</b></a> <br><a href="../files/diagonal_iversion_of_elements.htm"><b>inversion</b></a> <br><a name="bms_IT"></a><a name="subkey_IT"></a><a href="../files/importing_and_exporting_meshes.htm"><b>item</b></a> <br>\r
+<br><br>\r
+<a name="bm_J"></a><a name="subkey_J{"></a><a href="../files/3d_meshing_algorithm.htm"><b>j</b></a> <br><a name="bms_JO"></a><a name="subkey_JO"></a><a href="../files/skew.htm"><b>join</b></a> <br>\r
+<br><br>\r
+<a name="bm_K"></a><a name="subkey_K{"></a><a href="../files/3d_meshing_algorithm.htm"><b>k</b></a> <br><a name="bms_KI"></a><a name="subkey_KI"></a><a href="../files/about_meshing_algorithms.htm"><b>kinds</b></a> <br>\r
+<br><br>\r
+<a name="bm_L"></a><a name="subkey_L{"></a><a href="../files/warp.htm"><b>l</b></a> <br><a name="bms_LA"></a><a name="subkey_LA"></a><a href="../files/aspect_ratio.htm"><b>largest</b></a> <br><a href="../files/running_smesh_module.htm"><b>launching</b></a> <br><nobr><a name="bms_LE"></a><a name="subkey_LE"></a>length <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>4</b></a> <a href="../files/local_length_hypothesis.htm"><b>5</b></a> <a href="../files/length_of_edges.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/warp.htm"><b>8</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>level</b></a> <br><nobr><a name="bms_LI"></a><a name="subkey_LI"></a>like <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>line</b></a> <br><a href="../files/skew.htm"><b>lines</b></a> <br><nobr><a name="bms_LO"></a><a name="subkey_LO"></a>local <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> <a href="../files/constructing_submeshes.htm"><b>5</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>locally</b></a> <br><a href="../files/importing_and_exporting_meshes.htm"><b>location</b></a> <br><a href="../files/aspect_ratio.htm"><b>longest</b></a> <br><nobr>look <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> <a href="../files/running_smesh_module.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>lower</b></a> <br>\r
+<br><br>\r
+<a name="bm_M"></a><a name="subkey_MA"></a><a href="../files/running_smesh_module.htm"><b>main</b></a> <br><a href="../files/about_hypotheses.htm"><b>manage</b></a> <br><a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>mapping</b></a> <br><nobr>max <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>maximum <a href="../files/max._element_volume_hypothsis.htm"><b>1</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><a name="bms_ME"></a><a name="subkey_ME"></a><a href="../files/about_meshes.htm"><b>meaning</b></a> <br><a href="../files/about_meshes.htm"><b>meaningful</b></a> <br><a href="../files/warp.htm"><b>measured</b></a> <br><a href="../files/2d_meshing_algorithm.htm"><b>mefisto</b></a> <br><nobr>menu <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/number_of_segments_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="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displaying_elements_numbers.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>16</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>menus</b></a> <br><nobr>mesh <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.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/about_quality_controls.htm"><b>5</b></a> <a href="../files/about_meshes.htm"><b>6</b></a> <a href="../files/about_hypotheses.htm"><b>7</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>8</b></a> <a href="../files/minimum_angle.htm"><b>9</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>10</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>11</b></a> <a href="../files/local_length_hypothesis.htm"><b>12</b></a> <a href="../files/length_of_edges.htm"><b>13</b></a> <a href="../files/introduction_to_smesh.htm"><b>14</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>15</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>16</b></a> <a href="../files/displaying_elements_numbers.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/warp.htm"><b>19</b></a> <a href="../files/viewing_mesh_info.htm"><b>20</b></a> <a href="../files/taper.htm"><b>21</b></a> <a href="../files/skew.htm"><b>22</b></a> </nobr><br><nobr>meshed <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><nobr>meshes <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/viewing_mesh_info.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> </nobr><br><nobr>meshing <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/about_meshing_algorithms.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>8</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>9</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>10</b></a> <a href="../files/minimum_angle.htm"><b>11</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>12</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>13</b></a> <a href="../files/local_length_hypothesis.htm"><b>14</b></a> <a href="../files/length_of_edges.htm"><b>15</b></a> <a href="../files/introduction_to_smesh.htm"><b>16</b></a> <a href="../files/displaying_elements_numbers.htm"><b>17</b></a> <a href="../files/constructing_submeshes.htm"><b>18</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>19</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf2.htm b/doc/salome/gui/SMESH/whgdata/whlstf2.htm
new file mode 100755 (executable)
index 0000000..91add76
--- /dev/null
@@ -0,0 +1,55 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="whlstf1.htm" target="_self" title="previous search group"><b>&lt;&lt;</b></a><br><br></p>\r
+<p class="ftsbody">\r
+<nobr><a name="bms_MI"></a><a name="subkey_MI"></a>minimum <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/minimum_angle.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><a name="bms_MO"></a><a name="subkey_MO"></a><a href="../files/about_meshes.htm"><b>model</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>models</b></a> <br><a href="../files/visualization_modes.htm"><b>modes</b></a> <br><nobr>modification <a href="../files/about_modification_of_meshes.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> </nobr><br><nobr>module <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/running_smesh_module.htm"><b>4</b></a> </nobr><br><a href="../files/introduction_to_smesh.htm"><b>moving</b></a> <br><a name="bms_MU"></a><a name="subkey_MU"></a><a href="../files/introduction_to_smesh.htm"><b>multi</b></a> <br><a href="../files/aspect_ratio.htm"><b>multiplied</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_N"></a><a name="subkey_NA"></a>name <a href="../files/number_of_segments_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>5</b></a> </nobr><br><a name="bms_NB"></a><a name="subkey_NB"></a><a href="../files/number_of_segments_hypothesis.htm"><b>nb</b></a> <br><a name="bms_NE"></a><a name="subkey_NE"></a><a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>netgen</b></a> <br><a href="../files/running_smesh_module.htm"><b>new</b></a> <br><a name="bms_NO"></a><a name="subkey_NO"></a><a href="../files/about_meshes.htm"><b>node</b></a> <br><nobr>nodes <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/introduction_to_smesh.htm"><b>8</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>9</b></a> <a href="../files/displacing_nodes.htm"><b>10</b></a> <a href="../files/warp.htm"><b>11</b></a> <a href="../files/taper.htm"><b>12</b></a> <a href="../files/skew.htm"><b>13</b></a> </nobr><br><a href="../files/warp.htm"><b>normal</b></a> <br><a href="../files/about_meshes.htm"><b>notice</b></a> <br><nobr><a name="bms_NU"></a><a name="subkey_NU"></a>number <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>numbering <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br><nobr>numbers <a href="../files/displaying_nodes_numbers.htm"><b>1</b></a> <a href="../files/displaying_elements_numbers.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<nobr><a name="bm_O"></a><a name="subkey_OB"></a>object <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/number_of_segments_hypothesis.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/local_length_hypothesis.htm"><b>7</b></a> <a href="../files/constructing_submeshes.htm"><b>8</b></a> <a href="../files/viewing_mesh_info.htm"><b>9</b></a> </nobr><br><nobr>objects <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>7</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>8</b></a> </nobr><br><a name="bms_OK"></a><a name="subkey_OK"></a><a href="../files/importing_and_exporting_meshes.htm"><b>ok</b></a> <br><nobr><a name="bms_ON"></a><a name="subkey_ON"></a>one <a href="../files/constructing_meshes.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> </nobr><br><a name="bms_OP"></a><a name="subkey_OP"></a><a href="../files/introduction_to_smesh.htm"><b>operations</b></a> <br><a href="../files/skew.htm"><b>opposite</b></a> <br><a href="../files/about_meshes.htm"><b>options</b></a> <br><a name="bms_OR"></a><a name="subkey_OR"></a><a href="../files/about_meshes.htm"><b>order</b></a> <br><a href="../files/changing_orientation_of_elements.htm"><b>orientation</b></a> <br><a href="../files/warp.htm"><b>origin</b></a> <br><a name="bms_OW"></a><a name="subkey_OW"></a><a href="../files/about_meshes.htm"><b>own</b></a> <br>\r
+<br><br>\r
+<a name="bm_P"></a><a name="subkey_PA"></a><a href="../files/about_meshes.htm"><b>parameter</b></a> <br><a href="../files/about_hypotheses.htm"><b>parameters</b></a> <br><a href="../files/about_meshes.htm"><b>parametric</b></a> <br><a href="../files/about_meshes.htm"><b>particularity</b></a> <br><a name="bms_PE"></a><a name="subkey_PE"></a><a href="../files/aspect_ratio.htm"><b>perfect</b></a> <br><a href="../files/introduction_to_smesh.htm"><b>performing</b></a> <br><a name="bms_PL"></a><a name="subkey_PL"></a><a href="../files/warp.htm"><b>planar</b></a> <br><a href="../files/warp.htm"><b>plane</b></a> <br><a href="../files/running_smesh_module.htm"><b>platform</b></a> <br><nobr><a name="bms_PO"></a><a name="subkey_PO"></a>point <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><nobr>points <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>position</b></a> <br><a href="../files/about_hypotheses.htm"><b>possible</b></a> <br><a name="bms_PR"></a><a name="subkey_PR"></a><a href="../files/about_quality_controls.htm"><b>presentation</b></a> <br><a href="../files/about_meshes.htm"><b>presented</b></a> <br><a href="../files/about_hypotheses.htm"><b>preset</b></a> <br><nobr>previously <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/constructing_submeshes.htm"><b>3</b></a> </nobr><br><a href="../files/aspect_ratio.htm"><b>procedure</b></a> <br><a href="../files/about_meshes.htm"><b>produced</b></a> <br><a href="../files/warp.htm"><b>product</b></a> <br><a href="../files/warp.htm"><b>projection</b></a> <br><nobr>properties <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Q"></a><a name="subkey_QU"></a><a href="../files/warp.htm"><b>quad</b></a> <br><nobr>quadrangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><nobr>quadrangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/skew.htm"><b>5</b></a> </nobr><br><nobr>quality <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/about_quality_controls.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> <a href="../files/length_of_edges.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> <a href="../files/taper.htm"><b>8</b></a> <a href="../files/skew.htm"><b>9</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>ratio <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/introduction_to_smesh.htm"><b>3</b></a> <a href="../files/warp.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> </nobr><br><a name="bms_RE"></a><a name="subkey_RE"></a><a href="../files/reassigning_hypotheses_and_algorithms.htm"><b>reassigning</b></a> <br><nobr>reference <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>refined</b></a> <br><a href="../files/skew.htm"><b>reflects</b></a> <br><a href="../files/running_smesh_module.htm"><b>related</b></a> <br><a href="../files/about_meshes.htm"><b>relations</b></a> <br><a href="../files/about_meshes.htm"><b>relationship</b></a> <br><a href="../files/about_meshes.htm"><b>relationships</b></a> <br><a href="../files/aspect_ratio.htm"><b>remaining</b></a> <br><a href="../files/removing_nodes_and_elements.htm"><b>removing</b></a> <br><a href="../files/aspect_ratio.htm"><b>repeated</b></a> <br><nobr>represent <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>representation</b></a> <br><a href="../files/about_meshes.htm"><b>representations</b></a> <br><nobr>represents <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/taper.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>restricted</b></a> <br><a href="../files/about_hypotheses.htm"><b>resulting</b></a> <br><a href="../files/aspect_ratio.htm"><b>retained</b></a> <br><a href="../files/about_meshes.htm"><b>retrieve</b></a> <br><a name="bms_RO"></a><a name="subkey_RO"></a><a href="../files/about_hypotheses.htm"><b>rough</b></a> <br><a name="bms_RU"></a><a name="subkey_RU"></a><a href="../files/running_smesh_module.htm"><b>run</b></a> <br><a href="../files/running_smesh_module.htm"><b>running</b></a> <br>\r
+<br><br>\r
+<a name="bm_S"></a><a name="subkey_S{"></a><a href="../files/aspect_ratio.htm"><b>s</b></a> <br><nobr><a name="bms_SA"></a><a name="subkey_SA"></a>salome <a href="../files/introduction_to_smesh.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><nobr>same <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_SC"></a><a name="subkey_SC"></a>scalar <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/scalar_bar_properties.htm"><b>2</b></a> </nobr><br><a name="bms_SE"></a><a name="subkey_SE"></a><a href="../files/importing_and_exporting_meshes.htm"><b>search</b></a> <br><a href="../files/about_meshes.htm"><b>see</b></a> <br><nobr>segments <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>2</b></a> <a href="../files/local_length_hypothesis.htm"><b>3</b></a> <a href="../files/introduction_to_smesh.htm"><b>4</b></a> </nobr><br><nobr>select <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/number_of_segments_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="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>11</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>12</b></a> <a href="../files/displaying_elements_numbers.htm"><b>13</b></a> <a href="../files/constructing_submeshes.htm"><b>14</b></a> <a href="../files/viewing_mesh_info.htm"><b>15</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>16</b></a> <a href="../files/running_smesh_module.htm"><b>17</b></a> </nobr><br><a href="../files/about_hypotheses.htm"><b>selected</b></a> <br><nobr>selecting <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>sense</b></a> <br><a href="../files/taper.htm"><b>separated</b></a> <br><nobr>set <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>3</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>4</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>5</b></a> <a href="../files/local_length_hypothesis.htm"><b>6</b></a> <a href="../files/introduction_to_smesh.htm"><b>7</b></a> <a href="../files/running_smesh_module.htm"><b>8</b></a> </nobr><br><nobr>setting <a href="../files/number_of_segments_hypothesis.htm"><b>1</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/local_length_hypothesis.htm"><b>4</b></a> </nobr><br><a name="bms_SH"></a><a name="subkey_SH"></a><a href="../files/visualization_modes.htm"><b>shading</b></a> <br><nobr>shape <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>shapes</b></a> <br><nobr>shortest <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>should</b></a> <br><a href="../files/about_quality_controls.htm"><b>shown</b></a> <br><a href="../files/visualization_modes.htm"><b>shrink</b></a> <br><a name="bms_SI"></a><a name="subkey_SI"></a><a href="../files/aspect_ratio.htm"><b>side</b></a> <br><nobr>sides <a href="../files/minimum_angle.htm"><b>1</b></a> <a href="../files/skew.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>simple</b></a> <br><nobr><a name="bms_SK"></a><a name="subkey_SK"></a>skew <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/skew.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_SM"></a><a name="subkey_SM"></a>smesh <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/about_meshes.htm"><b>3</b></a> <a href="../files/about_hypotheses.htm"><b>4</b></a> <a href="../files/introduction_to_smesh.htm"><b>5</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>6</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>7</b></a> <a href="../files/displaying_elements_numbers.htm"><b>8</b></a> <a href="../files/visualization_modes.htm"><b>9</b></a> <a href="../files/using_smesh_module.htm"><b>10</b></a> <a href="../files/running_smesh_module.htm"><b>11</b></a> </nobr><br><nobr><a name="bms_SO"></a><a name="subkey_SO"></a>so <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><a name="bms_SP"></a><a name="subkey_SP"></a><a href="../files/about_meshes.htm"><b>space</b></a> <br><nobr>split <a href="../files/number_of_segments_hypothesis.htm"><b>1</b></a> <a href="../files/local_length_hypothesis.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_ST"></a><a name="subkey_ST"></a>standard <a href="../files/importing_and_exporting_meshes.htm"><b>1</b></a> <a href="../files/running_smesh_module.htm"><b>2</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>start</b></a> <br><a href="../files/computing_meshes.htm"><b>step</b></a> <br><a href="../files/running_smesh_module.htm"><b>study</b></a> <br><a name="bms_SU"></a><a name="subkey_SU"></a><a href="../files/importing_and_exporting_meshes.htm"><b>sub</b></a> <br><nobr>submesh <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><nobr>submeshes <a href="../files/about_hypotheses.htm"><b>1</b></a> <a href="../files/constructing_submeshes.htm"><b>2</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>surface</b></a> <br><a href="../files/about_meshes.htm"><b>surrounding</b></a> <br>\r
+<br><br>\r
+<a name="bm_T"></a><a name="subkey_T{"></a><a href="../files/about_meshes.htm"><b>t</b></a> <br><a name="bms_TA"></a><a name="subkey_TA"></a><a href="../files/about_hypotheses.htm"><b>taken</b></a> <br><nobr>taper <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/taper.htm"><b>3</b></a> </nobr><br><nobr><a name="bms_TE"></a><a name="subkey_TE"></a>tetrahedron <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>3</b></a> </nobr><br><a href="../files/max._element_volume_hypothsis.htm"><b>tetrahedrons</b></a> <br><nobr>text <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/visualization_properties.htm"><b>8</b></a> <a href="../files/scalar_bar_properties.htm"><b>9</b></a> </nobr><br><nobr><a name="bms_TH"></a><a name="subkey_TH"></a>three <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_TO"></a><a name="subkey_TO"></a>toolbar <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/computing_meshes.htm"><b>2</b></a> <a href="../files/aspect_ratio.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>5</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>6</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>7</b></a> <a href="../files/length_of_edges.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/warp.htm"><b>10</b></a> <a href="../files/viewing_mesh_info.htm"><b>11</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>12</b></a> <a href="../files/taper.htm"><b>13</b></a> <a href="../files/skew.htm"><b>14</b></a> <a href="../files/running_smesh_module.htm"><b>15</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>toolbars</b></a> <br><nobr>topic <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/removing_nodes_and_elements.htm"><b>5</b></a> <a href="../files/displacing_nodes.htm"><b>6</b></a> <a href="../files/diagonal_iversion_of_elements.htm"><b>7</b></a> <a href="../files/visualization_properties.htm"><b>8</b></a> <a href="../files/scalar_bar_properties.htm"><b>9</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>topological</b></a> <br><a href="../files/about_meshes.htm"><b>topology</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstf3.htm b/doc/salome/gui/SMESH/whgdata/whlstf3.htm
new file mode 100755 (executable)
index 0000000..a344489
--- /dev/null
@@ -0,0 +1,52 @@
+<html>\r
+<head>\r
+<title>Search Words List</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsbody" align="center"><a href="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_TR"></a><a name="subkey_TR"></a>triangle <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/minimum_angle.htm"><b>4</b></a> </nobr><br><nobr>triangles <a href="../files/area_of_elements.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/taper.htm"><b>5</b></a> <a href="../files/skew.htm"><b>6</b></a> </nobr><br><nobr><a name="bms_TW"></a><a name="subkey_TW"></a>two <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/taper.htm"><b>4</b></a> </nobr><br><nobr><a name="bms_TY"></a><a name="subkey_TY"></a>type <a href="../files/connectivity.htm"><b>1</b></a> <a href="../files/changing_orientation_of_elements.htm"><b>2</b></a> <a href="../files/adding_nodes_and_elements.htm"><b>3</b></a> <a href="../files/about_modification_of_meshes.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/removing_nodes_and_elements.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/visualization_properties.htm"><b>9</b></a> <a href="../files/scalar_bar_properties.htm"><b>10</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>types</b></a> <br>\r
+<br><br>\r
+<a name="bm_U"></a><a name="subkey_U{"></a><a href="../files/about_meshes.htm"><b>u</b></a> <br><a name="bms_UN"></a><a name="subkey_UN"></a><a href="../files/importing_and_exporting_meshes.htm"><b>unv</b></a> <br><a name="bms_UP"></a><a name="subkey_UP"></a><a href="../files/view_update.htm"><b>update</b></a> <br><a href="../files/running_smesh_module.htm"><b>updated</b></a> <br><a name="bms_US"></a><a name="subkey_US"></a><a href="../files/about_quality_controls.htm"><b>usage</b></a> <br><nobr>used <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/about_meshing_algorithms.htm"><b>2</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>3</b></a> <a href="../files/2d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><b>5</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> <a href="../files/local_length_hypothesis.htm"><b>8</b></a> <a href="../files/constructing_submeshes.htm"><b>9</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>10</b></a> </nobr><br><nobr>using <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/using_smesh_module.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_V"></a><a name="subkey_V{"></a><a href="../files/about_meshes.htm"><b>v</b></a> <br><nobr><a name="bms_VA"></a><a name="subkey_VA"></a>value <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/about_quality_controls.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/skew.htm"><b>4</b></a> </nobr><br><a href="../files/about_quality_controls.htm"><b>values</b></a> <br><a name="bms_VE"></a><a name="subkey_VE"></a><a href="../files/warp.htm"><b>vector</b></a> <br><a href="../files/about_meshes.htm"><b>vertex</b></a> <br><nobr><a name="bms_VI"></a><a name="subkey_VI"></a>view <a href="../files/viewing_mesh_info.htm"><b>1</b></a> <a href="../files/view_update.htm"><b>2</b></a> </nobr><br><nobr>viewer <a href="../files/aspect_ratio.htm"><b>1</b></a> <a href="../files/area_of_elements.htm"><b>2</b></a> <a href="../files/minimum_angle.htm"><b>3</b></a> <a href="../files/length_of_edges.htm"><b>4</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>5</b></a> <a href="../files/displaying_elements_numbers.htm"><b>6</b></a> <a href="../files/warp.htm"><b>7</b></a> <a href="../files/visualization_modes.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/running_smesh_module.htm"><b>11</b></a> </nobr><br><a href="../files/viewing_mesh_info.htm"><b>viewing</b></a> <br><a href="../files/about_quality_controls.htm"><b>visual</b></a> <br><nobr>visualization <a href="../files/visualization_properties.htm"><b>1</b></a> <a href="../files/visualization_modes.htm"><b>2</b></a> </nobr><br><nobr><a name="bms_VO"></a><a name="subkey_VO"></a>volume <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/about_meshes.htm"><b>2</b></a> <a href="../files/about_hypotheses.htm"><b>3</b></a> <a href="../files/3d_meshing_algorithm.htm"><b>4</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>5</b></a> <a href="../files/introduction_to_smesh.htm"><b>6</b></a> <a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><b>7</b></a> </nobr><br><nobr>volumes <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/about_hypotheses.htm"><b>2</b></a> </nobr><br><a name="bms_VT"></a><a name="subkey_VT"></a><a href="../files/running_smesh_module.htm"><b>vtk</b></a> <br>\r
+<br><br>\r
+<a name="bm_W"></a><a name="subkey_WA"></a><a href="../files/warp.htm"><b>warp</b></a> <br><nobr>warping <a href="../files/about_quality_controls.htm"><b>1</b></a> <a href="../files/introduction_to_smesh.htm"><b>2</b></a> <a href="../files/warp.htm"><b>3</b></a> </nobr><br><a href="../files/about_meshes.htm"><b>way</b></a> <br><nobr><a name="bms_WI"></a><a name="subkey_WI"></a>will <a href="../files/constructing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_meshes.htm"><b>4</b></a> <a href="../files/about_hypotheses.htm"><b>5</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>6</b></a> <a href="../files/minimum_angle.htm"><b>7</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>8</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>9</b></a> <a href="../files/local_length_hypothesis.htm"><b>10</b></a> <a href="../files/length_of_edges.htm"><b>11</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>12</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>13</b></a> <a href="../files/displaying_elements_numbers.htm"><b>14</b></a> <a href="../files/constructing_submeshes.htm"><b>15</b></a> <a href="../files/warp.htm"><b>16</b></a> <a href="../files/viewing_mesh_info.htm"><b>17</b></a> <a href="../files/taper.htm"><b>18</b></a> <a href="../files/skew.htm"><b>19</b></a> <a href="../files/running_smesh_module.htm"><b>20</b></a> </nobr><br><a href="../files/running_smesh_module.htm"><b>window</b></a> <br><nobr>wire <a href="../files/about_meshing_algorithms.htm"><b>1</b></a> <a href="../files/1d_meshing_algorithm.htm"><b>2</b></a> </nobr><br><a href="../files/visualization_modes.htm"><b>wireframe</b></a> <br><a name="bms_WO"></a><a name="subkey_WO"></a><a href="../files/number_of_segments_hypothesis.htm"><b>words</b></a> <br><a href="../files/running_smesh_module.htm"><b>work</b></a> <br>\r
+<br><br>\r
+<nobr><a name="bm_X"></a><a name="subkey_X{"></a>x <a href="../files/about_meshes.htm"><b>1</b></a> <a href="../files/warp.htm"><b>2</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Y"></a><a name="subkey_Y{"></a><a href="../files/about_meshes.htm"><b>y</b></a> <br><nobr><a name="bms_YO"></a><a name="subkey_YO"></a>your <a href="../files/computing_meshes.htm"><b>1</b></a> <a href="../files/aspect_ratio.htm"><b>2</b></a> <a href="../files/area_of_elements.htm"><b>3</b></a> <a href="../files/about_quality_controls.htm"><b>4</b></a> <a href="../files/about_meshes.htm"><b>5</b></a> <a href="../files/about_hypotheses.htm"><b>6</b></a> <a href="../files/number_of_segments_hypothesis.htm"><b>7</b></a> <a href="../files/minimum_angle.htm"><b>8</b></a> <a href="../files/max._element_volume_hypothsis.htm"><b>9</b></a> <a href="../files/max._element_area_hypothesis.htm"><b>10</b></a> <a href="../files/local_length_hypothesis.htm"><b>11</b></a> <a href="../files/length_of_edges.htm"><b>12</b></a> <a href="../files/importing_and_exporting_meshes.htm"><b>13</b></a> <a href="../files/displaying_nodes_numbers.htm"><b>14</b></a> <a href="../files/displaying_elements_numbers.htm"><b>15</b></a> <a href="../files/constructing_submeshes.htm"><b>16</b></a> <a href="../files/warp.htm"><b>17</b></a> <a href="../files/viewing_mesh_info.htm"><b>18</b></a> <a href="../files/taper.htm"><b>19</b></a> <a href="../files/skew.htm"><b>20</b></a> </nobr><br>\r
+<br><br>\r
+<a name="bm_Z"></a><a name="subkey_Z{"></a><a href="../files/about_meshes.htm"><b>z</b></a> <br><br><br></p>\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl0.htm b/doc/salome/gui/SMESH/whgdata/whlstfl0.htm
new file mode 100755 (executable)
index 0000000..c3d21e3
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_A"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_A" target="ftslist" title="search letter AB"><b>AB</b></a> <a href="whlstf0.htm#bms_AC" target="ftslist" title="search letter AC"><b>AC</b></a> <a href="whlstf0.htm#bms_AD" target="ftslist" title="search letter AD"><b>AD</b></a> <a href="whlstf0.htm#bms_AL" target="ftslist" title="search letter AL"><b>AL</b></a> <a href="whlstf0.htm#bms_AN" target="ftslist" title="search letter AN"><b>AN</b></a> <a href="whlstf0.htm#bms_AP" target="ftslist" title="search letter AP"><b>AP</b></a> <a href="whlstf0.htm#bms_AR" target="ftslist" title="search letter AR"><b>AR</b></a> <a href="whlstf0.htm#bms_AS" target="ftslist" title="search letter AS"><b>AS</b></a> <a href="whlstf0.htm#bms_AV" target="ftslist" title="search letter AV"><b>AV</b></a> <a href="whlstf0.htm#bms_AX" target="ftslist" title="search letter AX"><b>AX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl1.htm b/doc/salome/gui/SMESH/whgdata/whlstfl1.htm
new file mode 100755 (executable)
index 0000000..9e47749
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_B"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_B" target="ftslist" title="search letter BA"><b>BA</b></a> <a href="whlstf0.htm#bms_BE" target="ftslist" title="search letter BE"><b>BE</b></a> <a href="whlstf0.htm#bms_BI" target="ftslist" title="search letter BI"><b>BI</b></a> <a href="whlstf0.htm#bms_BO" target="ftslist" title="search letter BO"><b>BO</b></a> <a href="whlstf0.htm#bms_BR" target="ftslist" title="search letter BR"><b>BR</b></a> <a href="whlstf0.htm#bms_BU" target="ftslist" title="search letter BU"><b>BU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl10.htm b/doc/salome/gui/SMESH/whgdata/whlstfl10.htm
new file mode 100755 (executable)
index 0000000..99b45b6
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_K"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_K" target="ftslist" title="search letter K "><b>K </b></a> <a href="whlstf1.htm#bms_KI" target="ftslist" title="search letter KI"><b>KI</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl11.htm b/doc/salome/gui/SMESH/whgdata/whlstfl11.htm
new file mode 100755 (executable)
index 0000000..7922623
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_L"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_L" target="ftslist" title="search letter L "><b>L </b></a> <a href="whlstf1.htm#bms_LA" target="ftslist" title="search letter LA"><b>LA</b></a> <a href="whlstf1.htm#bms_LE" target="ftslist" title="search letter LE"><b>LE</b></a> <a href="whlstf1.htm#bms_LI" target="ftslist" title="search letter LI"><b>LI</b></a> <a href="whlstf1.htm#bms_LO" target="ftslist" title="search letter LO"><b>LO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl12.htm b/doc/salome/gui/SMESH/whgdata/whlstfl12.htm
new file mode 100755 (executable)
index 0000000..3e186c1
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_M"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_M" target="ftslist" title="search letter MA"><b>MA</b></a> <a href="whlstf1.htm#bms_ME" target="ftslist" title="search letter ME"><b>ME</b></a> <a href="whlstf2.htm#bms_MI" target="ftslist" title="search letter MI"><b>MI</b></a> <a href="whlstf2.htm#bms_MO" target="ftslist" title="search letter MO"><b>MO</b></a> <a href="whlstf2.htm#bms_MU" target="ftslist" title="search letter MU"><b>MU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl13.htm b/doc/salome/gui/SMESH/whgdata/whlstfl13.htm
new file mode 100755 (executable)
index 0000000..d0d0eea
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_N"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_N" target="ftslist" title="search letter NA"><b>NA</b></a> <a href="whlstf2.htm#bms_NB" target="ftslist" title="search letter NB"><b>NB</b></a> <a href="whlstf2.htm#bms_NE" target="ftslist" title="search letter NE"><b>NE</b></a> <a href="whlstf2.htm#bms_NO" target="ftslist" title="search letter NO"><b>NO</b></a> <a href="whlstf2.htm#bms_NU" target="ftslist" title="search letter NU"><b>NU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl14.htm b/doc/salome/gui/SMESH/whgdata/whlstfl14.htm
new file mode 100755 (executable)
index 0000000..6ba06ed
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_O"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_O" target="ftslist" title="search letter OB"><b>OB</b></a> <a href="whlstf2.htm#bms_OK" target="ftslist" title="search letter OK"><b>OK</b></a> <a href="whlstf2.htm#bms_ON" target="ftslist" title="search letter ON"><b>ON</b></a> <a href="whlstf2.htm#bms_OP" target="ftslist" title="search letter OP"><b>OP</b></a> <a href="whlstf2.htm#bms_OR" target="ftslist" title="search letter OR"><b>OR</b></a> <a href="whlstf2.htm#bms_OW" target="ftslist" title="search letter OW"><b>OW</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl15.htm b/doc/salome/gui/SMESH/whgdata/whlstfl15.htm
new file mode 100755 (executable)
index 0000000..c38ad9a
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_P"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_P" target="ftslist" title="search letter PA"><b>PA</b></a> <a href="whlstf2.htm#bms_PE" target="ftslist" title="search letter PE"><b>PE</b></a> <a href="whlstf2.htm#bms_PL" target="ftslist" title="search letter PL"><b>PL</b></a> <a href="whlstf2.htm#bms_PO" target="ftslist" title="search letter PO"><b>PO</b></a> <a href="whlstf2.htm#bms_PR" target="ftslist" title="search letter PR"><b>PR</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl16.htm b/doc/salome/gui/SMESH/whgdata/whlstfl16.htm
new file mode 100755 (executable)
index 0000000..62b79cc
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_R"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_R" target="ftslist" title="search letter RA"><b>RA</b></a> <a href="whlstf2.htm#bms_RE" target="ftslist" title="search letter RE"><b>RE</b></a> <a href="whlstf2.htm#bms_RO" target="ftslist" title="search letter RO"><b>RO</b></a> <a href="whlstf2.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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl17.htm b/doc/salome/gui/SMESH/whgdata/whlstfl17.htm
new file mode 100755 (executable)
index 0000000..17165a8
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_S"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_S" target="ftslist" title="search letter S "><b>S </b></a> <a href="whlstf2.htm#bms_SA" target="ftslist" title="search letter SA"><b>SA</b></a> <a href="whlstf2.htm#bms_SC" target="ftslist" title="search letter SC"><b>SC</b></a> <a href="whlstf2.htm#bms_SE" target="ftslist" title="search letter SE"><b>SE</b></a> <a href="whlstf2.htm#bms_SH" target="ftslist" title="search letter SH"><b>SH</b></a> <a href="whlstf2.htm#bms_SI" target="ftslist" title="search letter SI"><b>SI</b></a> <a href="whlstf2.htm#bms_SK" target="ftslist" title="search letter SK"><b>SK</b></a> <a href="whlstf2.htm#bms_SM" target="ftslist" title="search letter SM"><b>SM</b></a> <a href="whlstf2.htm#bms_SO" target="ftslist" title="search letter SO"><b>SO</b></a> <a href="whlstf2.htm#bms_SP" target="ftslist" title="search letter SP"><b>SP</b></a> <a href="whlstf2.htm#bms_ST" target="ftslist" title="search letter ST"><b>ST</b></a> <a href="whlstf2.htm#bms_SU" target="ftslist" title="search letter SU"><b>SU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl18.htm b/doc/salome/gui/SMESH/whgdata/whlstfl18.htm
new file mode 100755 (executable)
index 0000000..3475b77
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_T"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf2.htm#bm_T" target="ftslist" title="search letter T "><b>T </b></a> <a href="whlstf2.htm#bms_TA" target="ftslist" title="search letter TA"><b>TA</b></a> <a href="whlstf2.htm#bms_TE" target="ftslist" title="search letter TE"><b>TE</b></a> <a href="whlstf2.htm#bms_TH" target="ftslist" title="search letter TH"><b>TH</b></a> <a href="whlstf2.htm#bms_TO" target="ftslist" title="search letter TO"><b>TO</b></a> <a href="whlstf3.htm#bms_TR" target="ftslist" title="search letter TR"><b>TR</b></a> <a href="whlstf3.htm#bms_TW" target="ftslist" title="search letter TW"><b>TW</b></a> <a href="whlstf3.htm#bms_TY" target="ftslist" title="search letter TY"><b>TY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl19.htm b/doc/salome/gui/SMESH/whgdata/whlstfl19.htm
new file mode 100755 (executable)
index 0000000..354e37f
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_U"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_U" target="ftslist" title="search letter U "><b>U </b></a> <a href="whlstf3.htm#bms_UN" target="ftslist" title="search letter UN"><b>UN</b></a> <a href="whlstf3.htm#bms_UP" target="ftslist" title="search letter UP"><b>UP</b></a> <a href="whlstf3.htm#bms_US" target="ftslist" title="search letter US"><b>US</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl2.htm b/doc/salome/gui/SMESH/whgdata/whlstfl2.htm
new file mode 100755 (executable)
index 0000000..7434a0d
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_C"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_C" target="ftslist" title="search letter CA"><b>CA</b></a> <a href="whlstf0.htm#bms_CH" target="ftslist" title="search letter CH"><b>CH</b></a> <a href="whlstf0.htm#bms_CL" target="ftslist" title="search letter CL"><b>CL</b></a> <a href="whlstf0.htm#bms_CO" target="ftslist" title="search letter CO"><b>CO</b></a> <a href="whlstf0.htm#bms_CR" target="ftslist" title="search letter CR"><b>CR</b></a> <a href="whlstf0.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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl20.htm b/doc/salome/gui/SMESH/whgdata/whlstfl20.htm
new file mode 100755 (executable)
index 0000000..92ab563
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_V"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_V" target="ftslist" title="search letter V "><b>V </b></a> <a href="whlstf3.htm#bms_VA" target="ftslist" title="search letter VA"><b>VA</b></a> <a href="whlstf3.htm#bms_VE" target="ftslist" title="search letter VE"><b>VE</b></a> <a href="whlstf3.htm#bms_VI" target="ftslist" title="search letter VI"><b>VI</b></a> <a href="whlstf3.htm#bms_VO" target="ftslist" title="search letter VO"><b>VO</b></a> <a href="whlstf3.htm#bms_VT" target="ftslist" title="search letter VT"><b>VT</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl21.htm b/doc/salome/gui/SMESH/whgdata/whlstfl21.htm
new file mode 100755 (executable)
index 0000000..dc58ab3
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_W"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_W" target="ftslist" title="search letter WA"><b>WA</b></a> <a href="whlstf3.htm#bms_WI" target="ftslist" title="search letter WI"><b>WI</b></a> <a href="whlstf3.htm#bms_WO" target="ftslist" title="search letter WO"><b>WO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl22.htm b/doc/salome/gui/SMESH/whgdata/whlstfl22.htm
new file mode 100755 (executable)
index 0000000..c15cca9
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_Y"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf3.htm#bm_Y" target="ftslist" title="search letter Y "><b>Y </b></a> <a href="whlstf3.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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl3.htm b/doc/salome/gui/SMESH/whgdata/whlstfl3.htm
new file mode 100755 (executable)
index 0000000..6ec052c
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_D"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf0.htm#bm_D" target="ftslist" title="search letter DE"><b>DE</b></a> <a href="whlstf1.htm#bms_DI" target="ftslist" title="search letter DI"><b>DI</b></a> <a href="whlstf1.htm#bms_DO" target="ftslist" title="search letter DO"><b>DO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl4.htm b/doc/salome/gui/SMESH/whgdata/whlstfl4.htm
new file mode 100755 (executable)
index 0000000..39d6e98
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_E"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_E" target="ftslist" title="search letter ED"><b>ED</b></a> <a href="whlstf1.htm#bms_EL" target="ftslist" title="search letter EL"><b>EL</b></a> <a href="whlstf1.htm#bms_EN" target="ftslist" title="search letter EN"><b>EN</b></a> <a href="whlstf1.htm#bms_EQ" target="ftslist" title="search letter EQ"><b>EQ</b></a> <a href="whlstf1.htm#bms_ET" target="ftslist" title="search letter ET"><b>ET</b></a> <a href="whlstf1.htm#bms_EV" target="ftslist" title="search letter EV"><b>EV</b></a> <a href="whlstf1.htm#bms_EX" target="ftslist" title="search letter EX"><b>EX</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl5.htm b/doc/salome/gui/SMESH/whgdata/whlstfl5.htm
new file mode 100755 (executable)
index 0000000..1b78c56
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_F"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_F" target="ftslist" title="search letter FA"><b>FA</b></a> <a href="whlstf1.htm#bms_FI" target="ftslist" title="search letter FI"><b>FI</b></a> <a href="whlstf1.htm#bms_FO" target="ftslist" title="search letter FO"><b>FO</b></a> <a href="whlstf1.htm#bms_FR" target="ftslist" title="search letter FR"><b>FR</b></a> <a href="whlstf1.htm#bms_FU" target="ftslist" title="search letter FU"><b>FU</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl6.htm b/doc/salome/gui/SMESH/whgdata/whlstfl6.htm
new file mode 100755 (executable)
index 0000000..8e1828c
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_G"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_G" target="ftslist" title="search letter GE"><b>GE</b></a> <a href="whlstf1.htm#bms_GL" target="ftslist" title="search letter GL"><b>GL</b></a> <a href="whlstf1.htm#bms_GR" target="ftslist" title="search letter GR"><b>GR</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl7.htm b/doc/salome/gui/SMESH/whgdata/whlstfl7.htm
new file mode 100755 (executable)
index 0000000..c7fc1fb
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_H"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_H" target="ftslist" title="search letter H "><b>H </b></a> <a href="whlstf1.htm#bms_HA" target="ftslist" title="search letter HA"><b>HA</b></a> <a href="whlstf1.htm#bms_HE" target="ftslist" title="search letter HE"><b>HE</b></a> <a href="whlstf1.htm#bms_HI" target="ftslist" title="search letter HI"><b>HI</b></a> <a href="whlstf1.htm#bms_HY" target="ftslist" title="search letter HY"><b>HY</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl8.htm b/doc/salome/gui/SMESH/whgdata/whlstfl8.htm
new file mode 100755 (executable)
index 0000000..edca637
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_I"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_I" target="ftslist" title="search letter I "><b>I </b></a> <a href="whlstf1.htm#bms_IC" target="ftslist" title="search letter IC"><b>IC</b></a> <a href="whlstf1.htm#bms_ID" target="ftslist" title="search letter ID"><b>ID</b></a> <a href="whlstf1.htm#bms_IF" target="ftslist" title="search letter IF"><b>IF</b></a> <a href="whlstf1.htm#bms_IM" target="ftslist" title="search letter IM"><b>IM</b></a> <a href="whlstf1.htm#bms_IN" target="ftslist" title="search letter IN"><b>IN</b></a> <a href="whlstf1.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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstfl9.htm b/doc/salome/gui/SMESH/whgdata/whlstfl9.htm
new file mode 100755 (executable)
index 0000000..48e8f98
--- /dev/null
@@ -0,0 +1,45 @@
+<html>\r
+<head>\r
+<title>Search Words letter</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+\r
+<p class="ftsheader"><a name="subkey_J"></a> <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a> <a href="whlstf1.htm#bm_J" target="ftslist" title="search letter J "><b>J </b></a> <a href="whlstf1.htm#bms_JO" target="ftslist" title="search letter JO"><b>JO</b></a>  <a href="whnvl32.htm#home" target="_self" title="back to top level"><b>^</b></a></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstg0.htm b/doc/salome/gui/SMESH/whgdata/whlstg0.htm
new file mode 100755 (executable)
index 0000000..e421241
--- /dev/null
@@ -0,0 +1,112 @@
+<html>\r
+<head>\r
+<title>Glossary words list</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.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">\r
+<p class="glsbody">\r
+\r
+<br><a name="bm_C"></a>\r
+<nobr><b>Cell</b></nobr><br>\r
+Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Component</b></nobr><br>\r
+One integer or real value can correspond to each component of a field and to each entity of a mesh<br>\r
+\r
+<br><a name="bm_D"></a>\r
+<nobr><b>Descendant connectivity</b></nobr><br>\r
+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.<br>\r
+\r
+<br><a name="bm_E"></a>\r
+<nobr><b>Edge</b></nobr><br>\r
+An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Entity of a mesh</b></nobr><br>\r
+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.<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Equivalence</b></nobr><br>\r
+Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.<br>\r
+\r
+<br><a name="bm_F"></a>\r
+<nobr><b>Face</b></nobr><br>\r
+Face of a volumetrical cell (triangle, quadrangle).<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Family</b></nobr><br>\r
+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.<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Field</b></nobr><br>\r
+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.<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Field profile</b></nobr><br>\r
+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.<br>\r
+\r
+<br><a name="bm_G"></a>\r
+<nobr><b>Group</b></nobr><br>\r
+Unordered set of entities of a mesh. One entity can belong to&nbsp;  several groups.<br>\r
+\r
+<br><a name="bm_M"></a>\r
+<nobr><b>Mesh</b></nobr><br>\r
+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).<br>\r
+\r
+<br><a name="bm_N"></a>\r
+<nobr><b>Nodal connectivity</b></nobr><br>\r
+It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Node</b></nobr><br>\r
+Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.<br>\r
+\r
+<br><a name="bm_P"></a>\r
+<nobr><b>Point</b></nobr><br>\r
+Geometrical entity determined by its coordinates in the space.<br>\r
+\r
+<br><a name="bm_R"></a>\r
+<nobr><b>Reference connectivity</b></nobr><br>\r
+For each type of entity of a mesh, reference connectivity define the topology of an entity.<br>\r
+\r
+<br><a name=""></a>\r
+<nobr><b>Result</b></nobr><br>\r
+List of fields referring to one mesh.<br>\r
+\r
+<br><a name="bm_S"></a>\r
+<nobr><b>Study</b></nobr><br>\r
+Study represents a chain of sequences of calculations.<br>\r
+<br><br></p>\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlsti0.htm b/doc/salome/gui/SMESH/whgdata/whlsti0.htm
new file mode 100755 (executable)
index 0000000..2c881ba
--- /dev/null
@@ -0,0 +1,38 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Index words list</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.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">\r
+\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt0.htm b/doc/salome/gui/SMESH/whgdata/whlstt0.htm
new file mode 100755 (executable)
index 0000000..407854a
--- /dev/null
@@ -0,0 +1,50 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt1.htm#1" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> SMESH 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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt1.htm b/doc/salome/gui/SMESH/whgdata/whlstt1.htm
new file mode 100755 (executable)
index 0000000..7389506
--- /dev/null
@@ -0,0 +1,58 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt10.htm b/doc/salome/gui/SMESH/whgdata/whlstt10.htm
new file mode 100755 (executable)
index 0000000..cdd508f
--- /dev/null
@@ -0,0 +1,64 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt1.htm#10" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_modification_of_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About modification of meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/adding_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Adding nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/removing_nodes_and_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Removing nodes and elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displacing_nodes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displacing nodes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/changing_orientation_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Changing orientation of elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/diagonal_iversion_of_elements.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Diagonal inversion of elements</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt11.htm b/doc/salome/gui/SMESH/whgdata/whlstt11.htm
new file mode 100755 (executable)
index 0000000..ca945ce
--- /dev/null
@@ -0,0 +1,61 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt1.htm#11" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/viewing_mesh_info.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Viewing mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_nodes_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying nodes numbers</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/displaying_elements_numbers.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Displaying elements numbers</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt12.htm b/doc/salome/gui/SMESH/whgdata/whlstt12.htm
new file mode 100755 (executable)
index 0000000..6603795
--- /dev/null
@@ -0,0 +1,62 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt1.htm#12" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/visualization_modes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Visualization modes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/visualization_properties.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Visualization properties</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/view_update.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> View update</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/scalar_bar_properties.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Scalar Bar properties</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt2.htm b/doc/salome/gui/SMESH/whgdata/whlstt2.htm
new file mode 100755 (executable)
index 0000000..48c3be7
--- /dev/null
@@ -0,0 +1,65 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="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 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 name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt3.htm b/doc/salome/gui/SMESH/whgdata/whlstt3.htm
new file mode 100755 (executable)
index 0000000..23fb74a
--- /dev/null
@@ -0,0 +1,70 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="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 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/local_length_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Local Length hypothesis</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/number_of_segments_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Number of segments hypothesis</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/max._element_area_hypothesis.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> 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;<nobr><a name="4"></a><a href="whlstt4.htm#4" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt4.htm b/doc/salome/gui/SMESH/whgdata/whlstt4.htm
new file mode 100755 (executable)
index 0000000..32e8709
--- /dev/null
@@ -0,0 +1,69 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="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 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 name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 1D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 2D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 3D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt5.htm b/doc/salome/gui/SMESH/whgdata/whlstt5.htm
new file mode 100755 (executable)
index 0000000..4a129b8
--- /dev/null
@@ -0,0 +1,70 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="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 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 name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="5"></a><a href="whlstt4.htm#5" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 1D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/1d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Wire discretization</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 2D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 3D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt6.htm b/doc/salome/gui/SMESH/whgdata/whlstt6.htm
new file mode 100755 (executable)
index 0000000..09f4e99
--- /dev/null
@@ -0,0 +1,71 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="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 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 name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 1D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="6"></a><a href="whlstt4.htm#6" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 2D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/2d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Triangle meshing algorithm</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/2d_(quadrangle)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Quadrangle meshing algorithm</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 3D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt7.htm b/doc/salome/gui/SMESH/whgdata/whlstt7.htm
new file mode 100755 (executable)
index 0000000..f4143a4
--- /dev/null
@@ -0,0 +1,71 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="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 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 name="4"></a><a href="whlstt2.htm#4" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Defining meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/about_meshing_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> About meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 1D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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"> 2D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a name="7"></a><a href="whlstt4.htm#7" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> 3D meshing algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/3d_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Hexahedron meshing algorithm</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/tetrahedron_(netgen)_meshing_algorithm.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Tetrahedron (Netgen) meshing algorithm</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/constructing_submeshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Constructing submeshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/computing_meshes.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Computing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt8.htm b/doc/salome/gui/SMESH/whgdata/whlstt8.htm
new file mode 100755 (executable)
index 0000000..90c1ebf
--- /dev/null
@@ -0,0 +1,60 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt1.htm#8" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/reassigning_hypotheses_and_algorithms.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Reassigning hypotheses and algorithms</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<nobr><a href="../files/editing_hypotheses.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Editing hypotheses</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt9.htm#9" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Quality controls</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whlstt9.htm b/doc/salome/gui/SMESH/whgdata/whlstt9.htm
new file mode 100755 (executable)
index 0000000..3fced36
--- /dev/null
@@ -0,0 +1,66 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<table border=0>\r
+<tr><td>\r
+<p class="tocbody">\r
+<nobr><a name="1"></a><a href="whlstt0.htm#1" target="_self"><img src="../wht_toc2.gif" border="0" align="absmiddle"> SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/introduction_to_smesh.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Introduction to SMESH</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a href="../files/running_smesh_module.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Running SMESH module</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="2"></a><a href="whlstt2.htm#2" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Creating meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="8"></a><a href="whlstt8.htm#8" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Editing meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="9"></a><a href="whlstt1.htm#9" 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="../files/length_of_edges.htm"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Length of edges</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 of elements</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 angle</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="10"></a><a href="whlstt10.htm#10" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Modifying meshes</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="11"></a><a href="whlstt11.htm#11" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Mesh info</a></nobr><br>\r
+&nbsp;&nbsp;&nbsp;<nobr><a name="12"></a><a href="whlstt12.htm#12" target="_self" title="closed book"><img src="../wht_toc1.gif" border="0" align="absmiddle"> Setting SMESH preferences</a></nobr><br>\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf30.htm b/doc/salome/gui/SMESH/whgdata/whnvf30.htm
new file mode 100755 (executable)
index 0000000..7daf4a5
--- /dev/null
@@ -0,0 +1,12 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>toc frame</title>\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf31.htm b/doc/salome/gui/SMESH/whgdata/whnvf31.htm
new file mode 100755 (executable)
index 0000000..abe7282
--- /dev/null
@@ -0,0 +1,14 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Index frame</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf32.htm b/doc/salome/gui/SMESH/whgdata/whnvf32.htm
new file mode 100755 (executable)
index 0000000..afdcde9
--- /dev/null
@@ -0,0 +1,14 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>search frame</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whnvf33.htm b/doc/salome/gui/SMESH/whgdata/whnvf33.htm
new file mode 100755 (executable)
index 0000000..0e897d8
--- /dev/null
@@ -0,0 +1,14 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Glossary frame</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+</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
diff --git a/doc/salome/gui/SMESH/whgdata/whnvl31.htm b/doc/salome/gui/SMESH/whgdata/whnvl31.htm
new file mode 100755 (executable)
index 0000000..bd342a1
--- /dev/null
@@ -0,0 +1,42 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Index Letters</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.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">\r
+\r
+<body>\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvl32.htm b/doc/salome/gui/SMESH/whgdata/whnvl32.htm
new file mode 100755 (executable)
index 0000000..0e21bdd
--- /dev/null
@@ -0,0 +1,71 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Search Letters</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.ftsheader {margin-left:10pt; margin-top:0pt;}\r
+.ftsbody {margin-left:10pt; margin-top:0pt;}\r
+.inactive {color:#666666;}\r
+.ftsheader {background-color:White; } \r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+<style>\r
+<!--\r
+body {background-color:White; } \r
+-->\r
+</style>\r
+</head>\r
+<body marginheight="0"  marginwidth="0">\r
+<p class="ftsheader">\r
+<a name="home"></a> <a href="whlstf0.htm#bm_{" target="ftslist"title="search non-alphabet letter" ><b>#</b></a> \r
+ <a href="whlstfl0.htm#subkey_A" target="_self"title="search letter A"><b>A</b></a> \r
+ <a href="whlstfl1.htm#subkey_B" target="_self"title="search letter B"><b>B</b></a> \r
+ <a href="whlstfl2.htm#subkey_C" target="_self"title="search letter C"><b>C</b></a> \r
+ <a href="whlstfl3.htm#subkey_D" target="_self"title="search letter D"><b>D</b></a> \r
+ <a href="whlstfl4.htm#subkey_E" target="_self"title="search letter E"><b>E</b></a> \r
+ <a href="whlstfl5.htm#subkey_F" target="_self"title="search letter F"><b>F</b></a> \r
+ <a href="whlstfl6.htm#subkey_G" target="_self"title="search letter G"><b>G</b></a> \r
+ <a href="whlstfl7.htm#subkey_H" target="_self"title="search letter H"><b>H</b></a> \r
+ <a href="whlstfl8.htm#subkey_I" target="_self"title="search letter I"><b>I</b></a> \r
+ <a href="whlstfl9.htm#subkey_J" target="_self"title="search letter J"><b>J</b></a> \r
+ <a href="whlstfl10.htm#subkey_K" target="_self"title="search letter K"><b>K</b></a> \r
+ <a href="whlstfl11.htm#subkey_L" target="_self"title="search letter L"><b>L</b></a> \r
+ <a href="whlstfl12.htm#subkey_M" target="_self"title="search letter M"><b>M</b></a> \r
+ <a href="whlstfl13.htm#subkey_N" target="_self"title="search letter N"><b>N</b></a> \r
+ <a href="whlstfl14.htm#subkey_O" target="_self"title="search letter O"><b>O</b></a> \r
+ <a href="whlstfl15.htm#subkey_P" target="_self"title="search letter P"><b>P</b></a> \r
+ <a href="whlstf2.htm#bm_Q" target="ftslist"title="search letter Q" ><b>Q</b></a> \r
+ <a href="whlstfl16.htm#subkey_R" target="_self"title="search letter R"><b>R</b></a> \r
+ <a href="whlstfl17.htm#subkey_S" target="_self"title="search letter S"><b>S</b></a> \r
+ <a href="whlstfl18.htm#subkey_T" target="_self"title="search letter T"><b>T</b></a> \r
+ <a href="whlstfl19.htm#subkey_U" target="_self"title="search letter U"><b>U</b></a> \r
+ <a href="whlstfl20.htm#subkey_V" target="_self"title="search letter V"><b>V</b></a> \r
+ <a href="whlstfl21.htm#subkey_W" target="_self"title="search letter W"><b>W</b></a> \r
+ <a href="whlstf3.htm#bm_X" target="ftslist"title="search letter X" ><b>X</b></a> \r
+ <a href="whlstfl22.htm#subkey_Y" target="_self"title="search letter Y"><b>Y</b></a> \r
+ <a href="whlstf3.htm#bm_Z" target="ftslist"title="search letter Z" ><b>Z</b></a> \r
+</p>\r
+\r
+<body>\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvl33.htm b/doc/salome/gui/SMESH/whgdata/whnvl33.htm
new file mode 100755 (executable)
index 0000000..d181711
--- /dev/null
@@ -0,0 +1,71 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Glossary Letters</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.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">\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
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp30.htm b/doc/salome/gui/SMESH/whgdata/whnvp30.htm
new file mode 100755 (executable)
index 0000000..cc65c8f
--- /dev/null
@@ -0,0 +1,14 @@
+<!-- WebHelp version 2002 -->\r
+<html>\r
+<head>\r
+<title> Content Navigation Pane </title>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp31.htm b/doc/salome/gui/SMESH/whgdata/whnvp31.htm
new file mode 100755 (executable)
index 0000000..dfca9ca
--- /dev/null
@@ -0,0 +1,14 @@
+<!-- WebHelp version 2002 -->\r
+<html>\r
+<head>\r
+<title> Index Navigation Pane </title>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp32.htm b/doc/salome/gui/SMESH/whgdata/whnvp32.htm
new file mode 100755 (executable)
index 0000000..c0b6f6d
--- /dev/null
@@ -0,0 +1,15 @@
+<!-- WebHelp version 2002 -->\r
+<html>\r
+<head>\r
+<title> Search Navigation Pane </title>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\r
+<style>\r
+\r
+</style>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvp33.htm b/doc/salome/gui/SMESH/whgdata/whnvp33.htm
new file mode 100755 (executable)
index 0000000..4981265
--- /dev/null
@@ -0,0 +1,14 @@
+<!-- WebHelp version 2002 -->\r
+<html>\r
+<head>\r
+<title> Glossary Navigation Pane </title>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt30.htm b/doc/salome/gui/SMESH/whgdata/whnvt30.htm
new file mode 100755 (executable)
index 0000000..706e7bd
--- /dev/null
@@ -0,0 +1,46 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Content Navigation Tab</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+\r
+.tabs {background-color:#c0c0c0;}\r
+.tocbody {margin-left:10pt; margin-top:0pt;}\r
+.bo {}\r
+.bc {}\r
+.pn {}\r
+.pr {}\r
+\r
+body {background-color:White; } \r
+p {color:Black; } p {font-family:Tahoma; } p {font-size:8pt; } p {font-style:Normal; } p {text-decoration:none; } \r
+A:link {color:Black; } A:link {font-family:Tahoma; } A:link {font-size:8pt; } A:link {font-style:Normal; } A:link {text-decoration:none; } \r
+A:visited {color:Black; } A:visited {font-family:Tahoma; } A:visited {font-size:8pt; } A:visited {font-style:Normal; } A:visited {text-decoration:none; } \r
+A:active {background-color:Silver; } \r
+A:hover {color:Navy; } A:hover {font-family:Tahoma; } A:hover {font-size:8pt; } A:hover {font-style:Normal; } A:hover {text-decoration:underline; } \r
+\r
+-->\r
+</style>\r
+</head>\r
+<body class="tabs" marginheight="0"  marginwidth="0">\r
+<table class="tabs" width="100%">\r
+ <tr> \r
+   <td class="tabs">\r
+   <nobr><a href="javascript:void(0)"><img src="../wht_tab1.gif" border="0"></a><a href="whnvp32.htm" target="_parent"><img src="../wht_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
+   </td>\r
+ </tr>\r
+</table>\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt31.htm b/doc/salome/gui/SMESH/whgdata/whnvt31.htm
new file mode 100755 (executable)
index 0000000..ebfdb88
--- /dev/null
@@ -0,0 +1,44 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Index Navigation Tab</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.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">\r
+<table class="tabs" width="100%">\r
+ <tr> \r
+   <td class="tabs">\r
+   <nobr><a href="whnvp30.htm" target="_parent"><img src="../wht_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent"><img src="../wht_tab6.gif" border="0"></a><a href="whnvp33.htm" target="_parent"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
+   </td>\r
+ </tr>\r
+</table>\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt32.htm b/doc/salome/gui/SMESH/whgdata/whnvt32.htm
new file mode 100755 (executable)
index 0000000..93c54b3
--- /dev/null
@@ -0,0 +1,44 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Search Navigation Tab</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.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">\r
+<table class="tabs" width="100%">\r
+ <tr> \r
+   <td class="tabs">\r
+   <nobr><a href="whnvp30.htm" target="_parent"><img src="../wht_tab2.gif" border="0"></a><a href="javascript:void(0)"><img src="../wht_tab5.gif" border="0"></a><a href="whnvp33.htm" target="_parent"><img src="../wht_tab8.gif" border="0"></a></nobr>\r
+   </td>\r
+ </tr>\r
+</table>\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdata/whnvt33.htm b/doc/salome/gui/SMESH/whgdata/whnvt33.htm
new file mode 100755 (executable)
index 0000000..9219c27
--- /dev/null
@@ -0,0 +1,44 @@
+<html>\r
+<head>\r
+<!-- WebHelp version 2002 -->\r
+<title>Glossary Navigation Tab</title>\r
+<base target="bsscright">\r
+<meta name="generator" content="RoboHELP by eHelp Corporation www.ehelp.com">\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<style>\r
+<!--\r
+body {margin-left:1pt; margin-top:1pt; margin-right:1pt;font-family:Arial; font-size:9pt;}\r
+\r
+A:link {font-family:Arial; font-size:9pt; color:#000000;  font-style:normal;  text-decoration:none; }\r
+A:visited {font-family:Arial; font-size:9pt; color:#000000; font-style:normal;  text-decoration:none; }\r
+A:active {background-color:#cccccc;}\r
+A:hover {font-family:Arial; font-size:9pt; color:#007f00; font-style:normal;  text-decoration:underline; }\r
+\r
+.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">\r
+<table class="tabs" width="100%">\r
+ <tr> \r
+   <td class="tabs">\r
+   <nobr><a href="whnvp30.htm" target="_parent"><img src="../wht_tab2.gif" border="0"></a><a href="whnvp32.htm" target="_parent"><img src="../wht_tab6.gif" border="0"></a><a href="javascript:void(0)"><img src="../wht_tab7.gif" border="0"></a></nobr>\r
+   </td>\r
+ </tr>\r
+</table>\r
+</body>\r
+\r
+</html>\r
+\r
diff --git a/doc/salome/gui/SMESH/whgdef.htm b/doc/salome/gui/SMESH/whgdef.htm
new file mode 100755 (executable)
index 0000000..3c5dfae
--- /dev/null
@@ -0,0 +1,98 @@
+<html>\r
+<head>\r
+<title>Glossary Definition</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<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
diff --git a/doc/salome/gui/SMESH/whgdhtml.htm b/doc/salome/gui/SMESH/whgdhtml.htm
new file mode 100755 (executable)
index 0000000..01b6692
--- /dev/null
@@ -0,0 +1,150 @@
+<html>\r
+<head>\r
+<title>Glossary</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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
diff --git a/doc/salome/gui/SMESH/whghost.js b/doc/salome/gui/SMESH/whghost.js
new file mode 100755 (executable)
index 0000000..77751a1
--- /dev/null
@@ -0,0 +1,217 @@
+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
+\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 writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,n,aPos,nLevel)\r
+{\r
+\r
+       var sHTML="";\r
+       var nIdxSet=aCurIdxSet[n];\r
+       var nIIdx=aPos[nIdxSet];\r
+       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);\r
+       var sKName=_textToHtml(sRawKName);\r
+       var nIndex=insertDef(sKName,_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx)));\r
+       if(nLevel==1){\r
+               sHTML+="<p><nobr><a alt=\"" + sKName+"\" href=\"javascript:void(0);\" onclick=\"showDef("+nIndex;\r
+               sHTML+=");return false;\">"+sKName+"</a></nobr></p>";\r
+       }\r
+       oHTML.addHTML(sHTML,1,bDown,true,sRawKName);\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
+               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
+       for(var i=0;i<nLength;i++)\r
+               writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,i,aPos,nLevel);\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!=null&&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
diff --git a/doc/salome/gui/SMESH/whhost.js b/doc/salome/gui/SMESH/whhost.js
new file mode 100755 (executable)
index 0000000..664120f
--- /dev/null
@@ -0,0 +1,1290 @@
+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 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(sCurrentK==aDataCon[i].aKs[aPos[i]].sName){\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
+var gbWhHost=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whibody.htm b/doc/salome/gui/SMESH/whibody.htm
new file mode 100755 (executable)
index 0000000..62cbf7a
--- /dev/null
@@ -0,0 +1,288 @@
+<html>\r
+<head>\r
+<title>Index content</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+<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 gnPageWidth = 0;\r
+var gnPageHeight = 0;\r
+var goPopup = null;\r
+var gITE = new Array();\r
+var gIndexLetterArray = new Array();\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(\'' + 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">' + 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)\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)\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)\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
diff --git a/doc/salome/gui/SMESH/whidhtml.htm b/doc/salome/gui/SMESH/whidhtml.htm
new file mode 100755 (executable)
index 0000000..8a420e4
--- /dev/null
@@ -0,0 +1,30 @@
+<html>\r
+<head>\r
+<title>Index</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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
diff --git a/doc/salome/gui/SMESH/whiform.htm b/doc/salome/gui/SMESH/whiform.htm
new file mode 100755 (executable)
index 0000000..1f2835d
--- /dev/null
@@ -0,0 +1,91 @@
+<html>\r
+<head>\r
+<title>Index form</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whihost.js b/doc/salome/gui/SMESH/whihost.js
new file mode 100755 (executable)
index 0000000..7e2ab32
--- /dev/null
@@ -0,0 +1,432 @@
+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,'"+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,'"+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!=null&&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+=",'"+excapeSingleQuot(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+_textToHtml_nonbsp(sFullPath)+"'";\r
+                       }\r
+               }\r
+       }\r
+       return sTopics;         \r
+}\r
+\r
+function excapeSingleQuot(str)\r
+{\r
+       if(str==null) return null;\r
+       var sRes=str;\r
+       var re=new RegExp("'","g");\r
+       sRes=sRes.replace(re,"\\'");\r
+       return sRes;\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
diff --git a/doc/salome/gui/SMESH/whlang.js b/doc/salome/gui/SMESH/whlang.js
new file mode 100755 (executable)
index 0000000..055b5b8
--- /dev/null
@@ -0,0 +1,452 @@
+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] = "s";\r
+gaFtsStem[1] = "e";\r
+gaFtsStem[2] = "ed";\r
+gaFtsStem[3] = "es";\r
+gaFtsStem[4] = "er";\r
+gaFtsStem[5] = "ly";\r
+gaFtsStem[6] = "ing";\r
+gaFtsStem[7] = "ingly";\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
+gbWhLang=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whmozemu.js b/doc/salome/gui/SMESH/whmozemu.js
new file mode 100755 (executable)
index 0000000..699779f
--- /dev/null
@@ -0,0 +1,68 @@
+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\r
+(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.body.scrollTop = window.pageYOffset\r
+       document.body.scrollLeft = window.pageXOffset\r
+       window.document.body.scrollHeight = document.height\r
+       window.document.body.scrollWidth = document.width\r
+       window.document.body.clientWidth = window.innerWidth;\r
+       window.document.body.clientHeight = window.innerHeight;\r
+\r
+       // If cache!=current values, call the onscroll event\r
+       if (((window.pageXOffset!=window._pageXOffset) || \r
+                       (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) {\r
+       setInterval("testScroll()",50)\r
+}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whmsg.js b/doc/salome/gui/SMESH/whmsg.js
new file mode 100755 (executable)
index 0000000..e08cc08
--- /dev/null
@@ -0,0 +1,64 @@
+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_ENABLEPREV          =0x0106;\r
+var WH_MSG_ENABLESYNC          =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
+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
+var gbWhMsg=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whnjs.htm b/doc/salome/gui/SMESH/whnjs.htm
new file mode 100755 (executable)
index 0000000..ccf9b79
--- /dev/null
@@ -0,0 +1,15 @@
+<html>\r
+<head>\r
+<title>SMESH reference manual</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<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
+</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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whphost.js b/doc/salome/gui/SMESH/whphost.js
new file mode 100755 (executable)
index 0000000..d4c80bb
--- /dev/null
@@ -0,0 +1,526 @@
+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){\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:";\r
+                                               gsHTML+="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\r
+                       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\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
+               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
+       goMan.addCom(sName,sFileName);  \r
+}\r
+\r
+function setShowPane(sName, bForce)\r
+{\r
+       if ((gsFirstPane == "") || bForce)\r
+               gsFirstPane=sName;\r
+}\r
+\r
+function window_OnLoad()\r
+{\r
+       if(gsProjName!="")\r
+       {\r
+               goMan.init();\r
+               if(gsFirstPane!="")\r
+                       goMan.show(gsFirstPane);\r
+               else\r
+                       goMan.showById(0);\r
+               loadData2(gsProjName);\r
+       }\r
+       else if (gServerEnabled)\r
+       {\r
+               goMan.init();\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)\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(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
+                                       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
+                       setTimeout("redirectToList();",100);\r
+               }\r
+       }\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 project: "+aRProj[0].sPPath+" is using a different language to the main project, which will cause the index and full text search functionality to be disabled for this remote project.");\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
+               checkRemoteProject();\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
+               alert("Can't load project::"+gaProj[i].sPPath);\r
+               gnChecked++;\r
+               checkRemoteProject();\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))\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
diff --git a/doc/salome/gui/SMESH/whproj.htm b/doc/salome/gui/SMESH/whproj.htm
new file mode 100755 (executable)
index 0000000..455bec7
--- /dev/null
@@ -0,0 +1,24 @@
+<html>\r
+<head>\r
+<title>project description</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whproj.js b/doc/salome/gui/SMESH/whproj.js
new file mode 100755 (executable)
index 0000000..0e23515
--- /dev/null
@@ -0,0 +1,82 @@
+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
+       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
+}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whproj.xml b/doc/salome/gui/SMESH/whproj.xml
new file mode 100755 (executable)
index 0000000..d16f189
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\r
+<project langid="1033" datapath="whdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >\r
+</project>\r
diff --git a/doc/salome/gui/SMESH/whproxy.js b/doc/salome/gui/SMESH/whproxy.js
new file mode 100755 (executable)
index 0000000..222927a
--- /dev/null
@@ -0,0 +1,63 @@
+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;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whres.xml b/doc/salome/gui/SMESH/whres.xml
new file mode 100755 (executable)
index 0000000..9634684
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version='1.0' encoding='ISO-8859-1' ?>\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="JS_alert_cantLoadProject" value="Can't load project:" />\r
+<item name="Next" value="&gt;&gt;" />\r
+<item name="SyncToc" value="SyncToc" />\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="Contents" value="Contents" />\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="Find" value="Find" />\r
+<item name="CantOpenURLorFile" value="Can't open URL or file" />\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="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="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="s" />\r
+    <stem name="e" />\r
+    <stem name="ed" />\r
+    <stem name="es" />\r
+    <stem name="er" />\r
+    <stem name="ly" />\r
+    <stem name="ing" />\r
+    <stem name="ingly" />\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
+</resource>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whrstart.ico b/doc/salome/gui/SMESH/whrstart.ico
new file mode 100755 (executable)
index 0000000..bffcd6e
Binary files /dev/null and b/doc/salome/gui/SMESH/whrstart.ico differ
diff --git a/doc/salome/gui/SMESH/whskin_banner.htm b/doc/salome/gui/SMESH/whskin_banner.htm
new file mode 100755 (executable)
index 0000000..afe2d3f
--- /dev/null
@@ -0,0 +1,41 @@
+<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
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<style type="text/css">\r
+<!--\r
+P {margin-left:10pt;font-size:8pt;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 rowspan="2"><img src="wht_abgw.jpg" width="99" height="190" border="0"></td>\r
+   <td><img src="wht_abtw.jpg" width="211" height="86" border="0"></td>\r
+   <td><img src="wht_spac.gif" width="1" height="86" border="0"></td>\r
+  </tr>\r
+  <tr>\r
+   <td valign="top">\r
+               <p>Author:&nbsp;eHelp Corporation</p>\r
+               <p>Powered by:&nbsp;WebHelp 5.00\r
+               <br>Generated by:&nbsp;RoboHelp 2002</p>\r
+               <p><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="104" border="0"></td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whskin_blank.htm b/doc/salome/gui/SMESH/whskin_blank.htm
new file mode 100755 (executable)
index 0000000..5b506c2
--- /dev/null
@@ -0,0 +1,10 @@
+<html>\r
+<head>\r
+<title>Blank Page</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</head>\r
+<body>\r
+</body>\r
+</html>\r
diff --git a/doc/salome/gui/SMESH/whskin_frmset01.htm b/doc/salome/gui/SMESH/whskin_frmset01.htm
new file mode 100755 (executable)
index 0000000..6916dee
--- /dev/null
@@ -0,0 +1,172 @@
+\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=\"yes\" id=\"whPfset\"><frame src=\"whskin_frmset010.htm\" id=\"minibar_navpane\" frameborder=\"no\" border=\"0\" scrolling=\"auto\" marginheight=\"0\" marginwidth=\"0\"></frame><frame src=\""+strDefaultTopic+"\" id=\"topic\" frameborder=\"yes\" 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
new file mode 100755 (executable)
index 0000000..357fc82
--- /dev/null
@@ -0,0 +1,50 @@
+\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='no' 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=\"no\" border=\"0\"><frame src=\"whskin_mbars.htm\" id=\"minibar\" frameborder=\"no\" border=\"0\" scrolling=\"no\" marginheight=\"0\" title=\"Mini Toolbar\"></frame><frame src=\""+gsPane+"\" id=\"navpane\" frameborder=\"no\" 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
diff --git a/doc/salome/gui/SMESH/whskin_info.htm b/doc/salome/gui/SMESH/whskin_info.htm
new file mode 100755 (executable)
index 0000000..46c2ea7
--- /dev/null
@@ -0,0 +1,20 @@
+<html>\r
+<head>\r
+<title>WebHelp 5.00 </title>\r
+<meta name="description" content="output from robohelp">\r
+<meta name="keywords" content="robohelp,webhelp,webhelp 2002,webhelp enterprise,webehelp enterprise 2002,roboinfo,roboinfo 2002">\r
+</head>\r
+<body>\r
+<h1> WebHelp 5.00 System  Info </h1>\r
+<table>\r
+<tr><td> Start Page </td><td>smesh.html</td></tr>\r
+<tr><td> Skin Name </td><td>Default</td></tr>\r
+<tr><td> Generating Time </td><td>17:39 02/24/2004</td></tr>\r
+<tr><td> Language ID </td><td>1033</td></tr>\r
+<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>\r
+<tr><td> Compile Build Version </td><td>10.00.949</td></tr>\r
+<tr><td> Product Name </td><td>WebHelp 5.00</td></tr>\r
+<tr><td> Authoring Tool Name </td><td>RoboHelp 2002</td></tr>\r
+<table>\r
+</body>\r
+</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
new file mode 100755 (executable)
index 0000000..66e8c53
--- /dev/null
@@ -0,0 +1,56 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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
new file mode 100755 (executable)
index 0000000..aab44dd
--- /dev/null
@@ -0,0 +1,357 @@
+<html>\r
+<head>\r
+<title>Navigation Pane</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<SCRIPT LANGUAGE="JavaScript1.2" ARCHIVE="nsdnsfix.jar" ID="ChangeProfileScriptinNavPane2"> var sd_strAgent    = navigator.userAgent.toLowerCase();    var sd_strVersion  = navigator.appVersion.toLowerCase();  var sd_nVerMajor      = parseInt(sd_strVersion);  var sd_nVerMinor    = parseFloat(sd_strVersion); var        sd_bNS      = ((sd_strAgent.indexOf("mozilla") != -1) && ((sd_strAgent.indexOf('spoofer') == -1) && (sd_strAgent.indexOf('compatible') == -1))); var    sd_bNS4                 = ((sd_bNS) && (sd_nVerMajor >= 4)); if (sd_nVerMinor == 4.60)  {  netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead");  var sd_prefValue = navigator.preference("security.lower_java_network_security_by_trusting_proxies"); if (!sd_prefValue) { alert("There are some limitations in Netscape 4.6. Please download and install the latest version of Netscape. Your current Netscape profile needs to be modified. Select 'Remember this decision' and click 'Grant' when prompted to allow the modifications. Click OK to proceed."); netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesWrite"); navigator.preference("security.lower_java_network_security_by_trusting_proxies", true); alert("Please restart Netscape"); window.close(); } } </SCRIPT>\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
+       if (gsInitPane == "toc")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="idx")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="fts")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       else if (gsInitPane=="glo")\r
+       {\r
+               var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)\r
+               SendMessage(oMsg);      \r
+       }\r
+       \r
+}\r
+\r
+function onResize()\r
+{\r
+       if (gbIE4)\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
+       else \r
+       {\r
+               if (window.innerWidth != 0 && window.innerHeight != 0)\r
+               {\r
+                       var 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
+                                       if (gnVerMinor >= 4.06)\r
+                                               document.location.href = "nsdnsfix.htm"\r
+                                       else {\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
+\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_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=_browserURLToAppletURL(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
+                               if(gbLoading!="unknown")\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
+               else if(nMsgId==WH_MSG_GETPANEINFO)\r
+               {\r
+                       oMsg.oParam=gsCurrentPane;\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function _browserURLToAppletURL(sBURL)\r
+{\r
+       var sAURL="";\r
+       var nPos=sBURL.indexOf('%');\r
+       while(nPos!=-1)\r
+       {\r
+               sAURL+=sBURL.substring(0,nPos);\r
+               sBURL=sBURL.substring(nPos+1);\r
+               var sNum="";\r
+               var i=0;\r
+               while(sBURL.charAt(i)>='0'&&sBURL.charAt(i)<='9')\r
+               {\r
+                       sNum+=sBURL.charAt(i++);        \r
+               }\r
+               if(sNum!="")\r
+               {\r
+                       var nNum=parseInt(sNum,16);\r
+                       sAURL+=String.fromCharCode(nNum);\r
+                       sBURL=sBURL.substring(i);\r
+               }\r
+               nPos=sBURL.indexOf('%');\r
+       }\r
+       sAURL+=sBURL;\r
+       return sAURL;\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=_browserURLToAppletURL(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
+</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
new file mode 100755 (executable)
index 0000000..ffb2439
--- /dev/null
@@ -0,0 +1,57 @@
+<html>\r
+<head>\r
+<title> Navigation Pane </title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+</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
+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
diff --git a/doc/salome/gui/SMESH/whskin_plist.htm b/doc/salome/gui/SMESH/whskin_plist.htm
new file mode 100755 (executable)
index 0000000..35f0155
--- /dev/null
@@ -0,0 +1,204 @@
+<html>\r
+<head>\r
+<title> Navigation Pane </title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<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
+       {\r
+               gstrName = "toc";\r
+       }\r
+       else if (strFrmDft == strFrmNdx) \r
+       {\r
+               gstrName = "idx";\r
+\r
+       }\r
+       else if (strFrmDft == strFrmFts) \r
+       {\r
+               gstrName = "fts";\r
+       }\r
+       else if (strFrmDft == strFrmGls) \r
+       {\r
+               gstrName = "glo";\r
+       }\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
+       if (gstrName)\r
+       {\r
+               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, gstrName);\r
+               SendMessage(onMsg);\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 nMsgId=oMsg.nMessageId;\r
+               if (nMsgId==WH_MSG_SHOWTOC)\r
+               {\r
+                       switchNvp("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
+                       switchNvp("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
+                       switchNvp("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
+                       switchNvp("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 = gstrName;\r
+                       return false;\r
+               }\r
+       }\r
+       return true;\r
+}\r
+\r
+function onResize()\r
+{\r
+       if (gbIE4)\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
+       else \r
+       {\r
+               if (window.innerWidth != 0 && window.innerHeight != 0)\r
+               {\r
+                       var 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
+       window.onresize=onResize;\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
+</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
new file mode 100755 (executable)
index 0000000..8b70544
--- /dev/null
@@ -0,0 +1,98 @@
+<html>\r
+<head>\r
+<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1">\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,"eHelp Corporation","","","","",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
diff --git a/doc/salome/gui/SMESH/whst_topics.xml b/doc/salome/gui/SMESH/whst_topics.xml
new file mode 100755 (executable)
index 0000000..2a61402
--- /dev/null
@@ -0,0 +1,81 @@
+<?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
+       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
new file mode 100755 (executable)
index 0000000..365ecea
Binary files /dev/null and b/doc/salome/gui/SMESH/whstart.ico differ
diff --git a/doc/salome/gui/SMESH/whstart.js b/doc/salome/gui/SMESH/whstart.js
new file mode 100755 (executable)
index 0000000..0cb5e2c
--- /dev/null
@@ -0,0 +1,244 @@
+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
+\r
+if (gbNav6)\r
+{\r
+       var gnReload=0;\r
+       setTimeout("delayReload();",5000);\r
+}\r
+\r
+function delayReload()\r
+{\r
+       if(!gnReload)\r
+       {\r
+               if(nViewFrameType&&nViewFrameType==1)\r
+                       document.location=document.location;\r
+       }\r
+}\r
+\r
+var gsToolbarOrder = "toc|fts|glo|blankblock|banner";\r
+var gsMinibarOrder = "blankblock|hide2|";\r
+\r
+var gsTopic = "files/introduction_to_smesh.htm";\r
+\r
+if (location.hash.length > 1)\r
+       gsTopic = location.hash.substring(1);\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
+               oMsg.oParam = gsToolbarOrder;\r
+               return false;\r
+       }\r
+       else if (nMsgId == WH_MSG_MINIBARORDER)\r
+       {\r
+               oMsg.oParam = gsMinibarOrder;\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(nViewFrameType)\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(nViewFrameType)\r
+               {\r
+                       oMsg.oParam= (nViewFrameType < 3);\r
+                       return false;\r
+               }\r
+       }\r
+       else if (nMsgId == WH_MSG_GETPANETYPE)\r
+       {\r
+               if(nViewFrameType)\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=1;\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 =="Glossary")\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
+}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whstub.js b/doc/salome/gui/SMESH/whstub.js
new file mode 100755 (executable)
index 0000000..7a67691
--- /dev/null
@@ -0,0 +1,156 @@
+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
+                       if(frames[i].frames.length>0)\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
+}
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/wht_abge.jpg b/doc/salome/gui/SMESH/wht_abge.jpg
new file mode 100755 (executable)
index 0000000..bfab652
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_abge.jpg differ
diff --git a/doc/salome/gui/SMESH/wht_abgi.jpg b/doc/salome/gui/SMESH/wht_abgi.jpg
new file mode 100755 (executable)
index 0000000..f0729b7
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_abgi.jpg differ
diff --git a/doc/salome/gui/SMESH/wht_abgw.jpg b/doc/salome/gui/SMESH/wht_abgw.jpg
new file mode 100755 (executable)
index 0000000..74de750
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_abgw.jpg differ
diff --git a/doc/salome/gui/SMESH/wht_abte.jpg b/doc/salome/gui/SMESH/wht_abte.jpg
new file mode 100755 (executable)
index 0000000..78fabbb
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_abte.jpg differ
diff --git a/doc/salome/gui/SMESH/wht_abti.jpg b/doc/salome/gui/SMESH/wht_abti.jpg
new file mode 100755 (executable)
index 0000000..92c2d68
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_abti.jpg differ
diff --git a/doc/salome/gui/SMESH/wht_abtw.jpg b/doc/salome/gui/SMESH/wht_abtw.jpg
new file mode 100755 (executable)
index 0000000..1fdd1a8
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_abtw.jpg differ
diff --git a/doc/salome/gui/SMESH/wht_fts_h.gif b/doc/salome/gui/SMESH/wht_fts_h.gif
new file mode 100755 (executable)
index 0000000..feb79ae
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_fts_h.gif differ
diff --git a/doc/salome/gui/SMESH/wht_fts_n.gif b/doc/salome/gui/SMESH/wht_fts_n.gif
new file mode 100755 (executable)
index 0000000..8483be4
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_fts_n.gif differ
diff --git a/doc/salome/gui/SMESH/wht_glo_h.gif b/doc/salome/gui/SMESH/wht_glo_h.gif
new file mode 100755 (executable)
index 0000000..12223e5
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_glo_h.gif differ
diff --git a/doc/salome/gui/SMESH/wht_glo_n.gif b/doc/salome/gui/SMESH/wht_glo_n.gif
new file mode 100755 (executable)
index 0000000..32803eb
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_glo_n.gif differ
diff --git a/doc/salome/gui/SMESH/wht_go.gif b/doc/salome/gui/SMESH/wht_go.gif
new file mode 100755 (executable)
index 0000000..106f1d1
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_go.gif differ
diff --git a/doc/salome/gui/SMESH/wht_hide.gif b/doc/salome/gui/SMESH/wht_hide.gif
new file mode 100755 (executable)
index 0000000..6ec602d
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_hide.gif differ
diff --git a/doc/salome/gui/SMESH/wht_idx_h.gif b/doc/salome/gui/SMESH/wht_idx_h.gif
new file mode 100755 (executable)
index 0000000..2df1b16
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_idx_h.gif differ
diff --git a/doc/salome/gui/SMESH/wht_idx_n.gif b/doc/salome/gui/SMESH/wht_idx_n.gif
new file mode 100755 (executable)
index 0000000..fd193a0
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_idx_n.gif differ
diff --git a/doc/salome/gui/SMESH/wht_logo1.gif b/doc/salome/gui/SMESH/wht_logo1.gif
new file mode 100755 (executable)
index 0000000..2ef5700
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_logo1.gif differ
diff --git a/doc/salome/gui/SMESH/wht_logo2.gif b/doc/salome/gui/SMESH/wht_logo2.gif
new file mode 100755 (executable)
index 0000000..2ac62e8
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_logo2.gif differ
diff --git a/doc/salome/gui/SMESH/wht_next.gif b/doc/salome/gui/SMESH/wht_next.gif
new file mode 100755 (executable)
index 0000000..8ea834d
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_next.gif differ
diff --git a/doc/salome/gui/SMESH/wht_next_g.gif b/doc/salome/gui/SMESH/wht_next_g.gif
new file mode 100755 (executable)
index 0000000..c0e9758
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_next_g.gif differ
diff --git a/doc/salome/gui/SMESH/wht_prev.gif b/doc/salome/gui/SMESH/wht_prev.gif
new file mode 100755 (executable)
index 0000000..b7eaba8
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_prev.gif differ
diff --git a/doc/salome/gui/SMESH/wht_prev_g.gif b/doc/salome/gui/SMESH/wht_prev_g.gif
new file mode 100755 (executable)
index 0000000..8647909
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_prev_g.gif differ
diff --git a/doc/salome/gui/SMESH/wht_spac.gif b/doc/salome/gui/SMESH/wht_spac.gif
new file mode 100755 (executable)
index 0000000..fc25609
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_spac.gif differ
diff --git a/doc/salome/gui/SMESH/wht_sync.gif b/doc/salome/gui/SMESH/wht_sync.gif
new file mode 100755 (executable)
index 0000000..0ef1747
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_sync.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab0.gif b/doc/salome/gui/SMESH/wht_tab0.gif
new file mode 100755 (executable)
index 0000000..955c42f
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab0.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab1.gif b/doc/salome/gui/SMESH/wht_tab1.gif
new file mode 100755 (executable)
index 0000000..b3ec41d
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab1.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab2.gif b/doc/salome/gui/SMESH/wht_tab2.gif
new file mode 100755 (executable)
index 0000000..08fb0ce
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab2.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab3.gif b/doc/salome/gui/SMESH/wht_tab3.gif
new file mode 100755 (executable)
index 0000000..1819c8e
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab3.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab4.gif b/doc/salome/gui/SMESH/wht_tab4.gif
new file mode 100755 (executable)
index 0000000..1a6fc4f
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab4.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab5.gif b/doc/salome/gui/SMESH/wht_tab5.gif
new file mode 100755 (executable)
index 0000000..9340192
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab5.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab6.gif b/doc/salome/gui/SMESH/wht_tab6.gif
new file mode 100755 (executable)
index 0000000..fe312d2
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab6.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab7.gif b/doc/salome/gui/SMESH/wht_tab7.gif
new file mode 100755 (executable)
index 0000000..3b95ae2
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab7.gif differ
diff --git a/doc/salome/gui/SMESH/wht_tab8.gif b/doc/salome/gui/SMESH/wht_tab8.gif
new file mode 100755 (executable)
index 0000000..c80acc8
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_tab8.gif differ
diff --git a/doc/salome/gui/SMESH/wht_toc1.gif b/doc/salome/gui/SMESH/wht_toc1.gif
new file mode 100755 (executable)
index 0000000..515c352
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_toc1.gif differ
diff --git a/doc/salome/gui/SMESH/wht_toc2.gif b/doc/salome/gui/SMESH/wht_toc2.gif
new file mode 100755 (executable)
index 0000000..2e3d6c8
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_toc2.gif differ
diff --git a/doc/salome/gui/SMESH/wht_toc3.gif b/doc/salome/gui/SMESH/wht_toc3.gif
new file mode 100755 (executable)
index 0000000..330f369
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_toc3.gif differ
diff --git a/doc/salome/gui/SMESH/wht_toc4.gif b/doc/salome/gui/SMESH/wht_toc4.gif
new file mode 100755 (executable)
index 0000000..3f9a036
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_toc4.gif differ
diff --git a/doc/salome/gui/SMESH/wht_toc_h.gif b/doc/salome/gui/SMESH/wht_toc_h.gif
new file mode 100755 (executable)
index 0000000..fe20f68
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_toc_h.gif differ
diff --git a/doc/salome/gui/SMESH/wht_toc_n.gif b/doc/salome/gui/SMESH/wht_toc_n.gif
new file mode 100755 (executable)
index 0000000..ce28310
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_toc_n.gif differ
diff --git a/doc/salome/gui/SMESH/wht_ws.gif b/doc/salome/gui/SMESH/wht_ws.gif
new file mode 100755 (executable)
index 0000000..563db8b
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_ws.gif differ
diff --git a/doc/salome/gui/SMESH/wht_ws_g.gif b/doc/salome/gui/SMESH/wht_ws_g.gif
new file mode 100755 (executable)
index 0000000..3056b75
Binary files /dev/null and b/doc/salome/gui/SMESH/wht_ws_g.gif differ
diff --git a/doc/salome/gui/SMESH/whtbar.js b/doc/salome/gui/SMESH/whtbar.js
new file mode 100755 (executable)
index 0000000..a183c98
--- /dev/null
@@ -0,0 +1,1990 @@
+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+=".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=no 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)\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+"Normal";\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 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 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 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=no align=\"absmiddle\"></a></td>";\r
+               gaTypes[nBtn]="banner";\r
+       }\r
+}\r
+\r
+function showBanner()\r
+{\r
+       if (!gbPreview)\r
+       {\r
+               var nWidth=360;\r
+               var nHeight=240;\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))\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)\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
+       }\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
+       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
+       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
+       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
diff --git a/doc/salome/gui/SMESH/whtdhtml.htm b/doc/salome/gui/SMESH/whtdhtml.htm
new file mode 100755 (executable)
index 0000000..00ca4e3
--- /dev/null
@@ -0,0 +1,49 @@
+<html>\r
+<head>\r
+<title>Table of contents</title>\r
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\r
+<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">\r
+<meta name "description" content="WebHelp 2002">\r
+<base target="bsscright">\r
+</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>
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whthost.js b/doc/salome/gui/SMESH/whthost.js
new file mode 100755 (executable)
index 0000000..80806d7
--- /dev/null
@@ -0,0 +1,1372 @@
+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 gbLoadToc=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
+\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
+       }\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
+               }\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
+\r
+function cancelLoading(nIdx)\r
+{\r
+       var oObj=getElement(getCBId(nIdx));\r
+       if(oObj)\r
+       {\r
+               oObj.innerHTML="";\r
+               setHSUnLoad(nIdx)\r
+               ExpandIt(nIdx);\r
+       }\r
+}\r
+\r
+function cancelAll()\r
+{\r
+       var eLoadingDivs=getElement(gsLoadingDivID);\r
+       if(eLoadingDivs)\r
+               cancelHSLoading(eLoadingDivs);\r
+}\r
+\r
+function cancelHSLoading(eLoadingDiv)\r
+{\r
+       var eParent=eLoadingDiv.parentElement;\r
+       if(eParent){\r
+               var sId=eParent.id;\r
+               sId=sId.substring(5);\r
+               var nIdx=parseInt(sId);\r
+               if(!isNaN(nIdx))\r
+                       cancelLoading(nIdx)\r
+       }\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 writeBook(nIdx,bLocal)\r
+{\r
+       var sIcon=getBookImage(nIdx,true);\r
+       var sName=_textToHtml(getItemName(nIdx));\r
+       sIcon=_textToHtml_nonbsp(sIcon);\r
+       \r
+       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=parent>";\r
+       sHTML+="<p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";\r
+\r
+       if(getItemType(nIdx)==1)\r
+               sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);\r
+       else\r
+               sHTML+="tocExpandHelpSet("+nIdx+","+bLocal;\r
+       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";\r
+       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));\r
+       if(sURL!="")\r
+               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);\r
+       sHTML+="&nbsp;"+sName+"</a></nobr></p></div><div id=\""+getCBId(nIdx)+"\" class=child></div>";\r
+       return sHTML;\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=getInnerText(obj).substring(1);\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=getInnerText(objs[i]);\r
+                                       \r
+                                       if(sText.length!=0)\r
+                                       {\r
+                                               sPath=sText.substring(1)+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){\r
+                               sHTML+=writeBook(i);    \r
+                               nCIdx+=getItemContentsNum(i);           \r
+                       }\r
+                       else if(nItemType==2||nItemType==16){\r
+                               sHTML+=writeAnItem(i);\r
+                       }else if(nItemType==4){\r
+                               sHTML+=writeBook(i,false);\r
+                       }else if(nItemType==8){\r
+                               sHTML+=writeBook(i,true);\r
+                       }\r
+               }\r
+               while(nCIdx<num);\r
+       }\r
+       return sHTML;\r
+}\r
+\r
+function tocExpandHelpSet(nIdx,bLocal)\r
+{\r
+       checkBookItem(nIdx);\r
+       cancelAll();\r
+       if(isHSLoad(nIdx))\r
+               ExpandIt(nIdx);\r
+       else{\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
+                               goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);\r
+                               sSrc=gaRoot[nProj].sToc;\r
+                       }\r
+                       else\r
+                               goChunk=null;\r
+               }\r
+               if(goChunk)\r
+               {\r
+                       PrepareLoading(nIdx);\r
+                       ExpandIt(nIdx);\r
+                       gbLoadToc=false;\r
+                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);\r
+               }\r
+       }\r
+}\r
+\r
+function getProject(sSrc)\r
+{\r
+       for(var i=0;i<gaProj.length;i++)\r
+       {\r
+               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))\r
+               {\r
+                       return i;\r
+               }\r
+       }\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(getCBId(gnInsIdx));\r
+               if(oObj)\r
+                       oObj.innerHTML=writeLoadingDiv(nIdx);\r
+       }\r
+}\r
+\r
+function writeLoadingDiv(nIdx)\r
+{\r
+       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"cancelLoading("+nIdx+");\" 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+=".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
+                       {\r
+                               for(var j=0;j<tempNobr.length;j++)\r
+                                       anobr[anobr.length]=tempNobr[j];\r
+                       }\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
+                       {\r
+                               for(var u=0;u<tempAnchor.length;u++)\r
+                                       aAnchor[aAnchor.length]=tempAnchor[u];\r
+                       }\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
+       {\r
+               aAnchor[aAnchor.length]=aTAnchor[i];\r
+       }\r
+       var tempBook=getChildrenByTag(obj,"DIV");\r
+       if(tempBook&&tempBook.length>0)\r
+       {\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
+                       {\r
+                               aAnchor[aAnchor.length]=aTAnchorDiv[s];\r
+                       }\r
+               }\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
+       if(gbIE4||gbNav6){\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
+\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 nCandidate=-1;\r
+       for(var i=0;i<gaTocs.length;i++){\r
+               if(gaTocs[i].nMI<=n){\r
+                       nCandidate=i;\r
+               }\r
+               else\r
+                       break;\r
+       }\r
+       if(nCandidate!=-1&&gaTocs[nCandidate].nMI!=-1)\r
+               return nCandidate;\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 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=getInnerText(aTagAs[s]);\r
+                       if(sText.length>0)\r
+                               sText=sText.substring(1);\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=getInnerText(aChildren[i]);\r
+               if(sText.substring(1)!=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(5,sPId.length-6));\r
+}\r
+\r
+function getIdByCBId(sCId)\r
+{\r
+       return parseInt(sCId.substring(5,sCId.length-5));\r
+}\r
+\r
+function isPBId(sId)\r
+{\r
+       return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Parent")==sId.length-6);\r
+}\r
+\r
+function isCBId(sId)\r
+{\r
+       return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Child")==sId.length-5);\r
+}\r
+\r
+function getBId(nIdx)\r
+{\r
+       return "Book_"+nIdx;\r
+}\r
+\r
+function getPBId(nIdx)\r
+{\r
+       return getBId(nIdx)+"Parent";\r
+}\r
+\r
+function getCBId(nIdx)\r
+{\r
+       return getBId(nIdx)+"Child";\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
+       {\r
+               sPath=aPaths[nThatIndex];\r
+       }\r
+       else\r
+       {\r
+               sPath=aPaths[0];\r
+       }\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
+       {\r
+               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))\r
+               {\r
+                       for(var j=0;j<aRelTocPaths.length;j++)\r
+                       {\r
+                               aPaths[j]=gaRoot[i].sRPath+aRelTocPaths[j];\r
+                               aPaths[j]=aPaths[j].substring(1);\r
+                       }\r
+                       break;\r
+               }\r
+       }\r
+       return aPaths;\r
+}\r
+\r
+function syncInit()\r
+{\r
+       if(gsTP)\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
+                                       {\r
+                                               ExpandIt2(aIdList[i],true);\r
+                                       }\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(!gbReady)\r
+       {\r
+               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);\r
+               if(SendMessage(oResMsg)&&oResMsg.oParam)\r
+               {\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
+       {\r
+               for(var i=gnLT+1;i<gaProj.length;i++)\r
+               {\r
+                       if(gaProj[i].sToc!=null&&gaProj[i].sToc!="")\r
+                       {\r
+                               gbLoadToc=true;\r
+                               gnLT=i;\r
+                               setTimeout("loadTocInfo()",1);\r
+                               return true;\r
+                       }\r
+               }\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
+               gaRoot[gnLT].sRPath=gsPathSplit;\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
+               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);\r
+               gbLoadToc=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
+       {\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
+                       {\r
+                               if(isSamePath(sFullPath,gaProj[j].sPPath))\r
+                               {\r
+                                       if(gaRoot.length<=j||!gaRoot[j])\r
+                                               gaRoot[j]=new Object();\r
+                                       if(!gaRoot[j].sRPath)\r
+                                       {\r
+                                               if(gaRoot[n].sRPath)\r
+                                                       gaRoot[j].sRPath=gaRoot[n].sRPath+aProj[i].sRPath;\r
+                                               else\r
+                                                       gaRoot[j].sRPath=aProj[i].sRPath;\r
+                                       }\r
+                                       break;\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+}\r
+\r
+function putDataXML(xmlDoc,sDocPath)\r
+{\r
+       if(gbLoadToc)\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
+                                       aRProj[i].sPPath=rmtProject[i].getAttribute("url");\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
+                               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
+                                       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
+       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(getCBId(gnInsIdx));\r
+                       if(oObj)\r
+                       {\r
+                               oObj.innerHTML=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
+}\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
+       document.location.reload();\r
+\r
diff --git a/doc/salome/gui/SMESH/whtopic.js b/doc/salome/gui/SMESH/whtopic.js
new file mode 100755 (executable)
index 0000000..3adaa25
--- /dev/null
@@ -0,0 +1,662 @@
+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=no>";\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())\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())\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
+               \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
+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
+                       whtopic_foldUnload = window.onunload;\r
+       }\r
+       else\r
+       {\r
+               if (window.onunload)\r
+                       whtopic_foldUnload = window.onunload;\r
+       }\r
+       window.onunload = unRegisterListener;\r
+       setButtonFont("show","","10pt","","","","");\r
+\r
+       gbWhTopic=true;\r
+}\r
+else\r
+       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whutils.js b/doc/salome/gui/SMESH/whutils.js
new file mode 100755 (executable)
index 0000000..7fa6c28
--- /dev/null
@@ -0,0 +1,463 @@
+var gsFileName="";\r
+var xmlDoc=null;\r
+var sdocPath=null;\r
+var gsInsertBeforeEndHTML="";\r
+var sReplaceStringsSrc=new Array();\r
+sReplaceStringsSrc[0]="&amp;";\r
+sReplaceStringsSrc[1]="&gt;";\r
+sReplaceStringsSrc[2]="&lt;";\r
+sReplaceStringsSrc[3]="&quot;";\r
+sReplaceStringsSrc[4]="&nbsp;";\r
+var sReplaceStringsDst=new Array();\r
+sReplaceStringsDst[0]="&";\r
+sReplaceStringsDst[1]=">";\r
+sReplaceStringsDst[2]="<";\r
+sReplaceStringsDst[3]="\"";\r
+sReplaceStringsDst[4]=" ";\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);\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
+       if(!getElement("dataDiv"))\r
+       {\r
+               if(!insertDataDiv())\r
+               {\r
+                       gsFileName=sFileName;\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("dataDiv");\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
+                               alert(err.reason);\r
+                       else\r
+                               putDataXML(xmlDoc,sdocPath);\r
+               }\r
+       }\r
+}\r
+\r
+function insertDataDiv()\r
+{\r
+       var sHTML="";\r
+       if(gbMac)\r
+               sHTML+="<div id=dataDiv style=\"display:none;\"></div>";\r
+       else\r
+               sHTML+="<div id=dataDiv 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(gsFileName);\r
+       }\r
+       else\r
+       {\r
+               setTimeout("insertWhenBodyReady();",100);\r
+       }\r
+}\r
+\r
+function window_BUnload()\r
+{\r
+       var oDivCon=getElement("dataDiv");\r
+       if(oDivCon)\r
+               oDivCon.innerHTML="";\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
+               obj.style.backgroundColor=sHighLightColor;\r
+               goHighLighted=obj;\r
+       }\r
+}\r
+\r
+function resetHighLight(sNormalColor)\r
+{\r
+       if(goHighLighted!=null)\r
+       {\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
+var gbWhUtil=true;
\ No newline at end of file
diff --git a/doc/salome/gui/SMESH/whver.js b/doc/salome/gui/SMESH/whver.js
new file mode 100755 (executable)
index 0000000..50a8e40
--- /dev/null
@@ -0,0 +1,54 @@
+var gbNav6=false;\r
+var gbNav61=false;\r
+var gbNav4=false;\r
+var gbIE4=false;\r
+var gbIE=false;\r
+var gbIE5=false;\r
+var gbIE55=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
+\r
+var gVersion=navigator.appVersion.toLowerCase();\r
+\r
+var gnVerMajor=parseInt(gVersion);\r
+var gnVerMinor=parseFloat(gVersion);\r
+\r
+gbIE=(navigator.appName.indexOf("Microsoft")!=-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
+       document.gnPageWidth=innerWidth;\r
+       document.gnPageHeight=innerHeight;\r
+       var nPos=gAgent.indexOf("netscape");\r
+       if(nPos!=-1)\r
+       {\r
+               var nVersion=parseFloat(gAgent.substring(nPos+10));\r
+               if(nVersion>=6.1)\r
+                       gbNav61=true;\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
+                       gbIE5=true;\r
+               if(nVersion>=5.5)\r
+                       gbIE55=true;\r
+       }\r
+}\r
+\r
+var gbWhVer=true;
\ No newline at end of file
diff --git a/doc/salome/tui/Makefile.in b/doc/salome/tui/Makefile.in
new file mode 100644 (file)
index 0000000..8d8b65d
--- /dev/null
@@ -0,0 +1,43 @@
+#  Copyright (C) 2003  CEA/DEN, EDF R&D
+#
+#
+#
+#  File   : Makefile.in
+#  Author : Vasily Rusyaev (Open Cascade NN)
+#  Module : doc
+#  $Header: 
+
+top_srcdir=@top_srcdir@
+top_builddir=../../..
+root_srcdir=@ROOT_SRCDIR@
+srcdir=@srcdir@
+VPATH=.:@srcdir@
+doxygen=@DOXYGEN@
+
+@COMMENCE@
+
+docs:
+       cp -fr $(srcdir)/SMESH ./INPUT; \
+       cd INPUT; \
+       sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
+       mv -f doxyfile1 doxyfile; \
+       $(doxygen) ./doxyfile; \
+       cd ..; \
+       cp -fr $(srcdir)/SMESH/sources/static/*.* ./SMESH/
+       cp -fr $(srcdir)/SMESH/sources/ SMESH/
+       cp -fr $(srcdir)/SMESH/HTML/ SMESH/
+       rm -fr INPUT
+
+clean:
+       rm -fr SMESH
+
+distclean: clean
+       rm -fr INPUT
+
+install:
+       $(INSTALL) -d $(docdir); \
+       mkdir -p $(docdir)/tui
+       cp -fr SMESH $(docdir)/tui
+
+uninstall:
+       rm -fr $(docdir)/tui/SMESH
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html b/doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html
new file mode 100644 (file)
index 0000000..8a92d45
--- /dev/null
@@ -0,0 +1,98 @@
+<HTML><b>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_LocalLength</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void SetLength ( in double length )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>SetLength ( length )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>double  GetLength (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLength (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_NumberOfSegments</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void SetNumberOfSegments ( in long segmentsNumber )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>SetNumberOfSegments ( segmentsNumber )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetNumberOfSegments (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfSegments (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MaxElementArea</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void SetMaxElementArea ( in double area )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>SetMaxElementArea ( area )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>double  GetMaxElementArea (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMaxElementArea (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MaxElementVolume</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void SetMaxElementVolume ( in double volume )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>SetMaxElementVolume ( volume )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>double  GetMaxElementVolume (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMaxElementVolume (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Regular_1D</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MEFISTO_2D</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Quadrangle_2D</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Hexa_3D</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+</b></HTML>
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Gen.html b/doc/salome/tui/SMESH/HTML/SMESH_Gen.html
new file mode 100644 (file)
index 0000000..03b96ab
--- /dev/null
@@ -0,0 +1,30 @@
+<HTML><b>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Gen</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Hypothesis  CreateHypothesis ( in string anHyp, in long studyId )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = CreateHypothesis ( anHyp, studyId )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh  Init ( in GEOM_Gen geomEngine, in long studyId, in GEOM_Shape aShape )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = Init ( geomEngine, studyId, aShape )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  Compute ( in SMESH_Mesh aMesh, in GEOM_Shape aSubShape )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = Compute ( aMesh, aSubShape )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  IsReadyToCompute ( in SMESH_Mesh aMesh, in GEOM_Shape aSubShape )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = IsReadyToCompute ( aMesh, aSubShape )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetSubShapesId ( in GEOM_Gen geomEngine, in long studyId, in GEOM_Shape mainShape, in shape_array listOfSubShape )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetSubShapesId ( geomEngine, studyId, mainShape, listOfSubShape )</b></div></td>
+</tr>
+</table><br>
+</b></HTML>
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html b/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html
new file mode 100644 (file)
index 0000000..8ffb0b9
--- /dev/null
@@ -0,0 +1,54 @@
+<HTML><b>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Hypothesis</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>string  GetName (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetName (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetId (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Algo</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>ListOfHypothesisName  GetCompatibleHypothesis (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetCompatibleHypothesis (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_1D_Algo</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_2D_Algo</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_3D_Algo</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+</table><br>
+</b></HTML>
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html b/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html
new file mode 100644 (file)
index 0000000..b6a66cf
--- /dev/null
@@ -0,0 +1,166 @@
+<HTML><b>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_Mesh</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>SMESH_subMesh  GetElementsOnShape ( in GEOM_Shape aSubShape )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetElementsOnShape ( aSubShape )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddHypothesis ( in GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddHypothesis ( aSubShape, anHyp )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  RemoveHypothesis ( in GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveHypothesis ( aSubShape, anHyp )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>ListOfHypothesis  GetHypothesisList ( in GEOM_Shape aSubShape )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetHypothesisList ( aSubShape )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>log_array  GetLog ( in boolean clearAfterGet )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetLog ( clearAfterGet )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void ClearLog (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>ClearLog (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetId (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetStudyId (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetStudyId (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>SMESH_MeshEditor  GetMeshEditor (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMeshEditor (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void ExportDAT ( in string file )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>ExportDAT ( file )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void ExportMED ( in string file )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>ExportMED ( file )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>void ExportUNV ( in string file )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>ExportUNV ( file )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>MESH  GetMEDMesh (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetMEDMesh (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbNodes (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbNodes (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbEdges (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbEdges (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbFaces (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbFaces (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbTriangles (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbTriangles (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbQuadrangles (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbQuadrangles (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbVolumes (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbVolumes (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbTetras (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbTetras (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbHexas (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbHexas (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  NbSubMesh (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = NbSubMesh (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_subMesh</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetNumberOfElements (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfElements (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetNumberOfNodes (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNumberOfNodes (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetElementsId (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetElementsId (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long_array  GetNodesId (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetNodesId (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>SMESH_Mesh  GetFather (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetFather (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>long  GetId (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetId (  )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>FAMILY  GetFamily (  )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = GetFamily (  )</b></div></td>
+</tr>
+</table><br>
+<table width="100%" BORDER>
+<tr bgcolor="#FFFFCC">
+<td colspan="11"><font size="+3"><b><div align="center"><i>interface SMESH_MeshEditor</i></div></b></font></td>
+</tr>
+<td width="50%" bgcolor= "lightgreen" ><font size="+2"><div align="center"><b><i>IDL file</i></b></div></font></td>
+<td width="50%" bgcolor= "lightgreen"><font size="+2"><div align="center"><b><i>Python</i></b></div></font></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  RemoveElements ( in long_array IDsOfElements )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveElements ( IDsOfElements )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  RemoveNodes ( in long_array IDsOfNodes )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = RemoveNodes ( IDsOfNodes )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddNode ( in double x, in double y, in double z )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddNode ( x, y, z )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddEdge ( in long_array IDsOfNodes )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddEdge ( IDsOfNodes )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddFace ( in long_array IDsOfNodes )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddFace ( IDsOfNodes )</b></div></td>
+</tr>
+<tr>
+<td bgcolor= "lightgreen"><div align="center"><b>boolean  AddVolume ( in long_array IDsOfNodes )</b></div></td>
+<td bgcolor= "lightgreen"><div align="center"><b>return_value = AddVolume ( IDsOfNodes )</b></div></td>
+</tr>
+</table><br>
+</b></HTML>
diff --git a/doc/salome/tui/SMESH/doxyfile b/doc/salome/tui/SMESH/doxyfile
new file mode 100755 (executable)
index 0000000..a4c5be4
--- /dev/null
@@ -0,0 +1,203 @@
+# Doxyfile 1.3-rc1
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "SALOME - SMESH - v.2.0.0"
+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/sources/Application-About.png b/doc/salome/tui/SMESH/sources/Application-About.png
new file mode 100755 (executable)
index 0000000..7b58330
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/Application-About.png differ
diff --git a/doc/salome/tui/SMESH/sources/Application-About1.jpg b/doc/salome/tui/SMESH/sources/Application-About1.jpg
new file mode 100755 (executable)
index 0000000..cf7ab8b
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/Application-About1.jpg differ
diff --git a/doc/salome/tui/SMESH/sources/application.gif b/doc/salome/tui/SMESH/sources/application.gif
new file mode 100644 (file)
index 0000000..0b05d5c
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/application.gif differ
diff --git a/doc/salome/tui/SMESH/sources/application.jpg b/doc/salome/tui/SMESH/sources/application.jpg
new file mode 100755 (executable)
index 0000000..a6979ab
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/application.jpg differ
diff --git a/doc/salome/tui/SMESH/sources/bg_salome.gif b/doc/salome/tui/SMESH/sources/bg_salome.gif
new file mode 100755 (executable)
index 0000000..677b704
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/bg_salome.gif differ
diff --git a/doc/salome/tui/SMESH/sources/logocorp.gif b/doc/salome/tui/SMESH/sources/logocorp.gif
new file mode 100755 (executable)
index 0000000..7697e08
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/logocorp.gif differ
diff --git a/doc/salome/tui/SMESH/sources/myheader.html b/doc/salome/tui/SMESH/sources/myheader.html
new file mode 100755 (executable)
index 0000000..83ca543
--- /dev/null
@@ -0,0 +1,24 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</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>
diff --git a/doc/salome/tui/SMESH/sources/occ.gif b/doc/salome/tui/SMESH/sources/occ.gif
new file mode 100755 (executable)
index 0000000..ce017c8
Binary files /dev/null and b/doc/salome/tui/SMESH/sources/occ.gif differ
diff --git a/doc/salome/tui/SMESH/sources/static/PluginMeshers.html b/doc/salome/tui/SMESH/sources/static/PluginMeshers.html
new file mode 100755 (executable)
index 0000000..f860aef
--- /dev/null
@@ -0,0 +1,344 @@
+<!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.79 [en] (X11; U; SunOS 5.6 sun4u) [Netscape]">
+  <title>Main Page</title>
+     
+  <link href="doxygen.css" rel="stylesheet" type="text/css">
+</head>
+  <body>
+ &nbsp; 
+<center>
+<table width="96%">
+ <tbody>
+    <tr>
+ <td> 
+      <h1> <a href="http://www.opencascade.com"><img
+ src="sources/logocorp.gif" border="0" height="46" width="122"
+ align="left">
+      </a></h1>
+ </td>
+  <td> 
+      <div align="right"><a href="http://www.opencascade.org/SALOME/"><img
+ src="sources/application.gif" border="0" height="46" width="108"
+ align="right">
+      </a></div>
+ </td>
+ </tr>
+  </tbody>
+</table>
+</center>
+  
+<center> 
+<h1> <a name="page2"></a>How to add your own mesher</h1>
+</center>
+  
+<center> 
+<h1> (as a set of hypotheses and algorithms)</h1>
+</center>
+  
+<center> 
+<h1> to the application.</h1>
+</center>
+  
+<h2> <a name="cont"></a>Table of contents</h2>
+  
+<ul>
+ <li> <b><i><a href="#1">1. Introduction</a></i></b></li>
+  <li> <b><i><a href="#2">2. Implementation steps</a></i></b></li>
+  
+  <ul>
+ <li> <b><i><a href="#2_1">2.1. Mesher plugin package</a></i></b></li>
+    <li>     <b><i><a href="#2_2">2.2. List of available hypotheses and algorithms</a></i></b></li>
+  <li> <b><i><a href="#2_3">2.3. Build server plugin library</a></i></b></li>
+  
+    <ul>
+ <li> <b><i><a href="#2_3_1">2.3.1. Define interface to your hypotheses and
+algorithms</a></i></b></li>
+  <li> <b><i><a href="#2_3_2">2.3.2. Implement functionality of your hypotheses 
+and algorithms</a></i></b></li>
+  <li> <b><i><a href="#2_3_3">2.3.3. Implement interface to your hypotheses
+and algorithms</a></i></b></li>
+  <li> <b><i><a href="#2_3_4">2.3.4. Implement being exported method</a></i></b></li>
+    </ul>
+  <li> <b><i><a href="#2_4">2.4. Build client (GUI) plugin library</a></i></b></li>
+  
+    <ul>
+ <li> <b><i><a href="#2_4_1">2.4.1. Implement the required GUI</a></i></b></li>
+  <li> <b><i><a href="#2_4_2">2.4.2. Provide icons and messages for your
+GUI</a></i></b></li>
+  <li> <b><i><a href="#2_4_3">2.4.3. Implement your hypotheses creator and
+being exported method</a></i></b></li>
+    </ul>
+  <li> <b><i><a href="#2_5">2.5. Provide icons for Object Browser</a></i></b></li>
+    <li> <b><i><a href="#2_6">2.6. Setup SALOME environment</a></i></b></li>
+    <ul type="square">
+      <li><b><i><a href="#2_6_1">2.6.1. Set LD_LIBRARY_PATH, PYTHONPATH,
+PATH environment variables</a></i></b></li>
+      <li><b><i><a href="#2_6_2">2.6.2. Set mesher plugin resources environment
+variable</a><br>
+        </i></b></li>
+    </ul>
+  </ul>
+</ul>
+  
+<h2> <a name="1"></a>1. Introduction</h2>
+ All hypotheses and algorithms are available in SMESH module via plugin mechanism.
+Such approach allows easily to introduce new hypotheses and algorithms types
+to the application. Also, it makes possible the customization of available
+hypotheses and algorithms list for different users without recompilation
+of sources.<br>
+The goal of this document is to describe the process of creation external
+mesher plugins. 
+<p><i><a href="#cont">Back to the contents</a></i> </p>
+<h2> <a name="2"></a>2. Implementation steps</h2>
+  
+<h3> 
+<h3> <a name="2_1"></a>2.1. <small>Mesher plugin package</small></h3>
+</h3>
+Create your mesher plugin package which will contain the sources files, e.g.
+&nbsp;MyMesherPlugin.<br>
+<br>
+<i><a
+ href="file:///home/vsr-local/work/SALOME/SALOME2/SMESH_SRC/doc/salome/tui/SMESH/sources/static/PluginMeshers.html#cont">Back
+to the contents</a></i><br>
+<h3><a name="2_2"></a>2.2. List of available hypotheses and algorithms</h3>
+Create XML file to describe all algorithms and hypotheses, provided by your
+plugin package (see SMESH_SRC/resources/SMESH_Meshers.xml for example).<br>
+<blockquote><small><tt><big>&lt;meshers-group name="MyName"<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;resources="MyResourceKey"<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+server-lib="libMyServerLib.so"<br>
+&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gui-lib="libMyClientLib.so"&gt;<br>
+&nbsp; &nbsp; &nbsp;&lt;hypotheses&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;hypothesis type="MyHypType1"<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; label-id="My beautiful hypothesis name"<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp; icon-id="my_hypo_1_icon.png"/&gt;<br>
+&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &lt;/hypotheses&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp; &lt;algorithms&gt;<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;algorithm type="MyAlgType1"<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; &nbsp;label-id="My beautiful algorithm name"<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; icon-id="my_algo_1_icon.png"/&gt;<br>
+&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &lt;/algorithms&gt;<br>
+&lt;/meshers-group&gt;<br>
+  </big></tt></small><br>
+  <ul>
+    <li>Attributes of &lt;meshers-group&gt; tag:</li>
+  </ul>
+  <blockquote>
+    <ul type="circle">
+      <li>value of &lt;name&gt; attribute is used to collect hypotheses/algoritms
+in groups; you can also use this attribute for short description of your
+mesher plugin.</li>
+      <li>value of &lt;resources&gt; attribute (MyResourceKey) is used to
+access resources (messages and icons) from GUI (see paragraphs <a
+ href="#2_4_2">2.4.2</a> and <a href="#2_5">2.5</a>); in the current implementation
+it should coincide with the name of plugin package; this limitation will
+be eliminated in the further development.</li>
+      <li>value of &lt;server-lib&gt; attribute describes the name of your
+mesher's server plugin library (See paragraph <a href="#2_3">2.3</a>)</li>
+      <li>value of &lt;gui-lib&gt; attribute describes the name of your mesher's
+client plugin library (See paragraph <a href="#2_4">2.4</a>)</li>
+    </ul>
+  </blockquote>
+  <ul>
+    <li>Attributes of &lt;hypothesis/algorithm&gt; tag:</li>
+  </ul>
+  <blockquote>
+    <ul type="circle">
+      <li>value of &lt;type&gt; attribute is an unique name of the hypothesis/algorithm</li>
+    </ul>
+    <ul type="circle">
+      <ul type="square">
+        <li>It is a value of _name field of your hypothesis class (see paragraph
+          <a href="#2_3">2.3</a>, implementation of constructor of StdMeshers_LocalLength
+class: _name = "LocalLength")</li>
+        <li>It is a key to each certain hypothesis class (see paragraph <a
+ href="#2_3">2.3</a>, implementation of "GetHypothesisCreator()" method in
+StdMeshers_i.cxx)</li>
+        <li>It is a key to each certain hypothesis GUI (see paragraph <a
+ href="#2_4">2.4</a>, implementation of "StdMeshersGUI_HypothesisCreator::CreateHypothesis()"
+and "StdMeshersGUI_HypothesisCreator::EditHypothesis()" methods in StdMeshersGUI.cxx)</li>
+        <li>It is a key to each certain hypothesis icon in Object Browser
+(see paragraph <a href="#2_4_2_1">2.4.2.1</a>)</li>
+      </ul>
+    </ul>
+  </blockquote>
+  <blockquote>
+    <ul type="circle">
+      <li>value of &lt;label-id&gt; attribute is displayed in the GUI in
+the list of available hypotheses/algorithms ("Create Hypothesis/Algorithm"
+dialog)</li>
+      <li>value of &lt;icon-id&gt; attribute is a name of icon file, which
+is displayed in GUI in the list of available hypotheses/algorithms ("Create
+Hypothesis/Algorithm" dialog)</li>
+    </ul>
+  </blockquote>
+Note: All attributes values are accessible in your GUI via HypothesisData
+class (see paragraph <a href="#2_4_1">2.4.1</a>)<br>
+  <br>
+Note: The environment variable SMESH_MeshersList contains the list of plugins
+names, separated by colon (":") symbol, e.g.:<br>
+  <br>
+  <tt>&nbsp;&nbsp;&nbsp; setenv SMESH_MeshersList StdMeshers:NETGENPlugin</tt><br>
+  <br>
+Please, pay attention that StdMeshers should also be included into this environment
+variable, if you want to use standard hypotheses/algorithms, provided with
+SMESH module.<br>
+  <br>
+The SALOME automatically locates XML files, searching them in the following
+directories:<br>
+  <tt><br>
+&nbsp;&nbsp;&nbsp; ${&lt;PLUGINNAME&gt;_ROOT_DIR}/share/salome/resources<br>
+&nbsp;&nbsp;&nbsp; ${SALOME_&lt;PluginName&gt;Resources}<br>
+&nbsp;&nbsp;&nbsp; ${HOME}/.salome/resources<br>
+&nbsp;&nbsp;&nbsp; ${KERNEL_ROOT_DIR}/share/salome/resources</tt><br>
+  <br>
+where &lt;PluginName&gt; is a name of each mesher plugin package<br>
+</blockquote>
+<i><a href="#cont">Back to the contents</a></i> 
+<h3> <a name="2_3"></a>2.3. Build server plugin library &lt;libMyServerLib.so&gt;.</h3>
+  
+<h4> <a name="2_3_1"></a>2.3.1. Define interface to your hypotheses and algorithms.</h4>
+  
+<blockquote><tt>Example: SMESH_SRC/idl/SMESH_BasicHypothesis.idl<br>
+&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_Algorithm.idl<br>
+  </tt><tt></tt></blockquote>
+  
+<h4> <a name="2_3_2"></a>2.3.2. Implement functionality of your hypotheses
+and algorithms.</h4>
+  
+<blockquote>Inherit corresponding classes from SMESH. 
+  <p><tt>Example: SMESH_SRC/src/StdMeshers/StdMeshers_*<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D<br>
+  </tt><tt></tt></p>
+</blockquote>
+  
+<h4> <a name="2_3_3"></a>2.3.3.Implement interface to your hypotheses and
+algorithms.</h4>
+  
+<blockquote><tt>Inherit corresponding classes from SMESH_I.</tt> 
+  <p><tt>Example: SMESH_SRC/src/StdMeshers_I/SMESH_*_i<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D_i<br>
+  </tt><tt></tt></p>
+</blockquote>
+  
+<h4> <a name="2_3_4"></a>2.3.4. Implement being exported method.</h4>
+  
+<blockquote><tt>GenericHypothesisCreator_i* GetHypothesisCreator (const char*
+aHypType)</tt> 
+  <p>&lt;aHypType&gt; is a value of &lt;type&gt; attribute in the XML-description
+file</p>
+</blockquote>
+  
+<blockquote><tt>Example: SMESH_SRC/src/StdMeshers_I/StdMeshers_i.cxx<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_i.cxx<br>
+  </tt><tt></tt></blockquote>
+ <i><a href="#cont">Back to the contents</a></i> 
+<h3> <a name="2_4"></a>2.4. Build client (GUI) plugin library &lt;libMyClientLib.so&gt;.</h3>
+  
+<blockquote>This step is required only if your hypotheses/algorithms need 
+specific GUI for their construction.</blockquote>
+  
+<h4> <a name="2_4_1"></a>2.4.1. Implement the required GUI (e.g. construction
+dialog boxes).</h4>
+  
+<blockquote><tt>Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI_*Dlg</tt> 
+  <p>Note: all data from XML-description files is accessible in your GUI
+via HypothesisData class&nbsp; (mySMESHGUI-&gt;GetHypothesisData (aHypType),
+see SMESHGUI_Hypotheses.h for HypothesisData definition)</p>
+</blockquote>
+  
+<h4> <a name="2_4_2"></a>2.4.2. Provide icons and messages for your GUI.</h4>
+  
+<h5> <a name="2_4_2_1"></a>2.4.2.1. Implement resource files</h5>
+  
+<blockquote><tt>MyResourceKey_icons.po and MyResourceKey_msg_en.po</tt> 
+  <p><tt>Example: SMESH_SRC/src/StdMeshersGUI/StdMeshers_*.po<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NETGENPLUGIN_SRC/src/NETGENPlugin_icons.po<br>
+  </tt><br>
+Note: ICON_SMESH_TREE_HYPO_MyHypType1 is ID of icon for Object Browser for
+hypothesis with type="MyHypType1"; ICON_SMESH_TREE_ALGO_MyAlgType1 is ID
+of icon for Object Browser for algorithm with type="MyAlgType1".<br>
+See paragraph 2 for definition of MyResourceKey, MyHypType1, MyAlgType1.<tt><br>
+  </tt></p>
+</blockquote>
+  
+<h5> <a name="2_4_2_2"></a>2.4.2.2. Define environment variable SALOME_&lt;MyResourceKey&gt;Resources</h5>
+<blockquote>It should point to the directory where resources are situated.</blockquote>
+  
+<blockquote><tt>Example: setenv SALOME_StdMeshersResources ${SMESH_ROOT_DIR}/share/salome/resources</tt></blockquote>
+  
+<h4> <a name="2_4_3"></a>2.4.3. Implement your Hypothesis Creator and being
+exported method</h4>
+  
+<blockquote><tt>SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator</tt> 
+  <br>
+  <tt>&nbsp; (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI)</tt> 
+  <p>&lt;aHypType&gt; is to pass a value of &lt;type&gt; attribute in XML-description
+file;<br>
+&lt;aServerLibName&gt; is to pass a value of &lt;server-lib&gt; attribute
+in XML-description file. </p>
+  <p><tt>Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI.cxx</tt></p>
+</blockquote>
+ <i><a href="#cont">Back to the contents</a></i> 
+<h3> <a name="2_5"></a>2.5. Provide icons for object browser.</h3>
+  
+<blockquote>If your hypotheses/algorithms do not need specific GUI, but you
+want to provide icons for object browser, see <a href="#2_4_2">2.4.2</a> paragrath.<br>
+</blockquote>
+<div align="left">
+<p><i><a
+ href="file:///home/vsr-local/work/SALOME/SALOME2/SMESH_SRC/doc/salome/tui/SMESH/sources/static/PluginMeshers.html#cont">Back
+to the contents</a></i> </p>
+</div>
+<h3> <a name="2_6"></a>2.6. Setup your SALOME environment.</h3>
+  
+<h4> <a name="2_6_1"></a>2.6.1.&nbsp; Add your plugin to the LD_LIBRARY_PATH,
+PYTHONPATH (and maybe PATH) environment variables.<br>
+</h4>
+<blockquote><tt>setenv PATH &lt;path-to-my-plugin&gt;/bin/salome:${PATH}<br>
+setenv LD_LIBRARY_PATH &lt;path-to-my-plugin&gt;/lib/salome:${LD_LIBRARY_PATH}<br>
+Setenv PYTHONPATH &lt;path-to-my-plugin&gt;/lib/python2.2/site-packages/salome:${PYTHONPATH}<br>
+  </tt>&nbsp;&nbsp; <br>
+</blockquote>
+<h4> <a name="2_6_2"></a>2.6.2.&nbsp; Set mesher plugin resources environment
+variable</h4>
+<blockquote>&nbsp;This enviroment variable is used to set meshers plugins
+which should be loaded by SMESH module (see <a href="#2_4_2_2">2.4.2.2</a>
+paragraph). Add your plugin to this variable. All plugins are separated by
+colon (":") symbol.<br>
+  <br>
+Note: If you use runSalome.py script from KERNEL package to launch SALOME,
+you may not to set environment variables, because this script sets them itself.
+All what you should do is to add &lt;plugin&gt; section to your ${HOME}/.salome/salome.launch
+file for SMESH module section:<br>
+  <tt><br>
+...<br>
+&lt;modules-list&gt;<br>
+&nbsp;&nbsp;&nbsp; ...<br>
+&nbsp;&nbsp;&nbsp; &lt;module name="SMESH"&gt;<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;plugin name="MyMesher"/&gt;<br>
+&nbsp;&nbsp;&nbsp; &lt;/module&gt;<br>
+&nbsp;&nbsp;&nbsp; ...<br>
+&lt;/modules-list&gt;<br>
+...</tt><br>
+</blockquote>
+<i><a href="#cont">Back to the contents</a></i> <br>
+&nbsp; <br>
+</body>
+</html>
diff --git a/doc/salome/tui/SMESH/sources/static/doxygen.css b/doc/salome/tui/SMESH/sources/static/doxygen.css
new file mode 100755 (executable)
index 0000000..0a8e93d
--- /dev/null
@@ -0,0 +1,49 @@
+H1 { text-align: center; }
+CAPTION { font-weight: bold }
+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) }
+TD.indexkey { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   padding-right  : 10px; 
+   padding-top    : 2px; 
+   padding-left   : 10px; 
+   padding-bottom : 2px; 
+   margin-left    : 0px; 
+   margin-right   : 0px; 
+   margin-top     : 2px; 
+   margin-bottom  : 2px  
+}
+TD.indexvalue { 
+   background-color: #CCCCCC; 
+   font-style: italic; 
+   padding-right  : 10px; 
+   padding-top    : 2px; 
+   padding-left   : 10px; 
+   padding-bottom : 2px; 
+   margin-left    : 0px; 
+   margin-right   : 0px; 
+   margin-top     : 2px; 
+   margin-bottom  : 2px  
+}
+span.keyword       { color: #008000 }
+span.keywordtype   { color: #604020 }
+span.keywordflow   { color: #e08000 }
+span.comment       { color: #800000 }
+span.preprocessor  { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral   { color: #008080 }
diff --git a/doc/salome/tui/SMESH/sources/static/page2.html b/doc/salome/tui/SMESH/sources/static/page2.html
new file mode 100755 (executable)
index 0000000..bfb35c8
--- /dev/null
@@ -0,0 +1,46 @@
+<!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>Main Page</title>
+     
+  <link href="doxygen.css" rel="stylesheet" type="text/css">
+</head>
+  <body>
+ &nbsp; 
+<center>
+<table width="96%">
+ <tbody>
+    <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>
+  </tbody>
+</table>
+</center>
+   <!-- Generated by Doxygen 1.3-rc2 --> 
+<ul>
+ <li><b>SALOME SMESH module</b>
+    <ul>
+ <li><a href="HTML/SMESH_Gen.html">Mapping of SMESH_Gen functions</a></li>
+      <li><a href="HTML/SMESH_BasicHypothesis.html">Mapping of SMESH_BasicHypothesis functions</a></li>
+      <li><a href="HTML/SMESH_Hypothesis.html">Mapping of SMESH_Hypothesis functions</a></li>
+      <li><a href="HTML/SMESH_Mesh.html">Mapping of SMESH_Mesh functions</a></li>
+    </ul>
+ </li>
+</ul>
+ <br>
+</body>
+</html>
diff --git a/doc/salome/tui/SMESH/sources/static/tree.js b/doc/salome/tui/SMESH/sources/static/tree.js
new file mode 100755 (executable)
index 0000000..8461479
--- /dev/null
@@ -0,0 +1,22 @@
+foldersTree = gFld("<b>SALOME v.2.0.0 </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("Adding meshers in SMESH", ""))
+        insDoc(aux1, gLnk("Using Plugin mechanism in SMESH", "", "PluginMeshers.html"))
diff --git a/doc/salome/tui/SMESH/sources/static/treeview.js b/doc/salome/tui/SMESH/sources/static/treeview.js
new file mode 100644 (file)
index 0000000..55eb43d
--- /dev/null
@@ -0,0 +1,505 @@
+//**************************************************************** 
+// You are free to copy the "Folder-Tree" script as long as you  
+// keep this copyright notice: 
+// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ 
+// Author: Marcelino Alves Martins (martins@hks.com) December '97. 
+//**************************************************************** 
+//Log of changes: 
+//       17 Feb 98 - Fix initialization flashing problem with Netscape
+//       
+//       27 Jan 98 - Root folder starts open; support for USETEXTLINKS; 
+//                   make the ftien4 a js file 
+//       
+// DvH:  Dec 2000 -  Made some minor changes to support external 
+//                   references
+// Definition of class Folder 
+// ***************************************************************** 
+function Folder(folderDescription, tagName, hreference) //constructor 
+{ 
+  //constant data 
+  this.desc = folderDescription 
+  this.tagName = tagName
+  this.hreference = hreference 
+  this.id = -1   
+  this.navObj = 0  
+  this.iconImg = 0  
+  this.nodeImg = 0  
+  this.isLastNode = 0 
+  //dynamic data 
+  this.isOpen = true 
+  this.iconSrc = "ftv2folderopen.png"   
+  this.children = new Array 
+  this.nChildren = 0 
+  //methods 
+  this.initialize = initializeFolder 
+  this.setState = setStateFolder 
+  this.addChild = addChild 
+  this.createIndex = createEntryIndex 
+  this.hide = hideFolder 
+  this.display = display 
+  this.renderOb = drawFolder 
+  this.totalHeight = totalHeight 
+  this.subEntries = folderSubEntries 
+  this.outputLink = outputFolderLink 
+} 
+function setStateFolder(isOpen) 
+{ 
+  var subEntries 
+  var totalHeight 
+  var fIt = 0 
+  var i=0 
+  if (isOpen == this.isOpen) 
+    return 
+  if (browserVersion == 2)  
+  { 
+    totalHeight = 0 
+    for (i=0; i < this.nChildren; i++) 
+      totalHeight = totalHeight + this.children[i].navObj.clip.height 
+      subEntries = this.subEntries() 
+    if (this.isOpen) 
+      totalHeight = 0 - totalHeight 
+    for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) 
+      indexOfEntries[fIt].navObj.moveBy(0, totalHeight) 
+  }  
+  this.isOpen = isOpen 
+  propagateChangesInState(this) 
+} 
+function propagateChangesInState(folder) 
+{   
+  var i=0 
+  if (folder.isOpen) 
+  { 
+    if (folder.nodeImg) 
+      if (folder.isLastNode) 
+        folder.nodeImg.src = "ftv2mlastnode.png" 
+      else 
+         folder.nodeImg.src = "ftv2mnode.png" 
+    folder.iconImg.src = "ftv2folderopen.png" 
+    for (i=0; i<folder.nChildren; i++) 
+      folder.children[i].display() 
+  } 
+  else 
+  { 
+    if (folder.nodeImg) 
+      if (folder.isLastNode) 
+        folder.nodeImg.src = "ftv2plastnode.png" 
+      else 
+         folder.nodeImg.src = "ftv2pnode.png" 
+    folder.iconImg.src = "ftv2folderclosed.png" 
+    for (i=0; i<folder.nChildren; i++) 
+      folder.children[i].hide() 
+  }  
+} 
+function hideFolder() 
+{ 
+  if (browserVersion == 1 || browserVersion == 3) { 
+    if (this.navObj.style.display == "none") 
+      return 
+    this.navObj.style.display = "none" 
+  } else { 
+    if (this.navObj.visibility == "hidden") 
+      return 
+    this.navObj.visibility = "hidden" 
+  } 
+   
+  this.setState(0) 
+} 
+function initializeFolder(level, lastNode, leftSide) 
+{ 
+var j=0 
+var i=0 
+var numberOfFolders 
+var numberOfDocs 
+var nc 
+      
+  nc = this.nChildren 
+   
+  this.createIndex() 
+  var auxEv = "" 
+  if (browserVersion > 0) 
+    auxEv = "<a href='javascript:clickOnNode("+this.id+")'>" 
+  else 
+    auxEv = "<a>" 
+  if (level>0) 
+    if (lastNode) //the last 'brother' in the children array 
+    { 
+      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mlastnode.png' width=16 height=22 border=0></a>") 
+//    leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"  
+      this.isLastNode = 1 
+    } 
+    else 
+    { 
+      this.renderOb(leftSide + auxEv + "<img name='nodeIcon" + this.id + "' src='ftv2mnode.png' width=16 height=22 border=0></a>") 
+      leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" 
+      this.isLastNode = 0 
+    } 
+  else 
+    this.renderOb("") 
+   
+  if (nc > 0) 
+  { 
+    level = level + 1 
+    for (i=0 ; i < this.nChildren; i++)  
+    { 
+      if (i == this.nChildren-1) 
+        this.children[i].initialize(level, 1, leftSide) 
+      else 
+        this.children[i].initialize(level, 0, leftSide) 
+      } 
+  } 
+} 
+function drawFolder(leftSide) 
+{ 
+  if (browserVersion == 2) { 
+    if (!doc.yPos) 
+      doc.yPos=8 
+    doc.write("<layer id='folder" + this.id + "' top=" + doc.yPos + " visibility=hidden>") 
+  } 
+  if (browserVersion == 3) 
+  {
+    doc.write("<div id='folder" + this.id + "' style='visibility:hide;'>") 
+  }
+   
+  doc.write("\n<table ") 
+  if (browserVersion == 1) 
+    doc.write(" id='folder" + this.id + "' style='position:block;' ") 
+  doc.write(" border=0 cellspacing=0 cellpadding=0>") 
+  doc.write("\n<tr><td>") 
+  doc.write(leftSide) 
+  this.outputLink() 
+  doc.write("<img name='folderIcon" + this.id + "' ") 
+  doc.write("src='" + this.iconSrc+"' border=0></a>") 
+  doc.write("</td>\n<td valign=middle nowrap>") 
+  if (USETEXTLINKS) 
+  { 
+    this.outputLink() 
+    doc.write(this.desc + "</a>") 
+  } 
+  else 
+    doc.write(this.desc)
+
+/*! 
+  if (this.tagName!="")
+  {
+    doc.write(" [external]")
+  }
+*/
+  doc.write("</td>")  
+  doc.write("\n</table>\n") 
+   
+  if (browserVersion == 2) { 
+    doc.write("</layer>") 
+  } 
+  if (browserVersion == 3) { 
+    doc.write("</div>") 
+  } 
+  if (browserVersion == 1) { 
+    this.navObj = doc.all["folder"+this.id] 
+    this.iconImg = doc.all["folderIcon"+this.id] 
+    this.nodeImg = doc.all["nodeIcon"+this.id] 
+  } else if (browserVersion == 2) { 
+    this.navObj = doc.layers["folder"+this.id] 
+    this.iconImg = this.navObj.document.images["folderIcon"+this.id] 
+    this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] 
+    doc.yPos=doc.yPos+this.navObj.clip.height 
+  } else if (browserVersion == 3) {
+    this.navObj = doc.getElementById("folder"+this.id)
+    this.iconImg = doc.images.namedItem("folderIcon"+this.id)
+    this.nodeImg = doc.images.namedItem("nodeIcon"+this.id)
+  }
+} 
+function outputFolderLink() 
+{ 
+  if (this.hreference) 
+  { 
+    doc.write("<a ")
+    if (this.tagName)
+    {
+      doc.write("doxygen='" + this.tagName + "' ");
+    }
+    doc.write("href='" + this.hreference + "' TARGET=\"basefrm\" ") 
+    if (browserVersion > 0) 
+      doc.write("onClick='javascript:clickOnFolder("+this.id+")'") 
+    doc.write(">") 
+  } 
+  else 
+    doc.write("<a>") 
+} 
+function addChild(childNode) 
+{ 
+  this.children[this.nChildren] = childNode 
+  this.nChildren++ 
+  return childNode 
+} 
+function folderSubEntries() 
+{ 
+  var i = 0 
+  var se = this.nChildren 
+  for (i=0; i < this.nChildren; i++){ 
+    if (this.children[i].children) //is a folder 
+      se = se + this.children[i].subEntries() 
+  } 
+  return se 
+} 
+// Definition of class Item (a document or link inside a Folder) 
+// ************************************************************* 
+function Item(itemDescription, tagName, itemLink) // Constructor 
+{ 
+  // constant data 
+  this.desc = itemDescription 
+  this.tagName = tagName
+  this.link = itemLink 
+  this.id = -1 //initialized in initalize() 
+  this.navObj = 0 //initialized in render() 
+  this.iconImg = 0 //initialized in render() 
+  this.iconSrc = "ftv2doc.png" 
+  // methods 
+  this.initialize = initializeItem 
+  this.createIndex = createEntryIndex 
+  this.hide = hideItem 
+  this.display = display 
+  this.renderOb = drawItem 
+  this.totalHeight = totalHeight 
+} 
+function hideItem() 
+{ 
+  if (browserVersion == 1 || browserVersion == 3) { 
+    if (this.navObj.style.display == "none") 
+      return 
+    this.navObj.style.display = "none" 
+  } else { 
+    if (this.navObj.visibility == "hidden") 
+      return 
+    this.navObj.visibility = "hidden" 
+  }     
+} 
+function initializeItem(level, lastNode, leftSide) 
+{  
+  this.createIndex() 
+  if (level>0) 
+    if (lastNode) //the last 'brother' in the children array 
+    { 
+      this.renderOb(leftSide + "<img src='ftv2lastnode.png' width=16 height=22>") 
+      leftSide = leftSide + "<img src='ftv2blank.png' width=16 height=22>"  
+    } 
+    else 
+    { 
+      this.renderOb(leftSide + "<img src='ftv2node.png' width=16 height=22>") 
+      leftSide = leftSide + "<img src='ftv2vertline.png' width=16 height=22>" 
+    } 
+  else 
+    this.renderOb("")   
+} 
+function drawItem(leftSide) 
+{ 
+  if (browserVersion == 2) 
+    doc.write("<layer id='item" + this.id + "' top=" + doc.yPos + " visibility=hidden>") 
+  if (browserVersion == 3) 
+    doc.write("<div id='item" + this.id + "' style='display:block;'>") 
+     
+  doc.write("\n<table ") 
+  if (browserVersion == 1) 
+    doc.write(" id='item" + this.id + "' style='position:block;' ") 
+  doc.write(" border=0 cellspacing=0 cellpadding=0>\n") 
+  doc.write("<tr><td>") 
+  doc.write(leftSide) 
+  if (this.link!="")
+  {
+    doc.write("<a href=" + this.link + ">") 
+  }
+  doc.write("<img id='itemIcon"+this.id+"' ") 
+  doc.write("src='"+this.iconSrc+"' border=0>") 
+  if (this.link!="")
+  {
+    doc.write("</a>")
+  } 
+  doc.write("</td>\n<td valign=middle nowrap>") 
+  if (USETEXTLINKS && this.link!="") 
+    doc.write("<a href=" + this.link + ">" + this.desc + "</a>") 
+  else 
+    doc.write(this.desc) 
+/*!
+  if (this.tagName!="")
+  {
+    doc.write(" [external]");
+  }
+*/
+  doc.write("\n</table>\n") 
+   
+  if (browserVersion == 2) 
+    doc.write("</layer>") 
+  if (browserVersion == 3) 
+    doc.write("</div>")
+  if (browserVersion == 1) { 
+    this.navObj = doc.all["item"+this.id] 
+    this.iconImg = doc.all["itemIcon"+this.id] 
+  } else if (browserVersion == 2) { 
+    this.navObj = doc.layers["item"+this.id] 
+    this.iconImg = this.navObj.document.images["itemIcon"+this.id] 
+    doc.yPos=doc.yPos+this.navObj.clip.height 
+  } else if (browserVersion == 3) {
+    this.navObj = doc.getElementById("item"+this.id)
+    this.iconImg = doc.images.namedItem("itemIcon"+this.id)
+  }
+} 
+// Methods common to both objects (pseudo-inheritance) 
+// ******************************************************** 
+function display() 
+{ 
+  if (browserVersion == 1 || browserVersion == 3) 
+    this.navObj.style.display = "block" 
+  else 
+    this.navObj.visibility = "show" 
+} 
+function createEntryIndex() 
+{ 
+  this.id = nEntries 
+  indexOfEntries[nEntries] = this 
+  nEntries++ 
+} 
+// total height of subEntries open 
+function totalHeight() //used with browserVersion == 2 
+{ 
+  var h = this.navObj.clip.height 
+  var i = 0 
+   
+  if (this.isOpen) //is a folder and _is_ open 
+    for (i=0 ; i < this.nChildren; i++)  
+      h = h + this.children[i].totalHeight() 
+  return h 
+} 
+// Events 
+// ********************************************************* 
+function clickOnFolder(folderId) 
+{ 
+  var clicked = indexOfEntries[folderId] 
+  if (!clicked.isOpen) 
+    clickOnNode(folderId) 
+  return  
+  if (clicked.isSelected) 
+    return 
+} 
+function clickOnNode(folderId) 
+{ 
+  var clickedFolder = 0 
+  var state = 0 
+  clickedFolder = indexOfEntries[folderId] 
+  state = clickedFolder.isOpen 
+  clickedFolder.setState(!state) //open<->close  
+} 
+function initializeDocument() 
+{ 
+  doc = document;
+  if (doc.all) 
+    browserVersion = 1 //IE4   
+  else 
+    if (doc.layers) 
+      browserVersion = 2 //NS4 
+    else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
+        browserVersion = 3 //mozilla
+      else 
+        browserVersion = 0 //other 
+
+  foldersTree.initialize(0, 1, "") 
+  foldersTree.display()
+  
+  if (browserVersion > 0) 
+  { 
+    if(browserVersion != 3)
+      doc.write("<layer top="+indexOfEntries[nEntries-1].navObj.top+">&nbsp;</layer>") 
+    // close the whole tree 
+    clickOnNode(0) 
+    // open the root folder 
+    clickOnNode(0) 
+  } 
+} 
+// Auxiliary Functions for Folder-Treee backward compatibility 
+// ********************************************************* 
+function gFld(description, tagName, hreference) 
+{ 
+  folder = new Folder(description, tagName, hreference) 
+  return folder 
+} 
+function gLnk(description, tagName, linkData) 
+{ 
+  fullLink = "" 
+  if (linkData!="")
+  {
+    fullLink = "'"+linkData+"' target=\"basefrm\"" 
+  } 
+  linkItem = new Item(description, tagName, fullLink)   
+  return linkItem 
+} 
+function insFld(parentFolder, childFolder) 
+{ 
+  return parentFolder.addChild(childFolder) 
+} 
+function insDoc(parentFolder, document) 
+{ 
+  parentFolder.addChild(document) 
+} 
+// Global variables 
+// **************** 
+USETEXTLINKS = 1
+indexOfEntries = new Array 
+nEntries = 0 
+doc = document 
+browserVersion = 0 
+selectedFolder=0
index e5badac145971ed32ecc81af5a589aaea0242b1f..f8fe6b7fa1048179b370b9f85d700f359bcfdaa7 100644 (file)
@@ -29,7 +29,7 @@
 top_srcdir=@top_srcdir@
 top_builddir=../..
 srcdir=@srcdir@
 top_srcdir=@top_srcdir@
 top_builddir=../..
 srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl:${KERNEL_ROOT_DIR}/idl/salome:${MED_ROOT_DIR}/idl/salome
+VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_builddir)/idl
 
 
 @COMMENCE@
 
 
 @COMMENCE@
@@ -40,22 +40,11 @@ EXPORT_HEADERS= \
        SMESH_Mesh.hxx \
        SMESH_subMesh.hxx \
        SMESH_Hypothesis.hxx \
        SMESH_Mesh.hxx \
        SMESH_subMesh.hxx \
        SMESH_Hypothesis.hxx \
-       SMESH_HypothesisFactory.hxx \
        SMESH_Algo.hxx \
        SMESH_1D_Algo.hxx \
        SMESH_2D_Algo.hxx \
        SMESH_3D_Algo.hxx \
        SMESH_Algo.hxx \
        SMESH_1D_Algo.hxx \
        SMESH_2D_Algo.hxx \
        SMESH_3D_Algo.hxx \
-       SMESH_NumberOfSegments.hxx \
-       SMESH_LocalLength.hxx \
-       SMESH_LengthFromEdges.hxx \
-       SMESH_MaxElementArea.hxx \
-       SMESH_MaxElementVolume.hxx \
-       SMESH_Regular_1D.hxx \
-       SMESH_Quadrangle_2D.hxx \
-       SMESH_MEFISTO_2D.hxx \
-       SMESH_Hexa_3D.hxx \
-       SMESH_NETGEN_3D.hxx \
-       SMESH_HypothesisCreator.hxx
+       SMESH_Group.hxx
 
 EXPORT_PYSCRIPTS =
 
 
 EXPORT_PYSCRIPTS =
 
@@ -65,20 +54,11 @@ LIB= libSMESHimpl.la
 
 LIB_SRC = SMESH_Gen.cxx SMESH_Mesh.cxx SMESH_subMesh.cxx \
          SMESH_Hypothesis.cxx \
 
 LIB_SRC = SMESH_Gen.cxx SMESH_Mesh.cxx SMESH_subMesh.cxx \
          SMESH_Hypothesis.cxx \
-          SMESH_HypothesisFactory.cxx \
          SMESH_Algo.cxx \
          SMESH_1D_Algo.cxx \
          SMESH_2D_Algo.cxx \
          SMESH_3D_Algo.cxx \
          SMESH_Algo.cxx \
          SMESH_1D_Algo.cxx \
          SMESH_2D_Algo.cxx \
          SMESH_3D_Algo.cxx \
-         SMESH_NumberOfSegments.cxx \
-         SMESH_LocalLength.cxx \
-         SMESH_LengthFromEdges.cxx \
-         SMESH_MaxElementArea.cxx \
-         SMESH_MaxElementVolume.cxx \
-         SMESH_Regular_1D.cxx \
-         SMESH_Quadrangle_2D.cxx \
-         SMESH_MEFISTO_2D.cxx \
-         SMESH_Hexa_3D.cxx
+         SMESH_Group.cxx
 
 LIB_SERVER_IDL = 
 
 
 LIB_SERVER_IDL = 
 
@@ -89,20 +69,13 @@ BIN =
 BIN_SRC = 
 
 # additionnal information to compil and link file
 BIN_SRC = 
 
 # additionnal information to compil and link file
-CPPFLAGS+= $(OCC_INCLUDES) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
+CPPFLAGS+= $(OCC_INCLUDES) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome \
+           $(BOOST_CPPFLAGS)
 CXXFLAGS+= $(OCC_CXXFLAGS) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
 
 #IDLCXXFLAGS+= -Wbtp
 
 CXXFLAGS+= $(OCC_CXXFLAGS) $(MED2_INCLUDES) $(HDF5_INCLUDES) -I${KERNEL_ROOT_DIR}/include/salome
 
 #IDLCXXFLAGS+= -Wbtp
 
-LDFLAGS+= $(HDF5_LIBS) $(MED2_LIBS) -lOpUtil -lSMESHDS -lSMDS -lMEFISTO2D -lMeshDriver -L${KERNEL_ROOT_DIR}/lib/salome
-
-ifeq (@WITHNETGEN@,yes)
-  LIB_SRC+= SMESH_NETGEN_3D.cxx
-  NETGEN_INCLUDES=@NETGEN_INCLUDES@
-  CPPFLAGS+= $(NETGEN_INCLUDES)
-  CXXFLAGS+= $(NETGEN_INCLUDES)
-  LDFLAGS+=  -lNETGEN
-endif
+LDFLAGS+= $(HDF5_LIBS) $(MED2_LIBS) -lOpUtil -lSMESHDS -lSMDS -lMeshDriverDAT -lMeshDriverMED -lMeshDriverUNV -L${KERNEL_ROOT_DIR}/lib/salome
 
 @CONCLUDE@
 
 
 @CONCLUDE@
 
index caa3978e95b25a049f47424f4a49f6a3989e987b..846f28fb00e6248744ad9faec7e0da97532aed97 100644 (file)
@@ -26,7 +26,6 @@
 //  Module : SMESH
 //  $Header$
 
 //  Module : SMESH
 //  $Header$
 
-using namespace std;
 using namespace std;
 #include "SMESH_1D_Algo.hxx"
 #include "SMESH_Gen.hxx"
 using namespace std;
 #include "SMESH_1D_Algo.hxx"
 #include "SMESH_Gen.hxx"
@@ -55,47 +54,3 @@ SMESH_1D_Algo::~SMESH_1D_Algo()
 {
 }
 
 {
 }
 
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_1D_Algo::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_1D_Algo::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream& operator << (ostream & save, SMESH_1D_Algo & hyp)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream& operator >> (istream & load, SMESH_1D_Algo & hyp)
-{
-  return load;
-}
-
index cdacad4acf7729732662b1102661a22b95dec8b3..378ed7545263959294ac38a4fdb6b59d0a43c7e3 100644 (file)
@@ -37,13 +37,6 @@ class SMESH_1D_Algo:
 public:
   SMESH_1D_Algo(int hypId, int studyId,  SMESH_Gen* gen);
   virtual ~SMESH_1D_Algo();
 public:
   SMESH_1D_Algo(int hypId, int studyId,  SMESH_Gen* gen);
   virtual ~SMESH_1D_Algo();
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream& operator << (ostream & save, SMESH_1D_Algo & hyp);
-  friend istream& operator >> (istream & load, SMESH_1D_Algo & hyp);
-
-protected:
 };
 
 #endif
 };
 
 #endif
index 90102e5edd6e4cf2de794c0194b855dd0e3b7d2d..c84a353983c0ac5da9aabf5c5cb5fb6a45a5d539 100644 (file)
@@ -26,7 +26,6 @@
 //  Module : SMESH
 //  $Header$
 
 //  Module : SMESH
 //  $Header$
 
-using namespace std;
 using namespace std;
 #include "SMESH_2D_Algo.hxx"
 #include "SMESH_Gen.hxx"
 using namespace std;
 #include "SMESH_2D_Algo.hxx"
 #include "SMESH_Gen.hxx"
@@ -63,50 +62,6 @@ SMESH_2D_Algo::~SMESH_2D_Algo()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-ostream & SMESH_2D_Algo::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_2D_Algo::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream& operator << (ostream & save, SMESH_2D_Algo & hyp)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream& operator >> (istream & load, SMESH_2D_Algo & hyp)
-{
-  return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
 int SMESH_2D_Algo::NumberOfWires(const TopoDS_Shape& S)
 {
   int i = 0;
 int SMESH_2D_Algo::NumberOfWires(const TopoDS_Shape& S)
 {
   int i = 0;
index fbf99f60bfcb6c1891d38a2c944b3b0c338c115e..5c904e22ef89ea1366a1c566a2f58c2ec647246e 100644 (file)
@@ -41,13 +41,6 @@ public:
 
   int NumberOfWires(const TopoDS_Shape& S);
   int NumberOfPoints(SMESH_Mesh& aMesh,const TopoDS_Wire& W);
 
   int NumberOfWires(const TopoDS_Shape& S);
   int NumberOfPoints(SMESH_Mesh& aMesh,const TopoDS_Wire& W);
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream& operator << (ostream & save, SMESH_2D_Algo & hyp);
-  friend istream& operator >> (istream & load, SMESH_2D_Algo & hyp);
-
-protected:
 };
 
 #endif
 };
 
 #endif
index 603d80ee60c2f8eb44b6d7759bda7d562555288d..ce35f66d40dd6f739cb631e71891712f9d0e940a 100644 (file)
@@ -26,7 +26,6 @@
 //  Module : SMESH
 //  $Header$
 
 //  Module : SMESH
 //  $Header$
 
-using namespace std;
 using namespace std;
 #include "SMESH_3D_Algo.hxx"
 #include "SMESH_Gen.hxx"
 using namespace std;
 #include "SMESH_3D_Algo.hxx"
 #include "SMESH_Gen.hxx"
@@ -56,47 +55,3 @@ SMESH_3D_Algo::SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen)
 SMESH_3D_Algo::~SMESH_3D_Algo()
 {
 }
 SMESH_3D_Algo::~SMESH_3D_Algo()
 {
 }
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_3D_Algo::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_3D_Algo::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream& operator << (ostream & save, SMESH_3D_Algo & hyp)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream& operator >> (istream & load, SMESH_3D_Algo & hyp)
-{
-  return load;
-}
index 330624693600384abc93f53ba2230f02d4e00ebb..62621ce3cf532645b7efa60e9a9279206790451a 100644 (file)
@@ -37,13 +37,6 @@ class SMESH_3D_Algo:
 public:
   SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~SMESH_3D_Algo();
 public:
   SMESH_3D_Algo(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~SMESH_3D_Algo();
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream& operator << (ostream & save, SMESH_3D_Algo & hyp);
-  friend istream& operator >> (istream & load, SMESH_3D_Algo & hyp);
-
-protected:
 };
 
 #endif
 };
 
 #endif
index 234b7ecce8e0a661b71e2f94d35c738fea1574ad..cef1ea89c70ad30bd520ac6fefa25a5cc81cf69a 100644 (file)
@@ -26,7 +26,6 @@
 //  Module : SMESH
 //  $Header$
 
 //  Module : SMESH
 //  $Header$
 
-using namespace std;
 using namespace std;
 #include "SMESH_Algo.hxx"
 #include "SMESH_Gen.hxx"
 using namespace std;
 #include "SMESH_Algo.hxx"
 #include "SMESH_Gen.hxx"
@@ -39,6 +38,8 @@ using namespace std;
 #include "utilities.h"
 
 #include <algorithm>
 #include "utilities.h"
 
 #include <algorithm>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
 
 //=============================================================================
 /*!
 
 //=============================================================================
 /*!
@@ -52,6 +53,8 @@ SMESH_Algo::SMESH_Algo(int hypId, int studyId,
 //   _compatibleHypothesis.push_back("hypothese_bidon");
        _type = ALGO;
        gen->_mapAlgo[hypId] = this;
 //   _compatibleHypothesis.push_back("hypothese_bidon");
        _type = ALGO;
        gen->_mapAlgo[hypId] = this;
+
+        _onlyUnaryInput = _requireDescretBoundary = true;
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -75,77 +78,6 @@ const vector < string > &SMESH_Algo::GetCompatibleHypothesis()
        return _compatibleHypothesis;
 }
 
        return _compatibleHypothesis;
 }
 
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_Algo::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_Algo::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_Algo & hyp)
-{
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_Algo & hyp)
-{
-       return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Algo::CheckHypothesis(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       MESSAGE("SMESH_Algo::CheckHypothesis");
-       ASSERT(0);                                      // use method from derived classes
-       return false;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Algo::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-       MESSAGE("SMESH_Algo::Compute");
-       ASSERT(0);                                      // use method from derived classes
-       return false;
-}
-
 //=============================================================================
 /*!
  *  List the hypothesis used by the algorithm associated to the shape.
 //=============================================================================
 /*!
  *  List the hypothesis used by the algorithm associated to the shape.
@@ -164,12 +96,21 @@ const list <const SMESHDS_Hypothesis *> & SMESH_Algo::GetUsedHypothesis(
        int nbHyp = _usedHypList.size();
        if (nbHyp == 0)
        {
        int nbHyp = _usedHypList.size();
        if (nbHyp == 0)
        {
-               TopoDS_Shape mainShape = aMesh.GetMeshDS()->ShapeToMesh();
-               if (!mainShape.IsSame(aShape))
-               {
-                       _usedHypList = GetAppliedHypothesis(aMesh, mainShape);  // copy
-                       nbHyp = _usedHypList.size();
-               }
+          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;
+          }
+//             TopoDS_Shape mainShape = aMesh.GetMeshDS()->ShapeToMesh();
+//             if (!mainShape.IsSame(aShape))
+//             {
+//                     _usedHypList = GetAppliedHypothesis(aMesh, mainShape);  // copy
+//                     nbHyp = _usedHypList.size();
+//             }
        }
        if (nbHyp > 1)
                _usedHypList.clear();   //only one compatible hypothesis allowed
        }
        if (nbHyp > 1)
                _usedHypList.clear();   //only one compatible hypothesis allowed
index 53a0fbdde814bbf241e65fd8cd22e7d767a7d65e..d19bd94f32a3ff6bef508b8d3c0880c041db7780 100644 (file)
@@ -39,7 +39,7 @@
 #include <list>
 using namespace std;
 
 #include <list>
 using namespace std;
 
-class SMESH_gen;
+class SMESH_Gen;
 class SMESH_Mesh;
 
 class SMESH_Algo:public SMESH_Hypothesis
 class SMESH_Mesh;
 
 class SMESH_Algo:public SMESH_Hypothesis
@@ -49,10 +49,11 @@ class SMESH_Algo:public SMESH_Hypothesis
          virtual ~ SMESH_Algo();
 
        const vector < string > &GetCompatibleHypothesis();
          virtual ~ SMESH_Algo();
 
        const vector < string > &GetCompatibleHypothesis();
-       virtual bool CheckHypothesis(SMESH_Mesh & aMesh,
-               const TopoDS_Shape & aShape);
+       virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
+                                     const TopoDS_Shape& aShape,
+                                     SMESH_Hypothesis::Hypothesis_Status& aStatus) = 0;
 
 
-       virtual bool Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
+       virtual bool Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) = 0;
 
        virtual const list <const SMESHDS_Hypothesis *> &
                GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
 
        virtual const list <const SMESHDS_Hypothesis *> &
                GetUsedHypothesis(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
@@ -62,15 +63,29 @@ class SMESH_Algo:public SMESH_Hypothesis
 
        static double EdgeLength(const TopoDS_Edge & E);
 
 
        static double EdgeLength(const TopoDS_Edge & E);
 
-       virtual ostream & SaveTo(ostream & save);
-       virtual istream & LoadFrom(istream & load);
-       friend ostream & operator <<(ostream & save, SMESH_Algo & hyp);
-       friend istream & operator >>(istream & load, SMESH_Algo & hyp);
+ public:
+        // algo features
 
 
-  protected:
-         vector<string> _compatibleHypothesis;
-         list<const SMESHDS_Hypothesis *> _appliedHypList;
-         list<const SMESHDS_Hypothesis *> _usedHypList;
+        // SMESH_Hypothesis::GetDim();
+        // 1 - dimention of target mesh
+
+        bool OnlyUnaryInput() const { return _onlyUnaryInput; }
+        // 2 - is collection of tesselatable shapes inacceptable as input;
+        // "collection" means a shape containing shapes of dim equal
+        // to GetDim().
+        // Algo which can process a collection shape should expect
+        // an input temporary shape that is neither MainShape nor
+        // its child.
+        
+        bool NeedDescretBoundary() const { return _requireDescretBoundary; }
+        // 3 - is a Dim-1 mesh prerequisite
+
+ protected:
+        bool _onlyUnaryInput;
+        bool _requireDescretBoundary;
+        vector<string> _compatibleHypothesis;
+        list<const SMESHDS_Hypothesis *> _appliedHypList;
+        list<const SMESHDS_Hypothesis *> _usedHypList;
 };
 
 #endif
 };
 
 #endif
index d120f41f1a4dbdc4d237ab0a147408d4470d4c2a..44000dfac64f0a05e6128c064f375586c69e0151 100644 (file)
 #include "SMESH_subMesh.hxx"
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
 #include "SMESH_subMesh.hxx"
 #include "SMDS_MeshElement.hxx"
 #include "SMDS_MeshNode.hxx"
-#include "SMESHDriver.h"
+
+#include "utilities.h"
+#include "OpUtil.hxx"
 
 #include <gp_Pnt.hxx>
 #include <BRep_Tool.hxx>
 
 #include <gp_Pnt.hxx>
 #include <BRep_Tool.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include "Utils_ExceptHandlers.hxx"
 
 
-#include "utilities.h"
-#include "OpUtil.hxx"
 
 //=============================================================================
 /*!
 
 //=============================================================================
 /*!
@@ -48,7 +51,7 @@ SMESH_Gen::SMESH_Gen()
 {
        MESSAGE("SMESH_Gen::SMESH_Gen");
        _localId = 0;
 {
        MESSAGE("SMESH_Gen::SMESH_Gen");
        _localId = 0;
-       _hypothesisFactory.SetGen(this);
+       _hypId = 0;
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -68,7 +71,7 @@ SMESH_Gen::~SMESH_Gen()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-SMESH_Hypothesis *SMESH_Gen::CreateHypothesis(const char *anHyp, int studyId)
+/*SMESH_Hypothesis *SMESH_Gen::CreateHypothesis(const char *anHyp, int studyId)
        throw(SALOME_Exception)
 {
 
        throw(SALOME_Exception)
 {
 
@@ -89,7 +92,7 @@ SMESH_Hypothesis *SMESH_Gen::CreateHypothesis(const char *anHyp, int studyId)
 
        myStudyContext->myDocument->AddHypothesis(myHypothesis);
        return myHypothesis;
 
        myStudyContext->myDocument->AddHypothesis(myHypothesis);
        return myHypothesis;
-}
+}*/
 
 //=============================================================================
 /*!
 
 //=============================================================================
 /*!
@@ -97,10 +100,11 @@ SMESH_Hypothesis *SMESH_Gen::CreateHypothesis(const char *anHyp, int studyId)
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-SMESH_Mesh *SMESH_Gen::Init(int studyId, const TopoDS_Shape & aShape, int meshID)
-       throw(SALOME_Exception)
+SMESH_Mesh* SMESH_Gen::CreateMesh(int studyId)
+throw(SALOME_Exception)
 {
 {
-       MESSAGE("SMESH_Gen::Init");
+        Unexpect aCatch(SalomeException);
+       MESSAGE("SMESH_Gen::CreateMesh");
 //   if (aShape.ShapeType() == TopAbs_COMPOUND)
 //     {
 //       INFOS("Mesh Compound not yet implemented!");
 //   if (aShape.ShapeType() == TopAbs_COMPOUND)
 //     {
 //       INFOS("Mesh Compound not yet implemented!");
@@ -113,178 +117,623 @@ SMESH_Mesh *SMESH_Gen::Init(int studyId, const TopoDS_Shape & aShape, int meshID
 
        // create a new SMESH_mesh object 
 
 
        // create a new SMESH_mesh object 
 
-       if(meshID == -1)
-               meshID=_localId++;
-       else if(_localId<=meshID)
-               _localId=meshID+1;
-
-       SMESH_Mesh *mesh = new SMESH_Mesh(meshID,
+       SMESH_Mesh *mesh = new SMESH_Mesh(_localId++,
                studyId,
                this,
                myStudyContext->myDocument);
                studyId,
                this,
                myStudyContext->myDocument);
-       myStudyContext->mapMesh[meshID] = mesh;
+       myStudyContext->mapMesh[_localId] = mesh;
 
        // associate a TopoDS_Shape to the mesh
 
 
        // associate a TopoDS_Shape to the mesh
 
-       mesh->ShapeToMesh(aShape);
+//mesh->ShapeToMesh(aShape);
        return mesh;
 }
 
 //=============================================================================
 /*!
        return mesh;
 }
 
 //=============================================================================
 /*!
- * @TODO Doing a full update after computation is not optimal when doing a local
- * remeshing.
+ * 
  */
 //=============================================================================
 
 bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
  */
 //=============================================================================
 
 bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-throw(SALOME_Exception)
 {
 {
-       MESSAGE("SMESH_Gen::Compute");
-//   bool isDone = false;
-/* 
-Algo : s'appuie ou non sur une geometrie
-Si geometrie:
-Vertex : rien ï¿½faire (range le point)
-Edge, Wire, collection d'edge et wire : 1D
-Face, Shell, collection de Face et Shells : 2D
-Solid, Collection de Solid : 3D
-*/
-// *** corriger commentaires
-       // check hypothesis associated to the mesh :
-       // - only one algo : type compatible with the type of the shape
-       // - hypothesis = compatible with algo
-       //    - check if hypothesis are applicable to this algo
-       //    - check contradictions within hypothesis
-       //    (test if enough hypothesis is done further)
-
-       bool ret = true;
-
-       SMESH_subMesh *sm = aMesh.GetSubMesh(aShape);
-//   SCRUTE(sm);
-       SMESH_subMesh *smToCompute = sm->GetFirstToCompute();
-       while (smToCompute)
-       {
-               TopoDS_Shape subShape = smToCompute->GetSubShape();
-               int dim = GetShapeDim(subShape);
-               //SCRUTE(dim);
-               if (dim > 0)
-               {
-                       bool ret1 = smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE);
-                       ret = ret && ret1;
-               }
-               else
-               {
-                       ASSERT(dim == 0);
-                       ASSERT(smToCompute->_vertexSet == false);
-                       TopoDS_Vertex V1 = TopoDS::Vertex(subShape);
-                       gp_Pnt P1 = BRep_Tool::Pnt(V1);
-                       SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-                       //MESSAGE("point "<<nodeId<<" "<<P1.X()<<" "<<P1.Y()<<" "<<P1.Z());
-                       SMDS_MeshNode * node = meshDS->AddNode(P1.X(), P1.Y(), P1.Z());
-                       meshDS->SetNodeOnVertex(node, V1);
-                       smToCompute->GetSubMeshDS();
-                       smToCompute->_vertexSet = true;
-                       smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE);
-               }
-               smToCompute = sm->GetFirstToCompute();
-       }
+  MESSAGE("SMESH_Gen::Compute");
+  //   bool isDone = false;
+  /* 
+     Algo : s'appuie ou non sur une geometrie
+     Si geometrie:
+     Vertex : rien Ã  faire (range le point)
+     Edge, Wire, collection d'edge et wire : 1D
+     Face, Shell, collection de Face et Shells : 2D
+     Solid, Collection de Solid : 3D
+     */
+  // *** corriger commentaires
+  // check hypothesis associated to the mesh :
+  // - only one algo : type compatible with the type of the shape
+  // - hypothesis = compatible with algo
+  //    - check if hypothesis are applicable to this algo
+  //    - check contradictions within hypothesis
+  //    (test if enough hypothesis is done further)
+
+  bool ret = true;
+
+  if ( !CheckAlgoState( aMesh, aShape ))
+  {
+    INFOS( "ABORT MESHING: some algos or hypothesis are missing");
+    return false;
+  }
+
+  SMESH_subMesh *sm = aMesh.GetSubMesh(aShape);
+
+  // -----------------------------------------------------------------
+  // apply algos that do not require descretized boundaries, starting
+  // from the most complex shapes
+  // -----------------------------------------------------------------
+  
+  // map containing all subshapes in the order: vertices, edges, faces...
+  const map<int, SMESH_subMesh*>& smMap = sm->DependsOn();
+  map<int, SMESH_subMesh*>::const_reverse_iterator revItSub = smMap.rbegin();
+
+  SMESH_subMesh* smToCompute = sm;
+  while ( smToCompute )
+  {
+    const TopoDS_Shape& aSubShape = smToCompute->GetSubShape();
+    if ( GetShapeDim( aSubShape ) < 1 ) break;
+
+    SMESH_Algo* algo = GetAlgo( aMesh, aSubShape );
+    if (algo &&
+        !algo->NeedDescretBoundary() &&
+        smToCompute->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE )
+    {
+      ret = smToCompute->ComputeStateEngine( SMESH_subMesh::COMPUTE );
+    }
+    if (!ret)
+      return false;
+
+    // next subMesh
+    if (revItSub != smMap.rend())
+    {
+      smToCompute = (*revItSub).second;
+      revItSub++;
+    }
+    else
+      smToCompute = 0;
+  }
+    
+  // -----------------------------------------------
+  // mesh the rest subshapes starting from vertices
+  // -----------------------------------------------
+  
+  smToCompute = sm->GetFirstToCompute();
+  while (smToCompute)
+  {
+    TopoDS_Shape subShape = smToCompute->GetSubShape();
+    int dim = GetShapeDim(subShape);
+    if (dim > 0)
+    {
+      //MESSAGE ( "MESH shape id=" << smToCompute->GetId() <<
+        //       " type=" << smToCompute->GetSubShape().ShapeType());
+      bool ret1 = smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE);
+      ret = ret && ret1;
+    }
+    else
+    {
+      ASSERT(dim == 0);
+      ASSERT(smToCompute->_vertexSet == false);
+      TopoDS_Vertex V1 = TopoDS::Vertex(subShape);
+      gp_Pnt P1 = BRep_Tool::Pnt(V1);
+      SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
+      //MESSAGE("point "<<nodeId<<" "<<P1.X()<<" "<<P1.Y()<<" "<<P1.Z());
+      SMDS_MeshNode * node = meshDS->AddNode(P1.X(), P1.Y(), P1.Z());
+      if ( node ) {  // san - increase robustness
+        meshDS->SetNodeOnVertex(node, V1);
+        smToCompute->GetSubMeshDS();
+        smToCompute->_vertexSet = true;
+        smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE);
+      }
+    }
+    smToCompute = sm->GetFirstToCompute();
+  }
+
+  MESSAGE( "VSR - SMESH_Gen::Compute() finished" );
+  return ret;
+}
 
 
-       aMesh.GetMeshDS()->logFullUpdate();
 
 
-       return ret;
-}
+//=======================================================================
+//function : checkConformIgnoredAlgos
+//purpose  : 
+//=======================================================================
 
 
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
+static bool checkConformIgnoredAlgos(SMESH_Mesh&               aMesh,
+                                     SMESH_subMesh*            aSubMesh,
+                                     const SMESH_Algo*         aGlobIgnoAlgo,
+                                     const SMESH_Algo*         aLocIgnoAlgo,
+                                     bool &                    checkConform,
+                                     map<int, SMESH_subMesh*>& aCheckedMap)
+{
+  ASSERT( aSubMesh );
+  if ( aSubMesh->GetSubShape().ShapeType() == TopAbs_VERTEX)
+    return true;
+
+
+  bool ret = true;
+
+  const list<const SMESHDS_Hypothesis*>& listHyp =
+    aMesh.GetMeshDS()->GetHypothesis( aSubMesh->GetSubShape() );
+  list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
+  for ( ; it != listHyp.end(); it++)
+  {
+    const SMESHDS_Hypothesis * aHyp = *it;
+    if (aHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
+      continue;
+
+    const SMESH_Algo* algo = dynamic_cast<const SMESH_Algo*> (aHyp);
+    ASSERT ( algo );
+    
+    if ( aLocIgnoAlgo ) // algo is hidden by a local algo of upper dim
+    {
+      INFOS( "Local <" << algo->GetName() << "> is hidden by local <"
+            << aLocIgnoAlgo->GetName() << ">");
+    }
+    else
+    {
+      bool isGlobal = (aMesh.IsMainShape( aSubMesh->GetSubShape() ));
+      int dim = algo->GetDim();
+      int aMaxGlobIgnoDim = ( aGlobIgnoAlgo ? aGlobIgnoAlgo->GetDim() : -1 );
+
+      if ( dim < aMaxGlobIgnoDim )
+      {
+        // algo is hidden by a global algo
+        INFOS( ( isGlobal ? "Global" : "Local" ) 
+              << " <" << algo->GetName() << "> is hidden by global <"
+              << aGlobIgnoAlgo->GetName() << ">");
+      }
+      else if ( !algo->NeedDescretBoundary() && !isGlobal)
+      {
+        // local algo is not hidden and hides algos on sub-shapes
+        if (checkConform && !aSubMesh->IsConform( algo ))
+        {
+          ret = false;
+          checkConform = false; // no more check conformity
+          INFOS( "ERROR: Local <" << algo->GetName() <<
+                "> would produce not conform mesh: "
+                "<Not Conform Mesh Allowed> hypotesis is missing");
+        }
+
+        // sub-algos will be hidden by a local <algo>
+        const map<int, SMESH_subMesh*>& smMap = aSubMesh->DependsOn();
+        map<int, SMESH_subMesh*>::const_reverse_iterator revItSub;
+        bool checkConform2 = false;
+          for ( revItSub = smMap.rbegin(); revItSub != smMap.rend(); revItSub++)
+        {
+          checkConformIgnoredAlgos (aMesh, (*revItSub).second, aGlobIgnoAlgo,
+                                    algo, checkConform2, aCheckedMap);
+          int key = (*revItSub).first;
+         SMESH_subMesh* sm = (*revItSub).second;
+          if ( aCheckedMap.find( key ) == aCheckedMap.end() )
+          {
+            aCheckedMap[ key ] = sm;
+          }
+        }
+      }
+    }
+  }
+  
+  return ret;
+}
 
 
-SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
+//=======================================================================
+//function : checkMissing
+//purpose  : notify on missing hypothesis
+//           Return false if algo or hipothesis is missing
+//=======================================================================
+
+static bool checkMissing(SMESH_Gen*                aGen,
+                         SMESH_Mesh&               aMesh,
+                         SMESH_subMesh*            aSubMesh,
+                         const int                 aTopAlgoDim,
+                         bool*                     globalChecked,
+                         const bool                checkNoAlgo,
+                         map<int, SMESH_subMesh*>& aCheckedMap)
 {
 {
-       //MESSAGE("SMESH_Gen::GetAlgo");
+  if ( aSubMesh->GetSubShape().ShapeType() == TopAbs_VERTEX)
+    return true;
+  
+  //MESSAGE("=====checkMissing");
+
+  int ret = true;
+  SMESH_Algo* algo = 0;
+
+  switch (aSubMesh->GetAlgoState())
+  {
+  case SMESH_subMesh::NO_ALGO: {
+    if (checkNoAlgo)
+    {
+      // should there be any algo?
+      int shapeDim = SMESH_Gen::GetShapeDim( aSubMesh->GetSubShape() );
+      if (aTopAlgoDim > shapeDim)
+      {
+        INFOS( "ERROR: " << shapeDim << "D algorithm is missing" );
+        ret = false;
+      }
+    }
+    return ret;
+  }
+  case SMESH_subMesh::MISSING_HYP: {
+    // notify if an algo missing hyp is attached to aSubMesh
+    algo = aGen->GetAlgo( aMesh, aSubMesh->GetSubShape() );
+    ASSERT( algo );
+    bool isGlobalAlgo = aGen->IsGlobalAlgo( algo, aMesh );
+    if (!isGlobalAlgo || !globalChecked[ algo->GetDim() ])
+    {
+      INFOS( "ERROR: " << (isGlobalAlgo ? "Global " : "Local ")
+            << "<" << algo->GetName() << "> misses some hypothesis");
+      if (isGlobalAlgo)
+        globalChecked[ algo->GetDim() ] = true;
+    }
+    ret = false;
+    break;
+  }
+  case SMESH_subMesh::HYP_OK:
+    algo = aGen->GetAlgo( aMesh, aSubMesh->GetSubShape() );
+    ret = true;
+    break;
+  default: ASSERT(0);
+  }
+
+  // do not check under algo that hides sub-algos or
+  // re-start checking NO_ALGO state
+  ASSERT (algo);
+  bool isTopLocalAlgo =
+    ( aTopAlgoDim <= algo->GetDim() && !aGen->IsGlobalAlgo( algo, aMesh ));
+  if (!algo->NeedDescretBoundary() || isTopLocalAlgo)
+  {
+    bool checkNoAlgo2 = ( algo->NeedDescretBoundary() );
+    const map<int, SMESH_subMesh*>& subMeshes = aSubMesh->DependsOn();
+    map<int, SMESH_subMesh*>::const_iterator itsub;
+    for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
+    {
+      // sub-meshes should not be checked further more
+      int key = (*itsub).first;
+      SMESH_subMesh* sm = (*itsub).second;
+      if ( aCheckedMap.find( key ) == aCheckedMap.end() )
+        aCheckedMap[ key ] = sm;
+
+      if (isTopLocalAlgo)
+      {
+        //check algo on sub-meshes
+        int aTopAlgoDim2 = algo->GetDim();
+        if (!checkMissing (aGen, aMesh, sm, aTopAlgoDim2,
+                           globalChecked, checkNoAlgo2, aCheckedMap))
+        {
+          ret = false;
+          if (sm->GetAlgoState() == SMESH_subMesh::NO_ALGO )
+            checkNoAlgo2 = false;
+        }
+      }
+    }
+  }
+  return ret;
+}
 
 
-       const SMESHDS_Hypothesis *theHyp = NULL;
-       SMESH_Algo *algo = NULL;
-       const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       int hypType;
-       int hypId;
-       int algoDim;
+//=======================================================================
+//function : CheckAlgoState
+//purpose  : notify on bad state of attached algos, return false
+//           if Compute() would fail because of some algo bad state
+//=======================================================================
 
 
-       // try shape first, then main shape
+bool SMESH_Gen::CheckAlgoState(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape)
+{
+  //MESSAGE("SMESH_Gen::CheckAlgoState");
+
+  bool ret = true;
+  bool hasAlgo = false;
+
+  SMESH_subMesh* sm = aMesh.GetSubMesh(aShape);
+  const SMESHDS_Mesh* meshDS = aMesh.GetMeshDS();
+  TopoDS_Shape mainShape = meshDS->ShapeToMesh();
+  
+  // -----------------
+  // get global algos
+  // -----------------
+  
+  const SMESH_Algo* aGlobAlgoArr[] = {0,0,0,0};
+
+  const list<const SMESHDS_Hypothesis*>& listHyp = meshDS->GetHypothesis( mainShape );
+  list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
+  for ( ; it != listHyp.end(); it++)
+  {
+    const SMESHDS_Hypothesis * aHyp = *it;
+    if (aHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
+      continue;
+
+    const SMESH_Algo* algo = dynamic_cast<const SMESH_Algo*> (aHyp);
+    ASSERT ( algo );
+    
+    int dim = algo->GetDim();
+    aGlobAlgoArr[ dim ] = algo;
+
+    hasAlgo = true;
+  }
+  
+  // --------------------------------------------------------
+  // info on algos that will be ignored because of ones that
+  // don't NeedDescretBoundary() attached to super-shapes,
+  // check that a conform mesh will be produced
+  // --------------------------------------------------------
+
+
+  // find a global algo possibly hidding sub-algos
+  int dim;
+  const SMESH_Algo* aGlobIgnoAlgo = 0;
+  for (dim = 3; dim > 0; dim--)
+  {
+    if (aGlobAlgoArr[ dim ] &&
+        !aGlobAlgoArr[ dim ]->NeedDescretBoundary())
+    {
+      aGlobIgnoAlgo = aGlobAlgoArr[ dim ];
+      break;
+    }
+  }
+
+  const map<int, SMESH_subMesh*>& smMap = sm->DependsOn();
+  map<int, SMESH_subMesh*>::const_reverse_iterator revItSub = smMap.rbegin();
+  map<int, SMESH_subMesh*> aCheckedMap;
+  bool checkConform = ( !aMesh.IsNotConformAllowed() );
+  int aKey = 1;
+  SMESH_subMesh* smToCheck = sm;
+
+  // loop on aShape and its sub-shapes
+  while ( smToCheck )
+  {
+    if ( smToCheck->GetSubShape().ShapeType() == TopAbs_VERTEX)
+      break;
+
+    if ( aCheckedMap.find( aKey ) == aCheckedMap.end() )
+      if (!checkConformIgnoredAlgos (aMesh, smToCheck, aGlobIgnoAlgo,
+                                     0, checkConform, aCheckedMap))
+        ret = false;
+
+    if ( smToCheck->GetAlgoState() != SMESH_subMesh::NO_ALGO )
+      hasAlgo = true;
+
+    // next subMesh
+    if (revItSub != smMap.rend())
+    {
+      aKey = (*revItSub).first;
+      smToCheck = (*revItSub).second;
+      revItSub++;
+    }
+    else
+    {
+      smToCheck = 0;
+    }
+
+  }
+
+  // ----------------------------------------------------------------
+  // info on missing hypothesis and find out if all needed algos are
+  // well defined
+  // ----------------------------------------------------------------
+
+  //MESSAGE( "---info on missing hypothesis and find out if all needed algos are");
+  
+  // find max dim of global algo
+  int aTopAlgoDim = 0;
+  for (dim = 3; dim > 0; dim--)
+  {
+    if (aGlobAlgoArr[ dim ])
+    {
+      aTopAlgoDim = dim;
+      break;
+    }
+  }
+  aCheckedMap.clear();
+  smToCheck = sm;
+  revItSub = smMap.rbegin();
+  bool checkNoAlgo = (bool) aTopAlgoDim;
+  bool globalChecked[] = { false, false, false, false };
+
+  // loop on aShape and its sub-shapes
+  while ( smToCheck )
+  {
+    if ( smToCheck->GetSubShape().ShapeType() == TopAbs_VERTEX)
+      break;
+
+    if ( aCheckedMap.find( aKey ) == aCheckedMap.end() )
+      if (!checkMissing (this, aMesh, smToCheck, aTopAlgoDim,
+                         globalChecked, checkNoAlgo, aCheckedMap))
+      {
+        ret = false;
+        if (smToCheck->GetAlgoState() == SMESH_subMesh::NO_ALGO )
+          checkNoAlgo = false;
+      }
+
+    // next subMesh
+    if (revItSub != smMap.rend())
+    {
+      aKey = (*revItSub).first;
+      smToCheck = (*revItSub).second;
+      revItSub++;
+    }
+    else
+      smToCheck = 0;
+  }
+
+  if ( !hasAlgo )
+    INFOS( "None algorithm attached" );
+
+  return ( ret && hasAlgo );
+}
 
 
-       TopoDS_Shape mainShape = meshDS->ShapeToMesh();
-       const TopoDS_Shape *shapeToTry[2] = { &aShape, &mainShape };
+//=======================================================================
+//function : IsGlobalAlgo
+//purpose  : check if theAlgo is attached to the main shape
+//=======================================================================
 
 
-       for (int iShape = 0; iShape < 2; iShape++)
-       {
-               TopoDS_Shape tryShape = (*shapeToTry[iShape]);
+bool SMESH_Gen::IsGlobalAlgo(const SMESH_Algo* theAlgo, SMESH_Mesh& aMesh)
+{
+  const SMESHDS_Mesh* meshDS = aMesh.GetMeshDS();
+  TopoDS_Shape mainShape = meshDS->ShapeToMesh();
+  const list<const SMESHDS_Hypothesis*>& listHyp = meshDS->GetHypothesis( mainShape );
+  list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
+  for ( ; it != listHyp.end(); it++)
+    if ( *it == theAlgo )
+      return true;
+
+  return false;
+}
 
 
-               const list<const SMESHDS_Hypothesis*>& listHyp =
-                       meshDS->GetHypothesis(tryShape);
-               list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
-               
-               int nb_algo = 0;
-               int shapeDim = GetShapeDim(aShape);
-               int typeOfShape = aShape.ShapeType();
-
-               while (it!=listHyp.end())
-               {
-                       const SMESHDS_Hypothesis *anHyp = *it;
-                       hypType = anHyp->GetType();
-                       //SCRUTE(hypType);
-                       if (hypType > SMESHDS_Hypothesis::PARAM_ALGO)
-                       {
-                               switch (hypType)
-                               {
-                               case SMESHDS_Hypothesis::ALGO_1D:
-                                       algoDim = 1;
-                                       break;
-                               case SMESHDS_Hypothesis::ALGO_2D:
-                                       algoDim = 2;
-                                       break;
-                               case SMESHDS_Hypothesis::ALGO_3D:
-                                       algoDim = 3;
-                                       break;
-                               default:
-                                       algoDim = 0;
-                                       break;
-                               }
-                               //SCRUTE(algoDim);
-                               //SCRUTE(shapeDim);
-                               //SCRUTE(typeOfShape);
-                               if (shapeDim == algoDim)        // count only algos of shape dim.
-                               {                               // discard algos for subshapes
-                                       hypId = anHyp->GetID(); // (of lower dim.)
-                                       ASSERT(_mapAlgo.find(hypId) != _mapAlgo.end());
-                                       SMESH_Algo *anAlgo = _mapAlgo[hypId];
-                                       //SCRUTE(anAlgo->GetShapeType());
-                                       //if (anAlgo->GetShapeType() == typeOfShape)
-                                       if ((anAlgo->GetShapeType()) & (1 << typeOfShape))
-                                       {                       // only specific TopoDS_Shape
-                                               nb_algo++;
-                                               theHyp = anHyp;
-                                       }
-                               }
-                       }
-                       if (nb_algo > 1) return NULL;   // more than one algo
-                       it++;
-               }
-               if (nb_algo == 1)               // one algo found : OK
-                       break;                          // do not try a parent shape
-       }
 
 
-       if (!theHyp)
-               return NULL;                    // no algo found
+//=======================================================================
+//function : getAlgoId
+//purpose  : return algo ID or -1 if not found
+//=======================================================================
 
 
-       hypType = theHyp->GetType();
-       hypId = theHyp->GetID();
+static int getAlgo(const list<const SMESHDS_Hypothesis*>& theHypList,
+                   const int                              theAlgoDim,
+                   const int                              theAlgoShapeType)
+{
+  list<const SMESHDS_Hypothesis*>::const_iterator it = theHypList.begin();
+  
+  int nb_algo = 0;
+  int algo_id = -1;
+  
+  while (it!=theHypList.end())
+  {
+    const SMESH_Hypothesis *anHyp = static_cast< const SMESH_Hypothesis *>( *it );
+    if (anHyp->GetType() > SMESHDS_Hypothesis::PARAM_ALGO &&
+        anHyp->GetDim() == theAlgoDim &&
+        ((anHyp->GetShapeType()) & (1 << theAlgoShapeType)))
+    {
+      nb_algo++;
+      algo_id = anHyp->GetID();
+      break;
+    }
+    
+    //if (nb_algo > 1) return -1;      // more than one algo
+    it++;
+  }
+
+  return algo_id;
+}
+
+//=============================================================================
+/*!
+ * 
+ */
+//=============================================================================
 
 
-       ASSERT(_mapAlgo.find(hypId) != _mapAlgo.end());
-       algo = _mapAlgo[hypId];
-       //MESSAGE("Algo found " << algo->GetName() << " Id " << hypId);
-       return algo;
+SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
+{
+//  MESSAGE("SMESH_Gen::GetAlgo");
+
+  const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
+  int dim = GetShapeDim( aShape );
+  int shape_type = aShape.ShapeType();
+  int algo_id = -1;
+
+  algo_id = getAlgo( meshDS->GetHypothesis( aShape ), dim, shape_type );
+
+  if (algo_id < 0)
+  {
+    // try ansestors
+    TopTools_ListIteratorOfListOfShape ancIt( aMesh.GetAncestors( aShape ));
+    for (; ancIt.More(); ancIt.Next())
+    {
+      const TopoDS_Shape& ancestor = ancIt.Value();
+      algo_id = getAlgo( meshDS->GetHypothesis( ancestor ), dim, shape_type );
+      if ( algo_id >= 0 )
+        break;
+    }
+    if (algo_id < 0) return NULL;
+  }
+
+  ASSERT(_mapAlgo.find(algo_id) != _mapAlgo.end());
+
+  return _mapAlgo[algo_id];
+  
+//     const SMESHDS_Hypothesis *theHyp = NULL;
+//     SMESH_Algo *algo = NULL;
+//     const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
+//     int hypType;
+//     int hypId;
+//     int algoDim;
+
+//     // try shape first, then main shape
+
+//     TopoDS_Shape mainShape = meshDS->ShapeToMesh();
+//     const TopoDS_Shape *shapeToTry[2] = { &aShape, &mainShape };
+
+//     for (int iShape = 0; iShape < 2; iShape++)
+//     {
+//             TopoDS_Shape tryShape = (*shapeToTry[iShape]);
+
+//             const list<const SMESHDS_Hypothesis*>& listHyp =
+//                     meshDS->GetHypothesis(tryShape);
+//             list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
+               
+//             int nb_algo = 0;
+//             int shapeDim = GetShapeDim(aShape);
+//             int typeOfShape = aShape.ShapeType();
+
+//             while (it!=listHyp.end())
+//             {
+//                     const SMESHDS_Hypothesis *anHyp = *it;
+//                     hypType = anHyp->GetType();
+//                     //SCRUTE(hypType);
+//                     if (hypType > SMESHDS_Hypothesis::PARAM_ALGO)
+//                     {
+//                             switch (hypType)
+//                             {
+//                             case SMESHDS_Hypothesis::ALGO_1D:
+//                                     algoDim = 1;
+//                                     break;
+//                             case SMESHDS_Hypothesis::ALGO_2D:
+//                                     algoDim = 2;
+//                                     break;
+//                             case SMESHDS_Hypothesis::ALGO_3D:
+//                                     algoDim = 3;
+//                                     break;
+//                             default:
+//                                     algoDim = 0;
+//                                     break;
+//                             }
+//                             //SCRUTE(algoDim);
+//                             //SCRUTE(shapeDim);
+//                             //SCRUTE(typeOfShape);
+//                             if (shapeDim == algoDim)        // count only algos of shape dim.
+//                             {                               // discard algos for subshapes
+//                                     hypId = anHyp->GetID(); // (of lower dim.)
+//                                     ASSERT(_mapAlgo.find(hypId) != _mapAlgo.end());
+//                                     SMESH_Algo *anAlgo = _mapAlgo[hypId];
+//                                     //SCRUTE(anAlgo->GetShapeType());
+//                                     //if (anAlgo->GetShapeType() == typeOfShape)
+//                                     if ((anAlgo->GetShapeType()) & (1 << typeOfShape))
+//                                     {                       // only specific TopoDS_Shape
+//                                             nb_algo++;
+//                                             theHyp = anHyp;
+//                                     }
+//                             }
+//                     }
+//                     if (nb_algo > 1) return NULL;   // more than one algo
+//                     it++;
+//             }
+//             if (nb_algo == 1)               // one algo found : OK
+//                     break;                          // do not try a parent shape
+//     }
+
+//     if (!theHyp)
+//             return NULL;                    // no algo found
+
+//     hypType = theHyp->GetType();
+//     hypId = theHyp->GetID();
+
+//     ASSERT(_mapAlgo.find(hypId) != _mapAlgo.end());
+//     algo = _mapAlgo[hypId];
+//     //MESSAGE("Algo found " << algo->GetName() << " Id " << hypId);
+//     return algo;
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -374,16 +823,12 @@ const char *SMESH_Gen::LocalPersistentIDToIOR(const char *aLocalPersistentID)
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-int SMESH_Gen::GetShapeDim(const TopoDS_Shape & aShape)
+int SMESH_Gen::GetShapeDim(const TopAbs_ShapeEnum & aShapeType)
 {
        int shapeDim = -1;                      // Shape dimension: 0D, 1D, 2D, 3D
 {
        int shapeDim = -1;                      // Shape dimension: 0D, 1D, 2D, 3D
-       int type = aShape.ShapeType();
+       int type = aShapeType;//.ShapeType();
        switch (type)
        {
        switch (type)
        {
-//     case TopAbs_COMPOUND:
-//       {
-//  break;
-//       }
        case TopAbs_COMPOUND:
        case TopAbs_COMPSOLID:
        case TopAbs_SOLID:
        case TopAbs_COMPOUND:
        case TopAbs_COMPSOLID:
        case TopAbs_SOLID:
@@ -410,43 +855,17 @@ int SMESH_Gen::GetShapeDim(const TopoDS_Shape & aShape)
                break;
        }
        }
                break;
        }
        }
-//   SCRUTE(shapeDim);
        return shapeDim;
 }
 
        return shapeDim;
 }
 
-/**
- * Import a mesh from a file
- * @param fileName file name to be imported
- * @param fileType Currently it could be either "DAT", "UNV" or "MED".
- * @todo
+//=============================================================================
+/*!
+ *
  */
  */
-SMESH_Mesh * SMESH_Gen::Import(int studyId, const char * fileName,
-       const char * fileType)
-{
-       MESSAGE("SMESH_Gen::Import("<<studyId<<","<<fileName<<","<<fileType<<")");
-
-       // Get studyContext, create it if it does'nt exist, with a SMESHDS_Document
-       StudyContextStruct *myStudyContext = GetStudyContext(studyId);
-
-       // will be used with document
-       /*Document_Reader * reader = SMESHDriver::GetDocumentReader(string(fileType));
-       reader->SetDocument(myStudyContext->myDocument);
-       reader->SetFile(string(fileName));
-       reader->Read();*/
-       // currently we only read one mesh from a file (limitation on MED files).
+//=============================================================================
 
 
-       // create a new SMESH_mesh object 
-       SMESH_Mesh *mesh = new SMESH_Mesh(_localId++, studyId, this,
-               myStudyContext->myDocument);
-       myStudyContext->mapMesh[_localId] = mesh;
-       
-       Mesh_Reader * reader = SMESHDriver::GetMeshReader(string(fileType));
-       reader->SetMesh(mesh->GetMeshDS());
-       reader->SetFile(string(fileName));
-       reader->Read();
-       
-       mesh->GetMeshDS()->logFullUpdate();
-       
-       return mesh;
+int SMESH_Gen::GetANewId()
+{
+       //MESSAGE("SMESH_Gen::GetANewId");
+       return _hypId++;
 }
 }
-
index 27b4a8abc6f00c0d5c0b98d1322d3688d93c716c..3a01de04c4386bbb5d4436f6318d313d3b0e238a 100644 (file)
@@ -31,7 +31,6 @@
 
 #include "Utils_SALOME_Exception.hxx"
 
 
 #include "Utils_SALOME_Exception.hxx"
 
-#include "SMESH_HypothesisFactory.hxx"
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_Algo.hxx"
 #include "SMESH_1D_Algo.hxx"
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_Algo.hxx"
 #include "SMESH_1D_Algo.hxx"
@@ -55,43 +54,53 @@ typedef struct studyContextStruct
 
 class SMESH_Gen
 {
 
 class SMESH_Gen
 {
-  public:
-       SMESH_Gen();
-       ~SMESH_Gen();
-
-       SMESH_Hypothesis *CreateHypothesis(const char *anHyp, int studyId)
-               throw(SALOME_Exception);
-       SMESH_Mesh *Init(int studyId, const TopoDS_Shape & aShape, int meshID = -1)
-               throw(SALOME_Exception);
-       bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-               throw(SALOME_Exception);
-       StudyContextStruct *GetStudyContext(int studyId);
-
-       static int GetShapeDim(const TopoDS_Shape & aShape);
-       SMESH_Algo *GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
-       SMESH_Mesh *Import(int studyId, const char * fileName, const char * fileType);
-       // inherited methods from SALOMEDS::Driver
-
-       void Save(int studyId, const char *aUrlOfFile);
-       void Load(int studyId, const char *aUrlOfFile);
-       void Close(int studyId);
-       const char *ComponentDataType();
-
-       const char *IORToLocalPersistentID(const char *IORString, bool & IsAFile);
-       const char *LocalPersistentIDToIOR(const char *aLocalPersistentID);
-
-       SMESH_HypothesisFactory _hypothesisFactory;
-
-         map < int, SMESH_Algo * >_mapAlgo;
-         map < int, SMESH_1D_Algo * >_map1D_Algo;
-         map < int, SMESH_2D_Algo * >_map2D_Algo;
-         map < int, SMESH_3D_Algo * >_map3D_Algo;
-
-  private:
-       int _localId;                           // unique Id of created objects, within SMESH_Gen entity
-         map < int, StudyContextStruct * >_mapStudyContext;
-         map < int, SMESH_Hypothesis * >_mapHypothesis;
+ public:
+  SMESH_Gen();
+  ~SMESH_Gen();
+
+//  SMESH_Hypothesis *CreateHypothesis(const char *anHyp, int studyId)
+//    throw(SALOME_Exception);
+  SMESH_Mesh* CreateMesh(int studyId)
+    throw(SALOME_Exception);
+  bool Compute(::SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
+
+  bool CheckAlgoState(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape);
+  // notify on bad state of attached algos, return false
+  // if Compute() would fail because of some algo bad state
+
+
+  StudyContextStruct *GetStudyContext(int studyId);
+
+  static int GetShapeDim(const TopAbs_ShapeEnum & aShapeType);
+  static int GetShapeDim(const TopoDS_Shape & aShape)
+  { return GetShapeDim( aShape.ShapeType() ); }
+  SMESH_Algo* GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape);
+  static bool IsGlobalAlgo(const SMESH_Algo* theAlgo, SMESH_Mesh& aMesh);
+
+  // inherited methods from SALOMEDS::Driver
+
+  void Save(int studyId, const char *aUrlOfFile);
+  void Load(int studyId, const char *aUrlOfFile);
+  void Close(int studyId);
+  const char *ComponentDataType();
+
+  const char *IORToLocalPersistentID(const char *IORString, bool & IsAFile);
+  const char *LocalPersistentIDToIOR(const char *aLocalPersistentID);
+
+  int GetANewId();
+
+  map < int, SMESH_Algo * >_mapAlgo;
+  map < int, SMESH_1D_Algo * >_map1D_Algo;
+  map < int, SMESH_2D_Algo * >_map2D_Algo;
+  map < int, SMESH_3D_Algo * >_map3D_Algo;
+
+ private:
+
+  int _localId;                                // unique Id of created objects, within SMESH_Gen entity
+  map < int, StudyContextStruct * >_mapStudyContext;
+
+  // hypotheses managing
+  int _hypId;
 };
 
 #endif
 };
 
 #endif
diff --git a/src/SMESH/SMESH_Group.cxx b/src/SMESH/SMESH_Group.cxx
new file mode 100644 (file)
index 0000000..da29a29
--- /dev/null
@@ -0,0 +1,55 @@
+//  SMESH SMESH : implementaion of SMESH idl descriptions
+//
+//  Copyright (C) 2004  CEA
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+//
+//
+//
+//  File   : SMESH_Group.cxx
+//  Author : Michael Sazonov (OCC)
+//  Module : SMESH
+//  $Header$
+
+#include <SMESH_Group.hxx>
+#include <SMESH_Mesh.hxx>
+#include <SMESHDS_Group.hxx>
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESH_Group::SMESH_Group (const SMESH_Mesh*         theMesh,
+                          const SMDSAbs_ElementType theType,
+                          const char*               theName)
+     : myName(theName)
+{
+  myGroupDS = new SMESHDS_Group (const_cast<SMESH_Mesh*>(theMesh)->GetMeshDS(), theType);
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESH_Group::~SMESH_Group ()
+{
+  delete myGroupDS;
+}
diff --git a/src/SMESH/SMESH_Group.hxx b/src/SMESH/SMESH_Group.hxx
new file mode 100644 (file)
index 0000000..5147a44
--- /dev/null
@@ -0,0 +1,64 @@
+//  SMESH SMESH : implementaion of SMESH idl descriptions
+//
+//  Copyright (C) 2004  CEA
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+//
+//
+//
+//  File   : SMESH_Group.hxx
+//  Author : Michael Sazonov (OCC)
+//  Module : SMESH
+//  $Header$
+
+#ifndef _SMESH_Group_HeaderFile
+#define _SMESH_Group_HeaderFile
+
+#include <SMDSAbs_ElementType.hxx>
+#include <string>
+using namespace std;
+
+class SMESHDS_Group;
+class SMESH_Mesh;
+
+class SMESH_Group
+{
+ public:
+
+  SMESH_Group (const SMESH_Mesh*         theMesh,
+               const SMDSAbs_ElementType theType,
+               const char*               theName);
+  ~SMESH_Group ();
+
+  void SetName (const char* theName) { myName = theName; }
+
+  const char* GetName () const { return myName.c_str(); }
+
+  SMESHDS_Group * GetGroupDS () { return myGroupDS; }
+
+ private:
+  SMESH_Group (const SMESH_Group& theOther);
+  // prohibited copy constructor
+  SMESH_Group& operator = (const SMESH_Group& theOther);
+  // prohibited assign operator
+
+  SMESHDS_Group * myGroupDS;
+  string          myName;
+
+};
+
+#endif
diff --git a/src/SMESH/SMESH_Hexa_3D.cxx b/src/SMESH/SMESH_Hexa_3D.cxx
deleted file mode 100644 (file)
index 94c6ec4..0000000
+++ /dev/null
@@ -1,1029 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hexa_3D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_Hexa_3D.hxx"
-#include "SMESH_Quadrangle_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include <TopExp.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include <BRep_Tool.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <Handle_Geom2d_Curve.hxx>
-#include <Handle_Geom_Curve.hxx>
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Hexa_3D::SMESH_Hexa_3D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_3D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("SMESH_Hexa_3D::SMESH_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;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Hexa_3D::~SMESH_Hexa_3D()
-{
-       MESSAGE("SMESH_Hexa_3D::~SMESH_Hexa_3D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Hexa_3D::CheckHypothesis(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       MESSAGE("SMESH_Hexa_3D::CheckHypothesis");
-
-       bool isOk = true;
-
-       // nothing to check
-
-       return isOk;
-}
-
-//=============================================================================
-/*!
- * Hexahedron mesh on hexaedron like form
- * -0.  - shape and face mesh verification
- * -1.  - identify faces and vertices of the "cube"
- * -2.  - Algorithm from:
- * "Application de l'interpolation transfinie Ã  la création de maillages
- *  C0 ou G1 continus sur des triangles, quadrangles, tetraedres, pentaedres
- *  et hexaedres déformés."
- * Alain PERONNET - 8 janvier 1999
- */
-//=============================================================================
-
-bool SMESH_Hexa_3D::Compute(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)throw(SALOME_Exception)
-{
-       MESSAGE("SMESH_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 aShape = meshFaces[i]->GetSubShape();
-               SMESH_Algo *algo = _gen->GetAlgo(aMesh, aShape);
-               string algoName = algo->GetName();
-               if (algoName != "Quadrangle_2D")
-               {
-                       // *** delete _quads
-                       SCRUTE(algoName);
-                       ASSERT(0);
-                       return false;
-               }
-               SMESH_Quadrangle_2D *quadAlgo =
-                       dynamic_cast < SMESH_Quadrangle_2D * >(algo);
-               ASSERT(quadAlgo);
-               try
-               {
-                       _quads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aShape);
-                       // *** to delete after usage
-               }
-               catch(SALOME_Exception & S_ex)
-               {
-                       // *** delete _quads
-                       // *** throw exception
-                       ASSERT(0);
-               }
-       }
-
-       // 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;
-
-       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;
-
-       // 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, _cube.V000, MS);
-       ASSERT(!E_0Y0.IsNull());
-
-       TopoDS_Edge E_1Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V100, MS);
-       ASSERT(!E_1Y0.IsNull());
-
-       TopoDS_Edge E_1Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V101, MS);
-       ASSERT(!E_1Y1.IsNull());
-
-       TopoDS_Edge E_0Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.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(_cube.V000))
-               _cube.V010 = VLast;
-       else
-               _cube.V010 = VFirst;
-
-       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;
-
-       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_Y0->nbPts[0];
-       int nby = _cube.quad_Y0->nbPts[1];
-       int nbz;
-       if (cx0.a1 != 0)
-               nbz = _cube.quad_X0->nbPts[1];
-       else
-               nbz = _cube.quad_X0->nbPts[0];
-       //SCRUTE(nbx);
-       //SCRUTE(nby);
-       //SCRUTE(nbz);
-
-       //
-       // Adding NB To my point of vue that definition of nbx nby and nbz
-       // seems to be true (but maybe I am wrong). Of course any comments
-       // or other suggestions are welcome !!!!
-       //
-
-       nbx = _cube.quad_Z0->nbPts[0];
-       double det = cz0.a1*cz0.b2 - cz0.a2*cz0.b1;
-       if (cz0.a1 == 0.) nbx = _cube.quad_Z0->nbPts[1];
-
-       nby = _cube.quad_X0->nbPts[0];
-       det = cx0.a1*cx0.b2 - cx0.a2*cx0.b1;
-       if (cx0.a1 == 0.) nby = _cube.quad_X0->nbPts[1];
-
-       nbz = _cube.quad_Y0->nbPts[0];
-       det = cy0.a1*cy0.b2 - cy0.a2*cy0.b1;
-       if (cy0.a1 != 0.) nbz = _cube.quad_Y0->nbPts[1];
-
-       SCRUTE(nbx);
-       SCRUTE(nby);
-       SCRUTE(nbz);
-
-       int nbxyz = nbx * nby * nbz;
-       Point3DStruct *np = new Point3DStruct[nbxyz];
-
-       // 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];
-
-
-               SMDS_Iterator<const SMDS_MeshNode *> * itf=
-                       aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-                       
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                       const SMDS_FacePosition* fpos
-                               = static_cast<const SMDS_FacePosition*>(node->GetPosition());
-                       double ri = fpos->GetUParameter();
-                       double rj = fpos->GetVParameter();
-                       int i1 = int (ri);
-                       int j1 = int (rj);
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-               delete itf;
-
-               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);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX1]->GetSubShape());
-
-               SMDS_Iterator<const SMDS_MeshNode *> * itf=
-                       aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               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];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                       const SMDS_FacePosition* fpos
-                               = static_cast<const SMDS_FacePosition*>(node->GetPosition());
-                       double ri = fpos->GetUParameter();
-                       double rj = fpos->GetVParameter();
-                       int i1 = int (ri);
-                       int j1 = int (rj);
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-               delete itf;
-
-               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);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY0]->GetSubShape());
-
-               SMDS_Iterator<const SMDS_MeshNode *> * itf=
-                       aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_Y0;
-               int j = 0;                              // i = x/face , k = y/face
-               int nbdown = quad->nbPts[0];
-               int nbright = quad->nbPts[1];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                       const SMDS_FacePosition * fpos
-                               = static_cast<const SMDS_FacePosition*>(node->GetPosition());
-                       double ri = fpos->GetUParameter();
-                       double rj = fpos->GetVParameter();
-                       int i1 = int (ri);
-                       int j1 = int (rj);
-                       int ij1 = j1 * nbdown + i1;
-                       quad->uv_grid[ij1].node = node;
-               }
-               delete itf;
-
-               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);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY1]->GetSubShape());
-
-               SMDS_Iterator<const SMDS_MeshNode *> * itf=
-                       aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               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];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                       const SMDS_FacePosition* fpos =
-                               static_cast<const SMDS_FacePosition *>(node->GetPosition());
-                       double ri = fpos->GetUParameter();
-                       double rj = fpos->GetVParameter();
-                       int i1 = int (ri);
-                       int j1 = int (rj);
-                       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 = 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);
-                       }
-       }
-
-       {
-               const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ0]->GetSubShape());
-
-               SMDS_Iterator<const SMDS_MeshNode *> * itf=
-                       aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               faceQuadStruct *quad = _cube.quad_Z0;
-               int k = 0;                              // 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();
-                       const SMDS_FacePosition * fpos
-                               = static_cast<const SMDS_FacePosition*>(node->GetPosition());
-                       double ri = fpos->GetUParameter();
-                       double rj = fpos->GetVParameter();
-                       int i1 = int (ri);
-                       int j1 = int (rj);
-                       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 = 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_Iterator<const SMDS_MeshNode *> * itf=
-                       aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes();
-
-               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];
-
-               while(itf->more())
-               {
-                       const SMDS_MeshNode * node = itf->next();
-                       const SMDS_FacePosition* fpos
-                               = static_cast<const SMDS_FacePosition*>(node->GetPosition());
-                       double ri = fpos->GetUParameter();
-                       double rj = fpos->GetVParameter();
-                       int i1 = int (ri);
-                       int j1 = int (rj);
-                       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);
-                       }
-       }
-
-       // 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
-
-       TopoDS_Shell aShell;
-       TopExp_Explorer exp(aShape, TopAbs_SHELL);
-       if (exp.More())
-       {
-               aShell = TopoDS::Shell(exp.Current());
-       }
-       else
-       {
-               MESSAGE("no shell...");
-               ASSERT(0);
-       }
-
-       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, TopoDS::Solid(aShape));
-                               meshDS->SetNodeInVolume(node, aShell);
-                       }
-               }
-       }
-
-       //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++)
-                       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;
-
-//    MESSAGE(" "<<n1<<" "<<n2<<" "<<n3<<" "<<n4<<" "<<n5<<" "<<n6<<" "<<n7<<" "<<n8);
-                               //MESSAGE(" "<<np[n1].nodeId<<" "<<np[n2].nodeId<<" "<<np[n3].nodeId<<" "<<np[n4].nodeId<<" "<<np[n5].nodeId<<" "<<np[n6].nodeId<<" "<<np[n7].nodeId<<" "<<np[n8].nodeId);
-
-                               SMDS_MeshVolume * 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);
-                                ;
-                               meshDS->SetMeshElementOnShape(elt, aShell);
-
-                               // *** 5 tetrahedres ... verifier orientations,
-                               //     mettre en coherence &vec quadrangles-> triangles
-                               //     choisir afficher 1 parmi edges, face et volumes
-//    int tetra1 = meshDS->AddVolume(np[n1].nodeId,
-//                   np[n2].nodeId,
-//                   np[n4].nodeId,
-//                   np[n5].nodeId);
-//    int tetra2 = meshDS->AddVolume(np[n2].nodeId,
-//                   np[n3].nodeId,
-//                   np[n4].nodeId,
-//                   np[n7].nodeId);
-//    int tetra3 = meshDS->AddVolume(np[n5].nodeId,
-//                   np[n6].nodeId,
-//                   np[n7].nodeId,
-//                   np[n2].nodeId);
-//    int tetra4 = meshDS->AddVolume(np[n5].nodeId,
-//                   np[n7].nodeId,
-//                   np[n8].nodeId,
-//                   np[n4].nodeId);
-//    int tetra5 = meshDS->AddVolume(np[n5].nodeId,
-//                   np[n7].nodeId,
-//                   np[n2].nodeId,
-//                   np[n4].nodeId);
-
-                       }
-
-       MESSAGE("End of SMESH_Hexa_3D::Compute()");
-       return true;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Hexa_3D::GetPoint(Pt3 p, int i, int j, int k, int nbx, int nby,
-       int nbz, Point3DStruct * np, const SMESHDS_Mesh * meshDS)
-{
-       int ijk = k * nbx * nby + j * nbx + i;
-       const SMDS_MeshNode * node = np[ijk].node;
-       p[0] = node->X();
-       p[1] = node->Y();
-       p[2] = node->Z();
-       //MESSAGE(" "<<i<<" "<<j<<" "<<k<<" "<<p[0]<<" "<<p[1]<<" "<<p[2]);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESH_Hexa_3D::GetFaceIndex(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape,
-       const vector < SMESH_subMesh * >&meshFaces,
-       const TopoDS_Vertex & V0,
-       const TopoDS_Vertex & V1,
-       const TopoDS_Vertex & V2, const TopoDS_Vertex & V3)
-{
-       MESSAGE("SMESH_Hexa_3D::GetFaceIndex");
-       int faceIndex = -1;
-       for (int i = 1; i < 6; i++)
-       {
-               const TopoDS_Shape & aFace = meshFaces[i]->GetSubShape();
-               //const TopoDS_Face& F = TopoDS::Face(aFace);
-               TopTools_IndexedMapOfShape M;
-               TopExp::MapShapes(aFace, TopAbs_VERTEX, M);
-               bool verticesInShape = false;
-               if (M.Contains(V0))
-                       if (M.Contains(V1))
-                               if (M.Contains(V2))
-                                       if (M.Contains(V3))
-                                               verticesInShape = true;
-               if (verticesInShape)
-               {
-                       faceIndex = i;
-                       break;
-               }
-       }
-       ASSERT(faceIndex > 0);
-       SCRUTE(faceIndex);
-       return faceIndex;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-TopoDS_Edge
-       SMESH_Hexa_3D::EdgeNotInFace(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape,
-       const TopoDS_Face & aFace,
-       const TopoDS_Vertex & aVertex,
-       const TopTools_IndexedDataMapOfShapeListOfShape & MS)
-{
-       MESSAGE("SMESH_Hexa_3D::EdgeNotInFace");
-       TopTools_IndexedDataMapOfShapeListOfShape MF;
-       TopExp::MapShapesAndAncestors(aFace, TopAbs_VERTEX, TopAbs_EDGE, MF);
-       const TopTools_ListOfShape & ancestorsInSolid = MS.FindFromKey(aVertex);
-       const TopTools_ListOfShape & ancestorsInFace = MF.FindFromKey(aVertex);
-       SCRUTE(ancestorsInSolid.Extent());
-       SCRUTE(ancestorsInFace.Extent());
-       ASSERT(ancestorsInSolid.Extent() == 6); // 6 (edges doublees)
-       ASSERT(ancestorsInFace.Extent() == 2);
-
-       TopoDS_Edge E;
-       E.Nullify();
-       TopTools_ListIteratorOfListOfShape its(ancestorsInSolid);
-       for (; its.More(); its.Next())
-       {
-               TopoDS_Shape ancestor = its.Value();
-               TopTools_ListIteratorOfListOfShape itf(ancestorsInFace);
-               bool isInFace = false;
-               for (; itf.More(); itf.Next())
-               {
-                       TopoDS_Shape ancestorInFace = itf.Value();
-                       if (ancestorInFace.IsSame(ancestor))
-                       {
-                               isInFace = true;
-                               break;
-                       }
-               }
-               if (!isInFace)
-               {
-                       E = TopoDS::Edge(ancestor);
-                       break;
-               }
-       }
-       return E;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Hexa_3D::GetConv2DCoefs(const faceQuadStruct & quad,
-       const TopoDS_Shape & aShape,
-       const TopoDS_Vertex & V0,
-       const TopoDS_Vertex & V1,
-       const TopoDS_Vertex & V2, const TopoDS_Vertex & V3, Conv2DStruct & conv)
-{
-       MESSAGE("SMESH_Hexa_3D::GetConv2DCoefs");
-       const TopoDS_Face & F = TopoDS::Face(aShape);
-       TopoDS_Edge E = quad.edge[0];
-       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) * (quad.last[0] - quad.first[0])) > 0);
-       TopoDS_Vertex VA, VB;
-       if (isForward)
-       {
-               VA = VFirst;
-               VB = VLast;
-       }
-       else
-       {
-               VA = VLast;
-               VB = VFirst;
-       }
-       int a1, b1, c1, a2, b2, c2;
-       if (VA.IsSame(V0))
-               if (VB.IsSame(V1))
-               {
-                       a1 = 1;
-                       b1 = 0;
-                       c1 = 0;                         // x
-                       a2 = 0;
-                       b2 = 1;
-                       c2 = 0;                         // y
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V3));
-                       a1 = 0;
-                       b1 = 1;
-                       c1 = 0;                         // y
-                       a2 = 1;
-                       b2 = 0;
-                       c2 = 0;                         // x
-               }
-       if (VA.IsSame(V1))
-               if (VB.IsSame(V2))
-               {
-                       a1 = 0;
-                       b1 = -1;
-                       c1 = 1;                         // 1-y
-                       a2 = 1;
-                       b2 = 0;
-                       c2 = 0;                         // x
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V0));
-                       a1 = -1;
-                       b1 = 0;
-                       c1 = 1;                         // 1-x
-                       a2 = 0;
-                       b2 = 1;
-                       c2 = 0;                         // y
-               }
-       if (VA.IsSame(V2))
-               if (VB.IsSame(V3))
-               {
-                       a1 = -1;
-                       b1 = 0;
-                       c1 = 1;                         // 1-x
-                       a2 = 0;
-                       b2 = -1;
-                       c2 = 1;                         // 1-y
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V1));
-                       a1 = 0;
-                       b1 = -1;
-                       c1 = 1;                         // 1-y
-                       a2 = -1;
-                       b2 = 0;
-                       c2 = 1;                         // 1-x
-               }
-       if (VA.IsSame(V3))
-               if (VB.IsSame(V0))
-               {
-                       a1 = 0;
-                       b1 = 1;
-                       c1 = 0;                         // y
-                       a2 = -1;
-                       b2 = 0;
-                       c2 = 1;                         // 1-x
-               }
-               else
-               {
-                       ASSERT(VB.IsSame(V2));
-                       a1 = 1;
-                       b1 = 0;
-                       c1 = 0;                         // x
-                       a2 = 0;
-                       b2 = -1;
-                       c2 = 1;                         // 1-y
-               }
-       MESSAGE("X = " << c1 << "+ " << a1 << "*x + " << b1 << "*y");
-       MESSAGE("Y = " << c2 << "+ " << a2 << "*x + " << b2 << "*y");
-       conv.a1 = a1;
-       conv.b1 = b1;
-       conv.c1 = c1;
-       conv.a2 = a2;
-       conv.b2 = b2;
-       conv.c2 = c2;
-
-       int nbdown = quad.nbPts[0];
-       int nbright = quad.nbPts[1];
-       conv.ia = int (a1);
-       conv.ib = int (b1);
-       conv.ic =
-               int (c1 * a1 * a1) * (nbdown - 1) + int (c1 * b1 * b1) * (nbright - 1);
-       conv.ja = int (a2);
-       conv.jb = int (b2);
-       conv.jc =
-               int (c2 * a2 * a2) * (nbdown - 1) + int (c2 * b2 * b2) * (nbright - 1);
-       MESSAGE("I " << conv.ia << " " << conv.ib << " " << conv.ic);
-       MESSAGE("J " << conv.ja << " " << conv.jb << " " << conv.jc);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_Hexa_3D::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_Hexa_3D::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_Hexa_3D & hyp)
-{
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_Hexa_3D & hyp)
-{
-       return load;
-}
diff --git a/src/SMESH/SMESH_Hexa_3D.hxx b/src/SMESH/SMESH_Hexa_3D.hxx
deleted file mode 100644 (file)
index 0aa874c..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Hexa_3D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HEXA_3D_HXX_
-#define _SMESH_HEXA_3D_HXX_
-
-#include "SMESH_3D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_Quadrangle_2D.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-typedef struct point3Dstruct
-{
-       const SMDS_MeshNode * node;
-} Point3DStruct;
-
-typedef double Pt3[3];
-
-typedef struct conv2dstruct
-{
-  double a1; // X = a1*x + b1*y + c1 
-  double b1; // Y = a2*x + b2*y + c2
-  double c1; // a1, b1 a2, b2 in {-1,0,1}
-  double a2; // c1, c2 in {0,1}
-  double b2;
-  double c2;
-  int ia;    // I = ia*i + ib*j + ic
-  int ib;
-  int ic;
-  int ja;    // J = ja*i + jb*j + jc
-  int jb;
-  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 SMESH_Hexa_3D:
-  public SMESH_3D_Algo
-{
-public:
-  SMESH_Hexa_3D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_Hexa_3D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                              const TopoDS_Shape& aShape);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_Hexa_3D & hyp);
-  friend istream & operator >> (istream & load, SMESH_Hexa_3D & hyp);
-
-protected:
-  TopoDS_Edge
-  EdgeNotInFace(SMESH_Mesh& aMesh,
-               const TopoDS_Shape& aShape,
-               const TopoDS_Face& aFace,
-               const TopoDS_Vertex& aVertex,
-               const TopTools_IndexedDataMapOfShapeListOfShape& MS);
-
-  int GetFaceIndex(SMESH_Mesh& aMesh,
-                  const TopoDS_Shape& aShape,
-                  const vector<SMESH_subMesh*>& meshFaces,
-                  const TopoDS_Vertex& V0,
-                  const TopoDS_Vertex& V1,
-                  const TopoDS_Vertex& V2,
-                  const TopoDS_Vertex& V3);
-
-  void GetConv2DCoefs(const faceQuadStruct& quad,
-                     const TopoDS_Shape& aShape,
-                     const TopoDS_Vertex& V0,
-                     const TopoDS_Vertex& V1,
-                     const TopoDS_Vertex& V2,
-                     const TopoDS_Vertex& V3,
-                     Conv2DStruct& conv);
-
-  void GetPoint(Pt3 p,
-               int i, int j, int k,
-               int nbx, int nby, int nbz,
-               Point3DStruct *np,
-               const SMESHDS_Mesh* meshDS);
-
-  CubeStruct _cube;
-  FaceQuadStruct* _quads[6];
-  int _indX0;
-  int _indX1;
-  int _indY0;
-  int _indY1;
-  int _indZ0;
-  int _indZ1;
-};
-
-#endif
index 0d61a5f52eefc1db745c75da57e40b73786ec04c..dac1ee3257cf680cbc9e4fe2878022d99001dd89 100644 (file)
@@ -48,8 +48,8 @@ SMESH_Hypothesis::SMESH_Hypothesis(int hypId,
   StudyContextStruct* myStudyContext = _gen->GetStudyContext(_studyId);
   myStudyContext->mapHypothesis[_hypId] = this;
   _type = PARAM_ALGO;
   StudyContextStruct* myStudyContext = _gen->GetStudyContext(_studyId);
   myStudyContext->mapHypothesis[_hypId] = this;
   _type = PARAM_ALGO;
-//   _shapeType = -1; // to be set by algo with TopAbs_Enum
   _shapeType = 0; // to be set by algo with TopAbs_Enum
   _shapeType = 0; // to be set by algo with TopAbs_Enum
+  _param_algo_dim = -1; // to be set by algo parameter
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -69,7 +69,7 @@ SMESH_Hypothesis::~SMESH_Hypothesis()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-int SMESH_Hypothesis::GetDim()
+int SMESH_Hypothesis::GetDim() const
 {
   int dim = -1;
   switch (_type)
 {
   int dim = -1;
   switch (_type)
@@ -77,6 +77,7 @@ int SMESH_Hypothesis::GetDim()
     case ALGO_1D: dim = 1; break;
     case ALGO_2D: dim = 2; break;
     case ALGO_3D: dim = 3; break;
     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;
     }
   return dim;
 }
     }
   return dim;
 }
@@ -87,7 +88,7 @@ int SMESH_Hypothesis::GetDim()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-int SMESH_Hypothesis::GetShapeType()
+int SMESH_Hypothesis::GetShapeType() const
 {
   return _shapeType;
 }
 {
   return _shapeType;
 }
@@ -98,7 +99,7 @@ int SMESH_Hypothesis::GetShapeType()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-int SMESH_Hypothesis::GetStudyId()
+int SMESH_Hypothesis::GetStudyId() const
 {
   return _studyId;
 }
 {
   return _studyId;
 }
@@ -133,3 +134,28 @@ void SMESH_Hypothesis::NotifySubMeshesHypothesisModification()
     }
 }
 
     }
 }
 
+//=============================================================================
+/*!
+ * 
+ */
+//=============================================================================
+
+const char* SMESH_Hypothesis::GetLibName() const
+{
+//   MESSAGE("SMESHDS_Hypothesis::GetLibName");
+//   SCRUTE(_LibName);
+//   SCRUTE(&_LibName);
+  return _libName.c_str();
+}
+
+//=============================================================================
+/*!
+ * 
+ */
+//=============================================================================
+
+void SMESH_Hypothesis::SetLibName(const char* theLibName)
+{
+//   MESSAGE("SMESHDS_Hypothesis::SetLibName");
+  _libName = string(theLibName);
+}
index edcfeba065f686df9f07cdf206e56787c1724d7b..9fcea7b251bda25357683ae1d1568483db93ec58 100644 (file)
@@ -36,17 +36,39 @@ class SMESH_Gen;
 class SMESH_Hypothesis: public SMESHDS_Hypothesis
 {
 public:
 class SMESH_Hypothesis: public SMESHDS_Hypothesis
 {
 public:
+  enum Hypothesis_Status // in the order of severity
+  {
+    HYP_OK,
+    HYP_MISSING,      // algo misses a hypothesis
+    HYP_CONCURENT,    // several applicable hypotheses
+    HYP_BAD_PARAMETER,// hypothesis has a bad parameter value
+    HYP_UNKNOWN_FATAL,//  --- all statuses below should be considered as fatal
+                      //      for Add/RemoveHypothesis operations
+    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
+  };
+  static bool IsStatusFatal(Hypothesis_Status theStatus)
+  { return theStatus >= HYP_UNKNOWN_FATAL; }
+
   SMESH_Hypothesis(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~SMESH_Hypothesis();
   SMESH_Hypothesis(int hypId, int studyId, SMESH_Gen* gen);
   virtual ~SMESH_Hypothesis();
-  int GetDim();
-  int GetStudyId();
+  int GetDim() const;
+  int GetStudyId() const;
   void NotifySubMeshesHypothesisModification();
   void NotifySubMeshesHypothesisModification();
-  int GetShapeType();
+  int GetShapeType() const;
+  const char* GetLibName() const;
+  void  SetLibName(const char* theLibName);
 
 protected:
   SMESH_Gen* _gen;
   int _studyId;
   int _shapeType;
 
 protected:
   SMESH_Gen* _gen;
   int _studyId;
   int _shapeType;
+  int _param_algo_dim;
+
+private:
+  string _libName;
 };
 
 #endif
 };
 
 #endif
diff --git a/src/SMESH/SMESH_HypothesisCreator.hxx b/src/SMESH/SMESH_HypothesisCreator.hxx
deleted file mode 100644 (file)
index 32d4448..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_HypothesisCreator.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HYPOTHESISCREATOR_HXX_
-#define _SMESH_HYPOTHESISCREATOR_HXX_
-
-#include  "SMESH_HypothesisFactory.hxx"
-
-class SMESH_gen;
-
-//=============================================================================
-/*!
- * Specific Hypothesis Creators are generated with a template which inherits a
- * generic hypothesis creator. Each creator returns an hypothesis of the type
- * given in the template. 
- */
-//=============================================================================
-
-template <class T> class SMESH_HypothesisCreator
-  : public GenericHypothesisCreator
-{
-public:
-//   map<int, T*> _instances;
-
-//   virtual T* GetInstance(int hypId)
-//   {
-//     if (_instances.find(hypId) != _instances.end())
-//       return _instances[hypId];
-//     else
-//       return NULL;
-//   }
-
-  virtual T* Create (int hypId, int studyId, SMESH_Gen* gen)
-  {
-    T* anInstance=  new T(hypId, studyId, gen);
-//     _gen->StoreHypothesisInstance(anInstance);
-//     _instances[hypId] = anInstance;
-    return anInstance;
-  };
-};
-
-
-#endif
diff --git a/src/SMESH/SMESH_HypothesisFactory.cxx b/src/SMESH/SMESH_HypothesisFactory.cxx
deleted file mode 100644 (file)
index 1373fae..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_HypothesisFactory.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-using namespace std;
-#include "SMESH_HypothesisFactory.hxx"
-#include "SMESH_Hypothesis.hxx"
-#include "SMESH_HypothesisCreator.hxx"
-#include "SMESH_Gen.hxx"
-
-#include "utilities.h"
-
-// Add new hypothesis here (include file)
-//---------------------------------------
-#include "SMESH_LocalLength.hxx"
-#include "SMESH_LengthFromEdges.hxx"
-#include "SMESH_NumberOfSegments.hxx"
-#include "SMESH_MaxElementArea.hxx"
-#include "SMESH_MaxElementVolume.hxx"
-#include "SMESH_Regular_1D.hxx"
-#include "SMESH_MEFISTO_2D.hxx"
-#include "SMESH_Quadrangle_2D.hxx"
-#include "SMESH_Hexa_3D.hxx"
-#ifdef HAVE_NETGEN
-#include "SMESH_NETGEN_3D.hxx"
-#endif
-//---------------------------------------
-
-//=============================================================================
-/*!
- * Specific Hypothesis Creators are generated with a template which inherits a
- * generic hypothesis creator. Each creator returns an hypothesis of the type
- * given in the template. 
- */
-//=============================================================================
-
-// template <class T> class HypothesisCreator: public GenericHypothesisCreator
-// {
-// public:
-//   virtual T* Create (int hypId)
-//   {
-// //     return new T(hypId);
-//   };
-
-// };
-
-//=============================================================================
-/*!
- * Constructor: instanciate specific hypothesis creators, fill a private map
- * indexed by hypothesis names. THIS METHOD MUST BE COMPLETED WHEN A NEW
- * HYPOTHESIS IS ADDED. 
- * Specific hypothesis creator are defined with the above template.
- * Hypothesis names are related to the corresponding class names:
- * prefix = SMESH_ ; suffix = .
- */
-//=============================================================================
-
-SMESH_HypothesisFactory::SMESH_HypothesisFactory()
-{
-  _hypId = 0;
-
-// Add new hypothesis here (creators)
-//---------------------------------------
-_creatorMap["LocalLength"] = new SMESH_HypothesisCreator<SMESH_LocalLength>;
-_creatorMap["NumberOfSegments"] = new SMESH_HypothesisCreator<SMESH_NumberOfSegments>;
-_creatorMap["LengthFromEdges"] = new SMESH_HypothesisCreator<SMESH_LengthFromEdges>;
-_creatorMap["MaxElementArea"] = new SMESH_HypothesisCreator<SMESH_MaxElementArea>;
-_creatorMap["MaxElementVolume"] = new SMESH_HypothesisCreator<SMESH_MaxElementVolume>;
-_creatorMap["Regular_1D"] = new SMESH_HypothesisCreator<SMESH_Regular_1D>;
-_creatorMap["MEFISTO_2D"] = new SMESH_HypothesisCreator<SMESH_MEFISTO_2D>;
-_creatorMap["Quadrangle_2D"] = new SMESH_HypothesisCreator<SMESH_Quadrangle_2D>;
-_creatorMap["Hexa_3D"] = new SMESH_HypothesisCreator<SMESH_Hexa_3D>;
-#ifdef HAVE_NETGEN
-_creatorMap["NETGEN_3D"] = new SMESH_HypothesisCreator<SMESH_NETGEN_3D>;
-#endif
-//---------------------------------------
-}
-
-//=============================================================================
-/*!
- * Destructor: deletes specific hypothesis creators instanciated in the
- * constructor.
- */
-//=============================================================================
-
-SMESH_HypothesisFactory::~SMESH_HypothesisFactory()
-{
-  map<string, GenericHypothesisCreator*>::iterator it;
-  for (it = _creatorMap.begin(); it !=  _creatorMap.end(); it++)
-    {
-      delete (*it).second;
-    }
-  _creatorMap.clear();
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-SMESH_Hypothesis* SMESH_HypothesisFactory::Create(const char* anHypName,
-                                                 int studyId)
-  throw (SALOME_Exception)
-{
-  MESSAGE("SMESH_HypothesisFactory::Create " << anHypName);
-  if (_creatorMap.find(anHypName) == _creatorMap.end())
-    throw(SALOME_Exception(LOCALIZED("bad hypothesis type name")));
-  SMESH_Hypothesis* myHyp = _creatorMap[anHypName]->Create(_hypId++,
-                                                          studyId,
-                                                          _gen);
-  return myHyp;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-GenericHypothesisCreator*
-SMESH_HypothesisFactory::GetCreator(const char* anHypName)
-  throw (SALOME_Exception)
-{
-  MESSAGE("SMESH_HypothesisFactory::GetCreator " << anHypName);
-  if (_creatorMap.find(anHypName) == _creatorMap.end())
-    throw(SALOME_Exception(LOCALIZED("bad hypothesis type name")));
-  return _creatorMap[anHypName];
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-int SMESH_HypothesisFactory::GetANewId()
-{
-  //MESSAGE("SMESH_HypothesisFactory::GetANewId");
-  return _hypId++;
-}
-
-//=============================================================================
-/*!
- *
- */
-//=============================================================================
-
-void SMESH_HypothesisFactory::SetGen(SMESH_Gen* gen)
-{
-  //MESSAGE("SMESH_HypothesisFactory::SetGen");
-  _gen = gen;
-}
-
diff --git a/src/SMESH/SMESH_HypothesisFactory.hxx b/src/SMESH/SMESH_HypothesisFactory.hxx
deleted file mode 100644 (file)
index 9e4121c..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_HypothesisFactory.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_HYPOTHESISFACTORY_HXX_
-#define _SMESH_HYPOTHESISFACTORY_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-
-#include "Utils_SALOME_Exception.hxx"
-
-#include <map>
-
-class SMESH_Gen;
-
-class GenericHypothesisCreator
-{
-public:
-//   virtual SMESH_Hypothesis* GetInstance(int hypId) = 0;
-  virtual SMESH_Hypothesis* Create(int hypId, int studyId, SMESH_Gen* gen) = 0;
-};
-
-class SMESH_HypothesisFactory
-{
-public:
-  SMESH_HypothesisFactory();
-  virtual ~SMESH_HypothesisFactory();
-
-  void SetGen(SMESH_Gen* gen);
-
-  SMESH_Hypothesis* Create(const char* anHypName, int studyId)
-    throw (SALOME_Exception);
-
-  GenericHypothesisCreator* GetCreator(const char* anHypName)
-    throw (SALOME_Exception);
-
-  int GetANewId();
-
-private:
-  map<string, GenericHypothesisCreator*> _creatorMap;
-  int _hypId;
-  SMESH_Gen* _gen;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_LengthFromEdges.cxx b/src/SMESH/SMESH_LengthFromEdges.cxx
deleted file mode 100644 (file)
index cccfa55..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_LengthFromEdges.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-using namespace std;
-#include "SMESH_LengthFromEdges.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_LengthFromEdges::SMESH_LengthFromEdges(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _mode =1;
-  _name = "LengthFromEdges";
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_LengthFromEdges::~SMESH_LengthFromEdges()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_LengthFromEdges::SetMode(int mode)
-  throw (SALOME_Exception)
-{
-  int oldMode = _mode;
-  if (mode <= 0) 
-    throw SALOME_Exception(LOCALIZED("mode must be positive"));
-  _mode = mode;
-  if (oldMode != _mode)
-    NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESH_LengthFromEdges::GetMode()
-{
-  return _mode;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_LengthFromEdges::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_LengthFromEdges::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, SMESH_LengthFromEdges & hyp)
-{
-  save << hyp._mode;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, SMESH_LengthFromEdges & hyp)
-{
-  bool isOK = true;
-  int a;
-  isOK = (load >> a);
-  if (isOK) hyp._mode = a;
-  else load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
diff --git a/src/SMESH/SMESH_LengthFromEdges.hxx b/src/SMESH/SMESH_LengthFromEdges.hxx
deleted file mode 100644 (file)
index 41890e0..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_LengthFromEdges.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_LENGTHFROMEDGES_HXX_
-#define _SMESH_LENGTHFROMEDGES_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMESH_LengthFromEdges:
-  public SMESH_Hypothesis
-{
-public:
-  SMESH_LengthFromEdges(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_LengthFromEdges();
-
-  void SetMode(int mode)
-    throw (SALOME_Exception);
-
-  int GetMode();
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_LengthFromEdges & hyp);
-  friend istream & operator >> (istream & load, SMESH_LengthFromEdges & hyp);
-
-protected:
-  int _mode;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_LocalLength.cxx b/src/SMESH/SMESH_LocalLength.cxx
deleted file mode 100644 (file)
index 410ff1d..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_LocalLength.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-using namespace std;
-#include "SMESH_LocalLength.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_LocalLength::SMESH_LocalLength(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen)
-{
-       _length = 1.;
-       _name = "LocalLength";
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_LocalLength::~SMESH_LocalLength()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_LocalLength::SetLength(double length) throw(SALOME_Exception)
-{
-       double oldLength = _length;
-       if (length <= 0)
-               throw SALOME_Exception(LOCALIZED("length must be positive"));
-       _length = length;
-       if (oldLength != _length)
-               NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double SMESH_LocalLength::GetLength() const
-{
-       return _length;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_LocalLength::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_LocalLength::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_LocalLength & hyp)
-{
-       save << hyp._length;
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_LocalLength & hyp)
-{
-       bool isOK = true;
-       double a;
-       isOK = (load >> a);
-       if (isOK)
-               hyp._length = a;
-       else
-               load.clear(ios::badbit | load.rdstate());
-       return load;
-}
diff --git a/src/SMESH/SMESH_LocalLength.hxx b/src/SMESH/SMESH_LocalLength.hxx
deleted file mode 100644 (file)
index 7cb4725..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_LocalLength.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_LOCALLENGTH_HXX_
-#define _SMESH_LOCALLENGTH_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMESH_LocalLength:public SMESH_Hypothesis
-{
-  public:
-       SMESH_LocalLength(int hypId, int studyId, SMESH_Gen * gen);
-         virtual ~ SMESH_LocalLength();
-
-       void SetLength(double length) throw(SALOME_Exception);
-
-       double GetLength() const;
-
-       virtual ostream & SaveTo(ostream & save);
-       virtual istream & LoadFrom(istream & load);
-       friend ostream & operator <<(ostream & save, SMESH_LocalLength & hyp);
-       friend istream & operator >>(istream & load, SMESH_LocalLength & hyp);
-
-  protected:
-       double _length;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_MEFISTO_2D.cxx b/src/SMESH/SMESH_MEFISTO_2D.cxx
deleted file mode 100644 (file)
index 88257be..0000000
+++ /dev/null
@@ -1,634 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEFISTO_2D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_MEFISTO_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMESH_MaxElementArea.hxx"
-#include "SMESH_LengthFromEdges.hxx"
-
-#include "Rn.h"
-#include "aptrte.h"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include "utilities.h"
-
-#include <TopoDS_Face.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Shape.hxx>
-#include <Geom_Surface.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <gp_Pnt2d.hxx>
-#include <BRep_Tool.hxx>
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-#include <GCPnts_AbscissaPoint.hxx>
-#include <GCPnts_UniformAbscissa.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include <string>
-#include <algorithm>
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_MEFISTO_2D::SMESH_MEFISTO_2D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("SMESH_MEFISTO_2D::SMESH_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;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_MEFISTO_2D::~SMESH_MEFISTO_2D()
-{
-       MESSAGE("SMESH_MEFISTO_2D::~SMESH_MEFISTO_2D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_MEFISTO_2D::CheckHypothesis(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       //MESSAGE("SMESH_MEFISTO_2D::CheckHypothesis");
-
-       _hypMaxElementArea = NULL;
-       _hypLengthFromEdges = NULL;
-
-       list <const SMESHDS_Hypothesis * >::const_iterator itl;
-       const SMESHDS_Hypothesis *theHyp;
-
-       const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
-       int nbHyp = hyps.size();
-       if (nbHyp != 1) return false;// only one compatible hypothesis allowed
-
-       itl = hyps.begin();
-       theHyp = (*itl);
-
-       string hypName = theHyp->GetName();
-       int hypId = theHyp->GetID();
-       //SCRUTE(hypName);
-
-       bool isOk = false;
-
-       if (hypName == "MaxElementArea")
-       {
-               _hypMaxElementArea = static_cast<const SMESH_MaxElementArea *>(theHyp);
-               ASSERT(_hypMaxElementArea);
-               _maxElementArea = _hypMaxElementArea->GetMaxArea();
-               _edgeLength = 0;
-               isOk = true;
-       }
-
-       if (hypName == "LengthFromEdges")
-       {
-               _hypLengthFromEdges = static_cast<const SMESH_LengthFromEdges *>(theHyp);
-               ASSERT(_hypLengthFromEdges);
-               _edgeLength = 0;
-               _maxElementArea = 0;
-               isOk = true;
-       }
-
-       if (isOk)
-       {
-               isOk = false;
-               if (_maxElementArea > 0)
-               {
-                       _edgeLength = 2 * sqrt(_maxElementArea);        // triangles : minorant
-                       isOk = true;
-               }
-               else
-                       isOk = (_hypLengthFromEdges != NULL);   // **** check mode
-       }
-
-       //SCRUTE(_edgeLength);
-       //SCRUTE(_maxElementArea);
-       return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-       MESSAGE("SMESH_MEFISTO_2D::Compute");
-
-       if (_hypLengthFromEdges)
-               _edgeLength = ComputeEdgeElementLength(aMesh, 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
-       //SCRUTE(aretmx);
-
-       nblf = NumberOfWires(F);
-       //SCRUTE(nblf);
-
-       nudslf = new Z[1 + nblf];
-       nudslf[0] = 0;
-       int iw = 1;
-       int nbpnt = 0;
-
-       const TopoDS_Wire OW1 = BRepTools::OuterWire(F);
-       nbpnt += NumberOfPoints(aMesh, OW1);
-       nudslf[iw++] = nbpnt;
-       //SCRUTE(nbpnt);
-
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               if (!OW1.IsSame(W))
-               {
-                       nbpnt += NumberOfPoints(aMesh, W);
-                       nudslf[iw++] = nbpnt;
-                       //SCRUTE(nbpnt);
-               }
-       }
-
-       uvslf = new R2[nudslf[nblf]];
-       //SCRUTE(nudslf[nblf]);
-       int m = 0;
-
-       map<int, const SMDS_MeshNode*> mefistoToDS;     // correspondence mefisto index--> points IDNodes
-       TopoDS_Wire OW = BRepTools::OuterWire(F);
-       LoadPoints(aMesh, F, OW, uvslf, m, mefistoToDS);
-       //SCRUTE(m);
-
-       for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next())
-       {
-               const TopoDS_Wire & W = TopoDS::Wire(exp.Current());
-               if (!OW.IsSame(W))
-               {
-                       LoadPoints(aMesh, F, W, uvslf, m, mefistoToDS);
-                       //SCRUTE(m);
-               }
-       }
-//   SCRUTE(nudslf[nblf]);
-//   for (int i=0; i<=nblf; i++)
-//     {
-//       MESSAGE(" -+- " <<i<< " "<< nudslf[i]);
-//     }
-//   for (int i=0; i<nudslf[nblf]; i++)
-//     {
-//       MESSAGE(" -+- " <<i<< " "<< uvslf[i]);
-//     }
-//   SCRUTE(nutysu);
-//   SCRUTE(aretmx);
-//   SCRUTE(nblf);
-
-       MESSAGE("MEFISTO triangulation ...");
-       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);
-           //SCRUTE(nbst);
-           //SCRUTE(nbt);
-           StoreResult(aMesh, nbst, uvst, nbt, nust, F,
-                       faceIsForward, mefistoToDS);
-           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;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_MEFISTO_2D::LoadPoints(SMESH_Mesh & aMesh,
-       const TopoDS_Face & FF,
-       const TopoDS_Wire & WW, R2 * uvslf, int &m,
-       map<int, const SMDS_MeshNode*>&mefistoToDS)
-{
-       MESSAGE("SMESH_MEFISTO_2D::LoadPoints");
-
-       SMDS_Mesh * meshDS = aMesh.GetMeshDS();
-
-       double scalex;
-       double scaley;
-       TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-       ComputeScaleOnFace(aMesh, F, scalex, scaley);
-
-       TopoDS_Wire W = TopoDS::Wire(WW.Oriented(TopAbs_FORWARD));
-       BRepTools_WireExplorer wexp(W, F);
-       for (wexp.Init(W, F); wexp.More(); wexp.Next())
-       {
-               const TopoDS_Edge & E = wexp.Current();
-
-               // --- IDNodes of first and last Vertex
-
-               TopoDS_Vertex VFirst, VLast;
-               TopExp::Vertices(E, VFirst, VLast);     // corresponds to f and l
-
-           ASSERT(!VFirst.IsNull());
-               SMDS_Iterator<const SMDS_MeshNode *> * lid=
-               aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes();
-               const SMDS_MeshNode* idFirst = lid->next();
-               delete lid;
-
-               ASSERT(!VLast.IsNull());
-               lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-               const SMDS_MeshNode* idLast = lid->next();
-               delete lid;
-
-               // --- edge internal IDNodes (relies on good order storage, not checked)
-
-               int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-               //SCRUTE(nbPoints);
-
-               double f, l;
-               Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-
-               SMDS_Iterator<const SMDS_MeshNode *> * ite=
-                       aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
-
-               bool isForward = (E.Orientation() == TopAbs_FORWARD);
-               map<double, const SMDS_MeshNode*> params;
-
-               while(ite->more())
-               {
-                       const SMDS_MeshNode * node = ite->next();
-                       const SMDS_EdgePosition* epos
-                               = static_cast<const SMDS_EdgePosition*>(node->GetPosition());
-                       double param = epos->GetUParameter();
-                       params[param] = node;
-               }
-               delete ite;
-               // --- load 2D values into MEFISTO structure,
-               //     add IDNodes in mefistoToDS map
-
-               if (E.Orientation() == TopAbs_FORWARD)
-               {
-                       gp_Pnt2d p = C2d->Value(f);     // first point = Vertex Forward
-                       uvslf[m].x = scalex * p.X();
-                       uvslf[m].y = scaley * p.Y();
-                       mefistoToDS[m + 1] = idFirst;
-                       //MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-                       //MESSAGE("__ f "<<f<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-                       m++;
-                       map<double, const SMDS_MeshNode*>::iterator itp = params.begin();
-                       for (int i = 1; i <= nbPoints; i++)     // nbPoints internal
-                       {
-                               double param = (*itp).first;
-                               gp_Pnt2d p = C2d->Value(param);
-                               uvslf[m].x = scalex * p.X();
-                               uvslf[m].y = scaley * p.Y();
-                               mefistoToDS[m + 1] = (*itp).second;
-//        MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-//        MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-                               m++;
-                               itp++;
-                       }
-               }
-               else
-               {
-                       gp_Pnt2d p = C2d->Value(l);     // last point = Vertex Reversed
-                       uvslf[m].x = scalex * p.X();
-                       uvslf[m].y = scaley * p.Y();
-                       mefistoToDS[m + 1] = idLast;
-//    MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-//    MESSAGE("__ l "<<l<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-                       m++;
-                       map<double, const SMDS_MeshNode*>::reverse_iterator itp = params.rbegin();
-                       for (int i = nbPoints; i >= 1; i--)
-                       {
-                               double param = (*itp).first;
-                               gp_Pnt2d p = C2d->Value(param);
-                               uvslf[m].x = scalex * p.X();
-                               uvslf[m].y = scaley * p.Y();
-                               mefistoToDS[m + 1] = (*itp).second;
-//        MESSAGE(" "<<m<<" "<<mefistoToDS[m+1]);
-//            MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[m].x <<" "<<uvslf[m].y);
-                               m++;
-                               itp++;
-                       }
-               }
-       }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-// **** a mettre dans SMESH_Algo ou SMESH_2D_Algo
-
-void SMESH_MEFISTO_2D::ComputeScaleOnFace(SMESH_Mesh & aMesh,
-       const TopoDS_Face & aFace, double &scalex, double &scaley)
-{
-       //MESSAGE("SMESH_MEFISTO_2D::ComputeScaleOnFace");
-       TopoDS_Face F = TopoDS::Face(aFace.Oriented(TopAbs_FORWARD));
-       TopoDS_Wire W = BRepTools::OuterWire(F);
-
-       BRepTools_WireExplorer wexp(W, F);
-
-       double xmin = 1.e300;           // min & max of face 2D parametric coord.
-       double xmax = -1.e300;
-       double ymin = 1.e300;
-       double ymax = -1.e300;
-       int nbp = 50;
-       scalex = 1;
-       scaley = 1;
-       for (wexp.Init(W, F); wexp.More(); wexp.Next())
-       {
-               const TopoDS_Edge & E = wexp.Current();
-               double f, l;
-               Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-               for (int i = 0; i <= nbp; i++)
-               {
-                       double param = f + (double (i) / double (nbp))*(l - f);
-                       gp_Pnt2d p = C2d->Value(param);
-                       if (p.X() < xmin)
-                               xmin = p.X();
-                       if (p.X() > xmax)
-                               xmax = p.X();
-                       if (p.Y() < ymin)
-                               ymin = p.Y();
-                       if (p.Y() > ymax)
-                               ymax = p.Y();
-//    MESSAGE(" "<< f<<" "<<l<<" "<<param<<" "<<xmin<<" "<<xmax<<" "<<ymin<<" "<<ymax);
-               }
-       }
-//   SCRUTE(xmin);
-//   SCRUTE(xmax);
-//   SCRUTE(ymin);
-//   SCRUTE(ymax);
-       double xmoy = (xmax + xmin) / 2.;
-       double ymoy = (ymax + ymin) / 2.;
-
-       Handle(Geom_Surface) S = BRep_Tool::Surface(F); // 3D surface
-
-       double length_x = 0;
-       double length_y = 0;
-       gp_Pnt PX0 = S->Value(xmin, ymoy);
-       gp_Pnt PY0 = S->Value(xmoy, ymin);
-       for (int i = 1; i <= nbp; i++)
-       {
-               double x = xmin + (double (i) / double (nbp))*(xmax - xmin);
-               gp_Pnt PX = S->Value(x, ymoy);
-               double y = ymin + (double (i) / double (nbp))*(ymax - ymin);
-               gp_Pnt PY = S->Value(xmoy, y);
-               length_x += PX.Distance(PX0);
-               length_y += PY.Distance(PY0);
-               PX0.SetCoord(PX.X(), PX.Y(), PX.Z());
-               PY0.SetCoord(PY.X(), PY.Y(), PY.Z());
-       }
-//   SCRUTE(length_x);
-//   SCRUTE(length_y);
-       scalex = length_x / (xmax - xmin);
-       scaley = length_y / (ymax - ymin);
-//   SCRUTE(scalex);
-//   SCRUTE(scaley);
-       ASSERT(scalex);
-       ASSERT(scaley);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_MEFISTO_2D::StoreResult(SMESH_Mesh & aMesh,
-       Z nbst, R2 * uvst, Z nbt, Z * nust,
-       const TopoDS_Face & F, bool faceIsForward,
-       map<int, const SMDS_MeshNode*>&mefistoToDS)
-{
-       double scalex;
-       double scaley;
-       ComputeScaleOnFace(aMesh, F, scalex, scaley);
-
-       SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-
-       Z n, m;
-       Handle(Geom_Surface) S = BRep_Tool::Surface(F);
-
-       for (n = 0; n < nbst; n++)
-       {
-               double u = uvst[n][0] / scalex;
-               double v = uvst[n][1] / scaley;
-               gp_Pnt P = S->Value(u, v);
-
-               if (mefistoToDS.find(n + 1) == mefistoToDS.end())
-               {
-                       SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-                       meshDS->SetNodeOnFace(node, F);
-
-                       //MESSAGE(nodeId<<" "<<P.X()<<" "<<P.Y()<<" "<<P.Z());
-                       mefistoToDS[n + 1] = node;
-                       //MESSAGE(" "<<n<<" "<<mefistoToDS[n+1]);
-                       SMDS_FacePosition* fpos
-                               = static_cast<SMDS_FacePosition*>(node->GetPosition());
-                       fpos->SetUParameter(u);
-                       fpos->SetVParameter(v);
-               }
-       }
-
-       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<<" ++ "<<nodeId1<<" "<<nodeId2<<" "<<nodeId3);
-
-               // triangle points must be in trigonometric order if face is Forward
-               // else they must be put clockwise
-
-               bool triangleIsWellOriented = faceIsForward;
-
-        SMDS_MeshElement * elt;
-               if (triangleIsWellOriented)
-                       elt = meshDS->AddFace(n1, n2, n3);
-               else
-                       elt = meshDS->AddFace(n1, n3, n2);
-       
-               meshDS->SetMeshElementOnShape(elt, F);
-               m++;
-       }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double SMESH_MEFISTO_2D::ComputeEdgeElementLength(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       MESSAGE("SMESH_MEFISTO_2D::ComputeEdgeElementLength");
-       // **** a mettre dans SMESH_2D_Algo ?
-
-       const TopoDS_Face & FF = TopoDS::Face(aShape);
-       bool faceIsForward = (FF.Orientation() == 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())
-               {
-                       const TopoDS_Edge & E = TopoDS::Edge(expe.Current());
-                       int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-                       double length = EdgeLength(E);
-                       wireLength += length;
-                       wireElementsNumber += nb;
-               }
-       }
-       if (wireElementsNumber)
-               meanElementLength = wireLength / wireElementsNumber;
-       //SCRUTE(meanElementLength);
-       return meanElementLength;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_MEFISTO_2D::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_MEFISTO_2D::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_MEFISTO_2D & hyp)
-{
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_MEFISTO_2D & hyp)
-{
-       return load;
-}
diff --git a/src/SMESH/SMESH_MEFISTO_2D.hxx b/src/SMESH/SMESH_MEFISTO_2D.hxx
deleted file mode 100644 (file)
index 7727a86..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MEFISTO_2D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MEFISTO_2D_HXX_
-#define _SMESH_MEFISTO_2D_HXX_
-
-#include "SMESH_2D_Algo.hxx"
-#include "SMESH_MaxElementArea.hxx"
-#include "SMESH_LengthFromEdges.hxx"
-#include "Rn.h"
-
-class SMDS_MeshNode;
-#include <TopoDS_Face.hxx>
-#include <map>
-
-class SMESH_MEFISTO_2D:
-  public SMESH_2D_Algo
-{
-public:
-  SMESH_MEFISTO_2D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_MEFISTO_2D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                              const TopoDS_Shape& aShape);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape);
-
-  double ComputeEdgeElementLength(SMESH_Mesh& aMesh,
-                                 const TopoDS_Shape& aShape);
-
-  void LoadPoints(SMESH_Mesh& aMesh,
-                 const TopoDS_Face& F, 
-                 const TopoDS_Wire& W,
-                 R2* uvslf, 
-                 int& m,
-                 map<int,const SMDS_MeshNode*>& mefistoToDS);
-
-  void ComputeScaleOnFace(SMESH_Mesh& aMesh,
-                         const TopoDS_Face& aFace,
-                         double& scalex,
-                         double& scaley);
-
-  void StoreResult (SMESH_Mesh& aMesh,
-                   Z nbst, R2* uvst, Z nbt, Z* nust, 
-                   const TopoDS_Face& F, bool faceIsForward,
-                   map<int,const SMDS_MeshNode*>& mefistoToDS);
-                                         
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_MEFISTO_2D & hyp);
-  friend istream & operator >> (istream & load, SMESH_MEFISTO_2D & hyp);
-
-protected:
-  double _edgeLength;
-  double _maxElementArea;
-  const SMESH_MaxElementArea* _hypMaxElementArea;
-  const SMESH_LengthFromEdges* _hypLengthFromEdges;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_MaxElementArea.cxx b/src/SMESH/SMESH_MaxElementArea.cxx
deleted file mode 100644 (file)
index b44efdc..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MaxElementArea.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-using namespace std;
-#include "SMESH_MaxElementArea.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_MaxElementArea::SMESH_MaxElementArea(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _maxArea =1.;
-  _name = "MaxElementArea";
-//   SCRUTE(_name);
-//   SCRUTE(&_name);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_MaxElementArea::~SMESH_MaxElementArea()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_MaxElementArea::SetMaxArea(double maxArea)
-  throw (SALOME_Exception)
-{
-  double oldArea = _maxArea;
-  if (maxArea <= 0) 
-    throw SALOME_Exception(LOCALIZED("maxArea must be positive"));
-  _maxArea = maxArea;
-  if (_maxArea != oldArea)
-    NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double SMESH_MaxElementArea::GetMaxArea() const
-{
-  return _maxArea;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_MaxElementArea::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_MaxElementArea::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, SMESH_MaxElementArea & hyp)
-{
-  save << hyp._maxArea;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, SMESH_MaxElementArea & hyp)
-{
-  bool isOK = true;
-  double a;
-  isOK = (load >> a);
-  if (isOK) hyp._maxArea = a;
-  else load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
diff --git a/src/SMESH/SMESH_MaxElementArea.hxx b/src/SMESH/SMESH_MaxElementArea.hxx
deleted file mode 100644 (file)
index cb60c66..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MaxElementArea.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MAXELEMENTAREA_HXX_
-#define _SMESH_MAXELEMENTAREA_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMESH_MaxElementArea:public SMESH_Hypothesis
-{
-  public:
-       SMESH_MaxElementArea(int hypId, int studyId, SMESH_Gen * gen);
-         virtual ~ SMESH_MaxElementArea();
-
-       void SetMaxArea(double maxArea) throw(SALOME_Exception);
-
-       double GetMaxArea() const;
-
-       virtual ostream & SaveTo(ostream & save);
-       virtual istream & LoadFrom(istream & load);
-       friend ostream & operator <<(ostream & save, SMESH_MaxElementArea & hyp);
-       friend istream & operator >>(istream & load, SMESH_MaxElementArea & hyp);
-
-  protected:
-       double _maxArea;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_MaxElementVolume.cxx b/src/SMESH/SMESH_MaxElementVolume.cxx
deleted file mode 100644 (file)
index cb25383..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MaxElementVolume.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-
-#include "SMESH_MaxElementVolume.hxx"
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_MaxElementVolume::SMESH_MaxElementVolume(int hypId, int studyId, SMESH_Gen* gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
-{
-  _maxVolume =1.;
-  _name = "MaxElementVolume";
-//   SCRUTE(_name);
-  SCRUTE(&_name);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_MaxElementVolume::~SMESH_MaxElementVolume()
-{
-  MESSAGE("SMESH_MaxElementVolume::~SMESH_MaxElementVolume");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_MaxElementVolume::SetMaxVolume(double maxVolume)
-  throw (SALOME_Exception)
-{
-  double oldVolume = _maxVolume;
-  if (maxVolume <= 0) 
-    throw SALOME_Exception(LOCALIZED("maxVolume must be positive"));
-  _maxVolume = maxVolume;
-  if (_maxVolume != oldVolume)
-    NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double SMESH_MaxElementVolume::GetMaxVolume() const
-{
-  return _maxVolume;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_MaxElementVolume::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_MaxElementVolume::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, SMESH_MaxElementVolume & hyp)
-{
-  save << hyp._maxVolume;
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, SMESH_MaxElementVolume & hyp)
-{
-  bool isOK = true;
-  double a;
-  isOK = (load >> a);
-  if (isOK) hyp._maxVolume = a;
-  else load.clear(ios::badbit | load.rdstate());
-  return load;
-}
-
diff --git a/src/SMESH/SMESH_MaxElementVolume.hxx b/src/SMESH/SMESH_MaxElementVolume.hxx
deleted file mode 100644 (file)
index f69fb77..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_MaxElementVolume.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_MAXELEMENTVOLUME_HXX_
-#define _SMESH_MAXELEMENTVOLUME_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMESH_MaxElementVolume:
-  public SMESH_Hypothesis
-{
-public:
-  SMESH_MaxElementVolume(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_MaxElementVolume();
-
-  void SetMaxVolume(double maxVolume)
-    throw (SALOME_Exception);
-
-  double GetMaxVolume() const;
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_MaxElementVolume & hyp);
-  friend istream & operator >> (istream & load, SMESH_MaxElementVolume & hyp);
-
-protected:
-  double _maxVolume;
-};
-
-#endif
index a259117302299ad0a19a195b732083d33f1f0403..6d03700c7ea0d1e6bf190fe378dd2a169c2d2c52 100644 (file)
 #include "SMESH_subMesh.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_subMesh.hxx"
 #include "SMESH_Gen.hxx"
 #include "SMESH_Hypothesis.hxx"
+#include "SMESH_Group.hxx"
+#include "SMESHDS_Group.hxx"
 #include "SMESHDS_Script.hxx"
 #include "SMDS_MeshVolume.hxx"
 #include "SMESHDS_Script.hxx"
 #include "SMDS_MeshVolume.hxx"
+
 #include "utilities.h"
 #include "utilities.h"
-#include "SMESHDriver.h"
+
+#include "Mesh_Writer.h"
+#include "DriverMED_W_SMESHDS_Mesh.h"
+#include "DriverDAT_W_SMESHDS_Mesh.h"
+#include "DriverUNV_W_SMESHDS_Mesh.h"
+
+#include "DriverMED_R_SMESHDS_Mesh.h"
 
 #include <TCollection_AsciiString.hxx>
 
 #include <TCollection_AsciiString.hxx>
+#include <memory>
+#include <TopTools_ListOfShape.hxx>
+#include <TopExp.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include "Utils_ExceptHandlers.hxx"
+
 
 //=============================================================================
 /*!
 
 //=============================================================================
 /*!
@@ -56,8 +71,8 @@ SMESH_Mesh::SMESH_Mesh()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-SMESH_Mesh::SMESH_Mesh(int localId,
-       int studyId, SMESH_Gen * gen, SMESHDS_Document * myDocument)
+SMESH_Mesh::SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen, SMESHDS_Document * myDocument)
+: _groupId( 0 )
 {
        MESSAGE("SMESH_Mesh::SMESH_Mesh(int localId)");
        _id = localId;
 {
        MESSAGE("SMESH_Mesh::SMESH_Mesh(int localId)");
        _id = localId;
@@ -77,7 +92,14 @@ SMESH_Mesh::SMESH_Mesh(int localId,
 
 SMESH_Mesh::~SMESH_Mesh()
 {
 
 SMESH_Mesh::~SMESH_Mesh()
 {
-       MESSAGE("SMESH_Mesh::~SMESH_Mesh");
+  MESSAGE("SMESH_Mesh::~SMESH_Mesh");
+
+  // delete groups
+  map < int, SMESH_Group * >::iterator itg;
+  for (itg = _mapGroup.begin(); itg != _mapGroup.end(); itg++) {
+    SMESH_Group *aGroup = (*itg).second;
+    delete aGroup;
+  }
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -86,9 +108,7 @@ SMESH_Mesh::~SMESH_Mesh()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape)
-throw(SALOME_Exception)
-{
+void SMESH_Mesh::ShapeToMesh(const TopoDS_Shape & aShape){
        MESSAGE("SMESH_Mesh::ShapeToMesh");
        if (_isShapeToMesh)
                throw
        MESSAGE("SMESH_Mesh::ShapeToMesh");
        if (_isShapeToMesh)
                throw
@@ -101,52 +121,109 @@ throw(SALOME_Exception)
        TopExp::MapShapes(aShape, _subShapes);
 }
 
        TopExp::MapShapes(aShape, _subShapes);
 }
 
+//=======================================================================
+//function : MEDToMesh
+//purpose  : 
+//=======================================================================
+
+int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName)
+{
+  MESSAGE("MEDToMesh - theFileName = "<<theFileName<<", mesh name = "<<theMeshName);
+  if(_isShapeToMesh)
+    throw SALOME_Exception(LOCALIZED("a shape to mesh as already been defined"));
+  _isShapeToMesh = true;
+  std::auto_ptr<DriverMED_R_SMESHDS_Mesh> myReader(new DriverMED_R_SMESHDS_Mesh);
+  myReader->SetMesh(_myMeshDS);
+  myReader->SetMeshId(-1);
+  myReader->SetFile(theFileName);
+  myReader->SetMeshName(theMeshName);
+  DriverMED_R_SMESHDS_Mesh::ReadStatus status = myReader->ReadMySelf();
+  MESSAGE("MEDToMesh - _myMeshDS->NbNodes() = "<<_myMeshDS->NbNodes());
+  MESSAGE("MEDToMesh - _myMeshDS->NbEdges() = "<<_myMeshDS->NbEdges());
+  MESSAGE("MEDToMesh - _myMeshDS->NbFaces() = "<<_myMeshDS->NbFaces());
+  MESSAGE("MEDToMesh - _myMeshDS->NbVolumes() = "<<_myMeshDS->NbVolumes());
+
+  // Reading groups (sub-meshes are out of scope of MED import functionality)
+  list<string> aGroupNames = myReader->GetGroupNames();
+  MESSAGE("MEDToMesh - Nb groups = "<<aGroupNames.size()); 
+  int anId;
+  for ( list<string>::iterator it = aGroupNames.begin(); it != aGroupNames.end(); it++ ) {
+    SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId );
+    if ( aGroup ) {
+      MESSAGE("MEDToMesh - group added: "<<it->c_str());      
+      SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
+      aGroupDS->SetStoreName( it->c_str() );
+      myReader->GetGroup( aGroupDS );
+    }
+  }
+  return (int) status;
+}
+
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
-bool SMESH_Mesh::AddHypothesis(const TopoDS_Shape & aSubShape,
-       int anHypId) throw(SALOME_Exception)
+SMESH_Hypothesis::Hypothesis_Status
+  SMESH_Mesh::AddHypothesis(const TopoDS_Shape & aSubShape,
+                            int anHypId) throw(SALOME_Exception)
 {
 {
-       MESSAGE("SMESH_Mesh::AddHypothesis");
-
-       StudyContextStruct *sc = _gen->GetStudyContext(_studyId);
-       if (sc->mapHypothesis.find(anHypId) == sc->mapHypothesis.end())
-       {
-               MESSAGE("Hypothesis ID does not give an hypothesis");
-               SCRUTE(_studyId);
-               SCRUTE(anHypId);
-               throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
-       }
-
-       SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
-       SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
-       int event;
-
-       // shape 
-
-       if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-               event = SMESH_subMesh::ADD_HYP;
-       else
-               event = SMESH_subMesh::ADD_ALGO;
-       int ret = subMesh->AlgoStateEngine(event, anHyp);
-
-       // subShapes (only when shape is mainShape)
-       TopoDS_Shape mainShape = _myMeshDS->ShapeToMesh();
-       if (aSubShape.IsSame(mainShape))
-       {
-               if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
-                       event = SMESH_subMesh::ADD_FATHER_HYP;
-               else
-                       event = SMESH_subMesh::ADD_FATHER_ALGO;
-               subMesh->SubMeshesAlgoStateEngine(event, anHyp);
-       }
-
-       subMesh->DumpAlgoState(true);
-       //SCRUTE(ret);
-       return ret;
+  Unexpect aCatch(SalomeException);
+  MESSAGE("SMESH_Mesh::AddHypothesis");
+
+  StudyContextStruct *sc = _gen->GetStudyContext(_studyId);
+  if (sc->mapHypothesis.find(anHypId) == sc->mapHypothesis.end())
+  {
+    MESSAGE("Hypothesis ID does not give an hypothesis");
+    SCRUTE(_studyId);
+    SCRUTE(anHypId);
+    throw SALOME_Exception(LOCALIZED("hypothesis does not exist"));
+  }
+
+  SMESH_subMesh *subMesh = GetSubMesh(aSubShape);
+  SMESH_Hypothesis *anHyp = sc->mapHypothesis[anHypId];
+  SCRUTE( anHyp->GetName() );
+  int event;
+
+  bool isGlobalHyp = IsMainShape( aSubShape );
+
+  // NotConformAllowed can be only global
+  if ( !isGlobalHyp )
+  {
+    string hypName = anHyp->GetName();
+    if ( hypName == "NotConformAllowed" )
+    {
+      MESSAGE( "Hypotesis <NotConformAllowed> can be only global" );
+      return SMESH_Hypothesis::HYP_INCOMPATIBLE;
+    }
+  }
+
+  // shape 
+
+  if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
+    event = SMESH_subMesh::ADD_HYP;
+  else
+    event = SMESH_subMesh::ADD_ALGO;
+  SMESH_Hypothesis::Hypothesis_Status ret = subMesh->AlgoStateEngine(event, anHyp);
+
+  // subShapes
+  if (!SMESH_Hypothesis::IsStatusFatal(ret) &&
+      !subMesh->IsApplicableHypotesis( anHyp )) // is added on father
+  {
+    if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
+      event = SMESH_subMesh::ADD_FATHER_HYP;
+    else
+      event = SMESH_subMesh::ADD_FATHER_ALGO;
+    SMESH_Hypothesis::Hypothesis_Status ret2 =
+      subMesh->SubMeshesAlgoStateEngine(event, anHyp);
+    if (ret2 > ret)
+      ret = ret2;
+  }
+
+  subMesh->DumpAlgoState(true);
+  SCRUTE(ret);
+  return ret;
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -155,9 +232,11 @@ bool SMESH_Mesh::AddHypothesis(const TopoDS_Shape & aSubShape,
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-bool SMESH_Mesh::RemoveHypothesis(const TopoDS_Shape & aSubShape,
-       int anHypId)throw(SALOME_Exception)
+SMESH_Hypothesis::Hypothesis_Status
+  SMESH_Mesh::RemoveHypothesis(const TopoDS_Shape & aSubShape,
+                               int anHypId)throw(SALOME_Exception)
 {
 {
+  Unexpect aCatch(SalomeException);
        MESSAGE("SMESH_Mesh::RemoveHypothesis");
 
        StudyContextStruct *sc = _gen->GetStudyContext(_studyId);
        MESSAGE("SMESH_Mesh::RemoveHypothesis");
 
        StudyContextStruct *sc = _gen->GetStudyContext(_studyId);
@@ -176,18 +255,20 @@ bool SMESH_Mesh::RemoveHypothesis(const TopoDS_Shape & aSubShape,
                event = SMESH_subMesh::REMOVE_HYP;
        else
                event = SMESH_subMesh::REMOVE_ALGO;
                event = SMESH_subMesh::REMOVE_HYP;
        else
                event = SMESH_subMesh::REMOVE_ALGO;
-       int ret = subMesh->AlgoStateEngine(event, anHyp);
-
-       // subShapes (only when shape is mainShape)
+       SMESH_Hypothesis::Hypothesis_Status ret = subMesh->AlgoStateEngine(event, anHyp);
 
 
-       TopoDS_Shape mainShape = _myMeshDS->ShapeToMesh();
-       if (aSubShape.IsSame(mainShape))
+       // subShapes
+        if (!SMESH_Hypothesis::IsStatusFatal(ret) &&
+            !subMesh->IsApplicableHypotesis( anHyp )) // is removed from father
        {
                if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
                        event = SMESH_subMesh::REMOVE_FATHER_HYP;
                else
                        event = SMESH_subMesh::REMOVE_FATHER_ALGO;
        {
                if (anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO)
                        event = SMESH_subMesh::REMOVE_FATHER_HYP;
                else
                        event = SMESH_subMesh::REMOVE_FATHER_ALGO;
-               subMesh->SubMeshesAlgoStateEngine(event, anHyp);
+                SMESH_Hypothesis::Hypothesis_Status ret2 =
+                  subMesh->SubMeshesAlgoStateEngine(event, anHyp);
+                if (ret2 > ret) // more severe
+                  ret = ret2;
        }
 
        subMesh->DumpAlgoState(true);
        }
 
        subMesh->DumpAlgoState(true);
@@ -213,22 +294,24 @@ SMESHDS_Mesh * SMESH_Mesh::GetMeshDS()
 //=============================================================================
 
 const list<const SMESHDS_Hypothesis*>&
 //=============================================================================
 
 const list<const SMESHDS_Hypothesis*>&
-       SMESH_Mesh::GetHypothesisList(const TopoDS_Shape & aSubShape)
+       SMESH_Mesh::GetHypothesisList(const TopoDS_Shape & aSubShape) const
        throw(SALOME_Exception)
 {
        throw(SALOME_Exception)
 {
-       MESSAGE("SMESH_Mesh::GetHypothesisList");
-       _subShapeHypothesisList.clear();
-       const list<const SMESHDS_Hypothesis*>& listHyp =
-               _myMeshDS->GetHypothesis(aSubShape);
-
-       list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
-       while (it!=listHyp.end())
-       {
-               const SMESHDS_Hypothesis *anHyp = *it;
-               _subShapeHypothesisList.push_back(anHyp);
-               it++;
-       }
-       return _subShapeHypothesisList;
+  Unexpect aCatch(SalomeException);
+//     MESSAGE("SMESH_Mesh::GetHypothesisList");
+//     _subShapeHypothesisList.clear();
+//     const list<const SMESHDS_Hypothesis*>& listHyp =
+//             _myMeshDS->GetHypothesis(aSubShape);
+
+//     list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
+//     while (it!=listHyp.end())
+//     {
+//             const SMESHDS_Hypothesis *anHyp = *it;
+//             _subShapeHypothesisList.push_back(anHyp);
+//             it++;
+//     }
+//     return _subShapeHypothesisList;
+  return _myMeshDS->GetHypothesis(aSubShape);
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -239,6 +322,7 @@ const list<const SMESHDS_Hypothesis*>&
 
 const list<SMESHDS_Command*> & SMESH_Mesh::GetLog() throw(SALOME_Exception)
 {
 
 const list<SMESHDS_Command*> & SMESH_Mesh::GetLog() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        MESSAGE("SMESH_Mesh::GetLog");
        return _myMeshDS->GetScript()->GetCommands();
 }
        MESSAGE("SMESH_Mesh::GetLog");
        return _myMeshDS->GetScript()->GetCommands();
 }
@@ -250,6 +334,7 @@ const list<SMESHDS_Command*> & SMESH_Mesh::GetLog() throw(SALOME_Exception)
 //=============================================================================
 void SMESH_Mesh::ClearLog() throw(SALOME_Exception)
 {
 //=============================================================================
 void SMESH_Mesh::ClearLog() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        MESSAGE("SMESH_Mesh::ClearLog");
        _myMeshDS->GetScript()->Clear();
 }
        MESSAGE("SMESH_Mesh::ClearLog");
        _myMeshDS->GetScript()->Clear();
 }
@@ -286,9 +371,11 @@ SMESH_Gen *SMESH_Mesh::GetGen()
 SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape)
 throw(SALOME_Exception)
 {
 SMESH_subMesh *SMESH_Mesh::GetSubMesh(const TopoDS_Shape & aSubShape)
 throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        //MESSAGE("SMESH_Mesh::GetSubMesh");
        SMESH_subMesh *aSubMesh;
        int index = _subShapes.FindIndex(aSubShape);
        //MESSAGE("SMESH_Mesh::GetSubMesh");
        SMESH_subMesh *aSubMesh;
        int index = _subShapes.FindIndex(aSubShape);
+
        if (_mapSubMesh.find(index) != _mapSubMesh.end())
        {
                aSubMesh = _mapSubMesh[index];
        if (_mapSubMesh.find(index) != _mapSubMesh.end())
        {
                aSubMesh = _mapSubMesh[index];
@@ -338,6 +425,7 @@ throw(SALOME_Exception)
 SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
 throw(SALOME_Exception)
 {
 SMESH_subMesh *SMESH_Mesh::GetSubMeshContaining(const TopoDS_Shape & aSubShape)
 throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        //MESSAGE("SMESH_Mesh::GetSubMeshContaining");
        bool isFound = false;
        SMESH_subMesh *aSubMesh = NULL;
        //MESSAGE("SMESH_Mesh::GetSubMeshContaining");
        bool isFound = false;
        SMESH_subMesh *aSubMesh = NULL;
@@ -374,6 +462,68 @@ throw(SALOME_Exception)
        return aSubMesh;
 }
 
        return aSubMesh;
 }
 
+//=======================================================================
+//function : IsUsedHypothesis
+//purpose  : Return True if anHyp is used to mesh aSubShape
+//=======================================================================
+
+bool SMESH_Mesh::IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
+                                  const TopoDS_Shape & aSubShape)
+{
+  //MESSAGE( "SMESH_Mesh::IsUsedHypothesis" );
+
+  // check if anHyp is applicable to aSubShape
+  SMESH_subMesh * subMesh = GetSubMeshContaining( aSubShape );
+  if (!subMesh ||
+      !subMesh->IsApplicableHypotesis(static_cast<SMESH_Hypothesis*>(anHyp)))
+    return false;
+
+  SMESH_Algo *algo = _gen->GetAlgo(*this, aSubShape);
+
+  // algorithm
+  if (anHyp->GetType() > SMESHDS_Hypothesis::PARAM_ALGO)
+    return ( anHyp == algo );
+
+  // algorithm parameter
+  if (algo)
+  {
+    // look trough hypotheses used by algo
+    const list <const SMESHDS_Hypothesis * >&usedHyps =
+      algo->GetUsedHypothesis(*this, aSubShape);
+    list <const SMESHDS_Hypothesis * >::const_iterator itl;
+    for (itl = usedHyps.begin(); itl != usedHyps.end(); itl++)
+      if (anHyp == (*itl))
+        return true;
+  }
+  else
+  {
+    // look through all assigned hypotheses
+    {
+      const list <const SMESHDS_Hypothesis * >&usedHyps =
+        _myMeshDS->GetHypothesis( aSubShape );
+      list <const SMESHDS_Hypothesis * >::const_iterator itl;
+      for (itl = usedHyps.begin(); itl != usedHyps.end(); itl++)
+        if (anHyp == (*itl))
+          return true;
+    }
+
+    // on ancestors
+    TopTools_ListIteratorOfListOfShape it( GetAncestors( aSubShape ));
+    for (; it.More(); it.Next())
+    {
+      const list <const SMESHDS_Hypothesis * >&usedHyps =
+        _myMeshDS->GetHypothesis( aSubShape );
+      list <const SMESHDS_Hypothesis * >::const_iterator itl;
+      for (itl = usedHyps.begin(); itl != usedHyps.end(); itl++)
+        if (anHyp == (*itl))
+          return true;
+    }
+  }
+    
+  return false;
+}
+
+
 //=============================================================================
 /*!
  *
 //=============================================================================
 /*!
  *
@@ -384,48 +534,73 @@ 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);
        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;
        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;
-               bool usesHyp = false;
-               SMESH_Algo *algo = _gen->GetAlgo(*this, aSubMesh->GetSubShape());
-               if (algo != NULL)
-               {
-                       const list <const SMESHDS_Hypothesis * >&usedHyps
-                               = algo->GetUsedHypothesis(*this, aSubMesh->GetSubShape());
-                       list <const SMESHDS_Hypothesis * >::const_iterator itl;
-                       for (itl = usedHyps.begin(); itl != usedHyps.end(); itl++)
-                               if (anHyp == (*itl))
-                               {
-                                       usesHyp = true;
-                                       break;
-                               }
-               }
-               if (usesHyp)
+               if ( IsUsedHypothesis ( anHyp, aSubMesh->GetSubShape() ))
                        _subMeshesUsingHypothesisList.push_back(aSubMesh);
        }
        return _subMeshesUsingHypothesisList;
 }
 
                        _subMeshesUsingHypothesisList.push_back(aSubMesh);
        }
        return _subMeshesUsingHypothesisList;
 }
 
+//=============================================================================
 /*!
 /*!
- * Export mesh to a file
- * @param fileName file name where to export the file
- * @param fileType Currently it could be either "DAT", "UNV" or "MED".
+ *
  */
  */
-void SMESH_Mesh::Export(const char *fileName, const char *fileType)
-       throw(SALOME_Exception)
+//=============================================================================
+
+void SMESH_Mesh::ExportMED(const char *file, const char* theMeshName, bool theAutoGroups) throw(SALOME_Exception)
 {
 {
-       MESSAGE("SMESH_Mesh::Export("<<fileName<<","<<fileType<<")");
-       Mesh_Writer * writer = SMESHDriver::GetMeshWriter(string(fileType));
-       if(writer!=NULL)
-       {
-               writer->SetMesh(GetMeshDS());
-               writer->SetFile(string(fileName));
-               writer->Write();
-       }
+  Unexpect aCatch(SalomeException);
+  std::auto_ptr<DriverMED_W_SMESHDS_Mesh> myWriter(new DriverMED_W_SMESHDS_Mesh);
+  myWriter  ->SetFile    ( file        );
+  myWriter  ->SetMesh    ( _myMeshDS   );
+  if ( !theMeshName ) 
+    myWriter->SetMeshId  ( _idDoc      );
+  else {
+    myWriter->SetMeshId  ( -1          );
+    myWriter->SetMeshName( theMeshName );
+  }
+
+  if ( theAutoGroups ) {
+    myWriter->AddGroupOfNodes();
+    myWriter->AddGroupOfEdges();
+    myWriter->AddGroupOfFaces();
+    myWriter->AddGroupOfVolumes();
+  }
+
+  for ( map<int, SMESH_Group*>::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) {
+    SMESH_Group*     aGroup = it->second;
+    SMESHDS_Group* aGroupDS = aGroup->GetGroupDS();
+    aGroupDS->SetStoreName( aGroup->GetName() );
+    myWriter->AddGroup( aGroupDS );
+  }
+
+  myWriter->Add();
+}
+
+void SMESH_Mesh::ExportDAT(const char *file) throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+       Mesh_Writer *myWriter = new DriverDAT_W_SMESHDS_Mesh;
+       myWriter->SetFile(string(file));
+       myWriter->SetMesh(_myMeshDS);
+       myWriter->SetMeshId(_idDoc);
+       myWriter->Add();
+}
+
+void SMESH_Mesh::ExportUNV(const char *file) throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+       Mesh_Writer *myWriter = new DriverUNV_W_SMESHDS_Mesh;
+       myWriter->SetFile(string(file));
+       myWriter->SetMesh(_myMeshDS);
+       myWriter->SetMeshId(_idDoc);
+       myWriter->Add();
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -435,6 +610,7 @@ void SMESH_Mesh::Export(const char *fileName, const char *fileType)
 //=============================================================================
 int SMESH_Mesh::NbNodes() throw(SALOME_Exception)
 {
 //=============================================================================
 int SMESH_Mesh::NbNodes() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        return _myMeshDS->NbNodes();
 }
 
        return _myMeshDS->NbNodes();
 }
 
@@ -445,6 +621,7 @@ int SMESH_Mesh::NbNodes() throw(SALOME_Exception)
 //=============================================================================
 int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
 {
 //=============================================================================
 int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        return _myMeshDS->NbEdges();
 }
 
        return _myMeshDS->NbEdges();
 }
 
@@ -455,6 +632,7 @@ int SMESH_Mesh::NbEdges() throw(SALOME_Exception)
 //=============================================================================
 int SMESH_Mesh::NbFaces() throw(SALOME_Exception)
 {
 //=============================================================================
 int SMESH_Mesh::NbFaces() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        return _myMeshDS->NbFaces();
 }
 
        return _myMeshDS->NbFaces();
 }
 
@@ -463,11 +641,11 @@ int SMESH_Mesh::NbFaces() throw(SALOME_Exception)
 ///////////////////////////////////////////////////////////////////////////////
 int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
 {
 ///////////////////////////////////////////////////////////////////////////////
 int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        int Nb = 0;
 
        int Nb = 0;
 
-       SMDS_Iterator<const SMDS_MeshFace*> * itFaces=_myMeshDS->facesIterator();
+       SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
        while(itFaces->more()) if(itFaces->next()->NbNodes()==3) Nb++;
        while(itFaces->more()) if(itFaces->next()->NbNodes()==3) Nb++;
-       delete itFaces;
        return Nb;
 }
 
        return Nb;
 }
 
@@ -476,11 +654,11 @@ int SMESH_Mesh::NbTriangles() throw(SALOME_Exception)
 ///////////////////////////////////////////////////////////////////////////////
 int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception)
 {
 ///////////////////////////////////////////////////////////////////////////////
 int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        int Nb = 0;
 
        int Nb = 0;
 
-       SMDS_Iterator<const SMDS_MeshFace*> * itFaces=_myMeshDS->facesIterator();
+       SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
        while(itFaces->more()) if(itFaces->next()->NbNodes()==4) Nb++;
        while(itFaces->more()) if(itFaces->next()->NbNodes()==4) Nb++;
-       delete itFaces;
        return Nb;
 }
 
        return Nb;
 }
 
@@ -491,24 +669,43 @@ int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception)
 //=============================================================================
 int SMESH_Mesh::NbVolumes() throw(SALOME_Exception)
 {
 //=============================================================================
 int SMESH_Mesh::NbVolumes() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        return _myMeshDS->NbVolumes();
 }
 
 int SMESH_Mesh::NbTetras() throw(SALOME_Exception)
 {
        return _myMeshDS->NbVolumes();
 }
 
 int SMESH_Mesh::NbTetras() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        int Nb = 0;
        int Nb = 0;
-       SMDS_Iterator<const SMDS_MeshVolume*> * itVolumes=_myMeshDS->volumesIterator();
+       SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
        while(itVolumes->more()) if(itVolumes->next()->NbNodes()==4) Nb++;
        while(itVolumes->more()) if(itVolumes->next()->NbNodes()==4) Nb++;
-       delete itVolumes;
        return Nb;
 }
 
 int SMESH_Mesh::NbHexas() throw(SALOME_Exception)
 {
        return Nb;
 }
 
 int SMESH_Mesh::NbHexas() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        int Nb = 0;
        int Nb = 0;
-       SMDS_Iterator<const SMDS_MeshVolume*> * itVolumes=_myMeshDS->volumesIterator();
+       SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
        while(itVolumes->more()) if(itVolumes->next()->NbNodes()==8) Nb++;
        while(itVolumes->more()) if(itVolumes->next()->NbNodes()==8) Nb++;
-       delete itVolumes;
+       return Nb;
+}
+
+int SMESH_Mesh::NbPyramids() throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+       int Nb = 0;
+       SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
+       while(itVolumes->more()) if(itVolumes->next()->NbNodes()==5) Nb++;
+       return Nb;
+}
+
+int SMESH_Mesh::NbPrisms() throw(SALOME_Exception)
+{
+  Unexpect aCatch(SalomeException);
+       int Nb = 0;
+       SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
+       while(itVolumes->more()) if(itVolumes->next()->NbNodes()==6) Nb++;
        return Nb;
 }
 
        return Nb;
 }
 
@@ -519,5 +716,187 @@ int SMESH_Mesh::NbHexas() throw(SALOME_Exception)
 //=============================================================================
 int SMESH_Mesh::NbSubMesh() throw(SALOME_Exception)
 {
 //=============================================================================
 int SMESH_Mesh::NbSubMesh() throw(SALOME_Exception)
 {
+  Unexpect aCatch(SalomeException);
        return _myMeshDS->NbSubMesh();
 }
        return _myMeshDS->NbSubMesh();
 }
+
+//=======================================================================
+//function : IsNotConformAllowed
+//purpose  : check if a hypothesis alowing notconform mesh is present
+//=======================================================================
+
+bool SMESH_Mesh::IsNotConformAllowed() const
+{
+  MESSAGE("SMESH_Mesh::IsNotConformAllowed");
+
+  const list<const SMESHDS_Hypothesis*>& listHyp =
+    _myMeshDS->GetHypothesis( _myMeshDS->ShapeToMesh() );
+  list<const SMESHDS_Hypothesis*>::const_iterator it=listHyp.begin();
+  while (it!=listHyp.end())
+  {
+    const SMESHDS_Hypothesis *aHyp = *it;
+    string hypName = aHyp->GetName();
+    if ( hypName == "NotConformAllowed" )
+      return true;
+    it++;
+  }
+  return false;
+}
+
+//=======================================================================
+//function : IsMainShape
+//purpose  : 
+//=======================================================================
+
+bool SMESH_Mesh::IsMainShape(const TopoDS_Shape& theShape) const
+{
+  return theShape.IsSame(_myMeshDS->ShapeToMesh() );
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESH_Group* SMESH_Mesh::AddGroup (const SMDSAbs_ElementType theType,
+                                   const char*               theName,
+                                  int&                      theId)
+{
+  if (_mapGroup.find(_groupId) != _mapGroup.end())
+    return NULL;
+  SMESH_Group* aGroup = new SMESH_Group (this, theType, theName);
+  theId = _groupId;
+  _mapGroup[_groupId++] = aGroup;
+  return aGroup;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESH_Group* SMESH_Mesh::GetGroup (const int theGroupID)
+{
+  if (_mapGroup.find(theGroupID) == _mapGroup.end())
+    return NULL;
+  return _mapGroup[theGroupID];
+}
+
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+list<int> SMESH_Mesh::GetGroupIds()
+{
+  list<int> anIds;
+  for ( map<int, SMESH_Group*>::const_iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ )
+    anIds.push_back( it->first );
+  
+  return anIds;
+}
+
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+void SMESH_Mesh::RemoveGroup (const int theGroupID)
+{
+  if (_mapGroup.find(theGroupID) == _mapGroup.end())
+    return;
+  delete _mapGroup[theGroupID];
+  _mapGroup.erase (theGroupID);
+}
+
+//=======================================================================
+//function : GetAncestors
+//purpose  : return list of ancestors of theSubShape in the order
+//           that lower dimention shapes come first.
+//=======================================================================
+
+const TopTools_ListOfShape& SMESH_Mesh::GetAncestors(const TopoDS_Shape& theS)
+{
+  if ( _mapAncestors.IsEmpty() )
+  {
+    // fill _mapAncestors
+    int desType, ancType;
+    for ( desType = TopAbs_EDGE; desType > TopAbs_COMPOUND; desType-- )
+      for ( ancType = desType - 1; ancType >= TopAbs_COMPOUND; ancType-- )
+        TopExp::MapShapesAndAncestors (_myMeshDS->ShapeToMesh(),
+                                       (TopAbs_ShapeEnum) desType,
+                                       (TopAbs_ShapeEnum) ancType,
+                                       _mapAncestors );
+  }
+
+  if ( _mapAncestors.Contains( theS ) )
+    return _mapAncestors.FindFromKey( theS );
+
+  static TopTools_ListOfShape emptyList;
+  return emptyList;
+}
+
+//=======================================================================
+//function : Dump
+//purpose  : dumps contents of mesh to stream [ debug purposes ]
+//=======================================================================
+ostream& SMESH_Mesh::Dump(ostream& save)
+{
+  save << "========================== Dump contents of mesh ==========================" << endl;
+  save << "1) Total number of nodes:     " << NbNodes() << endl;
+  save << "2) Total number of edges:     " << NbEdges() << endl;
+  save << "3) Total number of faces:     " << NbFaces() << endl;
+  if ( NbFaces() > 0 ) {
+    int nb3 = NbTriangles();
+    int nb4 = NbQuadrangles();
+    save << "3.1.) Number of triangles:    " << nb3 << endl;
+    save << "3.2.) Number of quadrangles:  " << nb4 << endl;
+    if ( nb3 + nb4 !=  NbFaces() ) {
+      map<int,int> myFaceMap;
+      SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator();
+      while( itFaces->more( ) ) {
+       int nbNodes = itFaces->next()->NbNodes();
+       if ( myFaceMap.find( nbNodes ) == myFaceMap.end() )
+         myFaceMap[ nbNodes ] = 0;
+       myFaceMap[ nbNodes ] = myFaceMap[ nbNodes ] + 1;
+      }
+      save << "3.3.) Faces in detail: " << endl;
+      map <int,int>::iterator itF;
+      for (itF = myFaceMap.begin(); itF != myFaceMap.end(); itF++)
+       save << "--> nb nodes: " << itF->first << " - nb elemens: " << itF->second << endl;
+    }
+  }
+  save << "4) Total number of volumes:   " << NbVolumes() << endl;
+  if ( NbVolumes() > 0 ) {
+    int nb8 = NbHexas();
+    int nb4 = NbTetras();
+    int nb5 = NbPyramids();
+    int nb6 = NbPrisms();
+    save << "4.1.) Number of hexahedrons:  " << nb8 << endl;
+    save << "4.2.) Number of tetrahedrons: " << nb4 << endl;
+    save << "4.3.) Number of prisms:       " << nb6 << endl;
+    save << "4.4.) Number of pyramides:    " << nb5 << endl;
+    if ( nb8 + nb4 + nb5 + nb6 != NbVolumes() ) {
+      map<int,int> myVolumesMap;
+      SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator();
+      while( itVolumes->more( ) ) {
+       int nbNodes = itVolumes->next()->NbNodes();
+       if ( myVolumesMap.find( nbNodes ) == myVolumesMap.end() )
+         myVolumesMap[ nbNodes ] = 0;
+       myVolumesMap[ nbNodes ] = myVolumesMap[ nbNodes ] + 1;
+      }
+      save << "4.5.) Volumes in detail: " << endl;
+      map <int,int>::iterator itV;
+      for (itV = myVolumesMap.begin(); itV != myVolumesMap.end(); itV++)
+       save << "--> nb nodes: " << itV->first << " - nb elemens: " << itV->second << endl;
+    }
+  }
+  save << "===========================================================================" << endl;
+  return save;
+}
index fbda43b0259c0c0fa2af3ec26fa9ec5f92deff8c..2f77fa2e5050b9ea7e7755189fa6703bc95016b0 100644 (file)
@@ -34,6 +34,7 @@
 #include "SMESHDS_Command.hxx"
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_subMesh.hxx"
 #include "SMESHDS_Command.hxx"
 #include "SMESH_Hypothesis.hxx"
 #include "SMESH_subMesh.hxx"
+#include <SMDSAbs_ElementType.hxx>
 #include "Utils_SALOME_Exception.hxx"
 
 #include <TopExp.hxx>
 #include "Utils_SALOME_Exception.hxx"
 
 #include <TopExp.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
+#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
 
 #include <vector>
 #include <list>
 #include <map>
 
 
 #include <vector>
 #include <list>
 #include <map>
 
+#if (__GNUC__>2)
+#include <string>
+#include <istream>
+#include <ostream>
+#else 
+#include <string>
+#include <istream.h>
+#include <ostream.h>
+#endif
+
 class SMESH_Gen;
 class SMESH_Gen;
+class SMESH_Group;
+class TopTools_ListOfShape;
 
 class SMESH_Mesh
 {
 
 class SMESH_Mesh
 {
@@ -64,18 +78,24 @@ class SMESH_Mesh
        SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen,
                SMESHDS_Document * myDocument);
 
        SMESH_Mesh(int localId, int studyId, SMESH_Gen * gen,
                SMESHDS_Document * myDocument);
 
-       virtual ~ SMESH_Mesh();
+       virtual ~SMESH_Mesh();
 
 
-       void ShapeToMesh(const TopoDS_Shape & aShape) throw(SALOME_Exception);
+        void ShapeToMesh(const TopoDS_Shape & aShape);
+        /*!
+         * consult DriverMED_R_SMESHDS_Mesh::ReadStatus for returned value
+         */
+        int MEDToMesh(const char* theFileName, const char* theMeshName);
 
 
-       bool AddHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
+       SMESH_Hypothesis::Hypothesis_Status
+                AddHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
                throw(SALOME_Exception);
 
                throw(SALOME_Exception);
 
-       bool RemoveHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
+       SMESH_Hypothesis::Hypothesis_Status
+                RemoveHypothesis(const TopoDS_Shape & aSubShape, int anHypId)
                throw(SALOME_Exception);
 
        const list <const SMESHDS_Hypothesis * >&
                throw(SALOME_Exception);
 
        const list <const SMESHDS_Hypothesis * >&
-               GetHypothesisList(const TopoDS_Shape & aSubShape)
+               GetHypothesisList(const TopoDS_Shape & aSubShape) const
                throw(SALOME_Exception);
 
        const list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
                throw(SALOME_Exception);
 
        const list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
@@ -101,8 +121,22 @@ class SMESH_Mesh
                GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
                throw(SALOME_Exception);
 
                GetSubMeshUsingHypothesis(SMESHDS_Hypothesis * anHyp)
                throw(SALOME_Exception);
 
-       void Export(const char *fileName, const char *fileType)
-               throw(SALOME_Exception);
+        bool IsUsedHypothesis(SMESHDS_Hypothesis * anHyp,
+                              const TopoDS_Shape & aSubShape);
+        // Return True if anHyp is used to mesh aSubShape
+
+        bool IsNotConformAllowed() const;
+        // check if a hypothesis alowing notconform mesh is present
+
+        bool IsMainShape(const TopoDS_Shape& theShape) const;
+
+        const TopTools_ListOfShape& GetAncestors(const TopoDS_Shape& theSubShape);
+        // return list of ancestors of theSubShape in the order
+        // that lower dimention shapes come first.
+        
+       void ExportDAT(const char *file) throw(SALOME_Exception);
+       void ExportMED(const char *file, const char* theMeshName = NULL, bool theAutoGroups = true) throw(SALOME_Exception);
+       void ExportUNV(const char *file) throw(SALOME_Exception);
 
        int NbNodes() throw(SALOME_Exception);
 
 
        int NbNodes() throw(SALOME_Exception);
 
@@ -120,21 +154,43 @@ class SMESH_Mesh
 
        int NbHexas() throw(SALOME_Exception);
 
 
        int NbHexas() throw(SALOME_Exception);
 
+       int NbPyramids() throw(SALOME_Exception);
+
+       int NbPrisms() throw(SALOME_Exception);
+
        int NbSubMesh() throw(SALOME_Exception);
 
        int NbSubMesh() throw(SALOME_Exception);
 
+        int NbGroup() const { return _mapGroup.size(); }
+  
+        SMESH_Group* AddGroup (const SMDSAbs_ElementType theType,
+                               const char*               theName,
+                               int&                      theId);
+  
+        SMESH_Group* GetGroup (const int theGroupID);
+
+        list<int> GetGroupIds();
+  
+        void RemoveGroup (const int theGroupID);
+
+        ostream& Dump(ostream & save);
+
   private:
 
        int _id;                                        // id given by creator (unique within the creator instance)
        int _studyId;
        int _idDoc;                                     // id given by SMESHDS_Document
   private:
 
        int _id;                                        // id given by creator (unique within the creator instance)
        int _studyId;
        int _idDoc;                                     // id given by SMESHDS_Document
-       bool _isShapeToMesh;            // set to true when a shape is given (only once)
+        int _groupId;                                   // id generator for group objects
+       bool _isShapeToMesh;                            // set to true when a shape is given (only once)
        list<const SMESHDS_Hypothesis *> _subShapeHypothesisList;
        list <SMESH_subMesh *> _subMeshesUsingHypothesisList;
        SMESHDS_Document * _myDocument;
        SMESHDS_Mesh * _myMeshDS;
        TopTools_IndexedMapOfShape _subShapes;
        list<const SMESHDS_Hypothesis *> _subShapeHypothesisList;
        list <SMESH_subMesh *> _subMeshesUsingHypothesisList;
        SMESHDS_Document * _myDocument;
        SMESHDS_Mesh * _myMeshDS;
        TopTools_IndexedMapOfShape _subShapes;
-       map <int, SMESH_subMesh *>_mapSubMesh;
+       map <int, SMESH_subMesh *> _mapSubMesh;
+       map <int, SMESH_Group *>   _mapGroup;
        SMESH_Gen *_gen;
        SMESH_Gen *_gen;
+
+        TopTools_IndexedDataMapOfShapeListOfShape _mapAncestors;
 };
 
 #endif
 };
 
 #endif
diff --git a/src/SMESH/SMESH_NETGEN_3D.cxx b/src/SMESH/SMESH_NETGEN_3D.cxx
deleted file mode 100644 (file)
index a7fc6d0..0000000
+++ /dev/null
@@ -1,1068 +0,0 @@
-//=============================================================================
-// File      : SMESH_NETGEN_3D.cxx
-// Created   : lundi 27 Janvier 2003
-// Author    : Nadir BOUHAMOU (CEA)
-// Project   : SALOME
-// Copyright : CEA 2003
-// $Header$
-//=============================================================================
-using namespace std;
-
-#include "SMESH_NETGEN_3D.hxx"
-#include "SMESH_MEFISTO_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include <TopExp.hxx>
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include <BRep_Tool.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-
-#include "utilities.h"
-
-/*
-  Netgen include files
-*/
-
-#include "nglib.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_NETGEN_3D::SMESH_NETGEN_3D(int hypId, int studyId,
-                            SMESH_Gen* gen)
-  : SMESH_3D_Algo(hypId, studyId, gen)
-{
-  MESSAGE("SMESH_NETGEN_3D::SMESH_NETGEN_3D");
-  _name = "NETGEN_3D";
-//   _shapeType = TopAbs_SOLID;
-  _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);// 1 bit /shape type
-//   MESSAGE("_shapeType octal " << oct << _shapeType);
-  _compatibleHypothesis.push_back("MaxElementVolume");
-
-  _maxElementVolume = 0.;
-
-  _hypMaxElementVolume = NULL;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_NETGEN_3D::~SMESH_NETGEN_3D()
-{
-  MESSAGE("SMESH_NETGEN_3D::~SMESH_NETGEN_3D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_NETGEN_3D::CheckHypothesis(SMESH_Mesh& aMesh,
-                                    const TopoDS_Shape& aShape)
-{
-  MESSAGE("SMESH_NETGEN_3D::CheckHypothesis");
-
-  _hypMaxElementVolume = NULL;
-
-  list<const SMESHDS_Hypothesis*>::const_iterator itl;
-  const SMESHDS_Hypothesis* theHyp;
-
-  const list<const SMESHDS_Hypothesis*>& hyps = GetUsedHypothesis(aMesh, aShape);
-  int nbHyp = hyps.size();
-  if (nbHyp != 1) return false;  // only one compatible hypothesis allowed
-
-  itl = hyps.begin();
-  theHyp = (*itl);
-
-  string hypName = theHyp->GetName();
-  int hypId = theHyp->GetID();
-  SCRUTE(hypName);
-
-  bool isOk = false;
-
-  if (hypName == "MaxElementVolume")
-    {
-      _hypMaxElementVolume = static_cast<const SMESH_MaxElementVolume*> (theHyp);
-      ASSERT(_hypMaxElementVolume);
-      _maxElementVolume = _hypMaxElementVolume->GetMaxVolume();
-      isOk =true;
-    }
-
-  return isOk;
-}
-
-//=============================================================================
-/*!
- *Here we are going to use the NETGEN mesher
- */
-//=============================================================================
-
-bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh,
-                            const TopoDS_Shape& aShape)
-  throw (SALOME_Exception)
-{
-  MESSAGE("SMESH_NETGEN_3D::Compute with maxElmentsize = " << _maxElementVolume);
-
-  bool isOk = false;
-  SMESHDS_Mesh* meshDS = aMesh.GetMeshDS();
-  SMESH_subMesh* theSubMesh = aMesh.GetSubMesh(aShape);
-  //const Handle(SMESHDS_SubMesh)& subMeshDS = theSubMesh->GetSubMeshDS();
-
-  map<int, const SMDS_MeshNode*> netgenToDS;
-
-  MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Faces");
-
-  // check if all faces were meshed by a triangle mesher (here MESFISTO_2D)
-
-  vector<SMESH_subMesh*> meshFaces;
-  vector<TopoDS_Shape> shapeFaces;
-
-  for (TopExp_Explorer exp(aShape,TopAbs_FACE);exp.More();exp.Next())
-    {
-      TopoDS_Shape aShapeFace = exp.Current();
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-      ASSERT (aSubMesh);
-      int internal_size = meshFaces.size();
-      int index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aSubMesh == meshFaces[i]) index = 1;
-       }
-      if (index == 0) meshFaces.push_back(aSubMesh);
-
-      internal_size = shapeFaces.size();
-      index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aShapeFace == shapeFaces[i]) index = 1;
-       }
-      if (index == 0) shapeFaces.push_back(aShapeFace);
-    }
-
-  int numberOfFaces = meshFaces.size();
-  int numberOfShapeFaces = shapeFaces.size();
-
-  SCRUTE(numberOfFaces);
-  SCRUTE(numberOfShapeFaces);
-
-  MESSAGE("---");
-
-  int NbTotOfTria = 0;
-  int NbTotOfNodesFaces = 0;
-
-  for (int i=0; i<numberOfFaces; i++)
-    {
-      TopoDS_Shape aShapeFace = meshFaces[i]->GetSubShape();
-      TopoDS_Shape aFace = shapeFaces[i];
-      SMESH_Algo* algoFace = _gen->GetAlgo(aMesh, aShapeFace);
-      string algoFaceName = algoFace->GetName();
-      SCRUTE(algoFaceName);
-      if (algoFaceName != "MEFISTO_2D")
-       {
-         SCRUTE(algoFaceName);
-         ASSERT(0);
-         return false;
-       }
-
-      bool orientationMeshFace = (aFace.Orientation() == aShapeFace.Orientation());
-
-      const SMESHDS_SubMesh* aSubMeshDSFace = meshFaces[i]->GetSubMeshDS();
-      SCRUTE(aSubMeshDSFace);
-
-      int nbNodes = aSubMeshDSFace->NbNodes();
-      NbTotOfNodesFaces += nbNodes;
-      int nbTria = aSubMeshDSFace->NbElements();
-      NbTotOfTria += nbTria;
-      int index = 0;
-
-      MESSAGE("SMESH_NETGEN_3D::Compute The mesh Face " << (i+1) << " has " << nbNodes << " face internal Nodes, " << nbTria << " triangles");
-
-      SCRUTE(orientationMeshFace);
-
-      if (orientationMeshFace)
-       {
-         MESSAGE("The mesh and face have the same orientation");
-       }
-      else
-       {
-         MESSAGE("The mesh and face have different orientations");
-       }
-
-      SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSFace->GetNodes();
-      SCRUTE(nbNodes);
-      index = 0;
-      while(iteratorNodes->more())
-       {
-         index++;
-         const SMDS_MeshNode * node = iteratorNodes->next();
-//       int nodeId = node->GetID();
-//       double nodeX = node->X();
-//       double nodeY = node->Y();
-//       double nodeZ = node->Z();
-//       MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-       }
-      delete iteratorNodes;
-
-      SCRUTE(index);
-
-      SMDS_Iterator<const SMDS_MeshElement *> * iteratorTriangle = aSubMeshDSFace->GetElements();
-
-      SCRUTE(nbTria);
-      index = 0;
-      int numberOfDegeneratedTriangle = 0;
-      while(iteratorTriangle->more())
-       {
-         index++;
-         const SMDS_MeshElement * triangle = iteratorTriangle->next();
-         int triangleId = triangle->GetID();
-
-         SMDS_Iterator<const SMDS_MeshElement *> * triangleNodesIt = triangle->nodesIterator();
-
-         const SMDS_MeshNode * node1 = static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
-         double node1X = node1->X();
-         double node1Y = node1->Y();
-         double node1Z = node1->Z();
-
-         const SMDS_MeshNode * node2 = static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
-         double node2X = node2->X();
-         double node2Y = node2->Y();
-         double node2Z = node2->Z();
-
-         const SMDS_MeshNode * node3 = static_cast<const SMDS_MeshNode *>(triangleNodesIt->next());
-         double node3X = node3->X();
-         double node3Y = node3->Y();
-         double node3Z = node3->Z();
-
-         int triangleNode1 = node1->GetID();
-         int triangleNode2 = node2->GetID();
-         int triangleNode3 = node3->GetID();
-
-         // Compute the triangle surface
-
-         double vect1 = ((node2Y - node1Y)*(node3Z - node1Z) - (node2Z - node1Z)*(node3Y - node1Y));
-         double vect2 = - ((node2X - node1X)*(node3Z - node1Z) - (node2Z - node1Z)*(node3X - node1X));
-         double vect3 = ((node2X - node1X)*(node3Y - node1Y) - (node2Y - node1Y)*(node3X - node1X));
-         double epsilon = 1.0e-6;
-
-         bool triangleIsDegenerated = ((abs(vect1)<epsilon) && (abs(vect2)<epsilon) && (abs(vect3)<epsilon));
-
-         if (triangleIsDegenerated)
-           {
-//           MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is degenerated");
-//           MESSAGE("NODE -> ID = " << triangleNode1 << " X = " << node1X << " Y = " << node1Y << " Z = " << node1Z);
-//           MESSAGE("NODE -> ID = " << triangleNode2 << " X = " << node2X << " Y = " << node2Y << " Z = " << node2Z);
-//           MESSAGE("NODE -> ID = " << triangleNode3 << " X = " << node3X << " Y = " << node3Y << " Z = " << node3Z);
-             numberOfDegeneratedTriangle++;
-           }
-         else
-           {
-//           MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is normal");
-           }
-       }
-
-      delete iteratorTriangle;
-
-      if (numberOfDegeneratedTriangle > 0)
-       MESSAGE("WARNING THERE IS(ARE) " << numberOfDegeneratedTriangle << " degenerated triangle on this face");
-
-      SCRUTE(index);
-    }
-
-
-
-  SCRUTE(NbTotOfTria);
-  SCRUTE(NbTotOfNodesFaces);
-
-  MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Edges");
-
-  // check if all edges were meshed by a edge mesher (here Regular_1D)
-
-  vector<SMESH_subMesh*> meshEdges;
-  for (TopExp_Explorer exp(aShape,TopAbs_EDGE);exp.More();exp.Next())
-    {
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-      ASSERT (aSubMesh);
-      int internal_size = meshEdges.size();
-      int index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aSubMesh == meshEdges[i]) index = 1;
-       }
-      if (index == 0) meshEdges.push_back(aSubMesh);
-    }
-
-  int numberOfEdges = meshEdges.size();
-  SCRUTE(numberOfEdges);
-
-  MESSAGE("---");
-
-  int NbTotOfNodesEdges = 0;
-  int NbTotOfSegs = 0;
-
-  for (int i=0; i<numberOfEdges; i++)
-    {
-      TopoDS_Shape aShapeEdge = meshEdges[i]->GetSubShape();
-      SMESH_Algo* algoEdge = _gen->GetAlgo(aMesh, aShapeEdge);
-      string algoEdgeName = algoEdge->GetName();
-      SCRUTE(algoEdgeName);
-      if (algoEdgeName != "Regular_1D")
-       {
-         SCRUTE(algoEdgeName);
-         ASSERT(0);
-         return false;
-       }
-
-      const SMESHDS_SubMesh* aSubMeshDSEdge = meshEdges[i]->GetSubMeshDS();
-      SCRUTE(aSubMeshDSEdge);
-
-      int nbNodes = aSubMeshDSEdge->NbNodes();
-      NbTotOfNodesEdges += nbNodes;
-      int nbSegs = aSubMeshDSEdge->NbElements();
-      NbTotOfSegs += nbSegs;
-
-      MESSAGE("SMESH_NETGEN_3D::Compute The mesh Edge " << (i+1) << " has " << nbNodes << " edge internal Nodes, " << nbSegs << " segments");
-
-      SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSEdge->GetNodes();
-      SCRUTE(nbNodes);
-      int index = 0;
-      while(iteratorNodes->more())
-       {
-         index++;
-         const SMDS_MeshNode * node = iteratorNodes->next();
-//       int nodeId = node->GetID();
-//       double nodeX = node->X();
-//       double nodeY = node->Y();
-//       double nodeZ = node->Z();
-//       MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-       }
-      delete iteratorNodes;
-
-      SCRUTE(index);
-    }
-
-  SCRUTE(NbTotOfNodesEdges);
-  SCRUTE(NbTotOfSegs);
-
-  MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Vertices");
-
-  vector<SMESH_subMesh*> meshVertices;
-  for (TopExp_Explorer exp(aShape,TopAbs_VERTEX);exp.More();exp.Next())
-    {
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current());
-      ASSERT (aSubMesh);
-      int internal_size = meshVertices.size();
-      int index = 0;
-      for (int i = 0;i<internal_size;i++)
-       {
-         if (aSubMesh == meshVertices[i]) index = 1;
-       }
-      if (index == 0) meshVertices.push_back(aSubMesh);
-    }
-
-  int numberOfVertices = meshVertices.size();
-  SCRUTE(numberOfVertices);
-
-  MESSAGE("---");
-
-  int NbTotOfNodesVertices = 0;
-
-  for (int i=0; i<numberOfVertices; i++)
-    {
-      TopoDS_Shape aShapeVertex = meshVertices[i]->GetSubShape();
-
-      const SMESHDS_SubMesh * aSubMeshDSVertex = meshVertices[i]->GetSubMeshDS();
-      SCRUTE(aSubMeshDSVertex);
-
-      int nbNodes = aSubMeshDSVertex->NbNodes();
-      NbTotOfNodesVertices += nbNodes;
-
-      MESSAGE("SMESH_NETGEN_3D::Compute The mesh Vertex " << (i+1) << " has " << nbNodes << " Nodes");
-
-      SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSVertex->GetNodes();
-      SCRUTE(nbNodes);
-      int index = 0;
-      while(iteratorNodes->more())
-       {
-         index++;
-         const SMDS_MeshNode * node = iteratorNodes->next();
-//       int nodeId = node->GetID();
-//       double nodeX = node->X();
-//       double nodeY = node->Y();
-//       double nodeZ = node->Z();
-//       MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-       }
-      delete iteratorNodes;
-
-      SCRUTE(index);
-    }
-
-  SCRUTE(NbTotOfNodesVertices);
-
-  MESSAGE("SMESH_NETGEN_3D::Compute --> Analysis of all shell mesh");
-
-  vector<SMESH_subMesh*> meshShells;
-  TopoDS_Shell aShell;
-
-  for (TopExp_Explorer exp(aShape,TopAbs_SHELL);exp.More();exp.Next())
-    {
-      SMESH_subMesh* aSubMesh = aMesh.GetSubMesh(exp.Current());
-      ASSERT(aSubMesh);
-      SCRUTE(aSubMesh);
-      aShell = TopoDS::Shell(exp.Current());
-      meshShells.push_back(aSubMesh);
-    }
-
-  int numberOfShells = meshShells.size();
-  SCRUTE(numberOfShells);
-
-  if (numberOfShells == 1)
-    {
-      MESSAGE("SMESH_NETGEN_3D::Compute Only one shell --> generation of the mesh using directly Netgen");
-
-      /*
-       Prepare the Netgen surface mesh from the SMESHDS
-      */
-
-      MESSAGE("SMESH_NETGEN_3D::Compute Prepare the Netgen surface mesh from the SMESHDS");
-
-      int spaceDimension = 3;
-      int nbNodesByTri = 3;
-      int nbNodesByTetra = 4;
-
-      int Netgen_NbOfNodes = NbTotOfNodesFaces +
-                            NbTotOfNodesEdges +
-                            NbTotOfNodesVertices;
-      int Netgen_NbOfTria = NbTotOfTria;
-      int Netgen_param2ndOrder = 0;
-      double Netgen_paramFine = 1.;
-      double Netgen_paramSize = _maxElementVolume;
-
-      SCRUTE(Netgen_NbOfNodes);
-      SCRUTE(Netgen_NbOfTria);
-
-      double * Netgen_Coordinates = new double [spaceDimension*
-                                               Netgen_NbOfNodes];
-      int * listNodeCoresNetgenSmesh = new int [Netgen_NbOfNodes];
-      int * Netgen_Connectivity = new int [nbNodesByTri*Netgen_NbOfTria];
-      double * Netgen_point = new double [spaceDimension];
-      int * Netgen_triangle = new int [nbNodesByTri];
-      int * Netgen_tetrahedron = new int [nbNodesByTetra];
-
-      for (int i=0; i<Netgen_NbOfTria; i++)
-       {
-         for (int j=0; j<nbNodesByTri; j++)
-           Netgen_Connectivity[i*nbNodesByTri+j] = 0;
-       }
-
-      double bigNumber = 1.e20;
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         listNodeCoresNetgenSmesh[i] = 0;
-         for (int j=0; j<spaceDimension; j++)
-           Netgen_Coordinates[i*spaceDimension+j] = bigNumber;
-       }
-
-      int indexNodes = 0;
-      for (int i=0; i<numberOfVertices; i++)
-       {
-         const SMESHDS_SubMesh * aSubMeshDSVertex =
-           meshVertices[i]->GetSubMeshDS();
-
-         SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSVertex->GetNodes();
-
-         while(iteratorNodes->more())
-           {
-             const SMDS_MeshNode * node = iteratorNodes->next();
-             int nodeId = node->GetID();
-             double nodeX = node->X();
-             double nodeY = node->Y();
-             double nodeZ = node->Z();
-//           MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-             listNodeCoresNetgenSmesh[indexNodes] = nodeId;
-             int index = indexNodes*spaceDimension;
-             Netgen_Coordinates[index] = nodeX;
-             Netgen_Coordinates[index+1] = nodeY;
-             Netgen_Coordinates[index+2] = nodeZ;
-             netgenToDS[indexNodes] = node;
-             indexNodes++;
-           }
-         delete iteratorNodes;
-       }
-
-      for (int i=0; i<numberOfEdges; i++)
-       {
-         const SMESHDS_SubMesh *  aSubMeshDSEdge =
-           meshEdges[i]->GetSubMeshDS();
-
-         SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSEdge->GetNodes();
-
-         while(iteratorNodes->more())
-           {
-             const SMDS_MeshNode * node = iteratorNodes->next();
-             int nodeId = node->GetID();
-             double nodeX = node->X();
-             double nodeY = node->Y();
-             double nodeZ = node->Z();
-//           MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-             listNodeCoresNetgenSmesh[indexNodes] = node->GetID();
-             int index = indexNodes*spaceDimension;
-             Netgen_Coordinates[index] = node->X();
-             Netgen_Coordinates[index+1] = node->Y();
-             Netgen_Coordinates[index+2] = node->Z();
-             netgenToDS[indexNodes] = node;
-             indexNodes++;
-           }
-         delete iteratorNodes;
-       }
-
-      for (int i=0; i<numberOfFaces; i++)
-       {
-         const SMESHDS_SubMesh * aSubMeshDSFace =
-           meshFaces[i]->GetSubMeshDS();
-
-         SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSFace->GetNodes();
-
-         while(iteratorNodes->more())
-           {
-             const SMDS_MeshNode * node = iteratorNodes->next();
-             int nodeId = node->GetID();
-             double nodeX = node->X();
-             double nodeY = node->Y();
-             double nodeZ = node->Z();
-//           MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-             listNodeCoresNetgenSmesh[indexNodes] = nodeId;
-             int index = indexNodes*spaceDimension;
-             Netgen_Coordinates[index] = nodeX;
-             Netgen_Coordinates[index+1] = nodeY;
-             Netgen_Coordinates[index+2] = nodeZ;
-             netgenToDS[indexNodes] = node;
-             indexNodes++;
-           }
-         delete iteratorNodes;
-       }
-
-      SCRUTE(indexNodes);
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         ASSERT(listNodeCoresNetgenSmesh[i] != 0);
-
-         for (int j=0; j<Netgen_NbOfNodes && j!=i; j++)
-           ASSERT(listNodeCoresNetgenSmesh[i] != listNodeCoresNetgenSmesh[j]);
-
-         for (int j=0; j<spaceDimension; j++)
-           ASSERT(Netgen_Coordinates[i*spaceDimension+j] != bigNumber);
-       }
-
-      int indexTrias = 0;
-      for (int i=0; i<numberOfFaces; i++)
-       {
-         const SMESHDS_SubMesh * aSubMeshDSFace =
-           meshFaces[i]->GetSubMeshDS();
-
-         TopoDS_Shape aFace = shapeFaces[i];
-
-         SMDS_Iterator<const SMDS_MeshElement *> * iteratorTriangle = aSubMeshDSFace->GetElements();
-
-         TopoDS_Shape aShapeFace = meshFaces[i]->GetSubShape();
-
-         bool orientationMeshFace = (aFace.Orientation() == aShapeFace.Orientation());
-
-         SCRUTE(orientationMeshFace);
-
-         if (orientationMeshFace)
-           {
-             MESSAGE("The mesh and face have the same orientation");
-
-             while(iteratorTriangle->more())
-               {
-                 const SMDS_MeshElement * triangle = iteratorTriangle->next();
-                 int triangleId = triangle->GetID();
-
-                 SMDS_Iterator<const SMDS_MeshElement *> * triangleNodesIt = triangle->nodesIterator();
-
-                 int triangleNode1 = (triangleNodesIt->next())->GetID();
-                 int triangleNode2 = (triangleNodesIt->next())->GetID();
-                 int triangleNode3 = (triangleNodesIt->next())->GetID();
-
-//               MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3);
-
-                 int N1New = 0;
-                 int N2New = 0;
-                 int N3New = 0;
-                 int index = indexTrias*nbNodesByTri;
-
-                 for (int j=0; j<Netgen_NbOfNodes; j++)
-                   {
-                     int jp1 = j+1;
-
-                     if (triangleNode1 == listNodeCoresNetgenSmesh[j])
-                       N1New = jp1;
-                     else if (triangleNode2 == listNodeCoresNetgenSmesh[j])
-                       N2New = jp1;
-                     else if (triangleNode3 == listNodeCoresNetgenSmesh[j])
-                       N3New = jp1;
-                   }
-
-                 triangleNode1 = N1New;
-                 triangleNode2 = N2New;
-                 triangleNode3 = N3New;
-
-                 Netgen_Connectivity[index] = triangleNode1;
-                 Netgen_Connectivity[index+1] = triangleNode2;
-                 Netgen_Connectivity[index+2] = triangleNode3;
-
-                 indexTrias++;
-               }
-             delete iteratorTriangle;
-           }
-         else
-           {
-             MESSAGE("The mesh and face have different orientations");
-
-             while(iteratorTriangle->more())
-               {
-                 const SMDS_MeshElement * triangle = iteratorTriangle->next();
-                 int triangleId = triangle->GetID();
-
-                 SMDS_Iterator<const SMDS_MeshElement *> * triangleNodesIt = triangle->nodesIterator();
-
-                 int triangleNode1 = (triangleNodesIt->next())->GetID();
-                 int triangleNode3 = (triangleNodesIt->next())->GetID();
-                 int triangleNode2 = (triangleNodesIt->next())->GetID();
-
-//               MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3);
-
-                 int N1New = 0;
-                 int N2New = 0;
-                 int N3New = 0;
-                 int index = indexTrias*nbNodesByTri;
-
-                 for (int j=0; j<Netgen_NbOfNodes; j++)
-                   {
-                     int jp1 = j+1;
-
-                     if (triangleNode1 == listNodeCoresNetgenSmesh[j])
-                       N1New = jp1;
-                     else if (triangleNode2 == listNodeCoresNetgenSmesh[j])
-                       N2New = jp1;
-                     else if (triangleNode3 == listNodeCoresNetgenSmesh[j])
-                       N3New = jp1;
-                   }
-
-                 triangleNode1 = N1New;
-                 triangleNode2 = N2New;
-                 triangleNode3 = N3New;
-
-                 Netgen_Connectivity[index] = triangleNode1;
-                 Netgen_Connectivity[index+1] = triangleNode2;
-                 Netgen_Connectivity[index+2] = triangleNode3;
-
-                 indexTrias++;
-               }
-             delete iteratorTriangle;
-           }
-       }
-
-      SCRUTE(indexTrias);
-
-      int * nodesUsed = new int[Netgen_NbOfNodes];
-
-      for (int i=0; i<Netgen_NbOfNodes; i++) nodesUsed[i] = 0;
-
-      for (int i=0; i<Netgen_NbOfTria; i++)
-       for (int j=0; j<nbNodesByTri; j++)
-         {
-           int Nij = Netgen_Connectivity[i*nbNodesByTri+j];
-
-           ASSERT((Nij>=1) && (Nij<=Netgen_NbOfNodes));
-
-           nodesUsed[Nij-1] = 1;
-           Netgen_Connectivity[i*nbNodesByTri+j] = Nij;
-         }
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         ASSERT(nodesUsed[i] != 0);
-       }
-
-      delete [] nodesUsed;
-
-      /*
-       Feed the Netgen surface mesh
-      */
-
-      MESSAGE("SMESH_NETGEN_3D::Compute Feed the Netgen surface mesh");
-
-      Ng_Mesh * Netgen_mesh;
-
-      Ng_Init();
-
-      Netgen_mesh = Ng_NewMesh();
-
-      Ng_Meshing_Parameters Netgen_param;
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       {
-         for (int j=0; j<spaceDimension; j++)
-           Netgen_point[j] = Netgen_Coordinates[i*spaceDimension+j];
-
-         Ng_AddPoint(Netgen_mesh, Netgen_point);
-       }
-
-      for (int i=0; i<Netgen_NbOfTria; i++)
-       {
-         for (int j=0; j<nbNodesByTri; j++)
-           Netgen_triangle[j] = Netgen_Connectivity[i*nbNodesByTri+j];
-
-         Ng_AddSurfaceElement(Netgen_mesh, NG_TRIG, Netgen_triangle);
-       }
-
-      SCRUTE(Netgen_paramSize);
-
-      Netgen_param.secondorder = Netgen_param2ndOrder;
-      Netgen_param.fineness = Netgen_paramFine;
-      Netgen_param.maxh = Netgen_paramSize;
-
-      /*
-       Generate the volume mesh
-      */
-
-      MESSAGE("SMESH_NETGEN_3D::Compute Generate the volume mesh");
-
-      SCRUTE(Netgen_NbOfNodes);
-      SCRUTE(Netgen_NbOfTria);
-
-      SCRUTE(Ng_GetNP(Netgen_mesh));
-      SCRUTE(Ng_GetNE(Netgen_mesh));
-      SCRUTE(Ng_GetNSE(Netgen_mesh));
-
-      ASSERT(Netgen_NbOfNodes == Ng_GetNP(Netgen_mesh));
-      ASSERT(Ng_GetNE(Netgen_mesh) == 0);
-      ASSERT(Netgen_NbOfTria == Ng_GetNSE(Netgen_mesh));
-
-      Ng_Result status;
-
-      status = Ng_GenerateVolumeMesh(Netgen_mesh, &Netgen_param);
-
-      SCRUTE(status);
-
-      int Netgen_NbOfNodesNew = Ng_GetNP(Netgen_mesh);
-
-      int Netgen_NbOfTetra = Ng_GetNE(Netgen_mesh);
-
-      SCRUTE(Netgen_NbOfNodesNew);
-
-      SCRUTE(Netgen_NbOfTetra);
-
-      if ((status != NG_OK) ||
-         (Netgen_NbOfNodesNew <= Netgen_NbOfNodes) ||
-         (Netgen_NbOfTetra <= 0))
-       {
-         MESSAGE("SMESH_NETGEN_3D::Compute The Volume Mesh Generation has failed ...");
-         SCRUTE(status);
-
-         /*
-           Free the memory needed by to generate the Netgen Mesh
-         */
-
-         MESSAGE("SMESH_NETGEN_3D::Compute Free the memory needed by to generate the Netgen Mesh");
-
-         delete [] Netgen_Coordinates;
-         delete [] Netgen_Connectivity;
-         delete [] Netgen_point;
-         delete [] Netgen_triangle;
-         delete [] Netgen_tetrahedron;
-
-         delete [] listNodeCoresNetgenSmesh;
-
-         Ng_DeleteMesh(Netgen_mesh);
-         Ng_Exit();
-
-         return false;
-       }
-
-      MESSAGE("SMESH_NETGEN_3D::Compute End of Volume Mesh Generation");
-      SCRUTE(status);
-
-      double * Netgen_CoordinatesNew = new double [spaceDimension*Netgen_NbOfNodesNew];
-      int * Netgen_ConnectivityNew = new int [nbNodesByTetra*Netgen_NbOfTetra];
-
-      for (int i=0; i<Netgen_NbOfNodesNew; i++)
-       {
-         Ng_GetPoint(Netgen_mesh, (i+1), Netgen_point);
-
-         for (int j=0; j<spaceDimension; j++)
-           Netgen_CoordinatesNew[i*spaceDimension+j] = Netgen_point[j];
-       }
-
-      for (int i=0; i<Netgen_NbOfNodes; i++)
-       for (int j=0; j<spaceDimension; j++)
-         ASSERT(Netgen_CoordinatesNew[i*spaceDimension+j] == Netgen_Coordinates[i*spaceDimension+j])
-
-      for (int i=0; i<Netgen_NbOfTetra; i++)
-       {
-         Ng_GetVolumeElement(Netgen_mesh, (i+1), Netgen_tetrahedron);
-
-         for (int j=0; j<nbNodesByTetra; j++)
-           Netgen_ConnectivityNew[i*nbNodesByTetra+j] = Netgen_tetrahedron[j];
-       }
-
-      /*
-       Feed back the SMESHDS with the generated Nodes and Volume Elements
-      */
-
-      MESSAGE("SMESH_NETGEN_3D::Compute Feed back the SMESHDS with the generated Nodes and Volume Elements");
-
-      int NbTotOfNodesShell = Netgen_NbOfNodesNew - Netgen_NbOfNodes;
-
-      SCRUTE(NbTotOfNodesShell);
-
-      int * listNodeShellCoresNetgenSmesh = new int [NbTotOfNodesShell];
-
-      for (int i=0; i<NbTotOfNodesShell; i++)
-       listNodeShellCoresNetgenSmesh[i] = 0;
-
-      MESSAGE("SMESH_NETGEN_3D::Compute --> Adding the New Nodes to SMESHDS");
-
-      for (int i=0; i<NbTotOfNodesShell; i++)
-       {
-         int index = (i+Netgen_NbOfNodes)*spaceDimension;
-
-         SMDS_MeshNode * node =
-           meshDS->AddNode(Netgen_CoordinatesNew[index],
-                           Netgen_CoordinatesNew[index+1],
-                           Netgen_CoordinatesNew[index+2]);
-
-         meshDS->SetNodeInVolume(node, aShell);
-
-         index = i+Netgen_NbOfNodes;
-         netgenToDS[index] = node;
-
-         listNodeShellCoresNetgenSmesh[i] = node->GetID();
-       }
-
-      SCRUTE(Netgen_NbOfNodesNew);
-      
-      SCRUTE(netgenToDS.size());
-
-      for (int i=0; i<NbTotOfNodesShell; i++)
-       {
-         ASSERT(listNodeShellCoresNetgenSmesh[i] != 0);
-
-         for (int j=0; j<NbTotOfNodesShell && j!=i; j++)
-           ASSERT(listNodeShellCoresNetgenSmesh[i] != listNodeShellCoresNetgenSmesh[j]);
-       }
-
-      MESSAGE("SMESH_NETGEN_3D::Compute --> Adding the New elements (Tetrahedrons) to the SMESHDS");
-
-      for (int i=0; i<Netgen_NbOfTetra; i++)
-       {
-         int index = i*nbNodesByTetra;
-         int tetraNode1 = Netgen_ConnectivityNew[index];
-         int tetraNode2 = Netgen_ConnectivityNew[index+1];
-         int tetraNode3 = Netgen_ConnectivityNew[index+2];
-         int tetraNode4 = Netgen_ConnectivityNew[index+3];
-
-         const SMDS_MeshNode * node1 = netgenToDS[tetraNode1-1];
-         const SMDS_MeshNode * node2 = netgenToDS[tetraNode2-1];
-         const SMDS_MeshNode * node3 = netgenToDS[tetraNode3-1];
-         const SMDS_MeshNode * node4 = netgenToDS[tetraNode4-1];
-
-         index = tetraNode1;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode1 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode1 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         index = tetraNode2;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode2 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode2 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         index = tetraNode3;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode3 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode3 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         index = tetraNode4;
-         if (index <= Netgen_NbOfNodes)
-           tetraNode4 = listNodeCoresNetgenSmesh[index-1];
-         else
-           tetraNode4 = listNodeShellCoresNetgenSmesh[index-Netgen_NbOfNodes-1];
-
-         SMDS_MeshVolume * elt =
-           meshDS->AddVolume(node1,node2,node3,node4);
-
-         meshDS->SetMeshElementOnShape(elt, aShell);
-       }
-
-      /*
-       Free the memory needed by to generate the Netgen Mesh
-      */
-
-      MESSAGE("SMESH_NETGEN_3D::Compute Free the memory needed by to generate the Netgen Mesh");
-
-      delete [] Netgen_Coordinates;
-      delete [] Netgen_Connectivity;
-      delete [] Netgen_CoordinatesNew;
-      delete [] Netgen_ConnectivityNew;
-      delete [] Netgen_point;
-      delete [] Netgen_triangle;
-      delete [] Netgen_tetrahedron;
-
-      delete [] listNodeCoresNetgenSmesh;
-      delete [] listNodeShellCoresNetgenSmesh;
-
-      Ng_DeleteMesh(Netgen_mesh);
-      Ng_Exit();
-
-      /*
-       Verification
-      */
-
-      {
-       MESSAGE("SMESH_NETGEN_3D::Compute Verification of the Shell mesh");
-
-       TopoDS_Shape aShapeShell = meshShells[0]->GetSubShape();
-       SMESH_Algo* algoShell = _gen->GetAlgo(aMesh, aShapeShell);
-       string algoShellName = algoShell->GetName();
-       SCRUTE(algoShellName);
-       if (algoShellName != "NETGEN_3D")
-         {
-           SCRUTE(algoShellName);
-           ASSERT(0);
-           return false;
-         }
-
-       const SMESHDS_SubMesh * aSubMeshDSShell = meshShells[0]->GetSubMeshDS();
-       SCRUTE(&aSubMeshDSShell);
-
-       int nbNodes = aSubMeshDSShell->NbNodes();
-       int nbTetra = aSubMeshDSShell->NbElements();
-
-       MESSAGE("SMESH_NETGEN_3D::Compute The mesh Shell has " << nbNodes << " shell internal Nodes, " << nbTetra << " tetrahedrons");
-
-       SMDS_Iterator<const SMDS_MeshNode *> * iteratorNodes = aSubMeshDSShell->GetNodes();
-
-       SCRUTE(nbNodes);
-
-       int index;
-
-       index = 0;
-
-       while(iteratorNodes->more())
-         {
-           index++;
-           const SMDS_MeshNode * node = iteratorNodes->next();
-           int nodeId = node->GetID();
-           double nodeX = node->X();
-           double nodeY = node->Y();
-           double nodeZ = node->Z();
-//         MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ);
-         }
-       delete iteratorNodes;
-
-       SCRUTE(index);
-
-       SMDS_Iterator<const SMDS_MeshElement *> * iteratorTetra = aSubMeshDSShell->GetElements();
-
-       SCRUTE(nbTetra);
-
-       index = 0;
-       while(iteratorTetra->more())
-         {
-           index++;
-           const SMDS_MeshElement * tetra = iteratorTetra->next();
-           int tetraId = tetra->GetID();
-
-           SMDS_Iterator<const SMDS_MeshElement *> * tetraNodesIt = tetra->nodesIterator();
-
-           int tetraNode1 = (tetraNodesIt->next())->GetID();
-           int tetraNode2 = (tetraNodesIt->next())->GetID();
-           int tetraNode3 = (tetraNodesIt->next())->GetID();
-           int tetraNode4 = (tetraNodesIt->next())->GetID();
-
-//         MESSAGE("TETRAHEDRON -> ID = " << tetraId << " N1 = " << tetraNode1 << " N2 = " << tetraNode2 << " N3 = " << tetraNode3 << " N4 = " << tetraNode4);
-
-         }
-       delete iteratorTetra;
-
-       SCRUTE(index);
-      }
-    }
-  else
-    {
-      SCRUTE(numberOfShells);
-      MESSAGE("SMESH_NETGEN_3D::Compute ERROR More than one shell ????? ");
-      return false;
-    }
-
-  return true;
-}
-
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_NETGEN_3D::SaveTo(ostream & save)
-{
-  return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_NETGEN_3D::LoadFrom(istream & load)
-{
-  return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator << (ostream & save, SMESH_NETGEN_3D & hyp)
-{
-  return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >> (istream & load, SMESH_NETGEN_3D & hyp)
-{
-  return load;
-}
diff --git a/src/SMESH/SMESH_NETGEN_3D.hxx b/src/SMESH/SMESH_NETGEN_3D.hxx
deleted file mode 100644 (file)
index 9606eb0..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-//=============================================================================
-// File      : SMESH_NETGEN_3D.hxx
-// Created   : lundi 27 Janvier 2003
-// Author    : Nadir BOUHAMOU (CEA)
-// Project   : SALOME
-// Copyright : CEA 2003
-// $Header$
-//=============================================================================
-
-#ifndef _SMESH_NETGEN_3D_HXX_
-#define _SMESH_NETGEN_3D_HXX_
-
-#include "SMESH_3D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-#include "SMESH_MaxElementVolume.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMESH_NETGEN_3D: public SMESH_3D_Algo
-{
-public:
-  SMESH_NETGEN_3D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_NETGEN_3D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                              const TopoDS_Shape& aShape);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_NETGEN_3D & hyp);
-  friend istream & operator >> (istream & load, SMESH_NETGEN_3D & hyp);
-
-protected:
-  double _maxElementVolume;
-
-  const SMESH_MaxElementVolume* _hypMaxElementVolume;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_NumberOfSegments.cxx b/src/SMESH/SMESH_NumberOfSegments.cxx
deleted file mode 100644 (file)
index 0e5d6c4..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_NumberOfSegments.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_NumberOfSegments.hxx"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_NumberOfSegments::SMESH_NumberOfSegments(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen)
-{
-       _numberOfSegments = 1;
-       _scaleFactor = 1.0;
-       _name = "NumberOfSegments";
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_NumberOfSegments::~SMESH_NumberOfSegments()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_NumberOfSegments::SetNumberOfSegments(int segmentsNumber)
-throw(SALOME_Exception)
-{
-       int oldNumberOfSegments = _numberOfSegments;
-       if (segmentsNumber <= 0)
-               throw
-                       SALOME_Exception(LOCALIZED("number of segments must be positive"));
-       _numberOfSegments = segmentsNumber;
-
-       if (oldNumberOfSegments != _numberOfSegments)
-               NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-int SMESH_NumberOfSegments::GetNumberOfSegments() const
-{
-       return _numberOfSegments;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_NumberOfSegments::SetScaleFactor(double scaleFactor)
-throw(SALOME_Exception)
-{
-       if (scaleFactor < 0)
-               throw SALOME_Exception(LOCALIZED("scale factor must be positive"));
-       _scaleFactor = scaleFactor;
-
-       NotifySubMeshesHypothesisModification();
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-double SMESH_NumberOfSegments::GetScaleFactor() const
-{
-       return _scaleFactor;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_NumberOfSegments::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_NumberOfSegments::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_NumberOfSegments & hyp)
-{
-       save << hyp._numberOfSegments;
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_NumberOfSegments & hyp)
-{
-       bool isOK = true;
-       int a;
-       isOK = (load >> a);
-       if (isOK)
-               hyp._numberOfSegments = a;
-       else
-               load.clear(ios::badbit | load.rdstate());
-       return load;
-}
diff --git a/src/SMESH/SMESH_NumberOfSegments.hxx b/src/SMESH/SMESH_NumberOfSegments.hxx
deleted file mode 100644 (file)
index 5071c92..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_NumberOfSegments.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_NUMBEROFSEGMENTS_HXX_
-#define _SMESH_NUMBEROFSEGMENTS_HXX_
-
-#include "SMESH_Hypothesis.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-class SMESH_NumberOfSegments:
-  public SMESH_Hypothesis
-{
-public:
-  SMESH_NumberOfSegments(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_NumberOfSegments();
-
-  void SetNumberOfSegments(int segmentsNumber)
-    throw (SALOME_Exception);
-
-  int GetNumberOfSegments() const;
-
-  void SetScaleFactor(double scaleFactor)
-    throw (SALOME_Exception);
-
-  double GetScaleFactor() const;
-
-  virtual ostream & SaveTo(ostream & save);
-  virtual istream & LoadFrom(istream & load);
-  friend ostream& operator << (ostream & save, SMESH_NumberOfSegments & hyp);
-  friend istream& operator >> (istream & load, SMESH_NumberOfSegments & hyp);
-
-protected:
-  int _numberOfSegments;
-  double _scaleFactor;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Quadrangle_2D.cxx b/src/SMESH/SMESH_Quadrangle_2D.cxx
deleted file mode 100644 (file)
index eab7b28..0000000
+++ /dev/null
@@ -1,640 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Quadrangle_2D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-#include "SMESH_Quadrangle_2D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_EdgePosition.hxx"
-#include "SMDS_FacePosition.hxx"
-
-#include <BRep_Tool.hxx>
-#include <BRepTools.hxx>
-#include <BRepTools_WireExplorer.hxx>
-#include <Geom_Surface.hxx>
-#include <Geom_Curve.hxx>
-#include <Geom2d_Curve.hxx>
-#include <Handle_Geom2d_Curve.hxx>
-#include <Handle_Geom_Curve.hxx>
-#include <gp_Pnt2d.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-
-#include "utilities.h"
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Quadrangle_2D::SMESH_Quadrangle_2D(int hypId,
-       int studyId, SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("SMESH_Quadrangle_2D::SMESH_Quadrangle_2D");
-       _name = "Quadrangle_2D";
-       //  _shapeType = TopAbs_FACE;
-       _shapeType = (1 << TopAbs_FACE);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Quadrangle_2D::~SMESH_Quadrangle_2D()
-{
-       MESSAGE("SMESH_Quadrangle_2D::~SMESH_Quadrangle_2D");
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Quadrangle_2D::CheckHypothesis(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       //MESSAGE("SMESH_Quadrangle_2D::CheckHypothesis");
-
-       bool isOk = true;
-
-       // nothing to check
-
-       return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Quadrangle_2D::Compute(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)throw(SALOME_Exception)
-{
-       //MESSAGE("SMESH_Quadrangle_2D::Compute");
-       SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-
-       FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape);
-       if (!quad)
-               return false;
-
-       // --- compute 3D values on points, store points & quadrangles
-
-       int nbdown = quad->nbPts[0];
-       int nbright = quad->nbPts[1];
-       int nbVertices = nbdown * nbright;
-       int nbQuad = (nbdown - 1) * (nbright - 1);
-       //SCRUTE(nbVertices);
-       //SCRUTE(nbQuad);
-
-       //   const TopoDS_Face& FF = TopoDS::Face(aShape);
-       //   bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD);
-       //   TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD));
-       const TopoDS_Face & F = TopoDS::Face(aShape);
-       bool faceIsForward = (F.Orientation() == TopAbs_FORWARD);
-       Handle(Geom_Surface) S = BRep_Tool::Surface(F);
-
-       for (int i = 1; i < nbdown - 1; i++)
-               for (int j = 1; j < nbright - 1; j++)   // internal points
-               {
-                       int ij = j * nbdown + i;
-                       double u = quad->uv_grid[ij].u;
-                       double v = quad->uv_grid[ij].v;
-                       gp_Pnt P = S->Value(u, v);
-                       SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-                       meshDS->SetNodeOnFace(node, F);
-                       quad->uv_grid[ij].node = node;
-//  Handle (SMDS_FacePosition) fpos
-//    = new SMDS_FacePosition(theSubMesh->GetId(),i,j); // easier than u,v
-//  node->SetPosition(fpos);
-                       SMDS_FacePosition* fpos
-                               = dynamic_cast<SMDS_FacePosition*>(node->GetPosition());
-                       fpos->SetUParameter(i);
-                       fpos->SetVParameter(j);
-               }
-
-       //   bool isQuadForward = ( faceIsForward == quad->isEdgeForward[0]);
-       for (int i = 0; i < nbdown - 1; i++)
-               for (int j = 0; j < nbright - 1; j++)   // faces
-               {
-                       const SMDS_MeshNode *a, *b, *c, *d;
-                       a = quad->uv_grid[j * nbdown + i].node;
-                       b = quad->uv_grid[j * nbdown + i + 1].node;
-                       c = quad->uv_grid[(j + 1) * nbdown + i + 1].node;
-                       d = quad->uv_grid[(j + 1) * nbdown + i].node;
-                       //  if (isQuadForward) faceId = meshDS->AddFace(a,b,c,d);
-                       //  else faceId = meshDS->AddFace(a,d,c,b);
-                       SMDS_MeshFace * face = meshDS->AddFace(a, b, c, d);
-                       meshDS->SetMeshElementOnShape(face, F);
-               }
-
-       QuadDelete(quad);
-       bool isOk = true;
-       return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-FaceQuadStruct *SMESH_Quadrangle_2D::CheckAnd2Dcompute(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)throw(SALOME_Exception)
-{
-       //MESSAGE("SMESH_Quadrangle_2D::ComputeWithoutStore");
-
-       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));
-       const TopoDS_Face & F = TopoDS::Face(aShape);
-       bool faceIsForward = (F.Orientation() == TopAbs_FORWARD);
-
-       // verify 1 wire only, with 4 edges, same number of points on opposite edges
-
-       if (NumberOfWires(F) != 1)
-       {
-               MESSAGE("only 1 wire by face (quadrangles)");
-               return 0;
-               //throw SALOME_Exception(LOCALIZED("only 1 wire by face (quadrangles)"));
-       }
-       //   const TopoDS_Wire WW = BRepTools::OuterWire(F);
-       //   TopoDS_Wire W = TopoDS::Wire(WW.Oriented(TopAbs_FORWARD));
-       const TopoDS_Wire & W = BRepTools::OuterWire(F);
-       BRepTools_WireExplorer wexp(W, F);
-
-       FaceQuadStruct *quad = new FaceQuadStruct;
-       for (int i = 0; i < 4; i++)
-               quad->uv_edges[i] = 0;
-       quad->uv_grid = 0;
-
-       int nbEdges = 0;
-       for (wexp.Init(W, F); wexp.More(); wexp.Next())
-       {
-               //       const TopoDS_Edge& EE = wexp.Current();
-               //       TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
-               const TopoDS_Edge & E = wexp.Current();
-               int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-               if (nbEdges < 4)
-               {
-                       quad->edge[nbEdges] = E;
-                       quad->nbPts[nbEdges] = nb + 2;  // internal points + 2 extrema
-               }
-               nbEdges++;
-       }
-
-       if (nbEdges != 4)
-       {
-               MESSAGE("face must have 4 edges /quadrangles");
-               QuadDelete(quad);
-               return 0;
-               //throw SALOME_Exception(LOCALIZED("face must have 4 edges /quadrangles"));
-       }
-
-       if (quad->nbPts[0] != quad->nbPts[2])
-       {
-               MESSAGE("different point number-opposed edge");
-               QuadDelete(quad);
-               return 0;
-               //throw SALOME_Exception(LOCALIZED("different point number-opposed edge"));
-       }
-
-       if (quad->nbPts[1] != quad->nbPts[3])
-       {
-               MESSAGE("different point number-opposed edge");
-               QuadDelete(quad);
-               return 0;
-               //throw SALOME_Exception(LOCALIZED("different point number-opposed edge"));
-       }
-
-       // set normalized grid on unit square in parametric domain
-
-       SetNormalizedGrid(aMesh, F, quad);
-
-       return quad;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Quadrangle_2D::QuadDelete(FaceQuadStruct * quad)
-{
-       //MESSAGE("SMESH_Quadrangle_2D::QuadDelete");
-       if (quad)
-       {
-               for (int i = 0; i < 4; i++)
-               {
-                       if (quad->uv_edges[i])
-                               delete[]quad->uv_edges[i];
-                       quad->edge[i].Nullify();
-               }
-               if (quad->uv_grid)
-                       delete[]quad->uv_grid;
-               delete quad;
-       }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-void SMESH_Quadrangle_2D::SetNormalizedGrid(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape, FaceQuadStruct * quad) throw(SALOME_Exception)
-{
-       // Algorithme décrit dans "Génération automatique de maillages"
-       // P.L. GEORGE, MASSON, Â§ 6.4.1 p. 84-85
-       // traitement dans le domaine paramétrique 2d u,v
-       // transport - projection sur le carré unité
-
-       const TopoDS_Face & F = TopoDS::Face(aShape);
-
-       // 1 --- find orientation of the 4 edges, by test on extrema
-
-       //      max             min                    0     x1     1
-       //     |<----north-2-------^                a3 -------------> a2
-       //     |                   |                   ^1          1^
-       //    west-3            east-1 =right          |            |
-       //     |                   |         ==>       |            |
-       //  y0 |                   | y1                |            |
-       //     |                   |                   |0          0|
-       //     v----south-0-------->                a0 -------------> a1
-       //      min             max                    0     x0     1
-       //             =down
-       //
-
-       Handle(Geom2d_Curve) c2d[4];
-       gp_Pnt2d pf[4];
-       gp_Pnt2d pl[4];
-       for (int i = 0; i < 4; i++)
-       {
-               c2d[i] = BRep_Tool::CurveOnSurface(quad->edge[i],
-                       F, quad->first[i], quad->last[i]);
-               pf[i] = c2d[i]->Value(quad->first[i]);
-               pl[i] = c2d[i]->Value(quad->last[i]);
-               quad->isEdgeForward[i] = false;
-       }
-
-       double eps2d = 1.e-3;           // *** utiliser plutot TopExp::CommonVertex, puis
-       // distances si piece fausse
-       int i = 0;
-       if ((pf[1].Distance(pl[0]) < eps2d) || (pl[1].Distance(pl[0]) < eps2d))
-       {
-               quad->isEdgeForward[0] = true;
-       }
-       else
-       {
-               double tmp = quad->first[0];
-               quad->first[0] = quad->last[0];
-               quad->last[0] = tmp;
-               pf[0] = c2d[0]->Value(quad->first[0]);
-               pl[0] = c2d[0]->Value(quad->last[0]);
-       }
-       for (int i = 1; i < 4; i++)
-       {
-               quad->isEdgeForward[i] = (pf[i].Distance(pl[i - 1]) < eps2d);
-               if (!quad->isEdgeForward[i])
-               {
-                       double tmp = quad->first[i];
-                       quad->first[i] = quad->last[i];
-                       quad->last[i] = tmp;
-                       pf[i] = c2d[i]->Value(quad->first[i]);
-                       pl[i] = c2d[i]->Value(quad->last[i]);
-                       //SCRUTE(pf[i].Distance(pl[i-1]));
-                       ASSERT(pf[i].Distance(pl[i - 1]) < eps2d);
-               }
-       }
-       //SCRUTE(pf[0].Distance(pl[3]));
-       ASSERT(pf[0].Distance(pl[3]) < eps2d);
-
-//   for (int i=0; i<4; i++)
-//     {
-//       SCRUTE(quad->isEdgeForward[i]);
-//       MESSAGE(" -first "<<i<<" "<<pf[i].X()<<" "<<pf[i].Y());
-//       MESSAGE(" -last  "<<i<<" "<<pl[i].X()<<" "<<pl[i].Y());
-//     }
-
-       // 2 --- load 2d edge points (u,v) with orientation and value on unit square
-
-       for (int i = 0; i < 2; i++)
-       {
-               quad->uv_edges[i] = LoadEdgePoints(aMesh, F,
-                       quad->edge[i], quad->first[i], quad->last[i]);
-
-               //                         quad->isEdgeForward[i]);
-       }
-       for (int i = 2; i < 4; i++)
-       {
-               quad->uv_edges[i] = LoadEdgePoints(aMesh, F,
-                       quad->edge[i], quad->last[i], quad->first[i]);
-
-               //                         !quad->isEdgeForward[i]);
-       }
-
-       // 3 --- 2D normalized values on unit square [0..1][0..1]
-
-       int nbdown = quad->nbPts[0];
-       int nbright = quad->nbPts[1];
-       quad->uv_grid = new UVPtStruct[nbright * nbdown];
-
-       UVPtStruct *uv_grid = quad->uv_grid;
-       UVPtStruct *uv_e0 = quad->uv_edges[0];
-       UVPtStruct *uv_e1 = quad->uv_edges[1];
-       UVPtStruct *uv_e2 = quad->uv_edges[2];
-       UVPtStruct *uv_e3 = quad->uv_edges[3];
-       gp_Pnt2d a0 = pf[0];
-       gp_Pnt2d a1 = pf[1];
-       gp_Pnt2d a2 = pf[2];
-       gp_Pnt2d a3 = pf[3];
-
-       // nodes Id on edges
-
-       int j = 0;
-       for (int i = 0; i < nbdown; i++)
-       {
-               int ij = j * nbdown + i;
-               uv_grid[ij].node = uv_e0[i].node;
-       }
-       i = nbdown - 1;
-       for (int j = 0; j < nbright; j++)
-       {
-               int ij = j * nbdown + i;
-               uv_grid[ij].node = uv_e1[j].node;
-       }
-       j = nbright - 1;
-       for (int i = 0; i < nbdown; i++)
-       {
-               int ij = j * nbdown + i;
-               uv_grid[ij].node = uv_e2[i].node;
-       }
-       i = 0;
-       for (int j = 0; j < nbright; j++)
-       {
-               int ij = j * nbdown + i;
-               uv_grid[ij].node = uv_e3[j].node;
-       }
-
-       // normalized 2d values on grid
-
-       for (int i = 0; i < nbdown; i++)
-               for (int j = 0; j < nbright; j++)
-               {
-                       int ij = j * nbdown + i;
-                       // --- droite i cste : x = x0 + y(x1-x0)
-                       double x0 = uv_e0[i].normParam; // bas - sud
-                       double x1 = uv_e2[i].normParam; // haut - nord
-                       // --- droite j cste : y = y0 + x(y1-y0)
-                       double y0 = uv_e3[j].normParam; // gauche-ouest
-                       double y1 = uv_e1[j].normParam; // droite - est
-                       // --- intersection : x=x0+(y0+x(y1-y0))(x1-x0)
-                       double x = (x0 + y0 * (x1 - x0)) / (1 - (y1 - y0) * (x1 - x0));
-                       double y = y0 + x * (y1 - y0);
-                       uv_grid[ij].x = x;
-                       uv_grid[ij].y = y;
-                       //MESSAGE("-xy-01 "<<x0<<" "<<x1<<" "<<y0<<" "<<y1);
-                       //MESSAGE("-xy-norm "<<i<<" "<<j<<" "<<x<<" "<<y);
-               }
-
-       // 4 --- projection on 2d domain (u,v)
-
-       for (int i = 0; i < nbdown; i++)
-               for (int j = 0; j < nbright; j++)
-               {
-                       int ij = j * nbdown + i;
-                       double x = uv_grid[ij].x;
-                       double y = uv_grid[ij].y;
-                       double param_0 = uv_e0[0].param + x * (uv_e0[nbdown - 1].param - uv_e0[0].param);       // sud
-                       double param_2 = uv_e2[0].param + x * (uv_e2[nbdown - 1].param - uv_e2[0].param);       // nord
-                       double param_1 = uv_e1[0].param + y * (uv_e1[nbright - 1].param - uv_e1[0].param);      // est
-                       double param_3 = uv_e3[0].param + y * (uv_e3[nbright - 1].param - uv_e3[0].param);      // ouest
-
-                       //MESSAGE("params "<<param_0<<" "<<param_1<<" "<<param_2<<" "<<param_3);
-                       gp_Pnt2d p0 = c2d[0]->Value(param_0);
-                       gp_Pnt2d p1 = c2d[1]->Value(param_1);
-                       gp_Pnt2d p2 = c2d[2]->Value(param_2);
-                       gp_Pnt2d p3 = c2d[3]->Value(param_3);
-
-                       double u =
-                               (1 - y) * p0.X() + x * p1.X() + y * p2.X() + (1 - x) * p3.X();
-                       double v =
-                               (1 - y) * p0.Y() + x * p1.Y() + y * p2.Y() + (1 - x) * p3.Y();
-
-                       u -= (1 - x) * (1 - y) * a0.X() + x * (1 - y) * a1.X() +
-                               x * y * a2.X() + (1 - x) * y * a3.X();
-                       v -= (1 - x) * (1 - y) * a0.Y() + x * (1 - y) * a1.Y() +
-                               x * y * a2.Y() + (1 - x) * y * a3.Y();
-
-                       uv_grid[ij].u = u;
-                       uv_grid[ij].v = v;
-
-                       //MESSAGE("-uv- "<<i<<" "<<j<<" "<<uv_grid[ij].u<<" "<<uv_grid[ij].v);
-               }
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-UVPtStruct *SMESH_Quadrangle_2D::LoadEdgePoints(SMESH_Mesh & aMesh,
-       const TopoDS_Face & F, const TopoDS_Edge & E, double first, double last)
-  //                        bool isForward)
-{
-       //MESSAGE("SMESH_Quadrangle_2D::LoadEdgePoints");
-
-       SMDS_Mesh * meshDS = aMesh.GetMeshDS();
-
-       // --- IDNodes of first and last Vertex
-
-       TopoDS_Vertex VFirst, VLast;
-       TopExp::Vertices(E, VFirst, VLast);     // corresponds to f and l
-
-    ASSERT(!VFirst.IsNull());
-    SMDS_Iterator<const SMDS_MeshNode *> * lid=
-        aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes();
-    const SMDS_MeshNode * idFirst = lid->next();
-    delete lid;
-
-    ASSERT(!VLast.IsNull());
-    lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-    const SMDS_MeshNode * idLast = lid->next();
-    delete lid;
-
-       // --- edge internal IDNodes (relies on good order storage, not checked)
-
-       int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
-       //SCRUTE(nbPoints);
-       UVPtStruct *uvslf = new UVPtStruct[nbPoints + 2];
-
-       double f, l;
-       Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l);
-
-       map<double, const SMDS_MeshNode *> params;
-       SMDS_Iterator<const SMDS_MeshNode *> * ite=
-               aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes();
-
-       while(ite->more())
-       {
-               const SMDS_MeshNode * node = ite->next();
-               const SMDS_EdgePosition* epos
-                       = static_cast<const SMDS_EdgePosition*>(node->GetPosition());
-               double param = epos->GetUParameter();
-               params[param] = node;
-       }
-       delete ite;
-
-       bool isForward = (((l - f) * (last - first)) > 0);
-       double paramin = 0;
-       double paramax = 0;
-       if (isForward)
-       {
-               paramin = f;
-               paramax = l;
-               gp_Pnt2d p = C2d->Value(f);     // first point = Vertex Forward
-               uvslf[0].x = p.X();
-               uvslf[0].y = p.Y();
-               uvslf[0].param = f;
-               uvslf[0].node = idFirst;
-               //MESSAGE("__ f "<<f<<" "<<uvslf[0].x <<" "<<uvslf[0].y);
-               map < double, const SMDS_MeshNode* >::iterator itp = params.begin();
-               for (int i = 1; i <= nbPoints; i++)     // nbPoints internal
-               {
-                       double param = (*itp).first;
-                       gp_Pnt2d p = C2d->Value(param);
-                       uvslf[i].x = p.X();
-                       uvslf[i].y = p.Y();
-                       uvslf[i].param = param;
-                       uvslf[i].node = (*itp).second;
-                       //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[i].x <<" "<<uvslf[i].y);
-                       itp++;
-               }
-               p = C2d->Value(l);              // last point = Vertex Reversed
-               uvslf[nbPoints + 1].x = p.X();
-               uvslf[nbPoints + 1].y = p.Y();
-               uvslf[nbPoints + 1].param = l;
-               uvslf[nbPoints + 1].node = idLast;
-               //MESSAGE("__ l "<<l<<" "<<uvslf[nbPoints+1].x <<" "<<uvslf[nbPoints+1].y);
-       }
-       else
-       {
-               paramin = l;
-               paramax = f;
-               gp_Pnt2d p = C2d->Value(l);     // first point = Vertex Reversed
-               uvslf[0].x = p.X();
-               uvslf[0].y = p.Y();
-               uvslf[0].param = l;
-               uvslf[0].node = idLast;
-               //MESSAGE("__ l "<<l<<" "<<uvslf[0].x <<" "<<uvslf[0].y);
-               map < double, const SMDS_MeshNode* >::reverse_iterator itp = params.rbegin();
-               for (int j = nbPoints; j >= 1; j--)     // nbPoints internal
-               {
-                       double param = (*itp).first;
-                       int i = nbPoints + 1 - j;
-                       gp_Pnt2d p = C2d->Value(param);
-                       uvslf[i].x = p.X();
-                       uvslf[i].y = p.Y();
-                       uvslf[i].param = param;
-                       uvslf[i].node = (*itp).second;
-                       //MESSAGE("__ "<<i<<" "<<param<<" "<<uvslf[i].x <<" "<<uvslf[i].y);
-                       itp++;
-               }
-               p = C2d->Value(f);              // last point = Vertex Forward
-               uvslf[nbPoints + 1].x = p.X();
-               uvslf[nbPoints + 1].y = p.Y();
-               uvslf[nbPoints + 1].param = f;
-               uvslf[nbPoints + 1].node = idFirst;
-               //MESSAGE("__ f "<<f<<" "<<uvslf[nbPoints+1].x <<" "<<uvslf[nbPoints+1].y);
-       }
-
-       ASSERT(paramin != paramax);
-       for (int i = 0; i < nbPoints + 2; i++)
-       {
-               uvslf[i].normParam = (uvslf[i].param - paramin) / (paramax - paramin);
-               //SCRUTE(uvslf[i].normParam);
-       }
-
-       return uvslf;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_Quadrangle_2D::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_Quadrangle_2D::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_Quadrangle_2D & hyp)
-{
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_Quadrangle_2D & hyp)
-{
-       return load;
-}
diff --git a/src/SMESH/SMESH_Quadrangle_2D.hxx b/src/SMESH/SMESH_Quadrangle_2D.hxx
deleted file mode 100644 (file)
index 59bc904..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Quadrangle_2D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_QUADRANGLE_2D_HXX_
-#define _SMESH_QUADRANGLE_2D_HXX_
-
-#include "SMESH_2D_Algo.hxx"
-#include "SMESH_Mesh.hxx"
-#include "Utils_SALOME_Exception.hxx"
-
-typedef struct uvPtStruct
-{
-  double param;
-  double normParam;
-  double u; // original 2d parameter
-  double v;
-  double x; // 2d parameter, normalized [0,1]
-  double y; 
-       const SMDS_MeshNode * node;
-} UVPtStruct;
-
-typedef struct faceQuadStruct
-{
-  int nbPts[4];
-  TopoDS_Edge edge[4];
-  double first[4];
-  double last[4];
-  bool isEdgeForward[4];
-  UVPtStruct* uv_edges[4];
-  UVPtStruct* uv_grid;
-} FaceQuadStruct;
-
-class SMESH_Quadrangle_2D:
-  public SMESH_2D_Algo
-{
-public:
-  SMESH_Quadrangle_2D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_Quadrangle_2D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                              const TopoDS_Shape& aShape);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh,
-                                   const TopoDS_Shape& aShape)
-    throw (SALOME_Exception);
-
-  void QuadDelete(FaceQuadStruct* quad);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_Quadrangle_2D & hyp);
-  friend istream & operator >> (istream & load, SMESH_Quadrangle_2D & hyp);
-
-protected:
-
-  void SetNormalizedGrid(SMESH_Mesh& aMesh,
-                        const TopoDS_Shape& aShape,
-                        FaceQuadStruct* quad)
-    throw (SALOME_Exception);
-
-  UVPtStruct* LoadEdgePoints(SMESH_Mesh& aMesh,
-                            const TopoDS_Face& F,
-                            const TopoDS_Edge& E,
-                            double first,
-                            double last);
-//                          bool isForward);
-
-//   FaceQuadStruct _quadDesc;
-};
-
-#endif
diff --git a/src/SMESH/SMESH_Regular_1D.cxx b/src/SMESH/SMESH_Regular_1D.cxx
deleted file mode 100644 (file)
index 1f4e6eb..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Regular_1D.cxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-using namespace std;
-
-#include "SMESH_Regular_1D.hxx"
-#include "SMESH_Gen.hxx"
-#include "SMESH_Mesh.hxx"
-
-#include "SMESH_LocalLength.hxx"
-#include "SMESH_NumberOfSegments.hxx"
-
-#include "SMDS_MeshElement.hxx"
-#include "SMDS_MeshNode.hxx"
-#include "SMDS_EdgePosition.hxx"
-
-#include "utilities.h"
-
-#include <TopoDS_Edge.hxx>
-#include <TopoDS_Shape.hxx>
-#include <GeomAdaptor_Curve.hxx>
-#include <BRep_Tool.hxx>
-#include <GCPnts_AbscissaPoint.hxx>
-#include <GCPnts_UniformAbscissa.hxx>
-
-#include <string>
-#include <algorithm>
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Regular_1D::SMESH_Regular_1D(int hypId, int studyId,
-       SMESH_Gen * gen):SMESH_1D_Algo(hypId, studyId, gen)
-{
-       MESSAGE("SMESH_Regular_1D::SMESH_Regular_1D");
-       _name = "Regular_1D";
-       //  _shapeType = TopAbs_EDGE;
-       _shapeType = (1 << TopAbs_EDGE);
-       _compatibleHypothesis.push_back("LocalLength");
-       _compatibleHypothesis.push_back("NumberOfSegments");
-
-       _localLength = 0;
-       _numberOfSegments = 0;
-       _hypLocalLength = NULL;
-       _hypNumberOfSegments = NULL;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-SMESH_Regular_1D::~SMESH_Regular_1D()
-{
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & SMESH_Regular_1D::SaveTo(ostream & save)
-{
-       return save << this;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & SMESH_Regular_1D::LoadFrom(istream & load)
-{
-       return load >> (*this);
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-ostream & operator <<(ostream & save, SMESH_Regular_1D & hyp)
-{
-       return save;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-istream & operator >>(istream & load, SMESH_Regular_1D & hyp)
-{
-       return load;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Regular_1D::CheckHypothesis(SMESH_Mesh & aMesh,
-       const TopoDS_Shape & aShape)
-{
-       //MESSAGE("SMESH_Regular_1D::CheckHypothesis");
-
-       list <const SMESHDS_Hypothesis * >::const_iterator itl;
-       const SMESHDS_Hypothesis *theHyp;
-
-       const list <const SMESHDS_Hypothesis * >&hyps = GetUsedHypothesis(aMesh, aShape);
-       int nbHyp = hyps.size();
-       if (nbHyp != 1) return false; // only one compatible hypothesis allowed
-
-       itl = hyps.begin();
-       theHyp = (*itl);
-
-       string hypName = theHyp->GetName();
-       int hypId = theHyp->GetID();
-       //SCRUTE(hypName);
-
-       bool isOk = false;
-
-       if (hypName == "LocalLength")
-       {
-               _hypLocalLength = dynamic_cast <const SMESH_LocalLength * >(theHyp);
-               ASSERT(_hypLocalLength);
-               _localLength = _hypLocalLength->GetLength();
-               _numberOfSegments = 0;
-               isOk = true;
-       }
-
-       if (hypName == "NumberOfSegments")
-       {
-               _hypNumberOfSegments =
-                       dynamic_cast <const SMESH_NumberOfSegments * >(theHyp);
-               ASSERT(_hypNumberOfSegments);
-               _numberOfSegments = _hypNumberOfSegments->GetNumberOfSegments();
-               _scaleFactor = _hypNumberOfSegments->GetScaleFactor();
-               _localLength = 0;
-               isOk = true;
-       }
-
-       //SCRUTE(_localLength);
-       //SCRUTE(_numberOfSegments);
-
-       return isOk;
-}
-
-//=============================================================================
-/*!
- *  
- */
-//=============================================================================
-
-bool SMESH_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
-{
-       MESSAGE("SMESH_Regular_1D::Compute");
-
-       SMESHDS_Mesh * meshDS = aMesh.GetMeshDS();
-       SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape);
-
-       const TopoDS_Edge & EE = TopoDS::Edge(aShape);
-       TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD));
-
-       double f, l;
-       Handle(Geom_Curve) Curve = BRep_Tool::Curve(E, f, l);
-
-       TopoDS_Vertex VFirst, VLast;
-       TopExp::Vertices(E, VFirst, VLast);     // Vfirst corresponds to f and Vlast to l
-
-       double length = EdgeLength(E);
-       //SCRUTE(length);
-
-       double eltSize = 1;
-//   if (_localLength > 0) eltSize = _localLength;
-       if (_localLength > 0)
-       {
-               double nbseg = ceil(length / _localLength);     // integer sup
-               if (nbseg <= 0)
-                       nbseg = 1;                      // degenerated edge
-               eltSize = length / nbseg;
-       }
-       else
-       {
-               ASSERT(_numberOfSegments > 0);
-               eltSize = length / _numberOfSegments;
-       }
-
-       ASSERT(!VFirst.IsNull());
-       SMDS_Iterator<const SMDS_MeshNode *> * lid=
-               aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes();
-       const SMDS_MeshNode * idFirst = lid->next();
-       delete lid;
-
-       ASSERT(!VLast.IsNull());
-       lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes();
-       const SMDS_MeshNode * idLast = lid->next();
-       delete lid;
-
-       if (!Curve.IsNull())
-       {
-               GeomAdaptor_Curve C3d(Curve);
-               GCPnts_UniformAbscissa Discret(C3d, eltSize, f, l);
-               int NbPoints = Discret.NbPoints();
-               //MESSAGE("nb points on edge : "<<NbPoints);
-
-               // edge extrema (indexes : 1 & NbPoints) already in SMDS (TopoDS_Vertex)
-               // only internal nodes receive an edge position with param on curve
-
-               const SMDS_MeshNode * idPrev = idFirst;
-               for (int i = 2; i < NbPoints; i++)
-               {
-                       double param = Discret.Parameter(i);
-
-                       if (_numberOfSegments > 1)
-                       {
-                               double epsilon = 0.001;
-                               if (fabs(_scaleFactor - 1.0) > epsilon)
-                               {
-                                       double alpha =
-                                               pow(_scaleFactor, 1.0 / (_numberOfSegments - 1));
-                                       double d =
-                                               length * (1 - pow(alpha, i - 1)) / (1 - pow(alpha,
-                                                       _numberOfSegments));
-                                       param = d;
-                               }
-                       }
-
-                       gp_Pnt P = Curve->Value(param);
-
-                       //Add the Node in the DataStructure
-                       //MESSAGE("point "<<nodeId<<" "<<P.X()<<" "<<P.Y()<<" "<<P.Z()<<" - "<<i<<" "<<param);
-                       SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-                       meshDS->SetNodeOnEdge(node, E);
-
-                       // **** edgePosition associe au point = param. 
-                       SMDS_EdgePosition* epos=dynamic_cast<SMDS_EdgePosition *>(node->GetPosition());
-                       epos->SetUParameter(param);
-
-                       SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
-                       meshDS->SetMeshElementOnShape(edge, E);
-                       idPrev = node;
-               }
-               SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast);
-               meshDS->SetMeshElementOnShape(edge, E);
-       }
-       else
-       {
-//       MESSAGE ("Edge Degeneree non traitee --- arret");
-//       ASSERT(0);
-               if (BRep_Tool::Degenerated(E))
-               {
-                       // Edge is a degenerated Edge : We put n = 5 points on the edge.
-                       int NbPoints = 5;
-                       BRep_Tool::Range(E, f, l);
-                       double du = (l - f) / (NbPoints - 1);
-                       MESSAGE("************* Degenerated edge! *****************");
-
-                       TopoDS_Vertex V1, V2;
-                       TopExp::Vertices(E, V1, V2);
-                       gp_Pnt P = BRep_Tool::Pnt(V1);
-
-                       const SMDS_MeshNode * idPrev = idFirst;
-                       for (int i = 2; i < NbPoints; i++)
-                       {
-                               double param = f + (i - 1) * du;
-                               SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z());
-                               meshDS->SetNodeOnEdge(node, E);
-
-//        Handle (SMDS_EdgePosition) epos
-//      = new SMDS_EdgePosition(theSubMesh->GetId(),param);
-//        node->SetPosition(epos);
-                               SMDS_EdgePosition* epos
-                                       = dynamic_cast<SMDS_EdgePosition*>(node->GetPosition());
-                               epos->SetUParameter(param);
-
-                               SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node);
-                               meshDS->SetMeshElementOnShape(edge, E);
-                               idPrev = node;
-                       }
-                       SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast);
-                       meshDS->SetMeshElementOnShape(edge, E);
-               }
-               else
-                       ASSERT(0);
-       }
-       return true;
-}
diff --git a/src/SMESH/SMESH_Regular_1D.hxx b/src/SMESH/SMESH_Regular_1D.hxx
deleted file mode 100644 (file)
index 09daed9..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-//  SMESH SMESH : implementaion of SMESH idl descriptions
-//
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  This library is free software; you can redistribute it and/or 
-//  modify it under the terms of the GNU Lesser General Public 
-//  License as published by the Free Software Foundation; either 
-//  version 2.1 of the License. 
-// 
-//  This library is distributed in the hope that it will be useful, 
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
-//  Lesser General Public License for more details. 
-// 
-//  You should have received a copy of the GNU Lesser General Public 
-//  License along with this library; if not, write to the Free Software 
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
-//
-//
-//
-//  File   : SMESH_Regular_1D.hxx
-//  Author : Paul RASCLE, EDF
-//  Module : SMESH
-//  $Header$
-
-#ifndef _SMESH_REGULAR_1D_HXX_
-#define _SMESH_REGULAR_1D_HXX_
-
-#include "SMESH_1D_Algo.hxx"
-
-class SMESH_LocalLength;
-class SMESH_NumberOfSegments;
-
-class SMESH_Regular_1D:
-  public SMESH_1D_Algo
-{
-public:
-  SMESH_Regular_1D(int hypId, int studyId, SMESH_Gen* gen);
-  virtual ~SMESH_Regular_1D();
-
-  virtual bool CheckHypothesis(SMESH_Mesh& aMesh,
-                              const TopoDS_Shape& aShape);
-
-  virtual bool Compute(SMESH_Mesh& aMesh,
-                      const TopoDS_Shape& aShape);
-
-  ostream & SaveTo(ostream & save);
-  istream & LoadFrom(istream & load);
-  friend ostream & operator << (ostream & save, SMESH_Regular_1D & hyp);
-  friend istream & operator >> (istream & load, SMESH_Regular_1D & hyp);
-
-protected:
-  double _localLength;
-  int _numberOfSegments;
-  double _scaleFactor;
-  const SMESH_LocalLength* _hypLocalLength;
-  const SMESH_NumberOfSegments* _hypNumberOfSegments;
-};
-
-#endif
index 2e6799ed22b80a7348e8c5f73bfc0dde843632ae..2b78950b92e092d929ce7fe13efe4dde4c516758 100644 (file)
@@ -40,6 +40,8 @@ using namespace std;
 #include <TopTools_ListOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <TopTools_ListOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TopoDS_Compound.hxx>
+#include <BRep_Builder.hxx>
 
 //=============================================================================
 /*!
 
 //=============================================================================
 /*!
@@ -50,7 +52,6 @@ using namespace std;
 SMESH_subMesh::SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
        const TopoDS_Shape & aSubShape)
 {
 SMESH_subMesh::SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
        const TopoDS_Shape & aSubShape)
 {
-       //MESSAGE("SMESH_subMesh::SMESH_subMesh");
        _subShape = aSubShape;
        _meshDS = meshDS;
        _subMeshDS = meshDS->MeshElements(_subShape);   // may be null ...
        _subShape = aSubShape;
        _meshDS = meshDS;
        _subMeshDS = meshDS->MeshElements(_subShape);   // may be null ...
@@ -58,7 +59,6 @@ SMESH_subMesh::SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
        _Id = Id;
        _vertexSet = false;                     // only for Vertex subMesh
        _dependenceAnalysed = false;
        _Id = Id;
        _vertexSet = false;                     // only for Vertex subMesh
        _dependenceAnalysed = false;
-       _dependantsFound = false;
 
        if (_subShape.ShapeType() == TopAbs_VERTEX)
        {
 
        if (_subShape.ShapeType() == TopAbs_VERTEX)
        {
@@ -90,93 +90,19 @@ SMESH_subMesh::~SMESH_subMesh()
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-int SMESH_subMesh::GetId()
+int SMESH_subMesh::GetId() const
 {
        //MESSAGE("SMESH_subMesh::GetId");
        return _Id;
 }
 
 {
        //MESSAGE("SMESH_subMesh::GetId");
        return _Id;
 }
 
-//=============================================================================
-/*!
- * Given a subShape, find the subMesh is associated to this subShape or
- * to a collection of shapes containing this subShape. Collection = compsolid,
- * shell, wire
- */
-//=============================================================================
-
-// bool SMESH_subMesh::Contains(const TopoDS_Shape & aSubShape)
-//   throw (SALOME_Exception)
-// {
-//   //MESSAGE("SMESH_subMesh::Contains");
-//   bool contains = false;
-//   int type = _subShape.ShapeType();
-//   int typesub = aSubShape.ShapeType();
-//   //SCRUTE(type)
-//   //SCRUTE(typesub)
-//   switch (type)
-//     {
-// //     case TopAbs_COMPOUND:
-// //       {
-// //   //MESSAGE("---");
-// //   throw SALOME_Exception(LOCALIZED("Compound not yet treated"));
-// //   break;
-// //       }
-//     case TopAbs_COMPSOLID:
-//       {
-//  //MESSAGE("---");
-//  for (TopExp_Explorer exp(aSubShape,TopAbs_SOLID);exp.More();exp.Next())
-//    {
-//      contains = _subShape.IsSame(exp.Current());
-//      if (contains) break;
-//    }
-//  break;
-//       }
-//     case TopAbs_SHELL:
-//       {
-//  //MESSAGE("---");
-//  for (TopExp_Explorer exp(aSubShape,TopAbs_FACE);exp.More();exp.Next())
-//    {
-//      contains = _subShape.IsSame(exp.Current());
-//      if (contains) break;
-//    }
-//  break;
-//       }
-//     case TopAbs_WIRE:
-//       {
-//  //MESSAGE("---");
-//  for (TopExp_Explorer exp(aSubShape,TopAbs_EDGE);exp.More();exp.Next())
-//    {
-//      contains = _subShape.IsSame(exp.Current());
-//      if (contains) break;
-//    }
-//  break;
-//       }
-//     case TopAbs_COMPOUND:
-//     case TopAbs_SOLID:
-//     case TopAbs_FACE:
-//     case TopAbs_EDGE:
-//     case TopAbs_VERTEX:
-//       {
-//  //MESSAGE("---");
-//  contains = _subShape.IsSame(aSubShape);
-//  break;
-//       }
-//     default:
-//       {
-//  break;
-//       }
-//     }
-//   //SCRUTE(contains);
-//   return contains;
-// }
-
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
-SMESHDS_SubMesh * SMESH_subMesh::GetSubMeshDS() throw(SALOME_Exception)
+SMESHDS_SubMesh * SMESH_subMesh::GetSubMeshDS()
 {
        //MESSAGE("SMESH_subMesh::GetSubMeshDS");
        if (_subMeshDS==NULL)
 {
        //MESSAGE("SMESH_subMesh::GetSubMeshDS");
        if (_subMeshDS==NULL)
@@ -199,7 +125,21 @@ SMESHDS_SubMesh * SMESH_subMesh::GetSubMeshDS() throw(SALOME_Exception)
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-SMESH_subMesh *SMESH_subMesh::GetFirstToCompute() throw(SALOME_Exception)
+SMESHDS_SubMesh* SMESH_subMesh::CreateSubMeshDS()
+{
+  if ( !GetSubMeshDS() )
+    _meshDS->NewSubMesh( _meshDS->ShapeToIndex( _subShape ) );
+
+  return GetSubMeshDS();
+}
+
+//=============================================================================
+/*!
+ * 
+ */
+//=============================================================================
+
+SMESH_subMesh *SMESH_subMesh::GetFirstToCompute()
 {
        //MESSAGE("SMESH_subMesh::GetFirstToCompute");
        const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
 {
        //MESSAGE("SMESH_subMesh::GetFirstToCompute");
        const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
@@ -239,7 +179,7 @@ SMESH_subMesh *SMESH_subMesh::GetFirstToCompute() throw(SALOME_Exception)
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-bool SMESH_subMesh::SubMeshesComputed() throw(SALOME_Exception)
+bool SMESH_subMesh::SubMeshesComputed()
 {
        //MESSAGE("SMESH_subMesh::SubMeshesComputed");
        const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
 {
        //MESSAGE("SMESH_subMesh::SubMeshesComputed");
        const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
@@ -526,10 +466,6 @@ const map < int, SMESH_subMesh * >&SMESH_subMesh::DependsOn()
 void SMESH_subMesh::InsertDependence(const TopoDS_Shape aSubShape)
 {
        //MESSAGE("SMESH_subMesh::InsertDependence");
 void SMESH_subMesh::InsertDependence(const TopoDS_Shape aSubShape)
 {
        //MESSAGE("SMESH_subMesh::InsertDependence");
-       //SMESH_subMesh* aSubMesh = _father->GetSubMeshContaining(aSubShape);
-       //SCRUTE(aSubMesh);
-       //if (! aSubMesh) aSubMesh = _father->GetSubMesh(aSubShape);
-
        SMESH_subMesh *aSubMesh = _father->GetSubMesh(aSubShape);
        int type = aSubShape.ShapeType();
        int ordType = 9 - type;         // 2 = Vertex, 8 = CompSolid
        SMESH_subMesh *aSubMesh = _father->GetSubMesh(aSubShape);
        int type = aSubShape.ShapeType();
        int ordType = 9 - type;         // 2 = Vertex, 8 = CompSolid
@@ -551,31 +487,6 @@ void SMESH_subMesh::InsertDependence(const TopoDS_Shape aSubShape)
 
 }
 
 
 }
 
-//=============================================================================
-/*!
- * For collection shapes (compsolid, shell, wire).
- * Add only subMesh figuring only once in multiset to dependence list 
- */
-//=============================================================================
-
-// void SMESH_subMesh::FinalizeDependence(list<TopoDS_Shape>& shapeList)
-// {
-//   //MESSAGE("SMESH_subMesh::FinalizeDependence");
-//   list<TopoDS_Shape>::iterator it1, it2;
-//   for(it1 = shapeList.begin(); it1 != shapeList.end(); it1++)
-//     {
-//       TopoDS_Shape aSubShape = (*it1);
-//       int count = 0;
-//       for(it2 = shapeList.begin(); it2 != shapeList.end(); it2++)
-//  {
-//    TopoDS_Shape other = (*it2);
-//    if (other.IsSame(aSubShape)) count++;
-//  }
-//       if (count == 1) InsertDependence(aSubShape);
-//       SCRUTE(count);
-//     }
-// }
-
 //=============================================================================
 /*!
  * 
 //=============================================================================
 /*!
  * 
@@ -588,420 +499,467 @@ const TopoDS_Shape & SMESH_subMesh::GetSubShape()
        return _subShape;
 }
 
        return _subShape;
 }
 
+
+//=======================================================================
+//function : CanAddHypothesis
+//purpose  : return true if theHypothesis can be attached to me:
+//           its dimention is checked
+//=======================================================================
+
+bool SMESH_subMesh::CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const
+{
+  int aHypDim   = theHypothesis->GetDim();
+  int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
+  if ( aHypDim <= aShapeDim )
+    return true;
+//   if ( aHypDim < aShapeDim )
+//     return ( _father->IsMainShape( _subShape ));
+    
+  return false;
+}
+
+//=======================================================================
+//function : IsApplicableHypotesis
+//purpose  : return true if theHypothesis can be used to mesh me:
+//           its shape type is checked
+//=======================================================================
+
+bool SMESH_subMesh::IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const
+{
+  if ( theHypothesis->GetType() > SMESHDS_Hypothesis::PARAM_ALGO)
+    // algorithm
+    return ( theHypothesis->GetShapeType() & (1<< _subShape.ShapeType()));
+
+  // hypothesis
+  switch ( _subShape.ShapeType() ) {
+  case TopAbs_EDGE:
+  case TopAbs_FACE:
+  case TopAbs_SHELL:
+  case TopAbs_SOLID: {
+    int aHypDim   = theHypothesis->GetDim();
+    int aShapeDim = SMESH_Gen::GetShapeDim(_subShape);
+    return ( aHypDim == aShapeDim );
+  }
+//   case TopAbs_VERTEX:
+//   case TopAbs_WIRE:
+//   case TopAbs_COMPSOLID:
+//   case TopAbs_COMPOUND:
+  default:;
+  }
+
+  return false;
+}
+
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
-bool SMESH_subMesh::AlgoStateEngine(int event, SMESH_Hypothesis * anHyp)
-throw(SALOME_Exception)
+SMESH_Hypothesis::Hypothesis_Status
+  SMESH_subMesh::AlgoStateEngine(int event, SMESH_Hypothesis * anHyp)
 {
 {
-       //  MESSAGE("SMESH_subMesh::AlgoStateEngine");
-       //SCRUTE(_algoState);
-       //SCRUTE(event);
-
-       // **** les retour des evenement shape sont significatifs
-       // (add ou remove fait ou non)
-       // le retour des evenement father n'indiquent pas que add ou remove fait
-       int dim = SMESH_Gen::GetShapeDim(_subShape);
-
-       if (dim < 1)
-       {
-               _algoState = HYP_OK;
-               //SCRUTE(_algoState);
-               return true;
-       }
-
-       SMESH_Gen *gen = _father->GetGen();
-       bool ret;
-       _oldAlgoState = _algoState;
-       bool modifiedHyp = false;       // if set to true, force event MODIF_ALGO_STATE
-       // in ComputeStateEngine
-
-       switch (_algoState)
-       {
-
-               // ----------------------------------------------------------------------
-
-       case NO_ALGO:
-               switch (event)
-               {
-               case ADD_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->AddHypothesis(_subShape, anHyp);
-                       break;
-               case ADD_ALGO:
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-                       if (anHyp->GetDim() <= SMESH_Gen::GetShapeDim(_subShape))
-                       {
-                               ret = _meshDS->AddHypothesis(_subShape, anHyp);
-//        if (ret &&(anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape)))
-//        if (ret &&(anHyp->GetShapeType() == _subShape.ShapeType()))
-                               if (ret &&
-                                       (anHyp->GetShapeType() & (1 << _subShape.ShapeType())))
-                               {
-                                       SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                                       ASSERT(algo);
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               case REMOVE_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                       break;
-               case REMOVE_ALGO:
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                       break;
-               case ADD_FATHER_HYP:    // nothing to do
-                       break;
-               case ADD_FATHER_ALGO:   // Algo just added in father
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-//    if (anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape))
-//    if (anHyp->GetShapeType() == _subShape.ShapeType())
-                       if (anHyp->GetShapeType() & (1 << _subShape.ShapeType()))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               ASSERT(algo);
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       SetAlgoState(HYP_OK);
-                               else
-                                       SetAlgoState(MISSING_HYP);
-                       }
-                       break;
-               case REMOVE_FATHER_HYP: // nothing to do
-                       break;
-               case REMOVE_FATHER_ALGO:        // nothing to do
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
-
-               // ----------------------------------------------------------------------
-
-       case MISSING_HYP:
-               switch (event)
-               {
-               case ADD_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->AddHypothesis(_subShape, anHyp);
-                       if (ret)
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               ASSERT(algo);
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       SetAlgoState(HYP_OK);
-                               else
-                                       SetAlgoState(MISSING_HYP);
-                       }
-                       break;
-               case ADD_ALGO:                  //already existing algo : on father ?
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-                       if (anHyp->GetDim() <= SMESH_Gen::GetShapeDim(_subShape))
-                       {
-                               ret = _meshDS->AddHypothesis(_subShape, anHyp);
-//        if (ret &&(anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape)))
-//        if (ret &&(anHyp->GetShapeType() == _subShape.ShapeType()))
-                               if (ret &&
-                                       (anHyp->GetShapeType() & (1 << _subShape.ShapeType())))
-                               {
-                                       SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                                       if (algo == NULL)       // two algo on the same subShape...
-                                       {
-                                               MESSAGE("two algo on the same subshape not allowed");
-                                               ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                                               ret = false;
-                                       }
-                                       else
-                                       {
-                                               ret = algo->CheckHypothesis((*_father), _subShape);
-                                               if (ret)
-                                                       SetAlgoState(HYP_OK);
-                                               else
-                                                       SetAlgoState(MISSING_HYP);
-                                       }
-                               }
-                       }
-                       break;
-               case REMOVE_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                       break;
-               case REMOVE_ALGO:               // perhaps a father algo applies ?
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-//    if (ret &&(anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape)))
-//    if (ret &&(anHyp->GetShapeType() == _subShape.ShapeType()))
-                       if (ret && (anHyp->GetShapeType() & (1 << _subShape.ShapeType())))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               if (algo == NULL)       // no more algo applying on subShape...
-                               {
-                                       SetAlgoState(NO_ALGO);
-                               }
-                               else
-                               {
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               case ADD_FATHER_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               ASSERT(algo);
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       SetAlgoState(HYP_OK);
-                               else
-                                       SetAlgoState(MISSING_HYP);
-                       }
-                       break;
-               case ADD_FATHER_ALGO:   // detect if two algo of same dim on father
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-//    if (anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape))
-//    if (anHyp->GetShapeType() == _subShape.ShapeType())
-                       if (anHyp->GetShapeType() & (1 << _subShape.ShapeType()))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               if (algo == NULL)       // two applying algo on father
-                               {
-                                       MESSAGE("two applying algo on fatherShape...");
-                                       SetAlgoState(NO_ALGO);
-                               }
-                               else
-                               {
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               case REMOVE_FATHER_HYP: // nothing to do
-                       break;
-               case REMOVE_FATHER_ALGO:
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-//    if (anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape))
-//    if (anHyp->GetShapeType() == _subShape.ShapeType())
-                       if (anHyp->GetShapeType() & (1 << _subShape.ShapeType()))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               if (algo == NULL)       // no more applying algo on father
-                               {
-                                       SetAlgoState(NO_ALGO);
-                               }
-                               else
-                               {
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
+  //  MESSAGE("SMESH_subMesh::AlgoStateEngine");
+  //SCRUTE(_algoState);
+  //SCRUTE(event);
+
+  // **** les retour des evenement shape sont significatifs
+  // (add ou remove fait ou non)
+  // le retour des evenement father n'indiquent pas que add ou remove fait
+  int dim = SMESH_Gen::GetShapeDim(_subShape);
+
+  SMESH_Hypothesis::Hypothesis_Status aux_ret, ret = SMESH_Hypothesis::HYP_OK;
+  if (dim < 1)
+    {
+      _algoState = HYP_OK;
+      return ret;
+    }
+
+  SMESH_Gen* gen =_father->GetGen();
+//  bool ret = false;
+  int oldAlgoState = _algoState;
+  bool modifiedHyp = false;  // if set to true, force event MODIF_ALGO_STATE
+                             // in ComputeStateEngine
+
+  // ----------------------
+  // check mesh conformity
+  // ----------------------
+  if (event == ADD_ALGO)
+  {
+    if (IsApplicableHypotesis( anHyp ) &&
+        !_father->IsNotConformAllowed() &&
+        !IsConform( static_cast< SMESH_Algo* >( anHyp )))
+      return SMESH_Hypothesis::HYP_NOTCONFORM;
+  }
+  
+  // ----------------------------------
+  // add a hypothesis to DS if possible
+  // ----------------------------------
+  if (event == ADD_HYP || event == ADD_ALGO)
+  {
+    if ( ! CanAddHypothesis( anHyp ))
+      return SMESH_Hypothesis::HYP_BAD_DIM;
+
+    if ( GetNbAttached( _subShape, anHyp ) > 0 )
+      return SMESH_Hypothesis::HYP_ALREADY_EXIST;
+
+    if ( !_meshDS->AddHypothesis(_subShape, anHyp))
+      return SMESH_Hypothesis::HYP_ALREADY_EXIST;
+  }
+
+  // --------------------------
+  // remove a hypothesis from DS
+  // --------------------------
+  if (event == REMOVE_HYP || event == REMOVE_ALGO)
+  {
+    if (!_meshDS->RemoveHypothesis(_subShape, anHyp))
+      return SMESH_Hypothesis::HYP_OK; // nothing changes
+  }
+
+  // ------------------
+  // analyse algo state
+  // ------------------
+  if (!IsApplicableHypotesis( anHyp ))
+    return ret; // not applicable hypotheses do not change algo state
+
+  switch (_algoState)
+  {
+
+    // ----------------------------------------------------------------------
+
+  case NO_ALGO:
+    switch (event) {
+    case ADD_HYP:
+      break;
+    case ADD_ALGO: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if (algo->CheckHypothesis((*_father),_subShape, ret))
+        SetAlgoState(HYP_OK);
+      else
+        SetAlgoState(MISSING_HYP);
+      break;
+    }
+    case REMOVE_HYP:
+      break;
+    case REMOVE_ALGO:
+      break;
+    case ADD_FATHER_HYP:
+      break;
+    case ADD_FATHER_ALGO: {    // Algo just added in father
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo == anHyp ) {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+      }
+      break;
+    }
+    case REMOVE_FATHER_HYP:
+      break;
+    case REMOVE_FATHER_ALGO: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if (algo)
+      {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+            SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+      }
+      break;
+    }
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+
+    // ----------------------------------------------------------------------
+
+  case MISSING_HYP:
+    switch (event)
+    {
+    case ADD_HYP: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo->CheckHypothesis((*_father),_subShape, ret ))
+        SetAlgoState(HYP_OK);
+      if (SMESH_Hypothesis::IsStatusFatal( ret ))
+        _meshDS->RemoveHypothesis(_subShape, anHyp);
+      else if (!_father->IsUsedHypothesis(  anHyp, _subShape ))
+      {
+        _meshDS->RemoveHypothesis(_subShape, anHyp);
+        ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
+      }
+      break;
+    }
+    case ADD_ALGO: {           //already existing algo : on father ?
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))// ignore hyp status
+        SetAlgoState(HYP_OK);
+      else
+        SetAlgoState(MISSING_HYP);
+      break;
+    }
+    case REMOVE_HYP:
+      break;
+    case REMOVE_ALGO: {        // perhaps a father algo applies ?
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if (algo == NULL)  // no more algo applying on subShape...
+      {
+        SetAlgoState(NO_ALGO);
+      }
+      else
+      {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+      }
+      break;
+    }
+    case ADD_FATHER_HYP: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+        SetAlgoState(HYP_OK);
+      else
+        SetAlgoState(MISSING_HYP);
+    }
+      break;
+    case ADD_FATHER_ALGO: { // new father algo
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT( algo );
+      if ( algo == anHyp ) {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+      }
+      break;
+    }
+    case REMOVE_FATHER_HYP:    // nothing to do
+      break;
+    case REMOVE_FATHER_ALGO: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if (algo == NULL)  // no more applying algo on father
+      {
+        SetAlgoState(NO_ALGO);
+      }
+      else
+      {
+        if ( algo->CheckHypothesis((*_father),_subShape , aux_ret ))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+      }
+      break;
+    }
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+
+    // ----------------------------------------------------------------------
+    
+  case HYP_OK:
+    switch (event)
+    {
+    case ADD_HYP: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if (!algo->CheckHypothesis((*_father),_subShape, ret ))
+      {
+        MESSAGE("two applying algo on the same shape not allowed");
+        _meshDS->RemoveHypothesis(_subShape, anHyp);
+        //ret = SMESH_Hypothesis::HYP_ALREADY_EXIST;
+      }
+      else if (SMESH_Hypothesis::IsStatusFatal( ret ))
+        _meshDS->RemoveHypothesis(_subShape, anHyp);
+      else if (!_father->IsUsedHypothesis(  anHyp, _subShape ))
+      {
+        _meshDS->RemoveHypothesis(_subShape, anHyp);
+        ret = SMESH_Hypothesis::HYP_INCOMPATIBLE;
+      }
+      modifiedHyp = _father->IsUsedHypothesis( anHyp, _subShape ); // new Hyp?
+      break;
+    }
+    case ADD_ALGO: {           //already existing algo : on father ?
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+        SetAlgoState(HYP_OK);
+      else
+        SetAlgoState(MISSING_HYP);
+      modifiedHyp = true;
+      break;
+    }
+    case REMOVE_HYP: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+        SetAlgoState(HYP_OK);
+      else
+        SetAlgoState(MISSING_HYP);
+      modifiedHyp = true;
+      // report only severe errors
+      if ( SMESH_Hypothesis::IsStatusFatal( aux_ret ))
+        ret = aux_ret;
+      break;
+    }
+    case REMOVE_ALGO: {         // perhaps a father algo applies ?
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if (algo == NULL)   // no more algo applying on subShape...
+      {
+        SetAlgoState(NO_ALGO);
+      }
+      else
+      {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+        modifiedHyp = true;
+        // report only severe errors
+        if ( SMESH_Hypothesis::IsStatusFatal( aux_ret ))
+          ret = aux_ret;
+      }
+      break;
+    }
+    case ADD_FATHER_HYP: {  // new father hypothesis ?
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+      {
+        SetAlgoState(HYP_OK);
+        if (_father->IsUsedHypothesis( anHyp, _subShape )) // new Hyp
+          modifiedHyp = true;
+      }
+      else
+        SetAlgoState(MISSING_HYP);
+      break;
+    }
+    case ADD_FATHER_ALGO: {    // a new algo on father
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if ( algo == anHyp ) {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+        modifiedHyp = true;
+      }
+      break;
+    }
+    case REMOVE_FATHER_HYP: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      ASSERT(algo);
+      if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+        SetAlgoState(HYP_OK);
+      else
+        SetAlgoState(MISSING_HYP);
+      modifiedHyp = true;
+      break;
+    }
+    case REMOVE_FATHER_ALGO: {
+      SMESH_Algo* algo = gen->GetAlgo((*_father), _subShape);
+      if (algo == NULL)  // no more applying algo on father
+      {
+        SetAlgoState(NO_ALGO);
+      }
+      else
+      {
+        if ( algo->CheckHypothesis((*_father),_subShape, aux_ret ))
+          SetAlgoState(HYP_OK);
+        else
+          SetAlgoState(MISSING_HYP);
+        modifiedHyp = true;
+      }
+      break;
+    }
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+    
+    // ----------------------------------------------------------------------
+    
+  default:
+    ASSERT(0);
+    break;
+  }
+  // ----------------------------------------
+  // check concurent hypotheses on ansestors
+  // ----------------------------------------
+  if (ret < SMESH_Hypothesis::HYP_CONCURENT &&
+      (event == ADD_FATHER_HYP ||
+       event == ADD_FATHER_ALGO ||
+       event == REMOVE_FATHER_HYP ||
+       event == REMOVE_FATHER_ALGO ||
+       event == REMOVE_ALGO ||
+       event == REMOVE_HYP))
+  {
+    ret = CheckConcurentHypothesis( anHyp->GetType() );
+  }
+
+  if ((_algoState != oldAlgoState) || modifiedHyp)
+    int retc = ComputeStateEngine(MODIF_ALGO_STATE);
+
+  return ret;
+}
 
 
-               // ----------------------------------------------------------------------
 
 
-       case HYP_OK:
-               switch (event)
-               {
-               case ADD_HYP:
-               {
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                       ASSERT(algo);
-                       list<const SMESHDS_Hypothesis *> originalUsedHyps = algo->GetUsedHypothesis((*_father), _subShape);     // copy
+//=======================================================================
+//function : IsConform
+//purpose  : check if a conform mesh will be produced by the Algo
+//=======================================================================
 
 
-                       ret = _meshDS->AddHypothesis(_subShape, anHyp);
-                       if (ret)
-                       {
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (!ret)
-                               {
-                                       INFOS("two applying algo on the same shape not allowed");
-                                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                                       ret = false;
-                               }
-                               else                    // compare SMESHDS_Hypothesis* lists (order important)
-                               {
-                                       MESSAGE("---");
-                                       const list <const SMESHDS_Hypothesis *> & newUsedHyps
-                                               = algo->GetUsedHypothesis((*_father), _subShape);
-                                       modifiedHyp = (originalUsedHyps != newUsedHyps);
-                               }
-                       }
-               }
-                       break;
-               case ADD_ALGO:                  //already existing algo : on father ?
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-                       if (anHyp->GetDim() <= SMESH_Gen::GetShapeDim(_subShape))
-                       {
-                               ret = _meshDS->AddHypothesis(_subShape, anHyp);
-//        if (ret &&(anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape)))
-//        if (ret &&(anHyp->GetShapeType() == _subShape.ShapeType()))
-                               if (ret &&
-                                       (anHyp->GetShapeType() & (1 << _subShape.ShapeType())))
-                               {
-                                       SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                                       if (algo == NULL)       // two algo on the same subShape...
-                                       {
-                                               INFOS("two algo on the same subshape not allowed");
-                                               ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                                               ret = false;
-                                       }
-                                       else
-                                       {
-                                               ret = algo->CheckHypothesis((*_father), _subShape);
-                                               if (ret)
-                                                       SetAlgoState(HYP_OK);
-                                               else
-                                                       SetAlgoState(MISSING_HYP);
-                                       }
-                               }
-                       }
-                       break;
-               case REMOVE_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-                       if (ret)
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               ASSERT(algo);
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       SetAlgoState(HYP_OK);
-                               else
-                                       SetAlgoState(MISSING_HYP);
-                               modifiedHyp = true;
-                       }
-                       break;
-               case REMOVE_ALGO:               // perhaps a father algo applies ?
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-                       ret = _meshDS->RemoveHypothesis(_subShape, anHyp);
-//    if (ret &&(anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape)))
-//    if (ret &&(anHyp->GetShapeType() == _subShape.ShapeType()))
-                       if (ret && (anHyp->GetShapeType() & (1 << _subShape.ShapeType())))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               if (algo == NULL)       // no more algo applying on subShape...
-                               {
-                                       SetAlgoState(NO_ALGO);
-                               }
-                               else
-                               {
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               case ADD_FATHER_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               ASSERT(algo);
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       SetAlgoState(HYP_OK);
-                               else
-                                       SetAlgoState(MISSING_HYP);
-                       }
-                       break;
-               case ADD_FATHER_ALGO:   // detect if two algo of same dim on father
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-//    if (anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape))
-//    if (anHyp->GetShapeType() == _subShape.ShapeType())
-                       if (anHyp->GetShapeType() & (1 << _subShape.ShapeType()))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               if (algo == NULL)       // two applying algo on father
-                               {
-                                       MESSAGE("two applying algo on fatherShape...");
-                                       SetAlgoState(NO_ALGO);
-                               }
-                               else
-                               {
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               case REMOVE_FATHER_HYP:
-                       ASSERT(anHyp->GetType() == SMESHDS_Hypothesis::PARAM_ALGO);
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               ASSERT(algo);
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       SetAlgoState(HYP_OK);
-                               else
-                                       SetAlgoState(MISSING_HYP);
-                       }
-                       break;
-               case REMOVE_FATHER_ALGO:
-                       ASSERT(anHyp->GetType() != SMESHDS_Hypothesis::PARAM_ALGO);
-//    if (anHyp->GetDim() == SMESH_Gen::GetShapeDim(_subShape))
-//    if (anHyp->GetShapeType() == _subShape.ShapeType())
-                       if (anHyp->GetShapeType() & (1 << _subShape.ShapeType()))
-                       {
-                               SMESH_Algo *algo = gen->GetAlgo((*_father), _subShape);
-                               if (algo == NULL)       // no more applying algo on father
-                               {
-                                       SetAlgoState(NO_ALGO);
-                               }
-                               else
-                               {
-                                       ret = algo->CheckHypothesis((*_father), _subShape);
-                                       if (ret)
-                                               SetAlgoState(HYP_OK);
-                                       else
-                                               SetAlgoState(MISSING_HYP);
-                               }
-                       }
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
-
-               // ----------------------------------------------------------------------
-
-       default:
-               ASSERT(0);
-               break;
-       }
-       //SCRUTE(_algoState);
-       if ((_algoState != _oldAlgoState) || modifiedHyp)
-               int retc = ComputeStateEngine(MODIF_ALGO_STATE);
-       return ret;
+bool SMESH_subMesh::IsConform(const SMESH_Algo* theAlgo)
+{
+  MESSAGE( "SMESH_subMesh::IsConform" );
+
+  if ( !theAlgo ) return false;
+
+  // check only algo that doesn't NeedDescretBoundary(): because mesh made
+  // on a sub-shape will be ignored by theAlgo
+  if ( theAlgo->NeedDescretBoundary() )
+    return true;
+
+  SMESH_Gen* gen =_father->GetGen();
+  
+  // only local algo is to be checked
+  if ( gen->IsGlobalAlgo( theAlgo, *_father ))
+    return true;
+
+  // check algo attached to adjacent shapes
+
+  // loop on one level down sub-meshes
+  TopoDS_Iterator itsub( _subShape );
+  for (; itsub.More(); itsub.Next())
+  {
+    // loop on adjacent subShapes
+    TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( itsub.Value() ));
+    for (; it.More(); it.Next())
+    {
+      const TopoDS_Shape& adjacent = it.Value();
+      if ( _subShape.IsSame( adjacent )) continue;
+      if ( adjacent.ShapeType() != _subShape.ShapeType())
+        break;
+
+      // check algo attached to smAdjacent
+      SMESH_Algo * algo = gen->GetAlgo((*_father), adjacent);
+      if (algo &&
+          //algo != theAlgo &&
+          !algo->NeedDescretBoundary() /*&&
+          !gen->IsGlobalAlgo( algo, *_father )*/)
+        return false; // NOT CONFORM MESH WILL BE PRODUCED
+    }
+  }
+
+  return true;
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -1012,7 +970,7 @@ throw(SALOME_Exception)
 
 void SMESH_subMesh::SetAlgoState(int state)
 {
 
 void SMESH_subMesh::SetAlgoState(int state)
 {
-       if (state != _oldAlgoState)
+//     if (state != _oldAlgoState)
 //     int retc = ComputeStateEngine(MODIF_ALGO_STATE);
                _algoState = state;
 }
 //     int retc = ComputeStateEngine(MODIF_ALGO_STATE);
                _algoState = state;
 }
@@ -1022,13 +980,15 @@ void SMESH_subMesh::SetAlgoState(int state)
  * 
  */
 //=============================================================================
  * 
  */
 //=============================================================================
-
-void SMESH_subMesh::SubMeshesAlgoStateEngine(int event,
-       SMESH_Hypothesis * anHyp) throw(SALOME_Exception)
+SMESH_Hypothesis::Hypothesis_Status 
+ SMESH_subMesh::SubMeshesAlgoStateEngine(int event,
+       SMESH_Hypothesis * anHyp)
 {
        //MESSAGE("SMESH_subMesh::SubMeshesAlgoStateEngine");
 {
        //MESSAGE("SMESH_subMesh::SubMeshesAlgoStateEngine");
-       int dim = SMESH_Gen::GetShapeDim(_subShape);
-       if (dim > 1)
+  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 )
        {
                const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
 
        {
                const map < int, SMESH_subMesh * >&subMeshes = DependsOn();
 
@@ -1036,9 +996,36 @@ void SMESH_subMesh::SubMeshesAlgoStateEngine(int event,
                for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
                {
                        SMESH_subMesh *sm = (*itsub).second;
                for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++)
                {
                        SMESH_subMesh *sm = (*itsub).second;
-                       sm->AlgoStateEngine(event, anHyp);
+                        SMESH_Hypothesis::Hypothesis_Status ret2 =
+                          sm->AlgoStateEngine(event, anHyp);
+                        if ( ret2 > ret )
+                          ret = ret2;
                }
        }
                }
        }
+  return ret;
+}
+
+//=============================================================================
+/*!
+ * 
+ */
+//=============================================================================
+
+void SMESH_subMesh::CleanDependsOn()
+{
+       MESSAGE("SMESH_subMesh::CleanDependsOn");
+       // **** parcourir les ancetres dans l'ordre de dépendance
+
+       ComputeStateEngine(CLEAN);
+
+       const map < int, SMESH_subMesh * >&dependson = DependsOn();
+       map < int, SMESH_subMesh * >::const_iterator its;
+       for (its = dependson.begin(); its != dependson.end(); its++)
+       {
+               SMESH_subMesh *sm = (*its).second;
+               SCRUTE((*its).first);
+               sm->ComputeStateEngine(CLEAN);
+       }
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -1099,217 +1086,340 @@ void SMESH_subMesh::DumpAlgoState(bool isMain)
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-bool SMESH_subMesh::ComputeStateEngine(int event) throw(SALOME_Exception)
+bool SMESH_subMesh::ComputeStateEngine(int event)
 {
 {
-       //MESSAGE("SMESH_subMesh::ComputeStateEngine");
-       //SCRUTE(_computeState);
-       //SCRUTE(event);
-
-       int dim = SMESH_Gen::GetShapeDim(_subShape);
+  //MESSAGE("SMESH_subMesh::ComputeStateEngine");
+  //SCRUTE(_computeState);
+  //SCRUTE(event);
+
+  int dim = SMESH_Gen::GetShapeDim(_subShape);
+
+  if (dim < 1)
+  {
+    if (_vertexSet)
+      _computeState = COMPUTE_OK;
+    else
+      _computeState = READY_TO_COMPUTE;
+    //SCRUTE(_computeState);
+    return true;
+  }
+  SMESH_Gen *gen = _father->GetGen();
+  SMESH_Algo *algo = 0;
+  bool ret;
+  SMESH_Hypothesis::Hypothesis_Status hyp_status;
+
+  switch (_computeState)
+  {
+
+    // ----------------------------------------------------------------------
+
+  case NOT_READY:
+    switch (event)
+    {
+    case MODIF_HYP:            // nothing to do
+      break;
+    case MODIF_ALGO_STATE:
+      if (_algoState == HYP_OK)
+      {
+        _computeState = READY_TO_COMPUTE;
+      }
+      break;
+    case COMPUTE:                      // nothing to do
+      break;
+    case CLEAN:
+      RemoveSubMeshElementsAndNodes();
+      break;
+    case CLEANDEP:
+      CleanDependants();
+      break;
+    case SUBMESH_COMPUTED:     // nothing to do
+      break;
+    case SUBMESH_RESTORED:
+      ComputeSubMeshStateEngine( SUBMESH_RESTORED );
+      break;
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+
+    // ----------------------------------------------------------------------
+
+  case READY_TO_COMPUTE:
+    switch (event)
+    {
+    case MODIF_HYP:            // nothing to do
+      break;
+    case MODIF_ALGO_STATE:
+      _computeState = NOT_READY;
+      algo = gen->GetAlgo((*_father), _subShape);
+      if (algo)
+      {
+        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
+        if (ret)
+          _computeState = READY_TO_COMPUTE;
+      }
+      break;
+    case COMPUTE:
+      {
+        algo = gen->GetAlgo((*_father), _subShape);
+        ASSERT(algo);
+        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
+        if (!ret)
+        {
+          MESSAGE("***** verify compute state *****");
+          _computeState = NOT_READY;
+          break;
+        }
+        // check submeshes needed
+        if (algo->NeedDescretBoundary())
+          ret = SubMeshesComputed();
+        if (!ret)
+        {
+          MESSAGE("Some SubMeshes not computed");
+          _computeState = FAILED_TO_COMPUTE;
+          break;
+        }
+        // compute
+        if (!algo->NeedDescretBoundary() && !algo->OnlyUnaryInput())
+          ret = ApplyToCollection( algo, GetCollection( gen, algo ) );
+        else
+          ret = algo->Compute((*_father), _subShape);
+        
+        if (!ret)
+        {
+          MESSAGE("problem in algo execution: failed to compute");
+          _computeState = FAILED_TO_COMPUTE;
+          if (!algo->NeedDescretBoundary())
+            UpdateSubMeshState( FAILED_TO_COMPUTE );
+          break;
+        }
+        else
+        {
+          _computeState = COMPUTE_OK;
+          UpdateDependantsState( SUBMESH_COMPUTED ); // send event SUBMESH_COMPUTED
+          if (!algo->NeedDescretBoundary())
+            UpdateSubMeshState( COMPUTE_OK );
+        }
+      }
+      break;
+    case CLEAN:
+      RemoveSubMeshElementsAndNodes();
+      _computeState = NOT_READY;
+      algo = gen->GetAlgo((*_father), _subShape);
+      if (algo)
+      {
+        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
+        if (ret)
+          _computeState = READY_TO_COMPUTE;
+      }
+      break;
+    case CLEANDEP:
+      CleanDependants();
+      break;
+    case SUBMESH_COMPUTED:      // nothing to do
+      break;
+    case SUBMESH_RESTORED:
+      // check if a mesh is already computed that may
+      // happen after retrieval from a file
+      if ( IsMeshComputed() ) {
+        _computeState = COMPUTE_OK;
+      }
+      ComputeSubMeshStateEngine( SUBMESH_RESTORED );
+      break;
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+
+    // ----------------------------------------------------------------------
+
+  case COMPUTE_OK:
+    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
+      algo = gen->GetAlgo((*_father), _subShape);
+      if (algo && !algo->NeedDescretBoundary())
+        CleanDependsOn(); // remove sub-mesh with event CLEANDEP
+      break;
+    case COMPUTE:                       // nothing to do
+      break;
+    case CLEAN:
+      RemoveSubMeshElementsAndNodes();
+      _computeState = NOT_READY;
+      algo = gen->GetAlgo((*_father), _subShape);
+      if (algo)
+      {
+        ret = algo->CheckHypothesis((*_father), _subShape, hyp_status);
+        if (ret)
+          _computeState = READY_TO_COMPUTE;
+      }
+      break;
+    case CLEANDEP:
+      CleanDependants();        // recursive recall with event CLEANDEP
+      break;
+    case SUBMESH_COMPUTED:      // nothing to do
+      break;
+    case SUBMESH_RESTORED:
+      ComputeSubMeshStateEngine( SUBMESH_RESTORED );
+      break;
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+
+    // ----------------------------------------------------------------------
+
+  case FAILED_TO_COMPUTE:
+    switch (event)
+    {
+    case MODIF_HYP:
+      if (_algoState == HYP_OK)
+        _computeState = READY_TO_COMPUTE;
+      else
+        _computeState = NOT_READY;
+      break;
+    case MODIF_ALGO_STATE:
+      if (_algoState == HYP_OK)
+        _computeState = READY_TO_COMPUTE;
+      else
+        _computeState = NOT_READY;
+      break;
+    case COMPUTE:                       // nothing to do
+      break;
+    case CLEAN:
+      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;
+      else
+        _computeState = NOT_READY;
+      break;
+    case SUBMESH_RESTORED:
+      ComputeSubMeshStateEngine( SUBMESH_RESTORED );
+      break;
+    default:
+      ASSERT(0);
+      break;
+    }
+    break;
+
+    // ----------------------------------------------------------------------
+  default:
+    ASSERT(0);
+    break;
+  }
+
+  //SCRUTE(_computeState);
+  return ret;
+}
 
 
-       if (dim < 1)
-       {
-               if (_vertexSet)
-                       _computeState = COMPUTE_OK;
-               else
-                       _computeState = READY_TO_COMPUTE;
-               //SCRUTE(_computeState);
-               return true;
-       }
-       SMESH_Gen *gen = _father->GetGen();
-       SMESH_Algo *algo = 0;
-       bool ret;
+//=======================================================================
+//function : ApplyToCollection
+//purpose  : Apply theAlgo to all subshapes in theCollection
+//=======================================================================
 
 
-       switch (_computeState)
-       {
-
-               // ----------------------------------------------------------------------
+bool SMESH_subMesh::ApplyToCollection (SMESH_Algo*         theAlgo,
+                                       const TopoDS_Shape& theCollection)
+{
+  MESSAGE("SMESH_subMesh::ApplyToCollection");
+  ASSERT ( !theAlgo->NeedDescretBoundary() );
+
+  bool ret = false;
+
+
+  ret = theAlgo->Compute( *_father, theCollection );
+
+  // set _computeState of subshapes
+  TopExp_Explorer anExplorer( theCollection, _subShape.ShapeType() );
+  for ( ; anExplorer.More(); anExplorer.Next() )
+  {
+    const TopoDS_Shape& aSubShape = anExplorer.Current();
+    SMESH_subMesh* subMesh = _father->GetSubMeshContaining( aSubShape );
+    if ( subMesh )
+    {
+      if (ret)
+      {
+        subMesh->_computeState = COMPUTE_OK;
+        subMesh->UpdateDependantsState( SUBMESH_COMPUTED );
+        subMesh->UpdateSubMeshState( COMPUTE_OK );
+      }
+      else
+      {
+        subMesh->_computeState = FAILED_TO_COMPUTE;
+      }
+    }
+  }
+  return ret;
+}
 
 
-       case NOT_READY:
-               switch (event)
-               {
-               case MODIF_HYP:         // nothing to do
-                       break;
-               case MODIF_ALGO_STATE:
-                       if (_algoState == HYP_OK)
-                               _computeState = READY_TO_COMPUTE;
-                       break;
-               case COMPUTE:                   // nothing to do
-                       break;
-               case CLEAN:                     // nothing to do
-                       break;
-               case CLEANDEP:                  // nothing to do
-                       RemoveSubMeshElementsAndNodes();        // recursive call...
-                       break;
-               case SUBMESH_COMPUTED:  // nothing to do
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
 
 
-               // ----------------------------------------------------------------------
+//=======================================================================
+//function : UpdateSubMeshState
+//purpose  : 
+//=======================================================================
 
 
-       case READY_TO_COMPUTE:
-               switch (event)
-               {
-               case MODIF_HYP:         // nothing to do
-                       break;
-               case MODIF_ALGO_STATE:
-                       _computeState = NOT_READY;
-                       algo = gen->GetAlgo((*_father), _subShape);
-                       if (algo)
-                       {
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       _computeState = READY_TO_COMPUTE;
-                       }
-                       break;
-               case COMPUTE:
-               {
-                       algo = gen->GetAlgo((*_father), _subShape);
-                       ASSERT(algo);
-                       ret = algo->CheckHypothesis((*_father), _subShape);
-                       if (!ret)
-                       {
-                               MESSAGE("***** verify compute state *****");
-                               _computeState = NOT_READY;
-                               break;
-                       }
-                       ret = SubMeshesComputed();
-                       if (!ret)
-                       {
-                               MESSAGE("Some SubMeshes not computed");
-                               _computeState = FAILED_TO_COMPUTE;
-                               break;
-                       }
-                       ret = algo->Compute((*_father), _subShape);
-                       if (!ret)
-                       {
-                               MESSAGE("problem in algo execution: failed to compute");
-                               _computeState = FAILED_TO_COMPUTE;
-                               break;
-                       }
-                       else
-                       {
-                               _computeState = COMPUTE_OK;
-                               UpdateDependantsState();        // send event SUBMESH_COMPUTED
-                       }
-               }
-                       break;
-               case CLEAN:
-                       _computeState = NOT_READY;
-                       algo = gen->GetAlgo((*_father), _subShape);
-                       if (algo)
-                       {
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       _computeState = READY_TO_COMPUTE;
-                       }
-                       break;
-               case CLEANDEP:
-                       RemoveSubMeshElementsAndNodes();
-                       _computeState = NOT_READY;
-                       algo = gen->GetAlgo((*_father), _subShape);
-                       if (algo)
-                       {
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       _computeState = READY_TO_COMPUTE;
-                       }
-                       break;
-               case SUBMESH_COMPUTED:  // nothing to do
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
-
-               // ----------------------------------------------------------------------
-
-       case COMPUTE_OK:
-               switch (event)
-               {
-               case MODIF_HYP:
-                       CleanDependants();      // recursive recall with event CLEANDEP
-                       break;
-               case MODIF_ALGO_STATE:
-                       CleanDependants();      // recursive recall with event CLEANDEP
-                       break;
-               case COMPUTE:                   // nothing to do
-                       break;
-               case CLEAN:
-                       CleanDependants();      // recursive recall with event CLEANDEP
-                       break;
-               case CLEANDEP:
-                       RemoveSubMeshElementsAndNodes();
-                       _computeState = NOT_READY;
-                       algo = gen->GetAlgo((*_father), _subShape);
-                       if (algo)
-                       {
-                               ret = algo->CheckHypothesis((*_father), _subShape);
-                               if (ret)
-                                       _computeState = READY_TO_COMPUTE;
-                       }
-                       break;
-               case SUBMESH_COMPUTED:  // nothing to do
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
+void SMESH_subMesh::UpdateSubMeshState(const compute_state theState)
+{
+  const map<int, SMESH_subMesh*>& smMap = DependsOn();
+  map<int, SMESH_subMesh*>::const_iterator itsub;
+  for (itsub = smMap.begin(); itsub != smMap.end(); itsub++)
+  {
+    SMESH_subMesh* sm = (*itsub).second;
+    sm->_computeState = theState;
+  }
+}
 
 
-               // ----------------------------------------------------------------------
+//=======================================================================
+//function : ComputeSubMeshStateEngine
+//purpose  : 
+//=======================================================================
 
 
-       case FAILED_TO_COMPUTE:
-               switch (event)
-               {
-               case MODIF_HYP:
-                       if (_algoState == HYP_OK)
-                               _computeState = READY_TO_COMPUTE;
-                       else
-                               _computeState = NOT_READY;
-                       break;
-               case MODIF_ALGO_STATE:
-                       if (_algoState == HYP_OK)
-                               _computeState = READY_TO_COMPUTE;
-                       else
-                               _computeState = NOT_READY;
-                       break;
-               case COMPUTE:                   // nothing to do
-                       break;
-               case CLEAN:
-                       break;
-               case CLEANDEP:
-                       RemoveSubMeshElementsAndNodes();
-                       if (_algoState == HYP_OK)
-                               _computeState = READY_TO_COMPUTE;
-                       else
-                               _computeState = NOT_READY;
-                       break;
-               case SUBMESH_COMPUTED:  // allow retry compute
-                       if (_algoState == HYP_OK)
-                               _computeState = READY_TO_COMPUTE;
-                       else
-                               _computeState = NOT_READY;
-                       break;
-               default:
-                       ASSERT(0);
-                       break;
-               }
-               break;
+void SMESH_subMesh::ComputeSubMeshStateEngine(int event)
+{
+  const map<int, SMESH_subMesh*>& smMap = DependsOn();
+  map<int, SMESH_subMesh*>::const_iterator itsub;
+  for (itsub = smMap.begin(); itsub != smMap.end(); itsub++)
+  {
+    SMESH_subMesh* sm = (*itsub).second;
+    sm->ComputeStateEngine(event);
+  }
+}
 
 
-               // ----------------------------------------------------------------------
-       default:
-               ASSERT(0);
-               break;
-       }
+//=======================================================================
+//function : UpdateDependantsState
+//purpose  : 
+//=======================================================================
 
 
-       //SCRUTE(_computeState);
-       return ret;
+void SMESH_subMesh::UpdateDependantsState(const compute_event theEvent)
+{
+  //MESSAGE("SMESH_subMesh::UpdateDependantsState");
+  TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
+  for (; it.More(); it.Next())
+  {
+    const TopoDS_Shape& ancestor = it.Value();
+    SMESH_subMesh *aSubMesh =
+      _father->GetSubMeshContaining(ancestor);
+    if (aSubMesh)
+      aSubMesh->ComputeStateEngine( theEvent );
+  }
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -1318,40 +1428,49 @@ bool SMESH_subMesh::ComputeStateEngine(int event) throw(SALOME_Exception)
  */
 //=============================================================================
 
  */
 //=============================================================================
 
-void SMESH_subMesh::UpdateDependantsState()
+void SMESH_subMesh::CleanDependants()
 {
 {
-       //MESSAGE("SMESH_subMesh::UpdateDependantsState");
-
-       const map < int, SMESH_subMesh * >&dependants = Dependants();
-       map < int, SMESH_subMesh * >::const_iterator its;
-       for (its = dependants.begin(); its != dependants.end(); its++)
-       {
-               SMESH_subMesh *sm = (*its).second;
-               //SCRUTE((*its).first);
-               sm->ComputeStateEngine(SUBMESH_COMPUTED);
-       }
+  //MESSAGE("SMESH_subMesh::CleanDependants: shape type " << _subShape.ShapeType() );
+
+  TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
+  for (; it.More(); it.Next())
+  {
+    const TopoDS_Shape& ancestor = it.Value();
+    //MESSAGE("ancestor shape type " << ancestor.ShapeType() );
+    SMESH_subMesh *aSubMesh = _father->GetSubMeshContaining(ancestor);
+    if (aSubMesh)
+      aSubMesh->ComputeStateEngine(CLEANDEP);
+  }
+  ComputeStateEngine(CLEAN);
 }
 
 }
 
+
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
 //=============================================================================
 /*!
  * 
  */
 //=============================================================================
 
-void SMESH_subMesh::CleanDependants()
+static void removeSubMesh( SMESHDS_Mesh * meshDS, const TopoDS_Shape& subShape)
 {
 {
-       MESSAGE("SMESH_subMesh::CleanDependants");
-       // **** parcourir les ancetres dans l'ordre de dépendance
-
-       const map < int, SMESH_subMesh * >&dependants = Dependants();
-       map < int, SMESH_subMesh * >::const_iterator its;
-       for (its = dependants.begin(); its != dependants.end(); its++)
-       {
-               SMESH_subMesh *sm = (*its).second;
-               SCRUTE((*its).first);
-               sm->ComputeStateEngine(CLEANDEP);
-       }
-       ComputeStateEngine(CLEANDEP);
+  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);
+    }
+
+    SMDS_NodeIteratorPtr itn=subMeshDS->GetNodes();
+    while(itn->more())
+    {
+      const SMDS_MeshNode * node = itn->next();
+      meshDS->RemoveNode(node);
+    }
+  }
 }
 
 //=============================================================================
 }
 
 //=============================================================================
@@ -1362,161 +1481,173 @@ void SMESH_subMesh::CleanDependants()
 
 void SMESH_subMesh::RemoveSubMeshElementsAndNodes()
 {
 
 void SMESH_subMesh::RemoveSubMeshElementsAndNodes()
 {
-       MESSAGE("SMESH_subMesh::RemoveSubMeshElementsAndNodes");
-       SCRUTE(_subShape.ShapeType());
-       SCRUTE(_Id);
-
-       _subMeshDS = _meshDS->MeshElements(_subShape);
-       if (_subMeshDS!=NULL)
-       {
-               SMDS_Iterator<const SMDS_MeshElement *> * ite=_subMeshDS->GetElements();
-               while(ite->more())
-               {
-                       const SMDS_MeshElement * elt = ite->next();
-                       _subMeshDS->RemoveElement(elt);
-                       _meshDS->RemoveElement(elt);
-               }
-               delete ite;
-               
-               SMDS_Iterator<const SMDS_MeshNode *> * itn=_subMeshDS->GetNodes();
-               while(itn->more())
-               {
-                       const SMDS_MeshNode * node = itn->next();
-                       _subMeshDS->RemoveNode(node);
-                       _meshDS->RemoveNode(node);
-               }
-               delete itn;
-       }
+  SCRUTE(_subShape.ShapeType());
+
+  removeSubMesh( _meshDS, _subShape );
+
+  // 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++)
+    if ( dim == SMESH_Gen::GetShapeDim( (TopAbs_ShapeEnum) type ))
+    {
+      TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
+      for ( ; exp.More(); exp.Next() )
+        removeSubMesh( _meshDS, exp.Current() );
+    }
+    else
+      break;
 }
 
 }
 
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
+//=======================================================================
+//function : IsMeshComputed
+//purpose  : check if _subMeshDS contains mesh elements
+//=======================================================================
 
 
-const map < int, SMESH_subMesh * >&SMESH_subMesh::Dependants()
+bool SMESH_subMesh::IsMeshComputed() const
 {
 {
-       if (_dependantsFound)
-               return _mapDependants;
+  // 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();
+  for ( ; type <= TopAbs_VERTEX; type++) {
+    if ( dim == SMESH_Gen::GetShapeDim( (TopAbs_ShapeEnum) type ))
+    {
+      TopExp_Explorer exp( _subShape, (TopAbs_ShapeEnum) type );
+      for ( ; exp.More(); exp.Next() )
+      {
+        SMESHDS_SubMesh * subMeshDS = _meshDS->MeshElements( exp.Current() );
+        if ( subMeshDS != NULL &&
+            (subMeshDS->GetElements()->more() || subMeshDS->GetNodes()->more())) {
+          return true;
+        }
+      }
+    }
+    else
+      break;
+  }
+
+  return false;
+}
 
 
-       //MESSAGE("SMESH_subMesh::Dependants");
 
 
-       int shapeType = _subShape.ShapeType();
-       //SCRUTE(shapeType);
-       TopTools_IndexedDataMapOfShapeListOfShape M;
-       TopoDS_Shape mainShape = _meshDS->ShapeToMesh();
+//=======================================================================
+//function : GetCollection
+//purpose  : return a shape containing all sub-shapes of the MainShape that can be
+//           meshed at once along with _subShape
+//=======================================================================
 
 
-       switch (shapeType)
-       {
-       case TopAbs_VERTEX:
-               break;
-       case TopAbs_EDGE:
-       case TopAbs_WIRE:
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_EDGE, TopAbs_WIRE, M);
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_EDGE, TopAbs_FACE, M);
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_EDGE, TopAbs_SHELL, M);
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_EDGE, TopAbs_SOLID, M);
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_EDGE, TopAbs_COMPSOLID,
-                       M);
-               ExtractDependants(M, TopAbs_EDGE);
-               break;
-       case TopAbs_FACE:
-       case TopAbs_SHELL:
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_FACE, TopAbs_SHELL, M);
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_FACE, TopAbs_SOLID, M);
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_FACE, TopAbs_COMPSOLID,
-                       M);
-               ExtractDependants(M, TopAbs_FACE);
-               break;
-       case TopAbs_SOLID:
-       case TopAbs_COMPSOLID:
-               TopExp::MapShapesAndAncestors(mainShape, TopAbs_SOLID, TopAbs_COMPSOLID,
-                       M);
-               ExtractDependants(M, TopAbs_SOLID);
-               break;
-       case TopAbs_COMPOUND:
-               break;
-       }
-
-       _dependantsFound = true;
-       return _mapDependants;
+TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlgo)
+{
+  MESSAGE("SMESH_subMesh::GetCollection");
+  ASSERT (!theAlgo->NeedDescretBoundary());
+  
+  TopoDS_Shape mainShape = _father->GetMeshDS()->ShapeToMesh();
+
+  if ( mainShape.IsSame( _subShape ))
+    return _subShape;
+
+  list<const SMESHDS_Hypothesis*> aUsedHyp =
+    theAlgo->GetUsedHypothesis( *_father, _subShape ); // copy
+  
+  // put in a compound all shapes with the same hypothesis assigned
+  // and a good ComputState
+
+  TopoDS_Compound aCompound;
+  BRep_Builder aBuilder;
+  aBuilder.MakeCompound( aCompound );
+
+  TopExp_Explorer anExplorer( mainShape, _subShape.ShapeType() );
+  for ( ; anExplorer.More(); anExplorer.Next() )
+  {
+    const TopoDS_Shape& S = anExplorer.Current();
+    SMESH_subMesh* subMesh = _father->GetSubMesh( S );
+    SMESH_Algo* anAlgo = theGen->GetAlgo( *_father, S );
+
+    if (subMesh->GetComputeState() == READY_TO_COMPUTE &&
+        anAlgo == theAlgo &&
+        anAlgo->GetUsedHypothesis( *_father, S ) == aUsedHyp)
+    {
+      aBuilder.Add( aCompound, S );
+    }
+  }
+
+  return aCompound;
 }
 
 }
 
-//=============================================================================
-/*!
- * 
- */
-//=============================================================================
-
-void SMESH_subMesh::
-ExtractDependants(const TopTools_IndexedDataMapOfShapeListOfShape & M,
-       const TopAbs_ShapeEnum etype)
+//=======================================================================
+//function : GetNbAttached
+//purpose  : return nb of hypotheses attached to theShape.
+//           If theHyp is provided, similar but not same hypotheses
+//           are countered; else only applicable ones are countered
+//           depending on theAlgos flag
+//=======================================================================
+
+int SMESH_subMesh::GetNbAttached(const TopoDS_Shape&      theShape,
+                                 const SMESH_Hypothesis * theHyp,
+                                 const bool               theAlgos)
 {
 {
-       //MESSAGE("SMESH_subMesh::ExtractDependants");
+  int nb = 0;
+
+  const list<const SMESHDS_Hypothesis*>& aHypList =
+    _father->GetHypothesisList( theShape );
+  list<const SMESHDS_Hypothesis*>::const_iterator it = aHypList.begin();
+  while (it!=aHypList.end())
+  {
+    const SMESH_Hypothesis* hyp = static_cast< const SMESH_Hypothesis *>( *it );
+    it++;
+
+    if ( theHyp )
+    {
+      // count similar
+      if (hyp != theHyp &&
+          hyp->GetType() == theHyp->GetType() &&
+          hyp->GetDim()  == theHyp->GetDim())
+        nb++;
+    }
+    else
+    {
+      bool isAlgo = ( hyp->GetType() > SMESHDS_Hypothesis::PARAM_ALGO );
+      if ( theAlgos == isAlgo && IsApplicableHypotesis( hyp ))
+        nb++;
+    }
+  }
+
+  return nb;
+}
 
 
-       TopoDS_Shape mainShape = _meshDS->ShapeToMesh();
-       int lg = M.Extent();
-       //SCRUTE(lg);
+//=======================================================================
+//function : CheckConcurentHypothesis
+//purpose  : check if there are several applicable hypothesis on fathers
+//=======================================================================
 
 
-       int shapeType = _subShape.ShapeType();
-       switch (shapeType)
-       {
-       case TopAbs_VERTEX:
-               break;
-       case TopAbs_EDGE:
-       case TopAbs_FACE:
-       case TopAbs_SOLID:
-       {
-               const TopTools_ListOfShape & ancestors = M.FindFromKey(_subShape);
-               TopTools_ListIteratorOfListOfShape it(ancestors);
-               for (; it.More(); it.Next())
-               {
-                       TopoDS_Shape ancestor = it.Value();
-                       SMESH_subMesh *aSubMesh = _father->GetSubMeshContaining(ancestor);
-                       //      if (! aSubMesh) aSubMesh = _father->GetSubMesh(ancestor);
-                       if (aSubMesh)
-                       {
-                               int type = aSubMesh->_subShape.ShapeType();
-                               int cle = aSubMesh->GetId();
-                               cle += 10000000 * type; // sort map by ordType then index
-                               if (_mapDependants.find(cle) == _mapDependants.end())
-                               {
-                                       _mapDependants[cle] = aSubMesh;
-                                       //SCRUTE(cle);
-                               }
-                       }
-               }
-       }
-               break;
-       case TopAbs_WIRE:
-       case TopAbs_SHELL:
-       case TopAbs_COMPSOLID:
-               for (TopExp_Explorer expE(_subShape, etype); expE.More(); expE.Next())
-               {
-                       TopoDS_Shape aShape = expE.Current();
-                       const TopTools_ListOfShape & ancestors = M.FindFromKey(aShape);
-                       TopTools_ListIteratorOfListOfShape it(ancestors);
-                       for (; it.More(); it.Next())
-                       {
-                               MESSAGE("---");
-                               TopoDS_Shape ancestor = it.Value();
-                               SMESH_subMesh *aSubMesh =
-                                       _father->GetSubMeshContaining(ancestor);
-                               if (!aSubMesh)
-                                       aSubMesh = _father->GetSubMesh(ancestor);
-                               int type = aSubMesh->_subShape.ShapeType();
-                               int cle = aSubMesh->GetId();
-                               cle += 10000000 * type; // sort map by ordType then index
-                               if (_mapDependants.find(cle) == _mapDependants.end())
-                               {
-                                       _mapDependants[cle] = aSubMesh;
-                                       SCRUTE(cle);
-                               }
-                       }
-               }
-               break;
-       case TopAbs_COMPOUND:
-               break;
-       }
+SMESH_Hypothesis::Hypothesis_Status
+  SMESH_subMesh::CheckConcurentHypothesis (const int theHypType)
+{
+  MESSAGE ("SMESH_subMesh::CheckConcurentHypothesis");
+
+  // is there local hypothesis on me?
+  if ( GetNbAttached( _subShape, 0, theHypType > SMESHDS_Hypothesis::PARAM_ALGO ) > 0 )
+    return SMESH_Hypothesis::HYP_OK;
+
+    
+  TopoDS_Shape aPrevWithHyp;
+  TopTools_ListIteratorOfListOfShape it( _father->GetAncestors( _subShape ));
+  for (; it.More(); it.Next())
+  {
+    const TopoDS_Shape& ancestor = it.Value();
+    if ( GetNbAttached( ancestor, 0, theHypType > SMESHDS_Hypothesis::PARAM_ALGO ) > 0 )
+    {
+      if ( aPrevWithHyp.IsNull() || aPrevWithHyp.IsSame( ancestor ))
+        aPrevWithHyp = ancestor;
+      else if ( aPrevWithHyp.ShapeType() == ancestor.ShapeType() )
+        return SMESH_Hypothesis::HYP_CONCURENT;
+      else
+        return SMESH_Hypothesis::HYP_OK;
+    }
+  }
+  return SMESH_Hypothesis::HYP_OK;
 }
 }
index f72e4f65b32c09951c1d1d5bd32836b87f69d96f..937479da749c4e9d40dbdc1eea690cdfdb7a580c 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "SMESHDS_Mesh.hxx"
 #include "SMESHDS_SubMesh.hxx"
 
 #include "SMESHDS_Mesh.hxx"
 #include "SMESHDS_SubMesh.hxx"
+#include "SMESH_Hypothesis.hxx"
 #include "Utils_SALOME_Exception.hxx"
 #include <TopoDS_Shape.hxx>
 #include <TColStd_IndexedMapOfTransient.hxx>
 #include "Utils_SALOME_Exception.hxx"
 #include <TopoDS_Shape.hxx>
 #include <TColStd_IndexedMapOfTransient.hxx>
 
 class SMESH_Mesh;
 class SMESH_Hypothesis;
 
 class SMESH_Mesh;
 class SMESH_Hypothesis;
+class SMESH_Algo;
+class SMESH_Gen;
 
 class SMESH_subMesh
 {
 
 class SMESH_subMesh
 {
 public:
-       SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
+ public:
+  SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
                const TopoDS_Shape & aSubShape);
                const TopoDS_Shape & aSubShape);
-       virtual ~ SMESH_subMesh();
+  virtual ~ SMESH_subMesh();
 
 
-       int GetId();
+  int GetId() const;
 
 
-//   bool Contains(const TopoDS_Shape & aSubShape)
-//     throw (SALOME_Exception);
+  //   bool Contains(const TopoDS_Shape & aSubShape)
+  //     throw (SALOME_Exception);
 
 
-       SMESHDS_SubMesh * GetSubMeshDS() throw(SALOME_Exception);
+  SMESHDS_SubMesh * GetSubMeshDS();
 
 
-       SMESH_subMesh *GetFirstToCompute() throw(SALOME_Exception);
-
-       const map < int, SMESH_subMesh * >&DependsOn();
-       const map < int, SMESH_subMesh * >&Dependants();
-
-       const TopoDS_Shape & GetSubShape();
-
-       bool _vertexSet;                        // only for vertex subMesh, set to false for dim > 0
-
-       enum compute_state
-       { NOT_READY, READY_TO_COMPUTE,
-               COMPUTE_OK, FAILED_TO_COMPUTE
-       };
-       enum algo_state
-       { NO_ALGO, MISSING_HYP, HYP_OK };
-       enum algo_event
-       { ADD_HYP, ADD_ALGO,
-               REMOVE_HYP, REMOVE_ALGO,
-               ADD_FATHER_HYP, ADD_FATHER_ALGO,
-               REMOVE_FATHER_HYP, REMOVE_FATHER_ALGO
-       };
-       enum compute_event
-       { MODIF_HYP, MODIF_ALGO_STATE, COMPUTE,
-               CLEAN, CLEANDEP, SUBMESH_COMPUTED
-       };
-
-       bool AlgoStateEngine(int event, SMESH_Hypothesis * anHyp)
-               throw(SALOME_Exception);
-
-       void SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp)
-               throw(SALOME_Exception);
-
-       void DumpAlgoState(bool isMain);
-
-       bool ComputeStateEngine(int event) throw(SALOME_Exception);
-
-       int GetComputeState()
-       {
-               return _computeState;
-       };
-
-  protected:
-       void InsertDependence(const TopoDS_Shape aSubShape);
-//   void FinalizeDependence(list<TopoDS_Shape>& shapeList);
-
-       bool SubMeshesComputed() throw(SALOME_Exception);
-
-       bool SubMeshesReady();
-
-       void RemoveSubMeshElementsAndNodes();
-       void UpdateDependantsState();
-       void CleanDependants();
-       void ExtractDependants(const TopTools_IndexedDataMapOfShapeListOfShape & M,
-               const TopAbs_ShapeEnum etype);
-       void SetAlgoState(int state);
-
-       TopoDS_Shape _subShape;
-       SMESHDS_Mesh * _meshDS;
-       SMESHDS_SubMesh * _subMeshDS;
-       int _Id;
-       SMESH_Mesh *_father;
-       map < int, SMESH_subMesh * >_mapDepend;
-       map < int, SMESH_subMesh * >_mapDependants;
-       bool _dependenceAnalysed;
-       bool _dependantsFound;
-
-       int _algoState;
-       int _oldAlgoState;
-       int _computeState;
+  SMESHDS_SubMesh* CreateSubMeshDS();
+  // Explicit SMESHDS_SubMesh creation method, required for persistence mechanism
+
+  SMESH_subMesh *GetFirstToCompute();
+
+  const map < int, SMESH_subMesh * >&DependsOn();
+  //const map < int, SMESH_subMesh * >&Dependants();
+
+  const TopoDS_Shape & GetSubShape();
+
+  bool _vertexSet;                     // only for vertex subMesh, set to false for dim > 0
+
+  enum compute_state
+  {
+    NOT_READY, READY_TO_COMPUTE,
+    COMPUTE_OK, FAILED_TO_COMPUTE
+    };
+  enum algo_state
+  {
+    NO_ALGO, MISSING_HYP, HYP_OK
+    };
+  enum algo_event
+  {
+    ADD_HYP, ADD_ALGO,
+    REMOVE_HYP, REMOVE_ALGO,
+    ADD_FATHER_HYP, ADD_FATHER_ALGO,
+    REMOVE_FATHER_HYP, REMOVE_FATHER_ALGO
+    };
+  enum compute_event
+  {
+    MODIF_HYP, MODIF_ALGO_STATE, COMPUTE,
+    CLEAN, CLEANDEP, SUBMESH_COMPUTED, SUBMESH_RESTORED
+    };
+
+  SMESH_Hypothesis::Hypothesis_Status
+    AlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
+
+  SMESH_Hypothesis::Hypothesis_Status
+    SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
+
+  int GetAlgoState() { return _algoState; }
+
+  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
+
+  bool CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const;
+  // return true if theHypothesis can be attached to me:
+  // its dimention is checked
+
+  bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const;
+  // return true if theHypothesis can be used to mesh me:
+  // its shape type is checked
+  
+
+ protected:
+  void InsertDependence(const TopoDS_Shape aSubShape);
+
+  bool SubMeshesComputed();
+
+  bool SubMeshesReady();
+
+  void RemoveSubMeshElementsAndNodes();
+  void UpdateDependantsState(const compute_event theEvent);
+  void UpdateSubMeshState(const compute_state theState);
+  void ComputeSubMeshStateEngine(int event);
+  void CleanDependants();
+  void CleanDependsOn();
+  void SetAlgoState(int state);
+
+  bool IsMeshComputed() const;
+  // check if _subMeshDS contains mesh elements
+
+  TopoDS_Shape GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlgo);
+  // return a shape containing all sub-shapes of the MainShape that can be
+  // meshed at once along with _subShape
+
+  bool ApplyToCollection (SMESH_Algo*         theAlgo,
+                          const TopoDS_Shape& theCollection);
+  // Apply theAlgo to all subshapes in theCollection
+
+  SMESH_Hypothesis::Hypothesis_Status CheckConcurentHypothesis (const int theHypType);
+  // check if there are several applicable hypothesis on fathers
+
+  int GetNbAttached(const TopoDS_Shape&      theShape,
+                    const SMESH_Hypothesis * theHyp,
+                    const bool               theAlgos = false);
+  // return nb of hypotheses attached to theShape.
+  // If theHyp is provided, similar but not same hypotheses
+  // are countered; else only applicable ones are countered
+  // depending on theAlgos flag
+  
+  TopoDS_Shape _subShape;
+  SMESHDS_Mesh * _meshDS;
+  SMESHDS_SubMesh * _subMeshDS;
+  int _Id;
+  SMESH_Mesh *_father;
+  map < int, SMESH_subMesh * >_mapDepend;
+  //map < int, SMESH_subMesh * >_mapDependants;
+  bool _dependenceAnalysed;
+  //bool _dependantsFound;
+
+  int _algoState;
+  //int _oldAlgoState;
+  int _computeState;
 
 };
 
 
 };