From bc37f0b49f9713347749b6325e1c7062de8857ae Mon Sep 17 00:00:00 2001 From: yfr Date: Fri, 18 Jun 2004 08:55:35 +0000 Subject: [PATCH] DCQ : Merge with Ecole_Ete_a6. --- doc/salome/gui/SMESH/SMESH.log | 288 ++ doc/salome/gui/SMESH/cshdat_robohelp.htm | 252 + doc/salome/gui/SMESH/cshdat_webhelp.htm | 251 + doc/salome/gui/SMESH/default.css | 209 + doc/salome/gui/SMESH/default.skn | 262 ++ doc/salome/gui/SMESH/default_ns.css | 122 + doc/salome/gui/SMESH/ehlpdhtm.js | 4033 +++++++++++++++++ .../gui/SMESH/files/1d_meshing_algorithm.htm | 126 + .../2d_(quadrangle)_meshing_algorithm.htm | 126 + .../gui/SMESH/files/2d_meshing_algorithm.htm | 126 + .../gui/SMESH/files/3d_meshing_algorithm.htm | 127 + .../gui/SMESH/files/about_hypotheses.htm | 186 + doc/salome/gui/SMESH/files/about_meshes.htm | 274 ++ .../SMESH/files/about_meshing_algorithms.htm | 181 + .../files/about_modification_of_meshes.htm | 107 + .../SMESH/files/about_quality_controls.htm | 154 + .../SMESH/files/adding_nodes_and_elements.htm | 107 + .../gui/SMESH/files/area_of_elements.htm | 143 + doc/salome/gui/SMESH/files/aspect_ratio.htm | 185 + .../changing_orientation_of_elements.htm | 107 + .../gui/SMESH/files/computing_meshes.htm | 128 + doc/salome/gui/SMESH/files/connectivity.htm | 106 + .../gui/SMESH/files/constructing_meshes.htm | 159 + .../SMESH/files/constructing_submeshes.htm | 160 + .../files/diagonal_iversion_of_elements.htm | 107 + .../gui/SMESH/files/displacing_nodes.htm | 107 + .../files/displaying_elements_numbers.htm | 151 + .../SMESH/files/displaying_nodes_numbers.htm | 152 + .../gui/SMESH/files/editing_hypotheses.htm | 107 + .../files/importing_and_exporting_meshes.htm | 150 + .../gui/SMESH/files/introduction_to_smesh.htm | 200 + .../gui/SMESH/files/length_of_edges.htm | 140 + .../SMESH/files/local_length_hypothesis.htm | 171 + .../files/max._element_area_hypothesis.htm | 166 + .../files/max._element_volume_hypothsis.htm | 167 + doc/salome/gui/SMESH/files/minimum_angle.htm | 139 + .../files/number_of_segments_hypothesis.htm | 171 + .../reassigning_hypotheses_and_algorithms.htm | 107 + .../files/removing_nodes_and_elements.htm | 107 + .../gui/SMESH/files/running_smesh_module.htm | 172 + .../gui/SMESH/files/scalar_bar_properties.htm | 107 + doc/salome/gui/SMESH/files/shading.htm | 109 + doc/salome/gui/SMESH/files/shrink.htm | 109 + doc/salome/gui/SMESH/files/skew.htm | 158 + doc/salome/gui/SMESH/files/taper.htm | 142 + ...tetrahedron_(netgen)_meshing_algorithm.htm | 126 + .../gui/SMESH/files/using_smesh_module.htm | 106 + doc/salome/gui/SMESH/files/view_update.htm | 112 + .../gui/SMESH/files/viewing_mesh_info.htm | 152 + .../gui/SMESH/files/visualization_modes.htm | 153 + .../SMESH/files/visualization_properties.htm | 107 + doc/salome/gui/SMESH/files/warp.htm | 171 + doc/salome/gui/SMESH/files/wireframe.htm | 109 + doc/salome/gui/SMESH/i_blue.jpg | Bin 0 -> 1337 bytes doc/salome/gui/SMESH/image10.jpg | Bin 0 -> 72076 bytes doc/salome/gui/SMESH/image11.jpg | Bin 0 -> 39989 bytes doc/salome/gui/SMESH/image12.jpg | Bin 0 -> 55339 bytes doc/salome/gui/SMESH/image2.gif | Bin 0 -> 30455 bytes doc/salome/gui/SMESH/image22.gif | Bin 0 -> 1287 bytes doc/salome/gui/SMESH/image24.gif | Bin 0 -> 14544 bytes doc/salome/gui/SMESH/image24.jpg | Bin 0 -> 7980 bytes doc/salome/gui/SMESH/image25.gif | Bin 0 -> 6114 bytes doc/salome/gui/SMESH/image25.jpg | Bin 0 -> 1025 bytes doc/salome/gui/SMESH/image26.gif | Bin 0 -> 945 bytes doc/salome/gui/SMESH/image26.jpg | Bin 0 -> 6922 bytes doc/salome/gui/SMESH/image27.gif | Bin 0 -> 4187 bytes doc/salome/gui/SMESH/image27.jpg | Bin 0 -> 15997 bytes doc/salome/gui/SMESH/image28.gif | Bin 0 -> 1137 bytes doc/salome/gui/SMESH/image28.jpg | Bin 0 -> 32873 bytes doc/salome/gui/SMESH/image29.gif | Bin 0 -> 5792 bytes doc/salome/gui/SMESH/image29.jpg | Bin 0 -> 35524 bytes doc/salome/gui/SMESH/image3.jpg | Bin 0 -> 66199 bytes doc/salome/gui/SMESH/image31.gif | Bin 0 -> 5383 bytes doc/salome/gui/SMESH/image32.gif | Bin 0 -> 980 bytes doc/salome/gui/SMESH/image33.gif | Bin 0 -> 987 bytes doc/salome/gui/SMESH/image34.gif | Bin 0 -> 974 bytes doc/salome/gui/SMESH/image35.gif | Bin 0 -> 964 bytes doc/salome/gui/SMESH/image36.gif | Bin 0 -> 987 bytes doc/salome/gui/SMESH/image37.gif | Bin 0 -> 1001 bytes doc/salome/gui/SMESH/image38.gif | Bin 0 -> 970 bytes doc/salome/gui/SMESH/image39.gif | Bin 0 -> 997 bytes doc/salome/gui/SMESH/image4.gif | Bin 0 -> 16550 bytes doc/salome/gui/SMESH/image4.jpg | Bin 0 -> 60769 bytes doc/salome/gui/SMESH/image40.gif | Bin 0 -> 1000 bytes doc/salome/gui/SMESH/image41.gif | Bin 0 -> 2145 bytes doc/salome/gui/SMESH/image42.gif | Bin 0 -> 1087 bytes doc/salome/gui/SMESH/image43.gif | Bin 0 -> 4497 bytes doc/salome/gui/SMESH/image44.gif | Bin 0 -> 4554 bytes doc/salome/gui/SMESH/image45.gif | Bin 0 -> 1077 bytes doc/salome/gui/SMESH/image46.gif | Bin 0 -> 2274 bytes doc/salome/gui/SMESH/image47.gif | Bin 0 -> 1040 bytes doc/salome/gui/SMESH/image48.gif | Bin 0 -> 4473 bytes doc/salome/gui/SMESH/image49.gif | Bin 0 -> 4423 bytes doc/salome/gui/SMESH/image50.gif | Bin 0 -> 995 bytes doc/salome/gui/SMESH/image51.gif | Bin 0 -> 1068 bytes doc/salome/gui/SMESH/image52.gif | Bin 0 -> 990 bytes doc/salome/gui/SMESH/image53.gif | Bin 0 -> 990 bytes doc/salome/gui/SMESH/image55.gif | Bin 0 -> 1040 bytes doc/salome/gui/SMESH/image56.gif | Bin 0 -> 1044 bytes doc/salome/gui/SMESH/image6.gif | Bin 0 -> 15409 bytes doc/salome/gui/SMESH/image6.jpg | Bin 0 -> 71431 bytes doc/salome/gui/SMESH/image7.jpg | Bin 0 -> 72829 bytes doc/salome/gui/SMESH/image8.jpg | Bin 0 -> 69191 bytes doc/salome/gui/SMESH/image9.jpg | Bin 0 -> 69575 bytes doc/salome/gui/SMESH/note1.gif | Bin 0 -> 1505 bytes doc/salome/gui/SMESH/pics/exemple.gif | Bin 0 -> 1340 bytes doc/salome/gui/SMESH/pics/new.jpg | Bin 0 -> 957 bytes doc/salome/gui/SMESH/smesh.html | 150 + doc/salome/gui/SMESH/smesh_csh.html | 100 + doc/salome/gui/SMESH/smesh_rhc.html | 100 + .../gui/SMESH/texture_horiz_ltbluebubbles.jpg | Bin 0 -> 1255 bytes doc/salome/gui/SMESH/webhelp.cab | Bin 0 -> 87764 bytes doc/salome/gui/SMESH/webhelp.jar | Bin 0 -> 132680 bytes doc/salome/gui/SMESH/whdata/whftdata.js | 24 + doc/salome/gui/SMESH/whdata/whftdata0.htm | 59 + doc/salome/gui/SMESH/whdata/whftdata0.xml | 47 + doc/salome/gui/SMESH/whdata/whfts.htm | 16 + doc/salome/gui/SMESH/whdata/whfts.js | 39 + doc/salome/gui/SMESH/whdata/whfts.xml | 7 + doc/salome/gui/SMESH/whdata/whfwdata.js | 36 + doc/salome/gui/SMESH/whdata/whfwdata0.htm | 356 ++ doc/salome/gui/SMESH/whdata/whfwdata0.xml | 344 ++ doc/salome/gui/SMESH/whdata/whgdata.js | 25 + doc/salome/gui/SMESH/whdata/whgdata0.htm | 31 + doc/salome/gui/SMESH/whdata/whgdata0.xml | 22 + doc/salome/gui/SMESH/whdata/whglo.htm | 14 + doc/salome/gui/SMESH/whdata/whglo.js | 33 + doc/salome/gui/SMESH/whdata/whglo.xml | 5 + doc/salome/gui/SMESH/whdata/whidata.js | 88 + doc/salome/gui/SMESH/whdata/whidx.htm | 13 + doc/salome/gui/SMESH/whdata/whidx.js | 33 + doc/salome/gui/SMESH/whdata/whidx.xml | 4 + doc/salome/gui/SMESH/whdata/whtdata.js | 58 + doc/salome/gui/SMESH/whdata/whtdata0.htm | 66 + doc/salome/gui/SMESH/whdata/whtdata0.xml | 69 + doc/salome/gui/SMESH/whdata/whtoc.htm | 14 + doc/salome/gui/SMESH/whdata/whtoc.js | 28 + doc/salome/gui/SMESH/whdata/whtoc.xml | 4 + doc/salome/gui/SMESH/whestart.ico | Bin 0 -> 10134 bytes doc/salome/gui/SMESH/whfbody.htm | 37 + doc/salome/gui/SMESH/whfdhtml.htm | 30 + doc/salome/gui/SMESH/whfform.htm | 136 + doc/salome/gui/SMESH/whfhost.js | 916 ++++ doc/salome/gui/SMESH/whform.js | 215 + doc/salome/gui/SMESH/whframes.js | 78 + doc/salome/gui/SMESH/whgbody.htm | 35 + doc/salome/gui/SMESH/whgdata/whexpbar.gif | Bin 0 -> 67 bytes doc/salome/gui/SMESH/whgdata/whlstf0.htm | 50 + doc/salome/gui/SMESH/whgdata/whlstf1.htm | 59 + doc/salome/gui/SMESH/whgdata/whlstf2.htm | 55 + doc/salome/gui/SMESH/whgdata/whlstf3.htm | 52 + doc/salome/gui/SMESH/whgdata/whlstfl0.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl1.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl10.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl11.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl12.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl13.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl14.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl15.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl16.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl17.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl18.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl19.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl2.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl20.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl21.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl22.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl3.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl4.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl5.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl6.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl7.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl8.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstfl9.htm | 45 + doc/salome/gui/SMESH/whgdata/whlstg0.htm | 112 + doc/salome/gui/SMESH/whgdata/whlsti0.htm | 38 + doc/salome/gui/SMESH/whgdata/whlstt0.htm | 50 + doc/salome/gui/SMESH/whgdata/whlstt1.htm | 58 + doc/salome/gui/SMESH/whgdata/whlstt10.htm | 64 + doc/salome/gui/SMESH/whgdata/whlstt11.htm | 61 + doc/salome/gui/SMESH/whgdata/whlstt12.htm | 62 + doc/salome/gui/SMESH/whgdata/whlstt2.htm | 65 + doc/salome/gui/SMESH/whgdata/whlstt3.htm | 70 + doc/salome/gui/SMESH/whgdata/whlstt4.htm | 69 + doc/salome/gui/SMESH/whgdata/whlstt5.htm | 70 + doc/salome/gui/SMESH/whgdata/whlstt6.htm | 71 + doc/salome/gui/SMESH/whgdata/whlstt7.htm | 71 + doc/salome/gui/SMESH/whgdata/whlstt8.htm | 60 + doc/salome/gui/SMESH/whgdata/whlstt9.htm | 66 + doc/salome/gui/SMESH/whgdata/whnvf30.htm | 12 + doc/salome/gui/SMESH/whgdata/whnvf31.htm | 14 + doc/salome/gui/SMESH/whgdata/whnvf32.htm | 14 + doc/salome/gui/SMESH/whgdata/whnvf33.htm | 14 + doc/salome/gui/SMESH/whgdata/whnvl31.htm | 42 + doc/salome/gui/SMESH/whgdata/whnvl32.htm | 71 + doc/salome/gui/SMESH/whgdata/whnvl33.htm | 71 + doc/salome/gui/SMESH/whgdata/whnvp30.htm | 14 + doc/salome/gui/SMESH/whgdata/whnvp31.htm | 14 + doc/salome/gui/SMESH/whgdata/whnvp32.htm | 15 + doc/salome/gui/SMESH/whgdata/whnvp33.htm | 14 + doc/salome/gui/SMESH/whgdata/whnvt30.htm | 46 + doc/salome/gui/SMESH/whgdata/whnvt31.htm | 44 + doc/salome/gui/SMESH/whgdata/whnvt32.htm | 44 + doc/salome/gui/SMESH/whgdata/whnvt33.htm | 44 + doc/salome/gui/SMESH/whgdef.htm | 98 + doc/salome/gui/SMESH/whgdhtml.htm | 150 + doc/salome/gui/SMESH/whghost.js | 217 + doc/salome/gui/SMESH/whhost.js | 1290 ++++++ doc/salome/gui/SMESH/whibody.htm | 288 ++ doc/salome/gui/SMESH/whidhtml.htm | 30 + doc/salome/gui/SMESH/whiform.htm | 91 + doc/salome/gui/SMESH/whihost.js | 432 ++ doc/salome/gui/SMESH/whlang.js | 452 ++ doc/salome/gui/SMESH/whmozemu.js | 68 + doc/salome/gui/SMESH/whmsg.js | 64 + doc/salome/gui/SMESH/whnjs.htm | 15 + doc/salome/gui/SMESH/whphost.js | 526 +++ doc/salome/gui/SMESH/whproj.htm | 24 + doc/salome/gui/SMESH/whproj.js | 82 + doc/salome/gui/SMESH/whproj.xml | 3 + doc/salome/gui/SMESH/whproxy.js | 63 + doc/salome/gui/SMESH/whres.xml | 239 + doc/salome/gui/SMESH/whrstart.ico | Bin 0 -> 10134 bytes doc/salome/gui/SMESH/whskin_banner.htm | 41 + doc/salome/gui/SMESH/whskin_blank.htm | 10 + doc/salome/gui/SMESH/whskin_frmset01.htm | 172 + doc/salome/gui/SMESH/whskin_frmset010.htm | 50 + doc/salome/gui/SMESH/whskin_info.htm | 20 + doc/salome/gui/SMESH/whskin_mbars.htm | 56 + doc/salome/gui/SMESH/whskin_papplet.htm | 357 ++ doc/salome/gui/SMESH/whskin_pdhtml.htm | 57 + doc/salome/gui/SMESH/whskin_plist.htm | 204 + doc/salome/gui/SMESH/whskin_tbars.htm | 98 + doc/salome/gui/SMESH/whst_topics.xml | 81 + doc/salome/gui/SMESH/whstart.ico | Bin 0 -> 10134 bytes doc/salome/gui/SMESH/whstart.js | 244 + doc/salome/gui/SMESH/whstub.js | 156 + doc/salome/gui/SMESH/wht_abge.jpg | Bin 0 -> 23356 bytes doc/salome/gui/SMESH/wht_abgi.jpg | Bin 0 -> 24385 bytes doc/salome/gui/SMESH/wht_abgw.jpg | Bin 0 -> 22665 bytes doc/salome/gui/SMESH/wht_abte.jpg | Bin 0 -> 8785 bytes doc/salome/gui/SMESH/wht_abti.jpg | Bin 0 -> 6985 bytes doc/salome/gui/SMESH/wht_abtw.jpg | Bin 0 -> 7382 bytes doc/salome/gui/SMESH/wht_fts_h.gif | Bin 0 -> 188 bytes doc/salome/gui/SMESH/wht_fts_n.gif | Bin 0 -> 188 bytes doc/salome/gui/SMESH/wht_glo_h.gif | Bin 0 -> 142 bytes doc/salome/gui/SMESH/wht_glo_n.gif | Bin 0 -> 142 bytes doc/salome/gui/SMESH/wht_go.gif | Bin 0 -> 260 bytes doc/salome/gui/SMESH/wht_hide.gif | Bin 0 -> 842 bytes doc/salome/gui/SMESH/wht_idx_h.gif | Bin 0 -> 168 bytes doc/salome/gui/SMESH/wht_idx_n.gif | Bin 0 -> 168 bytes doc/salome/gui/SMESH/wht_logo1.gif | Bin 0 -> 1405 bytes doc/salome/gui/SMESH/wht_logo2.gif | Bin 0 -> 1393 bytes doc/salome/gui/SMESH/wht_next.gif | Bin 0 -> 73 bytes doc/salome/gui/SMESH/wht_next_g.gif | Bin 0 -> 73 bytes doc/salome/gui/SMESH/wht_prev.gif | Bin 0 -> 73 bytes doc/salome/gui/SMESH/wht_prev_g.gif | Bin 0 -> 73 bytes doc/salome/gui/SMESH/wht_spac.gif | Bin 0 -> 43 bytes doc/salome/gui/SMESH/wht_sync.gif | Bin 0 -> 846 bytes doc/salome/gui/SMESH/wht_tab0.gif | Bin 0 -> 285 bytes doc/salome/gui/SMESH/wht_tab1.gif | Bin 0 -> 237 bytes doc/salome/gui/SMESH/wht_tab2.gif | Bin 0 -> 226 bytes doc/salome/gui/SMESH/wht_tab3.gif | Bin 0 -> 209 bytes doc/salome/gui/SMESH/wht_tab4.gif | Bin 0 -> 198 bytes doc/salome/gui/SMESH/wht_tab5.gif | Bin 0 -> 221 bytes doc/salome/gui/SMESH/wht_tab6.gif | Bin 0 -> 212 bytes doc/salome/gui/SMESH/wht_tab7.gif | Bin 0 -> 236 bytes doc/salome/gui/SMESH/wht_tab8.gif | Bin 0 -> 225 bytes doc/salome/gui/SMESH/wht_toc1.gif | Bin 0 -> 124 bytes doc/salome/gui/SMESH/wht_toc2.gif | Bin 0 -> 922 bytes doc/salome/gui/SMESH/wht_toc3.gif | Bin 0 -> 911 bytes doc/salome/gui/SMESH/wht_toc4.gif | Bin 0 -> 953 bytes doc/salome/gui/SMESH/wht_toc_h.gif | Bin 0 -> 204 bytes doc/salome/gui/SMESH/wht_toc_n.gif | Bin 0 -> 195 bytes doc/salome/gui/SMESH/wht_ws.gif | Bin 0 -> 973 bytes doc/salome/gui/SMESH/wht_ws_g.gif | Bin 0 -> 949 bytes doc/salome/gui/SMESH/whtbar.js | 1990 ++++++++ doc/salome/gui/SMESH/whtdhtml.htm | 49 + doc/salome/gui/SMESH/whthost.js | 1372 ++++++ doc/salome/gui/SMESH/whtopic.js | 662 +++ doc/salome/gui/SMESH/whutils.js | 463 ++ doc/salome/gui/SMESH/whver.js | 54 + doc/salome/tui/Makefile.in | 43 + .../tui/SMESH/HTML/SMESH_BasicHypothesis.html | 98 + doc/salome/tui/SMESH/HTML/SMESH_Gen.html | 30 + .../tui/SMESH/HTML/SMESH_Hypothesis.html | 54 + doc/salome/tui/SMESH/HTML/SMESH_Mesh.html | 166 + doc/salome/tui/SMESH/doxyfile | 203 + .../tui/SMESH/sources/Application-About.png | Bin 0 -> 19226 bytes .../tui/SMESH/sources/Application-About1.jpg | Bin 0 -> 14327 bytes doc/salome/tui/SMESH/sources/application.gif | Bin 0 -> 2602 bytes doc/salome/tui/SMESH/sources/application.jpg | Bin 0 -> 792 bytes doc/salome/tui/SMESH/sources/bg_salome.gif | Bin 0 -> 17294 bytes doc/salome/tui/SMESH/sources/logocorp.gif | Bin 0 -> 1792 bytes doc/salome/tui/SMESH/sources/myheader.html | 24 + doc/salome/tui/SMESH/sources/occ.gif | Bin 0 -> 14790 bytes .../SMESH/sources/static/PluginMeshers.html | 344 ++ .../tui/SMESH/sources/static/doxygen.css | 49 + .../tui/SMESH/sources/static/page2.html | 46 + doc/salome/tui/SMESH/sources/static/tree.js | 22 + .../tui/SMESH/sources/static/treeview.js | 505 +++ src/SMESH/Makefile.in | 39 +- src/SMESH/SMESH_1D_Algo.cxx | 45 - src/SMESH/SMESH_1D_Algo.hxx | 7 - src/SMESH/SMESH_2D_Algo.cxx | 45 - src/SMESH/SMESH_2D_Algo.hxx | 7 - src/SMESH/SMESH_3D_Algo.cxx | 45 - src/SMESH/SMESH_3D_Algo.hxx | 7 - src/SMESH/SMESH_Algo.cxx | 97 +- src/SMESH/SMESH_Algo.hxx | 39 +- src/SMESH/SMESH_Gen.cxx | 783 +++- src/SMESH/SMESH_Gen.hxx | 71 +- src/SMESH/SMESH_Group.cxx | 55 + src/SMESH/SMESH_Group.hxx | 64 + src/SMESH/SMESH_Hexa_3D.cxx | 1029 ----- src/SMESH/SMESH_Hexa_3D.hxx | 138 - src/SMESH/SMESH_Hypothesis.cxx | 34 +- src/SMESH/SMESH_Hypothesis.hxx | 28 +- src/SMESH/SMESH_HypothesisCreator.hxx | 68 - src/SMESH/SMESH_HypothesisFactory.cxx | 179 - src/SMESH/SMESH_HypothesisFactory.hxx | 69 - src/SMESH/SMESH_LengthFromEdges.cxx | 136 - src/SMESH/SMESH_LengthFromEdges.hxx | 56 - src/SMESH/SMESH_LocalLength.cxx | 136 - src/SMESH/SMESH_LocalLength.hxx | 54 - src/SMESH/SMESH_MEFISTO_2D.cxx | 634 --- src/SMESH/SMESH_MEFISTO_2D.hxx | 86 - src/SMESH/SMESH_MaxElementArea.cxx | 136 - src/SMESH/SMESH_MaxElementArea.hxx | 54 - src/SMESH/SMESH_MaxElementVolume.cxx | 137 - src/SMESH/SMESH_MaxElementVolume.hxx | 56 - src/SMESH/SMESH_Mesh.cxx | 593 ++- src/SMESH/SMESH_Mesh.hxx | 74 +- src/SMESH/SMESH_NETGEN_3D.cxx | 1068 ----- src/SMESH/SMESH_NETGEN_3D.hxx | 42 - src/SMESH/SMESH_NumberOfSegments.cxx | 163 - src/SMESH/SMESH_NumberOfSegments.hxx | 62 - src/SMESH/SMESH_Quadrangle_2D.cxx | 640 --- src/SMESH/SMESH_Quadrangle_2D.hxx | 100 - src/SMESH/SMESH_Regular_1D.cxx | 322 -- src/SMESH/SMESH_Regular_1D.hxx | 63 - src/SMESH/SMESH_subMesh.cxx | 1885 ++++---- src/SMESH/SMESH_subMesh.hxx | 169 +- 343 files changed, 32223 insertions(+), 6981 deletions(-) create mode 100755 doc/salome/gui/SMESH/SMESH.log create mode 100755 doc/salome/gui/SMESH/cshdat_robohelp.htm create mode 100755 doc/salome/gui/SMESH/cshdat_webhelp.htm create mode 100755 doc/salome/gui/SMESH/default.css create mode 100755 doc/salome/gui/SMESH/default.skn create mode 100755 doc/salome/gui/SMESH/default_ns.css create mode 100755 doc/salome/gui/SMESH/ehlpdhtm.js create mode 100755 doc/salome/gui/SMESH/files/1d_meshing_algorithm.htm create mode 100755 doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm create mode 100755 doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm create mode 100755 doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm create mode 100755 doc/salome/gui/SMESH/files/about_hypotheses.htm create mode 100755 doc/salome/gui/SMESH/files/about_meshes.htm create mode 100755 doc/salome/gui/SMESH/files/about_meshing_algorithms.htm create mode 100755 doc/salome/gui/SMESH/files/about_modification_of_meshes.htm create mode 100755 doc/salome/gui/SMESH/files/about_quality_controls.htm create mode 100755 doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm create mode 100755 doc/salome/gui/SMESH/files/area_of_elements.htm create mode 100755 doc/salome/gui/SMESH/files/aspect_ratio.htm create mode 100755 doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm create mode 100755 doc/salome/gui/SMESH/files/computing_meshes.htm create mode 100755 doc/salome/gui/SMESH/files/connectivity.htm create mode 100755 doc/salome/gui/SMESH/files/constructing_meshes.htm create mode 100755 doc/salome/gui/SMESH/files/constructing_submeshes.htm create mode 100755 doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm create mode 100755 doc/salome/gui/SMESH/files/displacing_nodes.htm create mode 100755 doc/salome/gui/SMESH/files/displaying_elements_numbers.htm create mode 100755 doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm create mode 100755 doc/salome/gui/SMESH/files/editing_hypotheses.htm create mode 100755 doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm create mode 100755 doc/salome/gui/SMESH/files/introduction_to_smesh.htm create mode 100755 doc/salome/gui/SMESH/files/length_of_edges.htm create mode 100755 doc/salome/gui/SMESH/files/local_length_hypothesis.htm create mode 100755 doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm create mode 100755 doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm create mode 100755 doc/salome/gui/SMESH/files/minimum_angle.htm create mode 100755 doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm create mode 100755 doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm create mode 100755 doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm create mode 100755 doc/salome/gui/SMESH/files/running_smesh_module.htm create mode 100755 doc/salome/gui/SMESH/files/scalar_bar_properties.htm create mode 100755 doc/salome/gui/SMESH/files/shading.htm create mode 100755 doc/salome/gui/SMESH/files/shrink.htm create mode 100755 doc/salome/gui/SMESH/files/skew.htm create mode 100755 doc/salome/gui/SMESH/files/taper.htm create mode 100755 doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm create mode 100755 doc/salome/gui/SMESH/files/using_smesh_module.htm create mode 100755 doc/salome/gui/SMESH/files/view_update.htm create mode 100755 doc/salome/gui/SMESH/files/viewing_mesh_info.htm create mode 100755 doc/salome/gui/SMESH/files/visualization_modes.htm create mode 100755 doc/salome/gui/SMESH/files/visualization_properties.htm create mode 100755 doc/salome/gui/SMESH/files/warp.htm create mode 100755 doc/salome/gui/SMESH/files/wireframe.htm create mode 100755 doc/salome/gui/SMESH/i_blue.jpg create mode 100755 doc/salome/gui/SMESH/image10.jpg create mode 100755 doc/salome/gui/SMESH/image11.jpg create mode 100755 doc/salome/gui/SMESH/image12.jpg create mode 100755 doc/salome/gui/SMESH/image2.gif create mode 100755 doc/salome/gui/SMESH/image22.gif create mode 100755 doc/salome/gui/SMESH/image24.gif create mode 100755 doc/salome/gui/SMESH/image24.jpg create mode 100755 doc/salome/gui/SMESH/image25.gif create mode 100755 doc/salome/gui/SMESH/image25.jpg create mode 100755 doc/salome/gui/SMESH/image26.gif create mode 100755 doc/salome/gui/SMESH/image26.jpg create mode 100755 doc/salome/gui/SMESH/image27.gif create mode 100755 doc/salome/gui/SMESH/image27.jpg create mode 100755 doc/salome/gui/SMESH/image28.gif create mode 100755 doc/salome/gui/SMESH/image28.jpg create mode 100755 doc/salome/gui/SMESH/image29.gif create mode 100755 doc/salome/gui/SMESH/image29.jpg create mode 100755 doc/salome/gui/SMESH/image3.jpg create mode 100755 doc/salome/gui/SMESH/image31.gif create mode 100755 doc/salome/gui/SMESH/image32.gif create mode 100755 doc/salome/gui/SMESH/image33.gif create mode 100755 doc/salome/gui/SMESH/image34.gif create mode 100755 doc/salome/gui/SMESH/image35.gif create mode 100755 doc/salome/gui/SMESH/image36.gif create mode 100755 doc/salome/gui/SMESH/image37.gif create mode 100755 doc/salome/gui/SMESH/image38.gif create mode 100755 doc/salome/gui/SMESH/image39.gif create mode 100755 doc/salome/gui/SMESH/image4.gif create mode 100755 doc/salome/gui/SMESH/image4.jpg create mode 100755 doc/salome/gui/SMESH/image40.gif create mode 100755 doc/salome/gui/SMESH/image41.gif create mode 100755 doc/salome/gui/SMESH/image42.gif create mode 100755 doc/salome/gui/SMESH/image43.gif create mode 100755 doc/salome/gui/SMESH/image44.gif create mode 100755 doc/salome/gui/SMESH/image45.gif create mode 100755 doc/salome/gui/SMESH/image46.gif create mode 100755 doc/salome/gui/SMESH/image47.gif create mode 100755 doc/salome/gui/SMESH/image48.gif create mode 100755 doc/salome/gui/SMESH/image49.gif create mode 100755 doc/salome/gui/SMESH/image50.gif create mode 100755 doc/salome/gui/SMESH/image51.gif create mode 100755 doc/salome/gui/SMESH/image52.gif create mode 100755 doc/salome/gui/SMESH/image53.gif create mode 100755 doc/salome/gui/SMESH/image55.gif create mode 100755 doc/salome/gui/SMESH/image56.gif create mode 100755 doc/salome/gui/SMESH/image6.gif create mode 100755 doc/salome/gui/SMESH/image6.jpg create mode 100755 doc/salome/gui/SMESH/image7.jpg create mode 100755 doc/salome/gui/SMESH/image8.jpg create mode 100755 doc/salome/gui/SMESH/image9.jpg create mode 100755 doc/salome/gui/SMESH/note1.gif create mode 100755 doc/salome/gui/SMESH/pics/exemple.gif create mode 100755 doc/salome/gui/SMESH/pics/new.jpg create mode 100755 doc/salome/gui/SMESH/smesh.html create mode 100755 doc/salome/gui/SMESH/smesh_csh.html create mode 100755 doc/salome/gui/SMESH/smesh_rhc.html create mode 100755 doc/salome/gui/SMESH/texture_horiz_ltbluebubbles.jpg create mode 100755 doc/salome/gui/SMESH/webhelp.cab create mode 100755 doc/salome/gui/SMESH/webhelp.jar create mode 100755 doc/salome/gui/SMESH/whdata/whftdata.js create mode 100755 doc/salome/gui/SMESH/whdata/whftdata0.htm create mode 100755 doc/salome/gui/SMESH/whdata/whftdata0.xml create mode 100755 doc/salome/gui/SMESH/whdata/whfts.htm create mode 100755 doc/salome/gui/SMESH/whdata/whfts.js create mode 100755 doc/salome/gui/SMESH/whdata/whfts.xml create mode 100755 doc/salome/gui/SMESH/whdata/whfwdata.js create mode 100755 doc/salome/gui/SMESH/whdata/whfwdata0.htm create mode 100755 doc/salome/gui/SMESH/whdata/whfwdata0.xml create mode 100755 doc/salome/gui/SMESH/whdata/whgdata.js create mode 100755 doc/salome/gui/SMESH/whdata/whgdata0.htm create mode 100755 doc/salome/gui/SMESH/whdata/whgdata0.xml create mode 100755 doc/salome/gui/SMESH/whdata/whglo.htm create mode 100755 doc/salome/gui/SMESH/whdata/whglo.js create mode 100755 doc/salome/gui/SMESH/whdata/whglo.xml create mode 100755 doc/salome/gui/SMESH/whdata/whidata.js create mode 100755 doc/salome/gui/SMESH/whdata/whidx.htm create mode 100755 doc/salome/gui/SMESH/whdata/whidx.js create mode 100755 doc/salome/gui/SMESH/whdata/whidx.xml create mode 100755 doc/salome/gui/SMESH/whdata/whtdata.js create mode 100755 doc/salome/gui/SMESH/whdata/whtdata0.htm create mode 100755 doc/salome/gui/SMESH/whdata/whtdata0.xml create mode 100755 doc/salome/gui/SMESH/whdata/whtoc.htm create mode 100755 doc/salome/gui/SMESH/whdata/whtoc.js create mode 100755 doc/salome/gui/SMESH/whdata/whtoc.xml create mode 100755 doc/salome/gui/SMESH/whestart.ico create mode 100755 doc/salome/gui/SMESH/whfbody.htm create mode 100755 doc/salome/gui/SMESH/whfdhtml.htm create mode 100755 doc/salome/gui/SMESH/whfform.htm create mode 100755 doc/salome/gui/SMESH/whfhost.js create mode 100755 doc/salome/gui/SMESH/whform.js create mode 100755 doc/salome/gui/SMESH/whframes.js create mode 100755 doc/salome/gui/SMESH/whgbody.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whexpbar.gif create mode 100755 doc/salome/gui/SMESH/whgdata/whlstf0.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstf1.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstf2.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstf3.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl0.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl1.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl10.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl11.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl12.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl13.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl14.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl15.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl16.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl17.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl18.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl19.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl2.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl20.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl21.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl22.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl3.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl4.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl5.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl6.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl7.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl8.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstfl9.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstg0.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlsti0.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt0.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt1.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt10.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt11.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt12.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt2.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt3.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt4.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt5.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt6.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt7.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt8.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whlstt9.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvf30.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvf31.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvf32.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvf33.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvl31.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvl32.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvl33.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvp30.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvp31.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvp32.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvp33.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvt30.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvt31.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvt32.htm create mode 100755 doc/salome/gui/SMESH/whgdata/whnvt33.htm create mode 100755 doc/salome/gui/SMESH/whgdef.htm create mode 100755 doc/salome/gui/SMESH/whgdhtml.htm create mode 100755 doc/salome/gui/SMESH/whghost.js create mode 100755 doc/salome/gui/SMESH/whhost.js create mode 100755 doc/salome/gui/SMESH/whibody.htm create mode 100755 doc/salome/gui/SMESH/whidhtml.htm create mode 100755 doc/salome/gui/SMESH/whiform.htm create mode 100755 doc/salome/gui/SMESH/whihost.js create mode 100755 doc/salome/gui/SMESH/whlang.js create mode 100755 doc/salome/gui/SMESH/whmozemu.js create mode 100755 doc/salome/gui/SMESH/whmsg.js create mode 100755 doc/salome/gui/SMESH/whnjs.htm create mode 100755 doc/salome/gui/SMESH/whphost.js create mode 100755 doc/salome/gui/SMESH/whproj.htm create mode 100755 doc/salome/gui/SMESH/whproj.js create mode 100755 doc/salome/gui/SMESH/whproj.xml create mode 100755 doc/salome/gui/SMESH/whproxy.js create mode 100755 doc/salome/gui/SMESH/whres.xml create mode 100755 doc/salome/gui/SMESH/whrstart.ico create mode 100755 doc/salome/gui/SMESH/whskin_banner.htm create mode 100755 doc/salome/gui/SMESH/whskin_blank.htm create mode 100755 doc/salome/gui/SMESH/whskin_frmset01.htm create mode 100755 doc/salome/gui/SMESH/whskin_frmset010.htm create mode 100755 doc/salome/gui/SMESH/whskin_info.htm create mode 100755 doc/salome/gui/SMESH/whskin_mbars.htm create mode 100755 doc/salome/gui/SMESH/whskin_papplet.htm create mode 100755 doc/salome/gui/SMESH/whskin_pdhtml.htm create mode 100755 doc/salome/gui/SMESH/whskin_plist.htm create mode 100755 doc/salome/gui/SMESH/whskin_tbars.htm create mode 100755 doc/salome/gui/SMESH/whst_topics.xml create mode 100755 doc/salome/gui/SMESH/whstart.ico create mode 100755 doc/salome/gui/SMESH/whstart.js create mode 100755 doc/salome/gui/SMESH/whstub.js create mode 100755 doc/salome/gui/SMESH/wht_abge.jpg create mode 100755 doc/salome/gui/SMESH/wht_abgi.jpg create mode 100755 doc/salome/gui/SMESH/wht_abgw.jpg create mode 100755 doc/salome/gui/SMESH/wht_abte.jpg create mode 100755 doc/salome/gui/SMESH/wht_abti.jpg create mode 100755 doc/salome/gui/SMESH/wht_abtw.jpg create mode 100755 doc/salome/gui/SMESH/wht_fts_h.gif create mode 100755 doc/salome/gui/SMESH/wht_fts_n.gif create mode 100755 doc/salome/gui/SMESH/wht_glo_h.gif create mode 100755 doc/salome/gui/SMESH/wht_glo_n.gif create mode 100755 doc/salome/gui/SMESH/wht_go.gif create mode 100755 doc/salome/gui/SMESH/wht_hide.gif create mode 100755 doc/salome/gui/SMESH/wht_idx_h.gif create mode 100755 doc/salome/gui/SMESH/wht_idx_n.gif create mode 100755 doc/salome/gui/SMESH/wht_logo1.gif create mode 100755 doc/salome/gui/SMESH/wht_logo2.gif create mode 100755 doc/salome/gui/SMESH/wht_next.gif create mode 100755 doc/salome/gui/SMESH/wht_next_g.gif create mode 100755 doc/salome/gui/SMESH/wht_prev.gif create mode 100755 doc/salome/gui/SMESH/wht_prev_g.gif create mode 100755 doc/salome/gui/SMESH/wht_spac.gif create mode 100755 doc/salome/gui/SMESH/wht_sync.gif create mode 100755 doc/salome/gui/SMESH/wht_tab0.gif create mode 100755 doc/salome/gui/SMESH/wht_tab1.gif create mode 100755 doc/salome/gui/SMESH/wht_tab2.gif create mode 100755 doc/salome/gui/SMESH/wht_tab3.gif create mode 100755 doc/salome/gui/SMESH/wht_tab4.gif create mode 100755 doc/salome/gui/SMESH/wht_tab5.gif create mode 100755 doc/salome/gui/SMESH/wht_tab6.gif create mode 100755 doc/salome/gui/SMESH/wht_tab7.gif create mode 100755 doc/salome/gui/SMESH/wht_tab8.gif create mode 100755 doc/salome/gui/SMESH/wht_toc1.gif create mode 100755 doc/salome/gui/SMESH/wht_toc2.gif create mode 100755 doc/salome/gui/SMESH/wht_toc3.gif create mode 100755 doc/salome/gui/SMESH/wht_toc4.gif create mode 100755 doc/salome/gui/SMESH/wht_toc_h.gif create mode 100755 doc/salome/gui/SMESH/wht_toc_n.gif create mode 100755 doc/salome/gui/SMESH/wht_ws.gif create mode 100755 doc/salome/gui/SMESH/wht_ws_g.gif create mode 100755 doc/salome/gui/SMESH/whtbar.js create mode 100755 doc/salome/gui/SMESH/whtdhtml.htm create mode 100755 doc/salome/gui/SMESH/whthost.js create mode 100755 doc/salome/gui/SMESH/whtopic.js create mode 100755 doc/salome/gui/SMESH/whutils.js create mode 100755 doc/salome/gui/SMESH/whver.js create mode 100644 doc/salome/tui/Makefile.in create mode 100644 doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html create mode 100644 doc/salome/tui/SMESH/HTML/SMESH_Gen.html create mode 100644 doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html create mode 100644 doc/salome/tui/SMESH/HTML/SMESH_Mesh.html create mode 100755 doc/salome/tui/SMESH/doxyfile create mode 100755 doc/salome/tui/SMESH/sources/Application-About.png create mode 100755 doc/salome/tui/SMESH/sources/Application-About1.jpg create mode 100644 doc/salome/tui/SMESH/sources/application.gif create mode 100755 doc/salome/tui/SMESH/sources/application.jpg create mode 100755 doc/salome/tui/SMESH/sources/bg_salome.gif create mode 100755 doc/salome/tui/SMESH/sources/logocorp.gif create mode 100755 doc/salome/tui/SMESH/sources/myheader.html create mode 100755 doc/salome/tui/SMESH/sources/occ.gif create mode 100755 doc/salome/tui/SMESH/sources/static/PluginMeshers.html create mode 100755 doc/salome/tui/SMESH/sources/static/doxygen.css create mode 100755 doc/salome/tui/SMESH/sources/static/page2.html create mode 100755 doc/salome/tui/SMESH/sources/static/tree.js create mode 100644 doc/salome/tui/SMESH/sources/static/treeview.js create mode 100644 src/SMESH/SMESH_Group.cxx create mode 100644 src/SMESH/SMESH_Group.hxx delete mode 100644 src/SMESH/SMESH_Hexa_3D.cxx delete mode 100644 src/SMESH/SMESH_Hexa_3D.hxx delete mode 100644 src/SMESH/SMESH_HypothesisCreator.hxx delete mode 100644 src/SMESH/SMESH_HypothesisFactory.cxx delete mode 100644 src/SMESH/SMESH_HypothesisFactory.hxx delete mode 100644 src/SMESH/SMESH_LengthFromEdges.cxx delete mode 100644 src/SMESH/SMESH_LengthFromEdges.hxx delete mode 100644 src/SMESH/SMESH_LocalLength.cxx delete mode 100644 src/SMESH/SMESH_LocalLength.hxx delete mode 100644 src/SMESH/SMESH_MEFISTO_2D.cxx delete mode 100644 src/SMESH/SMESH_MEFISTO_2D.hxx delete mode 100644 src/SMESH/SMESH_MaxElementArea.cxx delete mode 100644 src/SMESH/SMESH_MaxElementArea.hxx delete mode 100644 src/SMESH/SMESH_MaxElementVolume.cxx delete mode 100644 src/SMESH/SMESH_MaxElementVolume.hxx delete mode 100644 src/SMESH/SMESH_NETGEN_3D.cxx delete mode 100644 src/SMESH/SMESH_NETGEN_3D.hxx delete mode 100644 src/SMESH/SMESH_NumberOfSegments.cxx delete mode 100644 src/SMESH/SMESH_NumberOfSegments.hxx delete mode 100644 src/SMESH/SMESH_Quadrangle_2D.cxx delete mode 100644 src/SMESH/SMESH_Quadrangle_2D.hxx delete mode 100644 src/SMESH/SMESH_Regular_1D.cxx delete mode 100644 src/SMESH/SMESH_Regular_1D.hxx diff --git a/doc/salome/gui/SMESH/SMESH.log b/doc/salome/gui/SMESH/SMESH.log new file mode 100755 index 000000000..4552b0906 --- /dev/null +++ b/doc/salome/gui/SMESH/SMESH.log @@ -0,0 +1,288 @@ +|SourceProjectName:SMESH.hpr +|DestinationProjectName:smesh.html +whhost.js +whmsg.js +whmozemu.js +whproxy.js +whstub.js +whutils.js +whver.js +whform.js +whphost.js +whstart.js +whtopic.js +whframes.js +whlang.js +whskin_info.htm +whskin_blank.htm +whnjs.htm +whthost.js +whtdhtml.htm +whihost.js +whibody.htm +whiform.htm +whfhost.js +whfbody.htm +whfform.htm +whghost.js +whgbody.htm +whgdhtml.htm +whgdef.htm +whproj.js +whproj.xml +whproj.htm +whdata\whtoc.js +whdata\whtoc.xml +whdata\whtoc.htm +whdata\whtdata.js +whdata\whidx.js +whdata\whidx.xml +whdata\whidx.htm +whdata\whidata.js +whdata\whfts.js +whdata\whfts.xml +whdata\whfts.htm +whdata\whglo.js +whdata\whglo.xml +whdata\whglo.htm +whdata\whgdata.js +whdata\whftdata.js +whdata\whfwdata.js +whres.xml +webhelp.jar +webhelp.cab +whgdata\whnvp30.htm +whgdata\whnvp31.htm +whgdata\whnvp32.htm +whgdata\whnvp33.htm +whgdata\whnvt30.htm +whgdata\whnvt31.htm +whgdata\whnvt32.htm +whgdata\whnvt33.htm +whgdata\whnvf30.htm +whgdata\whnvf31.htm +whgdata\whnvf32.htm +whgdata\whnvf33.htm +whgdata\whnvl31.htm +whgdata\whnvl32.htm +whgdata\whnvl33.htm +whgdata\whexpbar.gif +cshdat_webhelp.htm +cshdat_robohelp.htm +wht_tab0.gif +wht_tab1.gif +wht_tab2.gif +wht_tab3.gif +wht_tab4.gif +wht_tab5.gif +wht_tab6.gif +wht_tab7.gif +wht_tab8.gif +wht_glo_h.gif +wht_glo_n.gif +wht_fts_h.gif +wht_fts_n.gif +wht_idx_h.gif +wht_idx_n.gif +wht_toc_h.gif +wht_toc_n.gif +wht_ws.gif +wht_ws_g.gif +wht_logo1.gif +wht_logo2.gif +wht_abgw.jpg +wht_abgi.jpg +wht_abge.jpg +wht_abtw.jpg +wht_abte.jpg +wht_abti.jpg +wht_spac.gif +wht_next.gif +wht_next_g.gif +wht_prev.gif +wht_prev_g.gif +wht_sync.gif +wht_hide.gif +wht_go.gif +whstart.ico +whestart.ico +whrstart.ico +whidhtml.htm +whfdhtml.htm +whskin_banner.htm +whtbar.js +default.skn +whskin_pdhtml.htm +whskin_papplet.htm +whskin_plist.htm +whskin_tbars.htm +whskin_mbars.htm +wht_toc4.gif +wht_toc1.gif +wht_toc2.gif +wht_toc3.gif +whskin_frmset010.htm +whst_topics.xml +whskin_frmset01.htm +smesh_hha.hhk +smesh.hhc +smesh.hhk +files\1d_meshing_algorithm.htm +files\2d_(quadrangle)_meshing_algorithm.htm +files\2d_meshing_algorithm.htm +files\3d_meshing_algorithm.htm +files\about_hypotheses.htm +files\about_meshes.htm +files\about_meshing_algorithms.htm +files\about_modification_of_meshes.htm +files\about_quality_controls.htm +files\adding_nodes_and_elements.htm +files\area_of_elements.htm +files\aspect_ratio.htm +files\changing_orientation_of_elements.htm +files\computing_meshes.htm +files\connectivity.htm +files\constructing_meshes.htm +files\constructing_submeshes.htm +files\diagonal_iversion_of_elements.htm +files\displacing_nodes.htm +files\displaying_elements_numbers.htm +files\displaying_nodes_numbers.htm +files\editing_hypotheses.htm +files\importing_and_exporting_meshes.htm +files\introduction_to_smesh.htm +files\length_of_edges.htm +files\local_length_hypothesis.htm +files\max._element_area_hypothesis.htm +files\max._element_volume_hypothsis.htm +files\minimum_angle.htm +files\number_of_segments_hypothesis.htm +files\reassigning_hypotheses_and_algorithms.htm +files\removing_nodes_and_elements.htm +files\running_smesh_module.htm +files\scalar_bar_properties.htm +files\shading.htm +files\shrink.htm +files\skew.htm +files\taper.htm +files\tetrahedron_(netgen)_meshing_algorithm.htm +files\using_smesh_module.htm +files\view_update.htm +files\viewing_mesh_info.htm +files\visualization_modes.htm +files\visualization_properties.htm +files\warp.htm +files\wireframe.htm +texture_horiz_ltbluebubbles.jpg +ehlpdhtm.js +smesh.glo +default.css +image3.jpg +image55.gif +image44.gif +image33.gif +image22.gif +image25.jpg +image4.jpg +image56.gif +image45.gif +image34.gif +image26.jpg +image2.gif +image46.gif +image35.gif +image27.jpg +image24.gif +image6.jpg +image47.gif +image36.gif +image28.jpg +image25.gif +image4.gif +image7.jpg +image48.gif +image37.gif +image29.jpg +image26.gif +image8.jpg +image49.gif +image38.gif +image27.gif +note1.gif +image6.gif +image9.jpg +image39.gif +image28.gif +image29.gif +i_blue.jpg +image50.gif +pics\new.jpg +image10.jpg +image51.gif +image40.gif +image11.jpg +image52.gif +image41.gif +image12.jpg +pics\exemple.gif +image53.gif +image42.gif +image31.gif +image43.gif +image32.gif +image24.jpg +smesh.ppf +default_ns.css +whdata\whtdata0.xml +whdata\whtdata0.htm +whdata\whftdata0.xml +whdata\whftdata0.htm +whdata\whfwdata0.xml +whdata\whfwdata0.htm +whdata\whgdata0.xml +whdata\whgdata0.htm +whgdata\whlstt0.htm +whgdata\whlstt1.htm +whgdata\whlstt2.htm +whgdata\whlstt3.htm +whgdata\whlstt4.htm +whgdata\whlstt5.htm +whgdata\whlstt6.htm +whgdata\whlstt7.htm +whgdata\whlstt8.htm +whgdata\whlstt9.htm +whgdata\whlstt10.htm +whgdata\whlstt11.htm +whgdata\whlstt12.htm +whgdata\whlsti0.htm +whgdata\whlstfl0.htm +whgdata\whlstfl1.htm +whgdata\whlstfl2.htm +whgdata\whlstfl3.htm +whgdata\whlstfl4.htm +whgdata\whlstfl5.htm +whgdata\whlstfl6.htm +whgdata\whlstfl7.htm +whgdata\whlstfl8.htm +whgdata\whlstfl9.htm +whgdata\whlstfl10.htm +whgdata\whlstfl11.htm +whgdata\whlstfl12.htm +whgdata\whlstfl13.htm +whgdata\whlstfl14.htm +whgdata\whlstfl15.htm +whgdata\whlstfl16.htm +whgdata\whlstfl17.htm +whgdata\whlstfl18.htm +whgdata\whlstfl19.htm +whgdata\whlstfl20.htm +whgdata\whlstfl21.htm +whgdata\whlstfl22.htm +whgdata\whlstf0.htm +whgdata\whlstf1.htm +whgdata\whlstf2.htm +whgdata\whlstf3.htm +whgdata\whlstg0.htm +smesh.html +smesh_csh.html +smesh_rhc.html diff --git a/doc/salome/gui/SMESH/cshdat_robohelp.htm b/doc/salome/gui/SMESH/cshdat_robohelp.htm new file mode 100755 index 000000000..3baed1880 --- /dev/null +++ b/doc/salome/gui/SMESH/cshdat_robohelp.htm @@ -0,0 +1,252 @@ + + +SMESH reference manual + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/cshdat_webhelp.htm b/doc/salome/gui/SMESH/cshdat_webhelp.htm new file mode 100755 index 000000000..571288606 --- /dev/null +++ b/doc/salome/gui/SMESH/cshdat_webhelp.htm @@ -0,0 +1,251 @@ + + +SMESH reference manual + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/default.css b/doc/salome/gui/SMESH/default.css new file mode 100755 index 000000000..d2d425ac0 --- /dev/null +++ b/doc/salome/gui/SMESH/default.css @@ -0,0 +1,209 @@ +/*=(===============================================================)*/ + +/*=(===============================================================)*/ +/*=(Created with RoboEditor.)=======================================*/ +/*=(===============================================================)*/ + +BODY { + background-color: #ffffff; + font-family: "Times New Roman", serif; +} + +H1 { + font-weight: bold; + font-size: 24.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H1 { + font-weight: bold; + font-size: 24.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H2 { + font-weight: bold; + font-size: 18.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H2 { + font-weight: bold; + font-size: 18.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H3 { + font-weight: bold; + font-size: 14.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H3 { + font-weight: bold; + font-size: 14.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H4 { + font-weight: bold; + font-size: 12.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H4 { + font-weight: bold; + font-size: 12.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H5 { + font-weight: bold; + font-size: 10.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H5 { + font-weight: bold; + font-size: 10.0pt; +} +/*}}end!kadov=======================================================*/ + + + +H6 { + font-weight: bold; + font-size: 8.0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-H6 { + font-weight: bold; + font-size: 8.0pt; +} +/*}}end!kadov=======================================================*/ + + + +P { + font-size: 12.0pt; + margin-top: 0pt; + margin-bottom: 0pt; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P { + font-size: 12.0pt; +} +/*}}end!kadov=======================================================*/ + + + +A.expandspot { + color: #008000; + cursor: hand; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +SPAN.expandtext { + font-style: italic; + font-weight: normal; + color: #ff0000; +} + +A.dropspot { + cursor: hand; + color: #008000; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +A.glossterm { + color: #800000; + cursor: hand; + font-style: italic; + x-text-underline: off; + x-text-overline: off; + x-text-line-through: off; + /*begin!kadov{{*/ text-decoration: none none none; /*}}end!kadov*/ +} + +SPAN.glosstext { + font-style: italic; + font-weight: normal; + color: #0000ff; +} + +OL, +UL { + margin-top: 0px; + margin-bottom: 0px; +} + +A:active { +} + +A:hover { + x-text-underline: Off; + /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ +} + +A:link { + x-text-underline: Off; + /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ +} + +A:visited { + x-text-underline: Off; + /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ +} + +P.TODO { + font-weight: normal; + font-style: italic; + font-family: "Arial Black", sans-serif; +} + +/*=(Generated Code)=================================================*/ +/*=(WARNING: DO NOT EDIT OR DELETE THIS SECTION!)===================*/ +/*begin!kadov{{=====================================================*/ +LI.kadov-P-CTODO { + font-weight: normal; + font-style: italic; + font-family: "Arial Black", sans-serif; +} +/*}}end!kadov=======================================================*/ + + + + +/*=(===============================================================)*/ diff --git a/doc/salome/gui/SMESH/default.skn b/doc/salome/gui/SMESH/default.skn new file mode 100755 index 000000000..f162a6624 --- /dev/null +++ b/doc/salome/gui/SMESH/default.skn @@ -0,0 +1,262 @@ + + + + Default + Contents + font-family:Arial font-size:8pt font-weight:normal font-style:normal text-decoration:none font-sizeadjust:none font-stretch:normal font-variant:normal + + + + + + + + + + + + + +]]> + + + + + + + + + + + + + + background:#99ccff + 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 + + background:#639ace + 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 + + left + + Contents + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Index + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Search + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Glossary + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + WebSearch + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Search Input + + + + + <text></text> + + + + + Logo + + eHelp Corporation + + + + + background:#99ccff + 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 + + background:#639ace + 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 + + + Previous + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Next + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Sync TOC + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + Hide + ::??DefaultWebSkinText??:: + + + default + + + + default + + + + + + + + + + + background:White alink:Silver hover-color:Navy + 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 + + + + background:White alink:Silver hover-color:Navy + 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 + + + background:White + + + <text>::??DefaultWebSkinText??::</text> + <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> + + + + + + + background:White alink:Silver hover-color:Navy + 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 + + + background:White + + + <text>::??DefaultWebSkinText??::</text> + <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> + + + + + + + background:White alink:Silver hover-color:Navy + 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 + + ::??DefaultWebSkinText??:: + 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 + background:White + + + + ::??DefaultWebSkinText??:: + + + + + ::??DefaultWebSkinText??:: + 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 + background:White + + + + ::??DefaultWebSkinText??:: + + + + + + + + none + + + diff --git a/doc/salome/gui/SMESH/default_ns.css b/doc/salome/gui/SMESH/default_ns.css new file mode 100755 index 000000000..020a67111 --- /dev/null +++ b/doc/salome/gui/SMESH/default_ns.css @@ -0,0 +1,122 @@ +BODY { + background-color:#ffffff; + font-family:"Times New Roman" , serif; } +H1 { + font-weight:bold; + font-size:24.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H1 { + font-weight:bold; + font-size:24.0pt; } +H2 { + font-weight:bold; + font-size:18.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H2 { + font-weight:bold; + font-size:18.0pt; } +H3 { + font-weight:bold; + font-size:14.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H3 { + font-weight:bold; + font-size:14.0pt; } +H4 { + font-weight:bold; + font-size:12.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H4 { + font-weight:bold; + font-size:12.0pt; } +H5 { + font-weight:bold; + font-size:10.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H5 { + font-weight:bold; + font-size:10.0pt; } +H6 { + font-weight:bold; + font-size:8.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H6 { + font-weight:bold; + font-size:8.0pt; } +P { + font-size:12.0pt; + margin-top:1; + margin-bottom:1; + font-family:"Times New Roman" , serif; } +LI.kadov-P { + font-size:12.0pt; } +A.expandspot { + color:#008000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.expandtext { + font-style:italic; + font-weight:normal; + color:#ff0000; } +A.dropspot { + cursor:hand; + color:#008000; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +A.glossterm { + color:#800000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.glosstext { + font-style:italic; + font-weight:normal; + color:#0000ff; } +OL { + margin-top:0px; + margin-bottom:0px; + font-family:"Times New Roman" , serif; } +UL { + margin-top:0px; + margin-bottom:0px; + font-family:"Times New Roman" , serif; } +A:active { } +A:hover { + x-text-underline:Off; + text-decoration:none; } +A:link { + x-text-underline:Off; + text-decoration:none; } +A:visited { + x-text-underline:Off; + text-decoration:none; } +P.TODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +LI.kadov-P-CTODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +ol ol { + margin-top:1; + margin-bottom:1; } +ol ul { + margin-top:1; + margin-bottom:1; } +ul ul { + margin-top:1; + margin-bottom:1; } +ul ol { + margin-top:1; + margin-bottom:1; } diff --git a/doc/salome/gui/SMESH/ehlpdhtm.js b/doc/salome/gui/SMESH/ehlpdhtm.js new file mode 100755 index 000000000..86d26ea96 --- /dev/null +++ b/doc/salome/gui/SMESH/ehlpdhtm.js @@ -0,0 +1,4033 @@ +// eHelpŽ Corporation Dynamic HTML JavaScript +// CopyrightŠ 1998-2001 eHelpŽ Corporation.All rights reserved. +// Version=4.57 + +// Warning:Do not modify this file.It is generated by RoboHELPŽ and changes will be overwritten. + +//// Segment Begin -- (JavaScript 1.0) + +/// Section Begin - General and relative topics(JavaScript 1.0) + +//{{HH_SYMBOL_SECTION +var HH_ChmFilename = ""; +var HH_WindowName = ""; +var HH_GlossaryFont = ""; +var HH_Glossary = ""; +var HH_Avenue = ""; +var HH_ActiveX = false; +//}}HH_SYMBOL_SECTION + +//Begin to support previous generic parameters +//Get the information about the browser. +var gstrBsAgent = navigator.userAgent.toLowerCase(); +var gnBsVer = parseInt(navigator.appVersion); + +var gbBsIE = (gstrBsAgent.indexOf('msie') != -1); +var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)); +var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1); + +var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2)); +var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3)); + +var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2)); +var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3)); +var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1))); +var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1)); + +var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4)); +var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5)); + +var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4)); +var gbBsIE5 = false; +var gbBsIE55 = false; + +gbBsIE = (navigator.appName.indexOf("Microsoft") != -1); + +if (parseInt(navigator.appVersion) >= 4) { + gbBsIE4 = (navigator.appName.indexOf("Microsoft") != -1); + + if (gbBsIE4) { + var nPos = gstrBsAgent.indexOf("msie"); + var strIEversion = gstrBsAgent.substring(nPos + 5); + var nVersion = parseFloat(strIEversion); + if (nVersion >= 5) + gbBsIE5 = true; + if (nVersion >= 5.5) + gbBsIE55 = true; + } +} + +var gbBsMac = (gstrBsAgent.indexOf('mac') != -1); +var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1)); +var gbBsOp3 = (gstrBsAgent.indexOf('opera') != -1); + +// Utilities functions. +function BsscHasExtJs() +{ + if( gbBsIE3Before || gbBsNS3Before) + return false; + return true; +} + +// Register event handler +var gBsOnLoads = new Array(); // An array holds all the onload event handler. +var gBsOnClicks = new Array(); // An array holds all the onClick event handler. +var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler. +var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler. +var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler. + +var gbOrignalOnMouseDown = null; + +function BsscRegisterOnLoad(funcHandler) +{ + var nLength = gBsOnLoads.length; + gBsOnLoads[nLength] = funcHandler; +} + +function BsscRegisterOnClick(funcHandler) +{ + var nLength = gBsOnClicks.length; + gBsOnClicks[nLength] = funcHandler; +} + +function BsscRegisterOnUnLoad(funcHandler) +{ + var nLength = gBsOnUnLoads.length; + gBsOnUnLoads[nLength] = funcHandler; +} + +function BsscRegisterOnMouseOver(funcHandler) +{ + var nLength = gBsOnMouseOvers.length; + gBsOnMouseOvers[nLength] = funcHandler; +} + +function BsscRegisterOnMouseOut(funcHandler) +{ + var nLength = gBsOnMouseOuts.length; + gBsOnMouseOuts[nLength] = funcHandler; +} + + +function BsGeneralOnLoad() +{ + if (!gbBsIE4 && !gbBsNS4) + return; + + // Make everything visible in navigator + if (gbBsNS4 && !gbBsNS6) { + // Make some special effects items visible + for (var iLayer = 0; iLayer < document.layers.length; iLayer++) { + document.layers[iLayer].visibility = "show"; + document.layers[iLayer].left = 0; + } + } +} + +// If resize the netscape browser, need to reload it. +function BsReDo() +{ + if (innerWidth != origWidth || innerHeight != origHeight) + location.reload(); +} +// End of the local functions. + +// The following functions are used by the html files. +function BSSCOnLoad() +{ + if( !BsscHasExtJs() ) + return; + for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--) + gBsOnLoads[nElement](); +} + +function BSSCOnClick() +{ + if (!BsscHasExtJs()) return; + + for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--) + gBsOnClicks[nElement](); +} + +function BSSCOnUnload() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--) + { + gBsOnUnLoads[nElement](); + } +} + +function BSSCOnMouseOver() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--) + { + gBsOnMouseOvers[nElement](); + } +} + +function BSSCOnMouseOut() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--) + { + gBsOnMouseOuts[nElement](); + } +} +// End of invocation of the event handle functions. + + +// Add the GereralOnLoad to the onload array. +if (typeof(BsscRegisterOnLoad) != "undefined") +{ + BsscRegisterOnLoad(BsGeneralOnLoad); +} +if (gbBsNS4&&!gbBsNS6) { + origWidth = innerWidth; + origHeight = innerHeight; + onresize = BsReDo; +} +//End to support previous generic parameters + +//Begin to support previous HHActiveX invoking +function BsHHActivateComponents() +{ + if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0]))) + { + var objBody = document.all.tags("BODY")[0]; + if( typeof(objBody) == "object" ) + { + objBody.insertAdjacentHTML("beforeEnd", ''); + if (HHComponentActivator.object) + HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue); + } + } +} + +function BsHHActivXOnLoad() +{ + if( gbBsIE4 ) + BsHHActivateComponents(); +} + +if( typeof(BsscRegisterOnLoad) != "undefined" ) +{ + BsscRegisterOnLoad(BsHHActivXOnLoad); +} +//End to support previous HHActiveX invoking + +//Begin to support previous relative topics +//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here +var gbPopupMenuTimeoutExpired = false; +var gbInPopupMenu = false; +var gbPopupMenuTopicList = null; +var gOlddocumentClick = null; + +////////////////////////////////////////////////////////////////////////////////////////// +// +// Popup Menu code +// +////////////////////////////////////////////////////////////////////////////////////////// + +var g_bIsPopupMenuInit = false; +function _WritePopupMenuLayer() +{ + if (!g_bIsPopupMenuInit) + { + if (gbBsNS4) { +//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page... + if (gbBsNS6) + document.write(""); + else + document.write("
"); + } else{ + document.write(""); + if (gbBsIE4) { + document.write(""); + } + } + g_bIsPopupMenuInit = true; + } +} + +//Define variable arguments as: strTitle, strUrl +function MTE() +{ + this.strTitle = MTE.arguments[0]; + if (MTE.arguments.length > 1) + this.strURL = MTE.arguments[1]; + else + this.strURL = this.strTitle; +} + +// If the topic list is set, it is an array of TopicEntry objects (defined in WebHelp3.js) +function PopupMenu_SetTopicList(aPopupTopicArray) +{ + gbPopupMenuTopicList = aPopupTopicArray; +} + + +//Seek for the bsscright frame +function _SeekFrameByName( cRoot, strName ) +{ + if( cRoot == null ) return null; + if( cRoot.frames == null ) return null; + if( cRoot.frames[strName] != null ) return cRoot.frames[strName]; + for (var i=0; i"); + wndPopupLinks.document.write(""); + var strParaLine = ""; + for (var i = 0; i < (argLen - 2) / 2; i++) { + strParaLine = ""; + strParaLine += ""); + wndPopupLinks.document.close(); + window.gbInPopupMenu = true; + if (!gbBsIE) { + wndPopupLinks.focus(); + } + + return false; + } + + + if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) || + ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) { + // Get the place that we will be putting the topic into + var strURL = ""; + if (isNaN(fn_arguments[2]) || (gbPopupMenuTopicList == null)) { + strURL = fn_arguments[3]; + } + else { + strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL; + } + + if (targetDoc != null) { + targetDoc.location.href = strURL; + } + else { + if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined") + window.open(strURL, fn_arguments[1]); + else + window.open(strURL); + } + window.gbInPopupMenu = true; + return false; + } + + var strMenu = ""; + if (gbBsNS4) { + strMenu = ''; + } else { + strMenu = '
'; + } else { + strMenu += '' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + ''; + } + strMenu += ''; + + if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) { + i += 2; + } else { + i += 1; + } + } + strMenu += "
"; + + if (gbBsMac) { + // totally hack. because ie5 in mac need something. is one of them. mac is mad. + strMenu +="
"; + } + + var layerPopup = null; + var stylePopup = null; + var nEventX = 0; + var nEventY = 0; + var nWindowWidth = 0; + if (gbBsIE4) { + + layerPopup = document.all["PopupMenu"]; + layerPopup.innerHTML = strMenu; + stylePopup = layerPopup.style; + + _BSPSGetClientSize(); + + // Get the position of the item causing the event (relative to its parent) + nEventX = window.event.clientX; + nEventY = window.event.clientY; + + if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) { + nEventY += document.body.scrollTop + 10; + } else { + nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20; + } + stylePopup.top = nEventY; + + var nPopupWidth = layerPopup.scrollWidth; + if (gbBsMac) { + nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup. + } + if (nEventX + nPopupWidth + 20 > gBsClientWidth) { + if (gBsClientWidth - nPopupWidth < 5) { + stylePopup.left = 5; + } else { + stylePopup.left = gBsClientWidth - nPopupWidth - 5; + } + } else { + stylePopup.left = nEventX + document.body.scrollLeft + 20; + } + + stylePopup.visibility = "visible"; + if (!gOlddocumentClick && document.onclick) + gOlddocumentClick = document.onclick; + document.onclick = PopupMenu_HandleClick; + + } else if (gbBsNS6) { + layerPopup = document.getElementById("PopupMenu"); + layerPopup.style.visibility = "hidden"; + + var e = fn_arguments[0]; + nEventX = e.pageX; + nEventY = e.pageY; + _BSPSGetClientSize(); + layerPopup.innerHTML = strMenu; + + if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) { + nEventY += 20; + } else { + nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20; + } + + if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) { + if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) { + nEventX = 5; + } else { + nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20; + } + } else { + nEventX += 20; + } + layerPopup.style.top = nEventY; + layerPopup.style.left = nEventX; + // set again to avoid the stupid frash in netscape 6. + layerPopup.innerHTML = strMenu; + layerPopup.style.visibility = "visible"; + //window.captureEvents(Event.MOUSEDOWN); + if (!gOlddocumentClick && document.onclick) + gOlddocumentClick = document.onclick; + window.onclick = PopupMenu_HandleClick; + } + else if (gbBsNS4) { + layerPopup = document.layers.PopupMenu; + layerPopup.visibility = "hide"; + stylePopup = layerPopup.document; + stylePopup.write(strMenu); + stylePopup.close(); + var e = fn_arguments[0]; + nEventX = e.pageX; + nEventY = e.pageY; + _BSPSGetClientSize(); + if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) { + nEventY += 20; + } else { + nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20; + } + layerPopup.top = nEventY; + + if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) { + if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) { + nEventX = 5; + } else { + nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20; + } + } else { + nEventX += 20; + } + + layerPopup.left = nEventX; + + layerPopup.visibility = "show"; + + window.captureEvents(Event.MOUSEDOWN); + if (!gOlddocumentClick && document.onmousedown) + gOlddocumentClick = document.onmousedown; + window.onmousedown = PopupMenu_HandleClick; + } + + window.gbInPopupMenu = true; + window.gbPopupMenuTimeoutExpired = false; + setTimeout("PopupMenu_Timeout();", 100); + return false; +} + + +function PopupMenu_Timeout() +{ + window.gbPopupMenuTimeoutExpired = true; +} + +function PopupMenu_Over(e) +{ + if (gbBsIE4) { + e.srcElement.className = "PopupOver"; + } else if (gbBsNS4) { +// this.bgColor = "red"; +// e.target.document.className = "PopupOver"; + } + return; +} + +function PopupMenu_Out(e) +{ + if (gbBsIE4) { + e.srcElement.className = "PopupNotOver"; + } else if (gbBsNS4) { + this.bgColor = "#f0f0f0"; + } + return; +} + + +function PopupMenu_HandleClick(e) +{ + if (window.gbPopupMenuTimeoutExpired) { + + window.gbInPopupMenu = false; + + if (gbBsNS4 && !gbBsNS6) { + window.releaseEvents(Event.MOUSEDOWN); + } + + var layerPopup = null; + var stylePopup = null; + if (gbBsIE4) { + layerPopup = document.all["PopupMenu"]; + stylePopup = layerPopup.style; + stylePopup.visibility = "hidden"; + } else if (gbBsNS6) { + layerPopup = document.getElementById("PopupMenu"); + layerPopup.style.visibility = "hidden"; + } else if (gbBsNS4) { + layerPopup = document.layers.PopupMenu; + layerPopup.visibility = "hide"; + } + + if (gOlddocumentClick) + { + if (gbBsNS4 && !gbBsNS6) + document.onmousedown = gOlddocumentClick; + else + document.onclick = gOlddocumentClick; + } + } + return; +} + +// This function should be deleted when all old projects are cleaned up +function BSPSWritePopupFrameForIE4() +{ + return false; +} + +///////////////////////////////////////////////////////////////////// +function BSSCPopup_ClickMac() +{ + if ((!DHTMLPopupSupport()) && (gbBsIE4)) + { + var bClickOnAnchor = false; + var el; + if ((window.event != null) && + (window.event.srcElement != null)) + { + el = window.event.srcElement; + while (el != null) + { + if ((el.tagName == "A") || (el.tagName == "AREA")) { + bClickOnAnchor = true; + break; + } + if (el.tagName == "BODY") { + break; + } + el = el.parentElement; + } + } + if (BSSCPopup_IsPopup()) + { + if (!bClickOnAnchor) { + parent.window.gPopupWindow = null; + self.close(); + } + } + else + { + bClosePopupWindow = true; + if ((bClickOnAnchor) && + (el.href) && + ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1))) + { + bClosePopupWindow = false; + } + if (bClosePopupWindow) + { + if (window.gPopupWindow != null && !window.gPopupWindow.closed ) + { + window.gPopupWindow.close(); + } + } + } + } + } + +////////////////////////////////////////////////////////////////////// + +function BsPopupOnClick() +{ + if (!gbBsIE4) + return; + + BSSCPopup_ClickMac(); +} + +function _BSSCOnError(message) +{ + if(-1 != message.indexOf("denied") + || -1 != message.indexOf("Object required")) + return true; +} + +//End to support previous relative topics + + +/// Section End - General and relative topics (JavaScript 1.0) + +/// Section Begin - Popup (JavaScript 1.0) + +//Begin to support previous popup functions +////////////////////////////////////////////////////////////////////////////////////////////// +// +// Begin DHTML Popup Functions +// +////////////////////////////////////////////////////////////////////////////////////////////// +//variables used to isolate the browser type +var gBsDoc = null; +var gBsSty = null; +var gBsHtm = null; +var gBsStyVisShow = null; +var gBsStyVisHide = null; +var gBsClientWidth = 640; +var gBsClientHeight = 480; +var gBsBrowser = null; + +// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others. +var gBRateH_W = 0.618; // 1.618 Golden cut. +var gBMaxXOfParent = 0.8; +var gBMaxYOfParent = 0.8; +var gBscrollHeight = 16; +var gBscrollWidth = 16; +var gBpermitXDelta = 3; +var gBpermitYDelta = 3; + + +var arrayPopupURL = new Array(); +var arrayAbsPopupURL = new Array(); + +var arrayDirty = new Array(); + +function setAbsPopupURL(nIndex, strURL) +{ + arrayAbsPopupURL[nIndex] = strURL; +} + +function getAbsPopupURL(nIndex) +{ + if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null; + else + return arrayAbsPopupURL[nIndex]; +} + +function getPopupURL(nIndex) +{ + if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null; + else + return arrayPopupURL[nIndex]; +} + +function getPopupID(nIndex) +{ + return gstrPopupID + nIndex; +} + +function getPopupShadowID(nIndex) +{ + return gstrPopupShadowID + nIndex; +} + +function getPopupTopicID(nIndex) +{ + return gstrPopupTopicID + nIndex; +} + +function getPopupIFrameID(nIndex) +{ + return gstrPopupIFrameID + nIndex; +} + +function getPopupIFrameName(nIndex) +{ + return gstrPopupIFrameName + nIndex; +} + + +function getPopupTopicStyle(nIndex) +{ + return eval("document.all['" + getPopupTopicID(nIndex) + "']").style; +} + +function getPopupShadowStyle(nIndex) +{ + return eval("document.all['" + getPopupShadowID(nIndex) + "']").style; +} + +function getPopupIFrame(nIndex) +{ + + return eval("document.frames['" + getPopupIFrameName(nIndex) + "']"); +} + +function getPopupDivStyle(nIndex) +{ + return eval("document.all['" + getPopupID(nIndex) + "']").style; +} + +function getPopupIFrameStyle(nIndex) +{ + return eval("document.all['" + getPopupIFrameName(nIndex) + "'].style"); +} + + +function findDiv(strURL) +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++ ) { + if (arrayPopupURL[i] == strURL) { + return i; + } + } + return -1; +} + +var gnToken = -1; +function takeToken() +{ + gnToken ++; + if (gnToken > 10000) gnToken = 0; + return gnToken; +} + +function IsValidToken(nToken) +{ + return (gnToken == nToken); +} + +function addDiv(strURL) +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++) { + if (arrayPopupURL[i] == null) { + arrayPopupURL[i] = strURL; + return i; + } + } + arrayPopupURL[i] = strURL; + arrayDirty[i] = true; + return i; +} + +function setDirty() +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++ ) + arrayDirty[i] = true; +} + +function IsDirty(nIndex) +{ + if (nIndex == -1) + return true; + else + if (arrayDirty.length > nIndex) + return arrayDirty[nIndex]; + else + return true; +} + +function hideAll() +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++ ) + getPopupDivStyle(i).visibility = gBsStyVisHide; +} + +function getCurrentPopupIFrame() +{ + var i = 0; + for (i = 0; i < arrayPopupURL.length; i ++) + if (getPopupDivStyle(i).visibility == gBsStyVisShow) + return getPopupIFrame(i); + return null; +} + +function setClear(nIndex) +{ + if (nIndex != -1) + arrayDirty[nIndex] = false; +} + +function _BSSCCreatePopupDiv(strURL) +{ + var nIndex = findDiv(strURL); + if (nIndex == -1 ) { + nIndex = addDiv(strURL); + BsPopup_CreateDiv(nIndex); + } + else { + if (IsDirty(nIndex)) { + if("object" == typeof(getPopupIFrame(nIndex).document)) + getPopupIFrame(nIndex).document.location.href = strURL; + } + } + return nIndex; + +} + +//the browser information itself +function _BSPSBrowserItself() +{ + var agent = navigator.userAgent.toLowerCase(); + this.major = parseInt(navigator.appVersion); + this.minor = parseFloat(navigator.appVersion); + this.ns = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer') == -1) && (agent.indexOf('compatible') == -1))); + this.ns2 = ((this.ns) && (this.major == 2)); + this.ns3 = ((this.ns) && (this.major == 3)); + this.ns4 = ((this.ns) && (this.major >= 4)); + this.ns6 = ((this.ns) && (this.major >= 5)); + this.ie = (agent.indexOf("msie") != -1); + this.ie3 = ((this.ie) && (this.major == 2)); + this.ie4 = ((this.ie) && (this.major >= 4)); + this.op3 = (agent.indexOf("opera") != -1); + + if (this.ns4) + { + gBsDoc = "document"; + gBsSty = ""; + gBsHtm = ".document"; + gBsStyVisShow = "show"; + gBsStyVisHide = "hide"; + + } + else if (this.ie4) + { + gBsDoc = "document.all"; + gBsSty = ".style"; + gBsHtm = ""; + gBsStyVisShow = "visible"; + gBsStyVisHide = "hidden"; + } +} + +//Here is the browser type +function _BSPSGetBrowserInfo() +{ + gBsBrowser = new _BSPSBrowserItself(); +} + +_BSPSGetBrowserInfo(); + +//Get client size info +function _BSPSGetClientSize() +{ + if (gBsBrowser.ns4) + { + gBsClientWidth = innerWidth; + gBsClientHeight = innerHeight; + + } + else if (gBsBrowser.ie4) + { + gBsClientWidth = document.body.clientWidth; + gBsClientHeight = document.body.clientHeight; + } +} + + +var gstrPopupID = 'BSSCPopup'; +var gstrPopupShadowID = 'BSSCPopupShadow'; +var gstrPopupTopicID = 'BSSCPopupTopic'; +var gstrPopupIFrameID = 'BSSCPopupIFrame'; +var gstrPopupIFrameName = 'BSSCPopupIFrameName'; + +var gstrPopupSecondWindowName = 'BSSCPopup'; + +var gPopupWindow = null; +var gnPopupClickX = 0; +var gnPopupClickY = 0; + +var gnPopupScreenClickX = 0; +var gnPopupScreenClickY = 0; + +var gbPopupTimeoutExpired = false; + + +function DHTMLPopupSupport() +{ + if ((gbBsIE4) && (!gbBsMac)) { + return true; + } + return false; +} + + + +function BSSCPopup_IsPopup() +{ + if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) { + return true; + } else if ((gbBsNS4 || gbBsIE4) && (this.name.indexOf(gstrPopupID) != -1)) { + return true; + } else { + return false; + } +} + + +// If there is a hyperlink in a popup window, display the hyperlink in +// the original window. +if (BSSCPopup_IsPopup() && !gbBsIE4) { + document.write(""); +} + +// Local functions. +function BsPopup_CreateDiv(nIndex) +{ + if(!DHTMLPopupSupport()) + return; + // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone. + var strPopupDiv = ""; + + var objBody = document.all.tags("BODY")[0]; + if( typeof(objBody) != "object" ) + return; + + objBody.insertAdjacentHTML("beforeEnd", strPopupDiv); +} + +function BSSCPopup_Timeout(nIndex, nToken) +{ + if (!IsValidToken(nToken)) return; + + if ((getPopupIFrame(nIndex).document.readyState == "complete") && + (getPopupIFrame(nIndex).document.body != null)) { + window.getPopupDivStyle(nIndex).visibility = gBsStyVisShow; + setClear(nIndex); + window.gbPopupTimeoutExpired = true; + + BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document); + getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked; + + if (!gbOrignalOnMouseDown && document.onmousedown) + gbOrignalOnMouseDown = document.onmousedown; + + document.onmousedown = BSSCPopupParentClicked; + + } else { + setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100); + } +} + + +// VH 08/10/00 +// do not change target to parent if the href is using javascript +function BSSCPopup_ChangeTargettoParent(tagsObject) +{ + var collA = tagsObject.all.tags("A"); + BSSCPopup_ChangeTargettoParent2(collA); + + var collIMG = tagsObject.all.tags("IMG"); + BSSCPopup_ChangeTargettoParent2(collIMG); +} + +function BSSCPopup_ChangeTargettoParent2(colls) +{ + var j = 0; + if (colls != null) { + for (j = 0; j < colls.length; j ++ ) + { + var strtemp = colls[j].href; + strtemp = strtemp.toLowerCase(); + if (strtemp.indexOf("javascript:") == -1) + if (colls[j].target == "") + colls[j].target = "_parent"; + } + + } +} + +function BSPSPopupTopicWinHelp(strURL) +{ + _BSSCPopup(strURL); + return; +} + +function _BSSCPopup(strURL, width, height) +{ + var cuswidth = 0; + var cusheight = 0; + if ("undefined" != typeof(width) && "undefined" != typeof(height)) { + cuswidth = width; + cusheight= height; + } + + if (DHTMLPopupSupport()) { + // If we are already in a popup, replace the contents + // if (BSSCPopup_IsPopup()) { + // parent._BSSCPopup(strURL, cuswidth, cusheight); + // } else { + var nToken = takeToken(); // take token first. + var nIndex = _BSSCCreatePopupDiv(strURL); + window.gbPopupTimeoutExpired = false; + var ntWidth = gBsClientWidth; + var ntHeight = gBsClientHeight; + _BSPSGetClientSize(); + if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) { + setDirty(); + } + + + if (IsDirty(nIndex)) { + if (gbBsMac) { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400); + } else { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100); + } + } + else { + MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight); + } + // } + + } else { + _BSSCPopup2(strURL, cuswidth, cusheight); + } + return; +} + +if (gbBsIE55) +{ + var ehlpdhtm_fOldBefureUnload = window.onbeforeunload; + window.onbeforeunload = window_BUnload; +} + +function window_BUnload() +{ + for (var i = 0; i < arrayPopupURL.length; i ++) + document.all(getPopupID(i)).outerHTML = ""; + arrayPopupURL.length = 0; + if (ehlpdhtm_fOldBefureUnload) + ehlpdhtm_fOldBefureUnload(); +} + +function _BSSCPopup2(strURL, width, height) +{ + if (window.name == gstrPopupSecondWindowName) { + window.location = strURL; + } else { + if (!gbBsMac || !gBsBrowser.ns4) { + BSSCHidePopupWindow(); + } + var nX = 0; + var nY = 0; + var nHeight = 300; + var nWidth = 400; + if (width > 0 && height > 0) { + nHeight = height; + nWidth = width; + } + _BSPSGetClientSize(); + + nX = window.gnPopupScreenClickX; + nY = window.gnPopupScreenClickY; + + if (nY + nHeight + 40 > screen.availHeight) { + nY = screen.availHeight - nHeight - 40; + } + if (nX + nWidth + 40 > screen.availWidth) { + nX = screen.availWidth - nWidth - 40; + } + // Launch a separate window + var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes"; + if (gBsBrowser.ns) { + if (gBsBrowser.ns6) { + strParam += ",Height=" + nHeight + ",Width=" + nWidth; + strParam += ",screenX=" + nX + ",screenY=" + nY; + } + else { + strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth; + strParam += ",screenX=" + nX + ",screenY=" + nY; + strParam += ",dependent=yes"; + } + } + else { + strParam += ",height=" + nHeight + ",width=" + nWidth; + strParam += ",left=" + nX + ",top=" + nY; + } + window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam); + + if (gBsBrowser.ns4) { + window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUE); + window.gPopupWindow.onclick = NonIEPopup_HandleClick; + window.gPopupWindow.onblur = NonIEPopup_HandleBlur; + } + else if (gBsBrowser.ie4) + { + setTimeout("setPopupFocus();", 100); + } + } + return; +} + +function setPopupFocus() +{ + window.gPopupWindow.focus(); +} + +function NonIEPopup_HandleBlur(e) +{ + window.gPopupWindow.focus(); +} + +function NonIEPopup_HandleClick(e) +{ + // Because navigator will give the event to the handler before the hyperlink, let's + // first route the event to see if we are clicking on a Popup menu in a popup. + document.routeEvent(e); + + // If a popup menu is active then don't do anything with the click + if (window.gPopupWindow.gbInPopupMenu) { + window.gPopupWindow.captureEvents(Event.CLICK); + window.gPopupWindow.onclick = NonIEPopup_HandleClick; + return false; + } + + // Close the popup window + if (e.target.href) { + if (e.target.target == "") + window.location.href = e.target.href; + else + window.open(e.target.href, e.target.target); + + if (e.target.href.indexOf("javascript:void(0)") == -1 && e.target.href.indexOf("javascript:null") == -1 && e.target.href.indexOf("BsscPopup") == -1) { + this.close(); + } + } else { + this.close(); + } + return false; + +} + +function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight) +{ + if (typeof(window.getPopupIFrame(nIndex).document) == "unknown") { + _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight); + return; + } + if (!IsValidToken(nToken)) return; + + if ((window.getPopupIFrame(nIndex).document.readyState == "complete") && + (window.getPopupIFrame(nIndex).document.body != null)) { + if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe. + window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + } + else + { + setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. + BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); + } + } else { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + } +} + + +function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight) +{ + if (window.gbPopupTimeoutExpired) return; + + if (!IsValidToken(nToken)) return; + + getPopupDivStyle(nIndex).visibility = gBsStyVisHide; + + // Determine the width and height for the window + //var size = new BSSCSize(0, 0); + //BSSCGetContentSize(window.getPopupIFrame(nIndex), size); + //var nWidth = size.x; + //var nHeight = size.y; + + _BSPSGetClientSize(); + + var size = new BSSCSize(0, 0); + + if (cuswidth <= 0 || cusheight <= 0) + BSSCGetContentSize(window.getPopupIFrame(nIndex), size); + else { + size.x = cuswidth; + size.y = cusheight; + } + + // Determine the width and height for the window + var nWidth = size.x; + var nHeight = size.y; + + // for small popup size, we should allow any size. + // The popup size should be ok if bigger than 0 + if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong. + // if (nWidth < 40 || nHeight < 40) return; // there must be something terribly wrong. + + window.getPopupDivStyle(nIndex).pixelWidth = nWidth; + window.getPopupDivStyle(nIndex).pixelHeight = nHeight; + + window.getPopupShadowStyle(nIndex).pixelWidth = nWidth; + window.getPopupShadowStyle(nIndex).pixelHeight = nHeight; + window.getPopupTopicStyle(nIndex).pixelWidth = nWidth; + window.getPopupTopicStyle(nIndex).pixelHeight = nHeight; + if (gbBsIE55) + { + window.getPopupShadowStyle(nIndex).pixelWidth = nWidth + 2; + window.getPopupShadowStyle(nIndex).pixelHeight = nHeight + 2; + window.getPopupTopicStyle(nIndex).pixelWidth = nWidth + 2; + window.getPopupTopicStyle(nIndex).pixelHeight = nHeight + 2; + } + + window.getPopupIFrameStyle(nIndex).pixelWidth = nWidth; + window.getPopupIFrameStyle(nIndex).pixelHeight = nHeight; + if (gbBsIE55) + { + window.getPopupIFrameStyle(nIndex).top = 0; + window.getPopupIFrameStyle(nIndex).left = 0; + } + + var strURL = getPopupURL(nIndex); + if (strURL.indexOf("#") != -1) + getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5. + + MoveDivAndShow(nIndex, nToken, cuswidth, cusheight); +} + +function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight) +{ + if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again. + window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + return; + } + + // Determine the position of the window + var nClickX = window.gnPopupClickX; + var nClickY = window.gnPopupClickY; + var nTop = 0; + var nLeft = 0; + + var nWidth = window.getPopupDivStyle(nIndex).pixelWidth; + var nHeight = window.getPopupDivStyle(nIndex).pixelHeight; + + if (nClickY + nHeight + 20 < gBsClientHeight + document.body.scrollTop) { + nTop = nClickY + 10; + } else { + nTop = (document.body.scrollTop + gBsClientHeight) - nHeight - 20; + } + if (nClickX + nWidth < gBsClientWidth + document.body.scrollLeft) { + nLeft = nClickX; + } else { + nLeft = (document.body.scrollLeft + gBsClientWidth) - nWidth - 8; + } + + if (nTop < document.body.scrollTop ) nTop = document.body.scrollTop + 1; + if (nLeft< document.body.scrollLeft) nLeft = document.body.scrollLeft + 1; + + + window.getPopupDivStyle(nIndex).left = nLeft; + window.getPopupDivStyle(nIndex).top = nTop; + + // Set the location of the background blocks + window.getPopupShadowStyle(nIndex).left = 6; + window.getPopupShadowStyle(nIndex).top = 6; + if (gbBsIE55) + { + window.getPopupShadowStyle(nIndex).left = 4; + window.getPopupShadowStyle(nIndex).top = 4; + } + + if (gbBsMac) { + // Total hack on the iMac to get the IFrame to position properly + window.getPopupIFrameStyle(nIndex).pixelLeft = 100; + window.getPopupIFrameStyle(nIndex).pixelLeft = 0; + // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it + window.getPopupIFrame(nIndex).window.BSSCOnLoad(); + } + + BSSCPopup_Timeout(nIndex , nToken ); + + return; +} + +function BSSCSize(x, y) +{ + this.x = x; + this.y = y; +} + +function BSSCGetContentSize(thisWindow, size) +{ + if (!((gBsBrowser.ie4) || (gBsBrowser.ns4))) + return; + + if (gbBsMac) { + size.x = 300; + size.y = 300; + return; + } + + // Resize the width until it is wide enough to handle the content + // The trick is to start wide and determine when the scrollHeight changes + // because then we know a scrollbar is necessary. We can then go back + // to the next widest size (for no scrollbar) + + var ClientRate = gBsClientHeight / gBsClientWidth; + + var GoldenSize = new BSSCSize(0,0); + GoldenSize.x = gBsClientWidth * gBMaxXOfParent; + GoldenSize.y = gBsClientHeight *gBMaxYOfParent ; + + if (ClientRate > gBRateH_W) { + GoldenSize.y = GoldenSize.x * gBRateH_W; + } + else { + GoldenSize.x = GoldenSize.y / gBRateH_W; + } + + // Try to using parent specified max x. + var x = 0; + var maxgoldx = GoldenSize.x; + var maxx = gBsClientWidth * gBMaxXOfParent; + + // This double resize causes the document to re-render (and we need it to) + if (!gbBsIE5) + thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4. + thisWindow.resizeTo(1, 1); + thisWindow.resizeTo(1, 1); + thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); + thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); + + var miny = thisWindow.document.body.scrollHeight + gBscrollHeight; + + if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can + { + thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); + thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); + + miny = thisWindow.document.body.scrollHeight + gBscrollHeight; + maxy = gBsClientHeight * gBMaxYOfParent; + + if (miny > maxy) { // the popup must have a scroll, OK let it be. + miny = maxy; + size.x = maxx; + size.y = maxy; + thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little. + } + else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent. + size.y = miny; + + // downsize from maxx , now I try to using binary divide. + x = maxx; + deltax = -maxx/2; + //j = 0; + while (true) { + x = x + deltax; + thisWindow.resizeTo(x, miny); + thisWindow.resizeTo(x, miny); + diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate; + if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter + deltax = Math.abs(deltax) /2; + else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter + deltax = -Math.abs(deltax) /2; + else + // the y is close enough to wanted. + break; + if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. + break; + } + size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; + size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight; + thisWindow.document.body.scroll = 'no'; + + // Handle absurd cases just in case IE flakes + // if (size.y < 100) { + // size.y = 100; + // } + } + } + else { + if (thisWindow.document.body.scrollWidth > maxgoldx) { + size.x = maxx; + size.y = miny; + thisWindow.document.body.scroll = 'yes'; + } + else { + // downsize from maxgoldx , now I try to using binary divide. + x = maxgoldx; + deltax = -maxgoldx/2; + //i = 0; + while (true) { + x = x + deltax; + thisWindow.resizeTo(x, miny); + thisWindow.resizeTo(x, miny); + diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W; + if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter + deltax = Math.abs(deltax) /2; + else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter + deltax = -Math.abs(deltax) /2; + else + // the y is close enough to wanted. + break; + if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. + break; + //i ++; + + } + //size.x = x - gBscrollWidth; + size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; + size.y = thisWindow.document.body.scrollHeight ; + thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little. + thisWindow.resizeTo(size.x, size.y); + if (thisWindow.document.body.scrollWidth > size.x) + { + size.x = thisWindow.document.body.scrollWidth; + } + if (thisWindow.document.body.scrollHeight > size.y) + { + size.y = thisWindow.document.body.scrollHeight; + } + } + } + + // no reload no scrollbar. + //size.x = size.x + 16; //reserve a width for scrollbar (IE 4.0 only) + + thisWindow.resizeTo(size.x, size.y); + thisWindow.resizeTo(size.x, size.y); + return; +} + + + +function BSSCPopupParentClicked() +{ + if (!window.gbPopupTimeoutExpired) { + return false; + } + + document.onmousedown = gbOrignalOnMouseDown; + + // Simply hide the popup + hideAll(); + + window.gbPopupTimeoutExpired = false; + + return true; +} + + +function BSSCPopupClicked() +{ + if (!window.gbPopupTimeoutExpired) { + return false; + } + + + var popupIFrame = getCurrentPopupIFrame(); + if (popupIFrame == null) { + return true; + } + +/* + if ("undefined" != typeof(popupIFrame.gbInPopupMenu) && + popupIFrame.gbInPopupMenu) { + return true; + }*/ + + if (!((popupIFrame.window.event != null) && + (popupIFrame.window.event.srcElement != null) && + ((popupIFrame.window.event.srcElement.tagName == "A") || + (popupIFrame.window.event.srcElement.tagName == "IMG")))) { + document.onmousedown = gbOrignalOnMouseDown; + + // Simply hide the popup + hideAll(); + + window.gbPopupTimeoutExpired = false; + + return true; + } +} + + +//trace the mouse over's position for hotspot +function BSPSPopupOnMouseOver(event) +{ + if (gBsBrowser.ie4) { + window.gnPopupClickX = event.clientX + document.body.scrollLeft; + window.gnPopupClickY = event.clientY + document.body.scrollTop; + window.gnPopupScreenClickX = event.screenX; + window.gnPopupScreenClickY = event.screenY; + } else if (gBsBrowser.ns4) { + window.gnPopupClickX = event.pageX - window.pageXOffset; + window.gnPopupClickY = event.pageY - window.pageYOffset; + window.gnPopupScreenClickX = event.screenX - window.pageXOffset; + window.gnPopupScreenClickY = event.screenY - window.pageYOffset; + } +} + + +function BSSCHidePopupWindow() +{ + if (window.gPopupWindow != null) { + if (gBsBrowser.ns4) { + if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) { + window.gPopupWindow.close(); + window.gPopupWindow = null; + } + } + } + + return; +} + +// Add the PopupOnClick to the onclick array. +if (typeof(BsscRegisterOnClick) != "undefined") +{ + BsscRegisterOnClick(BsPopupOnClick); +} +//End to support previous popup functions + +/// Section End - Popup (JavaScript 1.0) + +/// Section Begin - Embedded Stub (JavaScript 1.0) + +var s_strAgent = navigator.userAgent.toLowerCase(); +var s_nVer = parseInt(navigator.appVersion); + +var s_bIE = (s_strAgent.indexOf('msie') != -1); +var s_bNS = (s_strAgent.indexOf('mozilla') != -1) && ((s_strAgent.indexOf('spoofer') == -1) && (s_strAgent.indexOf('compatible') == -1)); +var s_bOpera = (s_strAgent.indexOf('opera') != -1); + +var s_bIE3Before = ((s_bIE) && (s_nVer <= 2)); +var s_bNS3Before = ((s_bNS) && (s_nVer <= 3)); + +var s_bNS2 = ((s_bNS) && (s_nVer <= 2)); +var s_bNS3 = ((s_bNS) && (s_nVer == 3)); +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))); +var s_bIE302 = ((s_bIE) && (s_nVer == 2) && (s_strAgent.indexOf("3.02") != -1)); + + +function HasExtJs() +{ + if (s_bIE3Before) { return false;} + if (s_bNS3Before) { return false;} + if (typeof (BsGeneralOnLoad) == "undefined"){ return false; } + return true; +} + + +function BSSCCreatePopupDiv() +{ + return; +} + + +function WritePopupMenuLayer() +{ + if (HasExtJs()) {_WritePopupMenuLayer();} +} + +function BSSCPopup(strURL, width, height) +{ + if (HasExtJs()) { + _BSSCPopup(strURL, width, height); + }else{ + //Create a temporary window first to ensure the real popup comes up on top + var wndTemp = null; + if (!s_bNS3) { + wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4"); + } + // Create the real popup window + var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400"); + // Close the temporary + if (!s_bNS3) { + wndTemp.close(); + } else { + wndPopup.focus(); + } + } +} + +var gbWndTemp = null, gbWndPopupLinks = null; +var gbstrParaTotal = ""; + +function PopupMenu_Invoke() +{ + if (HasExtJs()) { + return _PopupMenu_Invoke(PopupMenu_Invoke.arguments); + } + if (s_bNS3Before || s_bIE3Before ) { + var argLen = PopupMenu_Invoke.arguments.length; + if (argLen < 5) { + window.document.location.href = PopupMenu_Invoke.arguments[3]; + return false; + } + gbWndTemp = null; + gbWndPopupLinks = null; + gbstrParaTotal = ""; + for (var i = 0; i < (argLen - 2) / 2; i++) { + var strParaLine = ""; + if (s_bNS2 || s_bOpera){ + strParaLine += "
" + strParaLine += PopupMenu_Invoke.arguments[2 * i + 2]; + strParaLine += ""; + } else { + strParaLine += ""); + if (s_bNS2 || s_bOpera) { + gbWndPopupLinks.document.write(""); + } else { + //YJ: IE301,302 and NS3.x works fine + gbWndPopupLinks.document.write("<"); + gbWndPopupLinks.document.write("script>"); + gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}"); + gbWndPopupLinks.document.write("<"); + gbWndPopupLinks.document.write("/script>"); + } + gbWndPopupLinks.document.write(""); + gbWndPopupLinks.document.write(gbstrParaTotal); + gbWndPopupLinks.document.write(""); + gbWndPopupLinks.document.close(); + + // Close the temporary + if (!s_bNS3 && gbWndTemp != null) { + gbWndTemp.close(); + }else { + gbWndPopupLinks.focus(); + } + + return true; + } + return false; +} + +/// Section End - Embedded Stub (JavaScript 1.0) + +//// Segment End -- (JavaScript 1.0) + +//// Segment Begin -- (JavaScript 1.2) +/// Section Begin - kadov DHTM (JavaScript 1.2) + +//Begin to support extended and dropdown text effects. +function kadovIsParagraph(el) +{ + return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false; +} + +function kadovInitEachChild(el) +{ + for(var i=0; i "") ) + child.style.setAttribute( "x-on-pageload", "" ); + + var href = child.getAttribute("href") + if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 ) + kadovFilePopupInit(child.id); // Init for Popup + else if( child.className == "dropspot" || child.className == "expandspot" || + child.className == "glossterm" ) + kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text + else if( child.className == "trigger") + kadovInitTrigger(child.id);// Init for Trigger + else + { + kadovInitEffects(child.id);// Init for DHTML effects + CEngine.SetOneTargetInitialState( child.id ); + } + } + + if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") ) + child.start = "mouseover";// to start a AVI file. fileopen doesn't work + + kadovInitEachChild(child); + } +} + +function kadovRetrieveTextInner(el) +{ + var x = ""; + if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" )) + return x; + + if( kadovIsParagraph(el) ) + { + var strNewID = " "; + if( el.id != "" ) + strNewID += "id=" + el.id + "_NewSpan "; + x = "" + el.innerHTML + ""; + } + else + { + for(var i=0; i 0 ) + if( (nTagClose - nTagOpen) != nDistance ) + return strRawHTML; + + var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ; + return kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose ); +} + +function kadovAdjustObjectTag(strRawHTML, nStartPos) +{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings + + //Is there any DTC? + var strDTCTagOpen = ''; + var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos ); + if( nDTCTagOpen < 0 ) + return strRawHTML; + var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen ); + if( nDTCTagClose < nDTCTagOpen) + return strRawHTML; // no Design Time Controls; + + //Is the DTC HTML Help Control? + var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11'; + var strRTObjTagClose = ''; + var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen ); + if( nRTObjTagOpen < nDTCTagOpen ) + return strRawHTML; + var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen ); + if( nRTObjTagClose < nRTObjTagOpen ) + return strRawHTML; // is not a HTML help control + + // Is it a related Topics html help control? + var strRTObjLabel = ''; + } + + // to insert the reconstructed item params into runtime object tag + var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length); + return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length); +} + +function kadovTextPopupOnLoad( el ) +{ + if( !CCSSP.bIsWinOS && !CCSSP.bIsSunOS) + return 0; + + if( typeof(el) == "string" ) + el = document.all.item(el); + + var src = el.getAttribute( "x-use-popup" ); + if(!src) + return 0; + + var name = src; + if( src.substr(0,1) == "#" ) + name = src.substr(1, src.length-1); + var srcDiv = document.all.item(name); + if( !srcDiv ) + return 1; + + var type = el.getAttribute( "x-popup-type" ); + var setup = el.getAttribute( "x-tmp-setup" ); + var newId = name; + if( newId.indexOf( "_tmp") <= 0 ) + newId += "_tmp"; + + if( !setup ) + { + el.setAttribute( "x-tmp-setup", 1 ); + + if( type == "pulldown" ) + { + var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0); + var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); + + //work around the bug in HH.exe that highlight the phrases when use Search tab + //this approach is just removing the tag inserted by Microsoft in the runtime + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "", 52); + + var strStyle = " style='display:none; position:relative;"; + var newDiv = "
" + strCleanHTML + "
"; + + srcDiv.outerHTML = ""; // empty the original DIV tag + var elParentPra = kadovFindParentParagraph(el); + if( elParentPra ) + elParentPra.insertAdjacentHTML( "AfterEnd", newDiv ); + } + else if( type == "expanding" ) + { + var inner = kadovRetrieveTextInner(srcDiv); + if( inner == "" ) + inner = srcDiv.innerHTML; + var strAdjust = kadovAdjustObjectTag(inner,0); + var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); + var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext"; + var newSpan = ""; + srcDiv.outerHTML = ""; // empty the original DIV tag + el.insertAdjacentHTML( "AfterEnd", newSpan ); + } + } + return 0; +} + +function kadovTextPopup( el ) +{ + if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS) || (window.event == null) ) + return; + window.event.cancelBubble = true; + + if( typeof(el) == "string" ) + el = document.all.item(el); + + var src = el.getAttribute( "x-use-popup" ); + if(!src) + return; + + var name = src; + if( src.substr(0,1) == "#" ) + name = src.substr(1, src.length-1) + "_tmp"; + var srcDiv = document.all.item(name); + if( !srcDiv ) + return; + + var type = el.getAttribute( "x-popup-type" ); + var setup = el.getAttribute( "x-tmp-setup" ); + if( srcDiv ) + { + if( srcDiv.style.display == "" ) + srcDiv.style.display = "none"; + else + { + srcDiv.style.display = ""; + if( typeof(srcDiv.bInitialized) == "undefined" ) + { + srcDiv.bInitialized = true; + kadovInitEffects(name); + kadovInitEachChild(srcDiv); + } + } + } + return; +} + +function kadovFindParentParagraph( el ) +{ + if( typeof(el) == "string" ) + el = document.all.item(el); + if( (!el) || el.tagName == "BODY" ) + return null; + if( kadovIsParagraph(el.parentElement) ) + return el.parentElement; + else + return kadovFindParentParagraph( el.parentElement ); +} + +//Begin HTML code invoked function +function kadovRegisterEventHandler( obj, strEvent, strEventHandler ) +{ + if( !gbBsIE4 ) + return; + CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler ); +} + +function kadovTextPopupInit( el ) +{ + if( (!gbBsIE4) || (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS)) + return; + + if( typeof(el) == "string" ) + el = document.all.item(el); + if( el != null ) + { + CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(" + el.id +");" ); + CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(" + el.id +");" ); + } +} +//End HTML code invoked function + +//End to support extended and dropdown text effects. + +//Begin to convert iWrite format to RoboEditor Format for DHTML effects +function kadovInitTriggersInHead( ) +{ + if( Object.xDelayedInitElements ) + { + var x = Object.xDelayedInitElements; + for(i=0; i= 0 && nNext < values.length ) + { + functions[nIdx] = values.substr( nStart, nNext-nStart+1); + nStart = nNext + 1; + nIdx++; + nNext = values.indexOf( "\)", nStart); + } + + for( var i=0; i= 0 ) + { + nPageClick = arrForClickCount[j].indexOf("="); + if( nPageClick > 0 ) + { + nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1; + break; + } + } + } + var args = srcargs; + if( j < arrForClickCount.length ) + {// to strip out the "clicks=99" from the arguments string + args = ""; + for( var k = 0; k < arrForClickCount.length; k ++ ) + { + if( k != j ) + { + args += arrForClickCount[k]; + if( k < arrForClickCount.length - 1 ) + args += ","; + } + } + } + bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes ); + } +} + +function kadovTranslateProp( prop ) +{ + switch( prop ) + { + case "x-on-hover" : return "bsschover"; + case "x-on-pageclick" : return "bsscpageclick"; + case "x-on-pageload" : return "bsscpageload"; + case "x-on-trigger-1" : return "bssctrigger1"; + case "x-on-trigger-2" : return "bssctrigger2"; + } + return null; +} +//End to convert iWrite format to RoboEditor Format for DHTML effects + +//Begin the definition of one entry to DHTML effects +function bsscFXInit( trigger_ID, target_ID, event_type, + action_type, action_setting, event_addional ) +{ + if( (!CCSSP.bIsWinOS && !CCSSP.bIsSunOS ) || typeof(target_ID) != "string" )//MUST have a target_ID + return; // we don't support Navigator yet + + if( typeof(event_type) == "string" ) + event_type = event_type.toLowerCase(); + if( typeof(action_type) == "string" ) + action_type = action_type.toLowerCase(); + if( typeof(action_setting) == "string" ) + action_setting = action_setting.toLowerCase(); + + // to get the target element then add it to the target list + var eleTarget = CCSSP.GetObject( target_ID ); + if( (eleTarget != null) && (event_type != null) && (action_type != null) ) + { + CEngine.AddOneTarget( target_ID, eleTarget ); + CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional); + } + + // to validate the trigger_ID parameter + if( typeof(trigger_ID) == "string" && trigger_ID != "" ) + CEngine.BuildTriggerObject( trigger_ID, target_ID ); +} +//End the definition of one entry to DHTML effects + + +/// Section End - kadov DHTM (JavaScript 1.2) + + +/// Section Begin - CCSSP DHTM (JavaScript 1.2) + +//Begin JavaScript libary for cross-platform positioning object. +function CCSSP(){} // constructor of CCSSP class + +CCSSP.strAgent = navigator.userAgent.toLowerCase(); +CCSSP.nAppVersion = parseInt(navigator.appVersion); + +CCSSP.bIsWinOS = ((CCSSP.strAgent.indexOf("win") >= 0) || (CCSSP.strAgent.indexOf("16bit") >= 0)); +CCSSP.bIsMacOS = (CCSSP.strAgent.indexOf("mac") >= 0); +CCSSP.bIsSunOS = (CCSSP.strAgent.indexOf("sunos") != -1); + +CCSSP.bIsIE = (navigator.appName.indexOf("Microsoft") >= 0); +CCSSP.bIsIE4 = (CCSSP.bIsIE && (CCSSP.nAppVersion >= 4)); +CCSSP.bIsIE5 = (CCSSP.bIsIE4 && (CCSSP.strAgent.indexOf("msie 5") != -1) ) + +CCSSP.bIsNav = (navigator.appName.indexOf("Netscape") >= 0); +CCSSP.bIsNav4 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 4)); +CCSSP.bIsNav6 = (CCSSP.bIsNav && (CCSSP.nAppVersion >= 5)); + +CCSSP.GetObject = function( obj ) +{//convert object name string or reference into a valid object reference + if( typeof(obj) == "object" ) + return obj; + else if( typeof(obj) == "string" && obj != "") + { + if( CCSSP.bIsNav4 ) + return eval("document." + obj); + else + return eval("document.all." + obj); + } + else + return null; +} + +CCSSP.MoveObjectTo = function(obj, x, y) +{//positioning an object at a specific pixel coordinate + if( CCSSP.bIsNav4 ) + obj.moveTo(x,y); + else + { + obj.style.pixelLeft = x; + obj.style.pixelTop = y; + } +} + +CCSSP.MoveObjectBy = function(obj, dx, dy) +{//moveing a object by x and/or y pixel + if( CCSSP.bIsNav4 ) + obj.moveBy(dx,dy); + else + { + obj.style.pixelLeft += dx; + obj.style.pixelTop += dy; + } +} + +CCSSP.SetObjectBGColor = function(obj, color) +{//set the background color of an object + if( CCSSP.bIsNav4 ) + obj.bgColor = color; + else + obj.style.backgroundColor = color; +} + +CCSSP.ShowObject = function(obj, bShow) +{// set the object to be visible or invisible + if( CCSSP.bIsNav4 ) + obj.visibility = (bShow == true) ? 'show' : 'hide'; + else + obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space. +} + +CCSSP.GetObjectLeft = function(obj) +{// retrieve the x coordinate of a posionable object + if( CCSSP.bIsNav4 ) + return obj.left; + else + return obj.style.pixelLeft; +} + +CCSSP.GetObjectTop = function(obj) +{// retrieve the y coordinate of a posionable object + if( CCSSP.bIsNav4 ) + return obj.top; + else + return obj.style.pixelTop; +} + +CCSSP.GetObjectContainLeft = function(obj) +{// retrieve the x coordinate of a posionable object relative to it's parent element + if( CCSSP.bIsNav4 ) + return obj.pageX; + else + { + if( obj == document.body ) + return obj.clientLeft; + else + return obj.offsetLeft; + } +} + +CCSSP.GetObjectWindowLeft = function(obj) +{// retrieve the x coordinate of a posionable object relative to browser window + if( CCSSP.bIsNav4 ) + return obj.pageX; + else + { + var nOffsetWindowLeft = 0; + for(var element = obj; element; element = element.offsetParent) + nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element); + return nOffsetWindowLeft; + } +} + +CCSSP.GetObjectContainTop = function(obj) +{// retrieve the y coordinate of a posionable object relative to it's parent element + if( CCSSP.bIsNav4 ) + return obj.pageY; + else + { + if( obj == document.body ) + return obj.clientTop; + else + return obj.offsetTop; + } +} + +CCSSP.GetObjectWindowTop = function(obj) +{// retrieve the y coordinate of a posionable object relative to browser window + if( CCSSP.bIsNav4 ) + return obj.pageY; + else + { + var nOffsetWindowTop = 0; + for(var element = obj; element; element = element.offsetParent) + nOffsetWindowTop += CCSSP.GetObjectContainTop(element); + return nOffsetWindowTop; + } +} + +CCSSP.GetObjectHeight = function(obj) +{// retrieve the height of a posionable object + if( CCSSP.bIsNav4 ) + return obj.clip.height; + else + return obj.offsetHeight; +} + +CCSSP.GetObjectWidth = function(obj) +{// retrieve the width of a posionable object + if( CCSSP.bIsNav4 ) + return obj.clip.width; + else + return obj.offsetWidth; +} + +CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler ) +{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined + if (CCSSP.bIsNav4 && !CCSSP.bIsNav6) + return ; + var oldHandler = ""; + if (CCSSP.bIsMacOS && CCSSP.bIsIE4) + { + if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown") + { //search for + + + + + + + + + + + + + + + + +

Wire discretization

+ +

This algorithm is used for meshing of 1D entities of + geometrical objects - edges. +

+ +

 

+ +

To apply the Wire discretization meshing algorithm:

+ +

 

+ +

From the Hypotheses + menu select Wire discretization + or click button in the toolbar.

+ + + + + 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 index 000000000..08f356811 --- /dev/null +++ b/doc/salome/gui/SMESH/files/2d_(quadrangle)_meshing_algorithm.htm @@ -0,0 +1,126 @@ + + + + + + + + + + +2D (Quadrangle) meshing algorithm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Quadrangle meshing algorithm

+ +

This algorithm is used for meshing of 2D entities of + geometrical objects - faces. +

+ +

 

+ +

To apply the Quadrangle meshing algorithm:

+ +

 

+ +

From the Hypotheses + menu select Quadrangle (Mapping) + or click button in the toolbar.

+ + + + + 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 index 000000000..0ce5d1a40 --- /dev/null +++ b/doc/salome/gui/SMESH/files/2d_meshing_algorithm.htm @@ -0,0 +1,126 @@ + + + + + + + + + + +2D meshing algorithm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Triangle (Mefisto) meshing algorithm

+ +

This algorithm is used for meshing of 2D entities of + geometrical objects - faces. +

+ +

 

+ +

To apply the Triangle meshing algorithm:

+ +

 

+ +

From the Hypotheses + menu select Triangle (Mefisto) + or click button in the toolbar.

+ + + + + 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 index 000000000..9139ce1f9 --- /dev/null +++ b/doc/salome/gui/SMESH/files/3d_meshing_algorithm.htm @@ -0,0 +1,127 @@ + + + + + + + + + + +3D meshing algorithm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Hexahedron meshing algorithm

+ +

This algorithm is used for meshing of 3D entities of + geometrical objects - volume objects. +

+ +

 

+ +

To apply the Hexahedron meshing algorithm:

+ +

 

+ +

From the Hypotheses + menu select Hexahedron (i,j,k) +  or + click button in the toolbar.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/about_hypotheses.htm b/doc/salome/gui/SMESH/files/about_hypotheses.htm new file mode 100755 index 000000000..bd2a4f273 --- /dev/null +++ b/doc/salome/gui/SMESH/files/about_hypotheses.htm @@ -0,0 +1,186 @@ + + + + + + + + + + +About hypotheses + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

About hypotheses

+ +

Hypotheses represent + boundary conditions which will be taken into account at calculations of + meshes or submeshes basing on geometrical objects. These hypotheses allow + you to manage the level of detail of the resulting meshes or submeshes: + when applying different hypotheses with different parameters you can preset + the quantity of meshing elements which will compose your mesh. So, it + will be possible to generate a rough or a more refined mesh or submesh. + In SMESH there are the following + basic hypotheses:

+ +

 

+ +
+ +
    + + +
+ + + +

 

+ +

 

+ +

The choice of a hypothesis depends on:

+ +

 

+ +
    + +
  • the geometrical object (shape) which will be meshed

  • + +
  • the algorithm, which will be selected for meshing + of this geometrical object (shape)

  • +
+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/about_meshes.htm b/doc/salome/gui/SMESH/files/about_meshes.htm new file mode 100755 index 000000000..a269b3a6c --- /dev/null +++ b/doc/salome/gui/SMESH/files/about_meshes.htm @@ -0,0 +1,274 @@ + + + + + + + + + + +About meshes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

About meshes

+ +

MESH represents + a discretization of a geometrical CAD model into a set of entities with + a simple topology. In SMESH there are two options of creation of meshes, + you can:

+ +

 

+ +
    + +
  • generate meshes on the basis of geometrical shapes + produced in the GEOM module,

  • + +
  • create your own meshes using the SMESH functions + destined for modification of generated meshes. More about this functionality + of SMESH see here.

  • +
+ +

 

+ +

The topology of a mesh is described by the relationships between its + entities including:

+ +

 

+ +
    + +
  • Node + – 0D element of a mesh presented by a point with coordinates (x, y, z).

  • + +
  • Edge + – 1D element of a mesh defined by two nodes.

  • + +
  • Face + – 2D element of a mesh defined by three or four edges (closed contour).

  • + +
  • Volume + – 3D element of a mesh defined by several faces.

  • +
+ +

 

+ +

These entities are considered as topological + entities and they don't imply any geometric representation. Only Nodes reference  geometric + representations of points with definite coordinates. The + node entity will contain  additional + information about its position in the space and its relations with the + meshed CAD model. Its position could be described in the following way:

+ +

 

+ +
    + +
  • 2D + position. It is a free position defined by only two coordinates + x,y.

  • + +
  • 3D + position. It is a free position defined by three coordinates x,y + and z.

  • + +
  • Surface + position. It characterizes the position of a node on a geometric + surface and is defined by the u,v position in the parametric space of + the corresponding surface.

  • + +
  • Line + position. It characterizes the position of a node on a geometric + curve and is defined by the u parameter and the corresponding curve.

  • + +
  • Vertex + position. It characterizes the position of a node on a geometric + point of the meshed CAD model and is defined by the x,y,z coordinates + of the corresponding vertex.

  • +
+ +

 

+ +

 

+ +

Connections

+ +

Each mesh entity bounds 0 or more mesh entities + of higher dimension. In the same way each mesh entity is bounded by 0 + or more mesh entities of lower dimension:

+ +

 

+ +
    + +
  • A node bounds edges, + faces and volumes

  • + +
  • An edge bounds faces, + and volumes

  • + +
  • A face bounds volumes

  • + +
  • A volume is bounded + by faces, edges and nodes

  • + +
  • A face is bounded by + edges, and nodes

  • + +
  • An edge is bounded by + nodes

  • +
+ +

 

+ +

You can notice that there are two types of + connections: inverse and direct connections.

+ +

 

+ +

Inverse connections

+ +

 

+ +

This relationship has a particularity that + the order of bounded entities has not a direct meaning. Also the number + of bounded entities is not fixed.

+ +

 

+ +

The edges surrounding a node. + The 3rd edge has no more sense that the 5th one.

+ +

 

+ +

Direct connections

+ +

 

+ +

This relationship has a particularity that + the order of bounding entities is meaningful. The number of bounding entities + is fixed and depends on the type of the entity (hexahedron, tetrahedron,…).

+ +

 

+ +

An edge is composed of two + nodes. A face is composed of 3 or 4 edges depending if we are dealing + with triangles or quadrangles.

+ +

 

+ +

The connections are not only restricted to + entities of one dimension higher or lower. For example some algorithms + may be interested to retrieve all the faces surrounding a node.

+ +

 

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm b/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm new file mode 100755 index 000000000..bce08e1cc --- /dev/null +++ b/doc/salome/gui/SMESH/files/about_meshing_algorithms.htm @@ -0,0 +1,181 @@ + + + + + + + + + + +About meshing algorithms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

About meshing algorithms

+ +

The SMESH module contains a set of meshing algorithms, + which are used for meshing of all kinds of entities (1D, 2D, 3D) composing + geometrical objects. They are as follows:

+ +

 

+ +
    + +
  • For meshing of 1D entities (edges):

  • +
+ +

 

+ + + +

 

+ +
    + +
  • For meshing of 2D entities (faces):

  • +
+ +

 

+ + + +

 

+ +
    + +
  • For meshing of 3D entities (volume + objects):

  • +
+ +

 

+ + + +

 

+ + + + + 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 index 000000000..bfbef4fc9 --- /dev/null +++ b/doc/salome/gui/SMESH/files/about_modification_of_meshes.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +About modification of meshes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

About modification of meshes

+ +

Type topic text here.

+ + + + + 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 index 000000000..e9f144dd2 --- /dev/null +++ b/doc/salome/gui/SMESH/files/about_quality_controls.htm @@ -0,0 +1,154 @@ + + + + + + + + + + +About quality controls + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

About quality controls

+ +

Mesh + quality control in SMESH is destined for visual control of the + generated mesh.

+ +

Application of a definite quality control + consists of usage of the corresponding algorithm, which calculates a value + of a definite geometric characteristic (Area, Length of edges, etc) for + all meshing elements, composing your mesh. Then all meshing elements are + colored according the calculated values. The reference between the coloring + of the meshing elements and these calculated values is shown with the + help of a scalar bar, which is displayed near the presentation of your + mesh.      

+ +

 

+ +

In SMESH you have at your disposal the + following mesh quality controls:

+ +

 

+ + + + + + + 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 index 000000000..dc7efc3aa --- /dev/null +++ b/doc/salome/gui/SMESH/files/adding_nodes_and_elements.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Adding nodes and elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Adding nodes and elements

+ +

Type topic text here.

+ + + + + 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 index 000000000..3fc6e5c78 --- /dev/null +++ b/doc/salome/gui/SMESH/files/area_of_elements.htm @@ -0,0 +1,143 @@ + + + + + + + + + + +Area of elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Area of elements

+ +

Area of elements mesh + quality control is based on the algorithm of area calculation of  meshing + elements . It can be applied to meshes consisting of 2D meshing elements + with 3 and 4 nodes (triangles and quadrangles).    

+ +

 

+ +

To apply the Area quality control to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Area or click button. Your mesh will + be displayed in the viewer with its elements colored according to the + applied mesh quality control criterion:

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/aspect_ratio.htm b/doc/salome/gui/SMESH/files/aspect_ratio.htm new file mode 100755 index 000000000..b7e6cdb1d --- /dev/null +++ b/doc/salome/gui/SMESH/files/aspect_ratio.htm @@ -0,0 +1,185 @@ + + + + + + + + + + +Aspect Ratio + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Aspect Ratio

+ +

The Aspect Ratio + quality criterion for mesh elements is defined as follows:

+ +

 

+ +
    + +
  • For a triangle + 2D element consisting of 3 nodes a the Aspect + Ratio is calculated as the ratio of the length, h2, of the edge + of this triangle, to the height, h1. The ratio of h2 to h1 is then multiplied + by  3(1/2) /2, so that + a “perfect” element in the shape of an equilateral triangle will be equal + to 1. This procedure is repeated for the remaining two edges of the triangle, + and the largest value is retained as the Aspect + Ratio for the element.

  • +
+ +

 

+ +

+ +

 

+ +

 

+ +
    + +
  • For a quadrangle + 2D element consisting of 4 nodes  the + Aspect Ratio is the ratio of the + element's longest side to its shortest side.

  • +
+ +

+ +

 

+ +

To apply the Aspect Ratio quality criterion to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Aspect Ratio or click button in the + toolbar. Your mesh will be displayed in the viewer with its elements colored + according to the applied mesh quality control criterion:

+ +

 

+ +

+ + + + + 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 index 000000000..0df9544cc --- /dev/null +++ b/doc/salome/gui/SMESH/files/changing_orientation_of_elements.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Changing orientation of elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Changing orientation of elements

+ +

Type topic text here.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/computing_meshes.htm b/doc/salome/gui/SMESH/files/computing_meshes.htm new file mode 100755 index 000000000..17cf3cc04 --- /dev/null +++ b/doc/salome/gui/SMESH/files/computing_meshes.htm @@ -0,0 +1,128 @@ + + + + + + + + + + +Computing meshes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Computing meshes

+ +

The final step in generation of your mesh is its computation.

+ +

 

+ +

To compute a mesh:

+ +

 

+ +

1. Select your mesh in the Object + Browser.

+ +

 

+ +

2. From the Mesh + menu select Compute or + click button of the toolbar.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/connectivity.htm b/doc/salome/gui/SMESH/files/connectivity.htm new file mode 100755 index 000000000..f845f0d81 --- /dev/null +++ b/doc/salome/gui/SMESH/files/connectivity.htm @@ -0,0 +1,106 @@ + + + + + + + + + + +Connectivity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Connectivity

+ +

Type topic text here.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/constructing_meshes.htm b/doc/salome/gui/SMESH/files/constructing_meshes.htm new file mode 100755 index 000000000..5c46cb7e5 --- /dev/null +++ b/doc/salome/gui/SMESH/files/constructing_meshes.htm @@ -0,0 +1,159 @@ + + + + + + + + + + +Constructing meshes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Constructing meshes

+ +

Construction of a mesh consists of:

+ +

 

+ +
    + +
  • Selecting a geometrical + object for meshing

  • + +
  • Applying one or several + previously hypotheses and meshing + algorithms which will be used at computation of this mesh.

  • +
+ +

 

+ +

To construct a mesh:

+ +

 

+ +

In the Mesh + menu select Global Hyp. or + click button in the toolbar. The following dialog box will + appear:

+ +

 

+ +

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/constructing_submeshes.htm b/doc/salome/gui/SMESH/files/constructing_submeshes.htm new file mode 100755 index 000000000..1c9396e95 --- /dev/null +++ b/doc/salome/gui/SMESH/files/constructing_submeshes.htm @@ -0,0 +1,160 @@ + + + + + + + + + + +Constructing submeshes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Constructing submeshes

+ +

Construction of a submesh consists of:

+ +

 

+ +
    + +
  • Selecting a mesh which + will encapsulate your submesh

  • + +
  • Selecting a geometrical + object for meshing

  • + +
  • Applying one or several + previously hypotheses and meshing + algorithms which will be used at computation of this submesh.

  • +
+ +

 

+ +

To construct a submesh:

+ +

 

+ +

From the Mesh + menu select Local Hyp. or + click button in the toolbar. The following dialog box will + appear:

+ +

 

+ +

+ +

 

+ + + + + 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 index 000000000..da44a8912 --- /dev/null +++ b/doc/salome/gui/SMESH/files/diagonal_iversion_of_elements.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Diagonal iversion of elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Diagonal inversion of elements

+ +

Type topic text here.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/displacing_nodes.htm b/doc/salome/gui/SMESH/files/displacing_nodes.htm new file mode 100755 index 000000000..8c2d3e064 --- /dev/null +++ b/doc/salome/gui/SMESH/files/displacing_nodes.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Displacing nodes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Displacing nodes

+ +

Type topic text here.

+ + + + + 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 index 000000000..dd57c5fc0 --- /dev/null +++ b/doc/salome/gui/SMESH/files/displaying_elements_numbers.htm @@ -0,0 +1,151 @@ + + + + + + + + + + +Displaying elements numbers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Displaying elements numbers

+ +

In SMESH you can display the ID numbers of all meshing elements composing + your mesh in the viewer.

+ +

 

+ +

To display ID numbers of elements:

+ +

 

+ +

1. Display your mesh in the viewer

+ +

 

+ +

2. From the Numbering + menu select Display Elements #.

+ +

 

+ +

It will look like as follows:

+ +

 

+ +

+ +

 

+ +

 

+ + + + + 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 index 000000000..1e776eef8 --- /dev/null +++ b/doc/salome/gui/SMESH/files/displaying_nodes_numbers.htm @@ -0,0 +1,152 @@ + + + + + + + + + + +Displaying nodes numbers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Displaying nodes numbers

+ +

In SMESH you can display the ID numbers of all nodes of your mesh in + the viewer.

+ +

 

+ +

To display ID numbers of nodes:

+ +

 

+ +

1. Display your mesh in the viewer

+ +

 

+ +

2. From the Numbering + menu select  Display + Nodes #.

+ +

 

+ +

It will look like as follows:

+ +

 

+ +

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/editing_hypotheses.htm b/doc/salome/gui/SMESH/files/editing_hypotheses.htm new file mode 100755 index 000000000..e36d19b96 --- /dev/null +++ b/doc/salome/gui/SMESH/files/editing_hypotheses.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Editing hypotheses + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Editing hypotheses

+ +

 

+ + + + + 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 index 000000000..e627b5af8 --- /dev/null +++ b/doc/salome/gui/SMESH/files/importing_and_exporting_meshes.htm @@ -0,0 +1,150 @@ + + + + + + + + + + +Importing and exporting meshes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Importing and exporting meshes

+ +

In SMESH there is a functionality allowing importation/exportation + of meshes from MED, UNV + format files.

+ +

 

+ +

To import a mesh:

+ +

 

+ +

1. From the File + menu choose the Import item, from + its sub-menu select the corresponding format (MED,  UNV) + of the file containing your mesh.

+ +

2. In the standard Search + File dialog box find the file for importation.

+ +

3. Click the OK + button.

+ +

 

+ +

To export a mesh:

+ +

 

+ +

1. From the File + menu choose the Export item, from + its sub-menu select the format (MED, UNV) of the file which will contain + your exported mesh..

+ +

2. In the standard Search + File select a location for the exported file and enter its + name.

+ +

3. Click the OK + button.

+ + + + + 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 index 000000000..cdfcac213 --- /dev/null +++ b/doc/salome/gui/SMESH/files/introduction_to_smesh.htm @@ -0,0 +1,200 @@ + + + + + + + + + + +Introduction to SMESH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Introduction to SMESH

+ +

SMESH module of + SALOME is destined for:

+ +

 

+ +
    + +
  • import and export of meshes in MED format,

  • + +
  • meshing geometrical models previously created + or imported by the GEOM component. SMESH module allows to apply 1D, 2D, + 3D meshing algorithms and a set of hypotheses:

  • + +
      + +
    • Local length

    • + +
    • Number of segments

    • + +
    • Max Element Area

    • + +
    • Max Element Volume

    • +
    + +
  • modification of locally generated meshes by

  • + +
      + +
    • Addition/deletion of nodes and elements

    • + +
    • Moving nodes and elements

    • +
    + +
  • grouping mesh elements and performing operations + on these groups

  • + +
  • quality control of meshes basing on a set of definite + criteria -

  • +
+ +

 

+ +

for edges:

+ +

 

+ +
    + +
      + +
    • Length of edges

    • + +
    • Borders at multi-connections

    • + +
    • Free borders

    • +
    +
+ +

 

+ +

for faces:

+ +

 

+ +
    + +
      + +
    • Area of elements

    • + +
    • Minimum angle

    • + +
    • Taper

    • + +
    • Aspect Ratio

    • + +
    • Warping

    • + +
    • Skew angle

    • +
    +
+ +

 

+ +

 

+ + + + + 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 index 000000000..e49ef746c --- /dev/null +++ b/doc/salome/gui/SMESH/files/length_of_edges.htm @@ -0,0 +1,140 @@ + + + + + + + + + + +Length of edges + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Length of edges

+ +

This quality control criterion consists of calculation + of length of the edges combining the meshing elements (triangles and quadrangles) + of your mesh.

+ +

   

+ +

To apply the Length of edges quality criterion to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Length or click button in the toolbar. + Your mesh will be displayed in the viewer with its elements colored according + to the applied mesh quality control criterion:

+ +

 

+ +

+ +

 

+ +

 

+ + + + + 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 index 000000000..10316eaf2 --- /dev/null +++ b/doc/salome/gui/SMESH/files/local_length_hypothesis.htm @@ -0,0 +1,171 @@ + + + + + + + + + + +Local Length hypothesis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Local Length hypothesis

+ +

Local Length hypothesis + can be applied for meshing of edges composing your geometrical object. + Definition of this hypothesis consists of setting the length + of segments, which will split these edges. The points on the edges generated + by these segments will represent nodes of your mesh. Later these nodes + will be used for meshing of the faces abutting to these edges.

+ +

 

+ +

+ +

 

+ +

To define the Local Length hypothesis:

+ +

 

+ +

From the Hypotheses + menu select Average Length or + click button. The following dialog box will appear:

+ +

 

+ +

+ +

 

+ +

In this dialog box you can set:

+ +

 

+ +
    + +
  • Name + of your Local Length hypothesis

  • + +
  • Length + of segments which will split the edges of your geometrical object

  • +
+ +

 

+ + + + + 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 index 000000000..826189fa5 --- /dev/null +++ b/doc/salome/gui/SMESH/files/max._element_area_hypothesis.htm @@ -0,0 +1,166 @@ + + + + + + + + + + +Max. Element Area hypothesis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Max Element Area hypothesis

+ +

Max Element Area hypothesis + can be applied for meshing of 2D faces composing your geometrical object. + Definition of this hypothesis consists of setting the maximum + area of meshing elements (depending on the chosen meshing algorithm + it can be triangles or quadrangles), + which will compose the mesh of these 2D faces.

+ +

 

+ +

To define the Max Element Area hypothesis:

+ +

 

+ +

From the Hypotheses + menu select Max Element Area or + click button. The following dialog box will appear:

+ +

 

+ +

+ +

 

+ +

In this dialog box you can set:

+ +

 

+ +
    + +
  • Name + of your Max Element Area hypothesis

  • + +
  • Max. + Area: the maximum area of meshing elements

  • +
+ +

 

+ + + + + 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 index 000000000..40a848283 --- /dev/null +++ b/doc/salome/gui/SMESH/files/max._element_volume_hypothsis.htm @@ -0,0 +1,167 @@ + + + + + + + + + + +Max. Element volume hypothsis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Max Element Volume hypothesis

+ +

Max Element Area hypothesis + can be applied for meshing of 3D objects composing your geometrical object. + Definition of this hypothesis consists of setting the maximum + volume of 3D meshing elements (depending on the chosen meshing + algorithm it can be hexahedrons or + tetrahedrons), which will compose + the mesh of these 3D objects.

+ +

 

+ +

To define the Max Element Volume hypothesis:

+ +

 

+ +

From the Hypotheses + menu select Max Element Volume + or click button. The following dialog box will appear:

+ +

 

+ +

+ +

 

+ +

In this dialog box you can set:

+ +

 

+ +
    + +
  • Name + of your Max Element Volume hypothesis

  • + +
  • Max. + Volume: the maximum volume + of 3D meshing elements

  • +
+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/minimum_angle.htm b/doc/salome/gui/SMESH/files/minimum_angle.htm new file mode 100755 index 000000000..7cfc2299e --- /dev/null +++ b/doc/salome/gui/SMESH/files/minimum_angle.htm @@ -0,0 +1,139 @@ + + + + + + + + + + +Minimum angle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Minimum angle

+ +

Minimum angle + mesh quality criterion consists of calculation of the minimum value of + angle between two adjacent sides of a 2D meshing element (triangle or + quadrangle).

+ +

 

+ +

To apply the Minimum angle quality criterion to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Minimum angle or click button. Your + mesh will be displayed in the viewer with its elements colored according + to the applied mesh quality control criterion:

+ +

 

+ +

+ +

 

+ + + + + 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 index 000000000..ec3ce9c4e --- /dev/null +++ b/doc/salome/gui/SMESH/files/number_of_segments_hypothesis.htm @@ -0,0 +1,171 @@ + + + + + + + + + + +Number of segments hypothesis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Number of segments hypothesis

+ +

Number of segments hypothesis + can be applied for meshing of edges composing your geometrical object. + Definition of this hypothesis consists of setting the number + of segments, which will split these edges. In other words your edges will + be split into a definite number of segments with approximately the same + length. The points on the edges generated by these segments will represent + nodes of your mesh. Later these nodes will be used for meshing of the + faces abutting to these edges.

+ +

 

+ +

+ +

To define the Number of segments hypothesis:

+ +

 

+ +

From the Hypotheses + menu select Nb. Segments or + click button. The following dialog box will appear:

+ +

 

+ +

+ +

 

+ +

In this dialog box you can set:

+ +

 

+ +
    + +
  • Name + of your Local Length hypothesis

  • + +
  • Segments: the number + of segments which will split the edges of your geometrical object

  • +
+ +

 

+ + + + + 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 index 000000000..245bf84e0 --- /dev/null +++ b/doc/salome/gui/SMESH/files/reassigning_hypotheses_and_algorithms.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Reassigning hypotheses and algorithms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Reassigning hypotheses and algorithms

+ +

 

+ + + + + 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 index 000000000..7029acdfd --- /dev/null +++ b/doc/salome/gui/SMESH/files/removing_nodes_and_elements.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Removing nodes and elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Removing nodes and elements

+ +

Type topic text here.

+ + + + + 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 index 000000000..d42bc5018 --- /dev/null +++ b/doc/salome/gui/SMESH/files/running_smesh_module.htm @@ -0,0 +1,172 @@ + + + + + + + + + + +Running SMESH module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Running SMESH module

+ +

To start SMESH module in SALOME:

+ +

 

+ +
    + +
  1. Run + SALOME

  2. + +
  3. Create + a new study by clicking icon in the main toolbar. The + following SALOME standard window will appear:  

  4. +
+ +

 

+ +

                        

+ +

 

+ +

Before launching the SMESH module, you should set the VTK + viewer as default viewer for creation of a new study window. In SMESH + you can generate and work with meshes only in VTK viewer.

+ +

      

+ +

    3. + In the bottom toolbar click icon or  from + the bottom Choose box

+ +

                       

+ +

            select + SMESH.

+ +

 

+ +

 

+ +

The initial desktop of + the SALOME platform will be updated with some additional toolbars and + menus related to the SMESH component + . It will look like as follows:

+ +

 

+ +

 

+ +

+ +

 

+ + + + + 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 index 000000000..793178598 --- /dev/null +++ b/doc/salome/gui/SMESH/files/scalar_bar_properties.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Scalar Bar properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Scalar Bar properties

+ +

Type topic text here.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/shading.htm b/doc/salome/gui/SMESH/files/shading.htm new file mode 100755 index 000000000..28db384ad --- /dev/null +++ b/doc/salome/gui/SMESH/files/shading.htm @@ -0,0 +1,109 @@ + + + + + + + + + + +Shading + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + diff --git a/doc/salome/gui/SMESH/files/shrink.htm b/doc/salome/gui/SMESH/files/shrink.htm new file mode 100755 index 000000000..e7bc1038e --- /dev/null +++ b/doc/salome/gui/SMESH/files/shrink.htm @@ -0,0 +1,109 @@ + + + + + + + + + + +Shrink + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + diff --git a/doc/salome/gui/SMESH/files/skew.htm b/doc/salome/gui/SMESH/files/skew.htm new file mode 100755 index 000000000..39f2f82db --- /dev/null +++ b/doc/salome/gui/SMESH/files/skew.htm @@ -0,0 +1,158 @@ + + + + + + + + + + +Skew + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Skew angle

+ +

Skew angle mesh + quality criterion reflects the angle between the lines that join opposite + sides of the element. SKEW  is + a maximum value of all skew angles.

+ +

This mesh quality criterion + can be applied to elements composed of 4 and 3 nodes (quadrangles and + triangles)

+ +

 

+ +

+ +

 

+ +

To apply the Skew angle quality criterion to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Skew or click button of the toolbar. + Your mesh will be displayed in the viewer with its elements colored according + to the applied mesh quality control criterion:

+ +

 

+ +

+ + + + + diff --git a/doc/salome/gui/SMESH/files/taper.htm b/doc/salome/gui/SMESH/files/taper.htm new file mode 100755 index 000000000..958fd05f9 --- /dev/null +++ b/doc/salome/gui/SMESH/files/taper.htm @@ -0,0 +1,142 @@ + + + + + + + + + + +Taper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Taper

+ +

Taper mesh quality + criterion represents the ratio of the areas of two triangles separated + by a diagonal. So it can be calculated only for elements consisting of + 4 nodes.

+ +

+ +

 

+ +

 

+ +

To apply the Taper quality criterion to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Taper or click button in the toolbar. + Your mesh will be displayed in the viewer with its elements colored according + to the applied mesh quality control criterion:

+ +

 

+ +

+ + + + + 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 index 000000000..c9f35898c --- /dev/null +++ b/doc/salome/gui/SMESH/files/tetrahedron_(netgen)_meshing_algorithm.htm @@ -0,0 +1,126 @@ + + + + + + + + + + +Tetrahedron (Netgen) meshing algorithm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Tetrahedron (Netgen) meshing algorithm

+ +

This algorithm is used for meshing of 3D entities of + geometrical objects - volume objects. +

+ +

 

+ +

To apply the Tetrahedron meshing algorithm:

+ +

 

+ +

From the Hypotheses + menu select Tetrahedron (Netgen) + or click button in the toolbar.

+ + + + + 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 index 000000000..6a3250b03 --- /dev/null +++ b/doc/salome/gui/SMESH/files/using_smesh_module.htm @@ -0,0 +1,106 @@ + + + + + + + + + + +Using SMESH module + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Using SMESH

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/view_update.htm b/doc/salome/gui/SMESH/files/view_update.htm new file mode 100755 index 000000000..d9a84057f --- /dev/null +++ b/doc/salome/gui/SMESH/files/view_update.htm @@ -0,0 +1,112 @@ + + + + + + + + + + +View update + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

View update

+ +

+ + + + + 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 index 000000000..956791a89 --- /dev/null +++ b/doc/salome/gui/SMESH/files/viewing_mesh_info.htm @@ -0,0 +1,152 @@ + + + + + + + + + + +Viewing mesh info + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Viewing mesh info

+ +

To view the information on meshes:

+ +

 

+ +

1. Select your mesh in the Object + Browser.

+ +

 

+ +

2. From the Mesh + menu select Mesh + infos or click button of the toolbar.

+ +

 

+ +

The following information will be displayed:

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/visualization_modes.htm b/doc/salome/gui/SMESH/files/visualization_modes.htm new file mode 100755 index 000000000..648d5bc7c --- /dev/null +++ b/doc/salome/gui/SMESH/files/visualization_modes.htm @@ -0,0 +1,153 @@ + + + + + + + + + + +Visualization modes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Visualization modes

+ +

In SMESH there are three visualization modes for displaying + meshes in the viewer:

+ +

 

+ +
    + +
  • Wireframe +

  • + +
  • Shading +

  • + +
  • Shrink

  • +
+ + + + + diff --git a/doc/salome/gui/SMESH/files/visualization_properties.htm b/doc/salome/gui/SMESH/files/visualization_properties.htm new file mode 100755 index 000000000..b08f35770 --- /dev/null +++ b/doc/salome/gui/SMESH/files/visualization_properties.htm @@ -0,0 +1,107 @@ + + + + + + + + + + +Visualization properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Visualization properties

+ +

Type topic text here.

+ + + + + diff --git a/doc/salome/gui/SMESH/files/warp.htm b/doc/salome/gui/SMESH/files/warp.htm new file mode 100755 index 000000000..c336fd125 --- /dev/null +++ b/doc/salome/gui/SMESH/files/warp.htm @@ -0,0 +1,171 @@ + + + + + + + + + + +Warp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Warping

+ +

Warping indicates + that a face is not planar and is applied only to 2D elements with 4 nodes. + This quality control criterion is based on a projection plane created + by:

+ +

1. bisecting the four element edges,

+ +

2. creating a point on the plane at the vector + average of the corners, where the x-axis extends from the point to the + bisector on edge 2.

+ +

The plane normal is in the direction of the + cross product of the x-axis and the vector from the origin to the bisector + of edge 3. Every corner of the quad will then be a distance “h” from the + plane. The length of each half edge is measured and the shortest length + is assigned “l”. The warp angle is the arcsine of the ratio of the projection + height “h” to the half edge length “l”.

+ +

 

+ +

+ +

 

+ +

 

+ +

To apply the Warping quality criterion to your mesh:

+ +

 

+ +

1. Display your mesh in the viewer.

+ +

 

+ +

2. Choose Quality + Controls > Warp or click button of the toolbar. + Your mesh will be displayed in the viewer with its elements colored according + to the applied mesh quality control criterion:

+ +

 

+ +

+ +

 

+ + + + + diff --git a/doc/salome/gui/SMESH/files/wireframe.htm b/doc/salome/gui/SMESH/files/wireframe.htm new file mode 100755 index 000000000..0167066cc --- /dev/null +++ b/doc/salome/gui/SMESH/files/wireframe.htm @@ -0,0 +1,109 @@ + + + + + + + + + + +Wireframe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + diff --git a/doc/salome/gui/SMESH/i_blue.jpg b/doc/salome/gui/SMESH/i_blue.jpg new file mode 100755 index 0000000000000000000000000000000000000000..ed3acfac2eb212d536dbbfc2b4d47c959747109a GIT binary patch literal 1337 zcmaKodo-CSk zj7%T`3dul2X$#ZEkV8G0ltU*gehncg)*}8p1R}!#K@GMrDHws1q(OBN+#sIJxo6n( z+Tur7x+dNaR1`B|GC~GFfD$j;xSwmXa&I3Wuz00I>AhjwxFIb&zn(SSKEKIz_U5hH z$Z8yPI%={7Pu$)ZVh%U(mWG|M_AHNH7VT6BnZFpx9E=en$p|1APcm z@qG9k8ejTuRDy$@gTLl!%EfX*57!`EA{i8FuwdQ7bAzGlO+2{O2S_&UyWRqzJlW_y z(LgXxaC~pwk$R^J(#W`8ENwQNuVeAZr+({bMA7W3 zMoHR6xTnO((?!{>B>ZwBtiNq@@b-o7S8p%L-JGpk;?JrR4kj8|OsC<@=$eg9dP z6*;$Q=>`9?L)+lS>yA~n9j|-um>8NG<(NG#R}Kz1ZD0IHMP5Mq5gGAb$;iCPxDso~ z>wTj!Xen&T(rU<+II%C%=Zkh+$StVT$q~m*SZ5o`&rfP*9dbx7H8M6$e@CGToG%MK zSD$VZZ3|JWvk!H(5lI$a2BA#e*e9RJZfT&IU&pJxSjU5-ArHi(gpp%4ygr1wYwusu z(y-sJv6_)ylu>Zlvf_eUM?`E#P3!boUw$jK*OxYtEEHtcaM6Sz-$T87b@FRJS2w-6 zG^KX1GwOripJ`*nGX1#X=+XQ(>-Le`=8-9us$DaI4KJnUOrkUD{8H35Fw3Sj7h5h! z>HVyE^NZrNr10uKjw+{d0(PEwuJ!vef zuvoWW#$hPkwQ?;;nvEB3Vpm-|p6$i;@5tD08b~YAA&{RxEVXPUZ-JG+QPUr|V_F$@I zXS;1p=(tK8FGE-@oN>#YkwF_a1tYA7egj zW^n6ief`ATK1SFn+ag+w|Mfht$g_4nx(AM=>_}YPPhzXae;aiDO3h>4b)9F{f3T?% zo#IdMPb9KtvZ9;I)c()C6Dqm=1DdZu@k`x^exwvg}d zoC|z$oF{fzlv{Tlz2o%x$(;6>oL)xZGz)qR2<7%s?>*6}l!k_=7}1b~)FhaZe!Mi* ntsV1Q$ocz}1}2fD+RUKR+?970I}4cV<-EX|YKN=(__MzOO5YZJ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image10.jpg b/doc/salome/gui/SMESH/image10.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8c20c4ced6acf72837ac8464fd438f2e878f2ef3 GIT binary patch literal 72076 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%0D*-6kzP>DPs$Moi5D!&x!~ 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image12.jpg b/doc/salome/gui/SMESH/image12.jpg new file mode 100755 index 0000000000000000000000000000000000000000..aa3ee34e8f1eea4156b00ee24c23452149879a3c GIT binary patch literal 55339 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image2.gif b/doc/salome/gui/SMESH/image2.gif new file mode 100755 index 0000000000000000000000000000000000000000..7ac734ec80e6744e967decebff9b1a929cad1676 GIT binary patch literal 30455 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 NH-tkmJb{1!06S^SL2Cd2 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image22.gif b/doc/salome/gui/SMESH/image22.gif new file mode 100755 index 0000000000000000000000000000000000000000..18b53bf4df7bf7efa602abe4871046d88dbdb334 GIT binary patch literal 1287 zcmX9-3rw3u96w`O*d#j8R8X2gryIpbG-srs!37hbECi;a3`W>6JvSm|6BHT4HO?@> zEU*+AH(uran6Obc_KFG;*`NpNR6wLb!O*qh7#bDA=K1^1OPYKBf3N@71WUX*YVSOW zC;t#_*woLaCL4A(+aSj5VEfoDolfWP?;j8l5EvM!*Xu(=LybnG$z)1POG{2pj*E+n zj*gaxZ89}=lGw$PT%H{9cqV(gDk&k15Kf2yI3<)4MhT}xP$JbGWrQ)p84-*~^^|hL zIN_WKPNb@&f-ph2AVLs{wIo~;AvHumGJ*;`p;8f0N*Se`QbDOyeAqKaIirG6spxUd zIOUuQPNhqfEp-*S1l1x!36Mt0cmQ90xme0DlC`* zG4?`msj`DNaN}A?E>)Ds9!VowWQo`i5>i17@C~mp2R9InGRTBF#jij$RKRFGz;oQ= z07I&lATl@vEA|rcsb->kXbYNv)DbgsMV4qD(n3Or1T}DvUcw?gY4w^+t+kK?eh>l? zkSN7-Tw;e}0Q^5;#;T2kXJ=;@78aJ4mR46+yId}((>XOY<#xLl78ZOy-^$9$>guXo zzvXbW+H5xM!;wU)2{Tq0kK>SN{{`ZYlZ~N?XB|UF{qK+5eeG=1@UhKXlIjxsn!oxu znC8x2>ub4M5%ywvsKwbjYL9rid-tfb&2{pr*T?EC{q5tm=6v7mXn)7ojoXiIG9;br z{I(_09+@?EuIsyw)Rv_Br1RZBoKEl0bsySnn>w>+xZJQ~;L{)b*(IOOQPq=C_tuG# zlFav*jrbJm&iTkNKXANgtSLdo*Y zyhCdTX2w2QINlReSa7NJi>(t+#9V%3@aHofOB-Tii~hcTU)Qj;_x*$U-p-C~x{6cl z>+U~Z7`U)&HhRSM4d2#Ka&s*zAS)XXlFVSj}Mx_g??L z@g045r{SYUgSq+0Qn)9p{PfO(^kdXAonsC8tS02Rv8iw_%e;6oyzKB_!9hh4dcT%R zKmEpEQxlA)u*&2wA8508k0*v#ywd(m+m1{&ntJlXqOzcx$4;0Q52QC(f->G5@GjQg z({1w96-@5;)W5gb@Y9j!{sSySgmeG^ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image24.gif b/doc/salome/gui/SMESH/image24.gif new file mode 100755 index 0000000000000000000000000000000000000000..3d8032bf057f2edd8812eb21cd20a75bab20767e GIT binary patch literal 14544 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image25.gif b/doc/salome/gui/SMESH/image25.gif new file mode 100755 index 0000000000000000000000000000000000000000..cd7c967bcbc83e7e0861612299c9259aa600c9ae GIT binary patch literal 6114 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 QeimwVR%smuLBQ~T0IcS182|tP literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image25.jpg b/doc/salome/gui/SMESH/image25.jpg new file mode 100755 index 0000000000000000000000000000000000000000..4b2d4dfe47d70a0b36e26ba345664836fcdcc6fc GIT binary patch literal 1025 zcmex=wkpZH5*GHWn6E78W*ER#tX4Hg-+{E=~>(PGLSiZUJ!-2?;R~F)>LQ6?sW%C227+ z1#JZ-HFZr*O$j+&104+m6%9>wMmBbKP7Y2XE-oQ;DKRN^lEMEYjEfi;7+D#?fB^~^ znV4Bv+1NQaxwsh_m?3gN5+aKvDZs$Q$jr>d!psWv1<;sUpd15>Aghp~p(C4cU?RIx zp@>oA#DyHnP8$!323`E1Vw_ae#K|QlE+HwUs-~`?sbyknW^Q3==I-I?6&w;8 z79J59m7J2AmY$KBRa{b9R$ftA)!fqB*51+CHEHscsne#9glAUcUPH>GPMb-@gC&`AZP! zWF{6CW)^mklNp)HftXp4g;mjzO~^5jJ+V+&$*7S-#A)KfjR!fEje|ajCKX-e5>qjG zsQMA)YOte;b8{0}j)uD#?&SXm7z8;OWEf1^(5((%# z+U9=7?f&kG^8>>ck5_(vO5~w3+tl_DR91cbkt&DwthX)?}Dqse4lSWkg8(u4OKZmm6OFx$o<_lwvv6 z%j-?qw#~ZXUNC`8DDu=(v6xK)2ix5kJtW!NZMCC<1Ija2oSr)8=&{z?!h9+F_Vua} z+gpWR39>u*?6}?J_@5zS&y(6)SFicrURd+$>0ML3_oXT`Zog7CI`Q804!8IzXN|l4 zdk%U$zr5Git8=xYSNKKQ?XzQ^rR9HPz5bWSYWm-g`TrS?tzh_fVAp?!h3!HA8TRS^ sXZUfILH>q#{1<~)@!yZ`|IZ+`fcZDm>wj&s-v54V|IhF^gz^7P0Hh~}fB*mh literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image26.gif b/doc/salome/gui/SMESH/image26.gif new file mode 100755 index 0000000000000000000000000000000000000000..62eef533d06b81d79b15bba4c78118df499eb673 GIT binary patch literal 945 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 S&Ie%0{^wHvxAX{yhW`uK(B>Ne literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image27.gif b/doc/salome/gui/SMESH/image27.gif new file mode 100755 index 0000000000000000000000000000000000000000..d21b890b97d7e01c8c392adf3c73df61890a30e5 GIT binary patch literal 4187 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image27.jpg b/doc/salome/gui/SMESH/image27.jpg new file mode 100755 index 0000000000000000000000000000000000000000..d2f32b1848125e95728d52dc90dc6dc6c38981a5 GIT binary patch literal 15997 zcmeHt2|Seh{{J%uV+q;!C6qnc_pKP)5h=2jBr&$J8^oY2$zCYLltc=VB_hjMLb677 zM)oXY9ox)*&N=toTb*<7Jhf6&p==DXlv@8k}5g*(C=y!rIq?N9QVOPxF=1rSDnTL3vJDH$m#IT;xlgq$2g zd6bHhf`XEfmX`V`D-#a>jFZ5PnZ4>9C|n6auG98kkLc)&ym)dWBO` zv9PkSa~wY*BrGB-D<`j@sHA*GTL-GEr*Clnf|>b63rj2eYYx{PonX%1KE8hbh=9PG zw<02=qHo6}-@TWTns)y|`s17@xli-*pB0q8Dl4z3d|g%Dh;C|bX?@q$-rLvzabWP% z(C`#y`t!`}-2B2Kc70=WYkLQ`yGKtvG6^Xum=yBkkwGN>#9uHyDcLb8at5t)5Iavs ze(5j@rqfA}N*X8yWK7qXuX^=Ru?Wge9moE7>Yon%`_3Hxrw;x1Gyna_gnEFU0+a!2 z27`#Frw4)QL4;x82pB|s0Mi2+z+OQp6(9_tNd7n9L?&F6uct1i4aXJcD7L@Y5M@v+ zbs{M~IG)8r08rZ*1R%_l0K@^jYpIAJ{LNuFo~#uw3m_XUr&jmqV0AcFUR*bb08lzc z)y=CtB>%PJ@un@PI~YIfp*lww`evIMd24`BHZjgqa!te-GaEBZ~62|Zn53yWpc z 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 gL*SSmJBUk3{$)q<^(aUjbhlF&2TK6 z<5;o4v0{m1)r!ZeHP5veo@=o@*V59`<8-da>s(Jy&lIn7Q-aP-i8?oB%9J@#=jJ2> z(X~0**XGQbvo!nK(&B4NtFJ9xx^!*zwY4qR)~;Q{#$IczQckbM|Ysc7l4=YqG6D;ejdEU(23X+F;R(?OGML0hN0jgQ)ib}$fkr>S6VuS zZ2$ePl|y-Ywr;e>(Hk#@EaN0C&C#d$|2WN^EbBpiC%vRmsF*FKNM%Y#`MGy-P) zT$7?5r!E#=8w2V)C>+BIqi7()sZF1D<)_%edQ3= zugbcRaL^&?=*H+d6FL{QaBQDzn$q#%_o22MhJO1r1Q%7cUlUVGsSudn@<8mt(*Cd+ zw-TJ%&hJwWiEt=N{_%mKC8&4C0mp_T3{K1we*ddI!kx?;a4?`NR^VcU$`|o_IiZaX q4IBl%tW2B=AyXGLJ>U%w3S-jP#>lCaks;KkGA-j#rvw`dgEasMFyEU1 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image28.jpg b/doc/salome/gui/SMESH/image28.jpg new file mode 100755 index 0000000000000000000000000000000000000000..8ec5266cfaf67297ea93cd0e6c0f9c3270ada07d GIT binary patch literal 32873 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

5J|A_V9Msi>X@? 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 H383;HSIKcb literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image32.gif b/doc/salome/gui/SMESH/image32.gif new file mode 100755 index 0000000000000000000000000000000000000000..a1ee2ee02f7f06763b8d70f6ad8e52ffceb7f94d GIT binary patch literal 980 zcmZ?wbh9u|6l0KJ_|5g%vrj0>Dskxx3*l{x^?T`y?c)xJ9h5exog+1 z{Rb->B}PMF_=SKD$V;HSz`(JSL7YRzW5a@jtXx7`F()=GJlrmz$iyHJxQLN~oljxK z4uOWoZWa!i2Qw}_c4uH>6H$0sxX63DsPC*l6`LB|S~-i`*EYhY9=ef8$&CzS>U zt=4x-Dko;1?(}T8O3nJB)WGBv@3&>u)W*=I>>L~%7cMni-<-Dp6_0g-gZGw#{Yo>c z7c|^mTe#P6>#%8P^JbWqRRVk=MwW%*;^{wWE-cDVK9cj?d0@XZKDq&c3(Da`E%? L3!Kw=I2fz}z(;Bf literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image33.gif b/doc/salome/gui/SMESH/image33.gif new file mode 100755 index 0000000000000000000000000000000000000000..ecdd47b0b21fe3da820144e77bd64cd5ec3f1499 GIT binary patch literal 987 zcmZ?wbh9u|lxC1*_|5g%vrj0>Dskxx3*l{x^?T`y?c)xJ9h5exog+1 z{Rb->B}PMF_=SKD$V;HSz`${UL7YRzW5a@j%^bpNAqO@rJlrmz>@~+@qY?vysIeA9 z0>gnuW)2g#CpRWCG%_p6PkN(~;LtdQ*D`L7rLfw`scc0|8Vo{7P4gYXxt3N6tq5Ff zky(^-;o{Sai#>~9rJQ1DxV+qcaoL>A22I~JoKx<-@tT(9zJZfZKtSNZvYXo(F07I@ zNO%*ysjye+#_sP9jr)yuR?R)ReZ#|jUMs6?&g>{?WXzdfmg7^I&&X7o8Mf}t^ykmc TFL3Vu=do+c%gZa6nHa1AkP>g| literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image34.gif b/doc/salome/gui/SMESH/image34.gif new file mode 100755 index 0000000000000000000000000000000000000000..963095fe8fef78d4e2a430a54382d9c042004cc4 GIT binary patch literal 974 zcmZ?wbh9u|lxC1%_|50B3k)2a86-JmJT@#i*vuiU7IR?3!o%$X%2qiFg-J)- zcs1f;CVWgf*012)^kv1wCvJV}-c>$31shIJ)?;)CaWGzXcD4oYg*!WqpEb^RX#UsZ z*|0p2S+7-#)xg1lVX=*%h{q}sjRpoLHix@29ki}44QCg*amtwS()uuF7KH_qb;6lh zF39cBTEM`xnDf)CtJw)!4675l-^lvxSbcwC)=javGuPF^cK0aH=at!6bY?4?R`$I! JJBu6`tO3k#Xbu1X literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image35.gif b/doc/salome/gui/SMESH/image35.gif new file mode 100755 index 0000000000000000000000000000000000000000..0e3b30fd0fa616ed45221bc5f9bddbbf6f7ceda2 GIT binary patch literal 964 zcmZ?wbh9u|6k`x)_|5 zmZO$ao-;DDuyOp@X`+6SnUy2sZ{-3lrWrbn33pFj)V{nSnN#FNmRb5mrpT+CVyhP9 s-R-g4x^C;~?e80Vm}-i?c<;z-Wc2thrp6Qc;n7jH47+(gmI@5k0K17_rvLx| literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image36.gif b/doc/salome/gui/SMESH/image36.gif new file mode 100755 index 0000000000000000000000000000000000000000..7236ef8b94e2871b893c0ef743b10f85da672e25 GIT binary patch literal 987 zcmZ?wbh9u|lwc5N_|50B3k)0w7$iAlJT@#i*vKuU6?0<4!o%$X%3gDJFf_Qf zi!pkfIk8chfmzVlETdpS%E=xUr&%hQpBNe#nV1~5?3lFFn}LyqCt$^b<^Bx1{5>k2 z#s?ah>?Uh1kPKOIbPlV4#^0M)QZ6p$T&Bkw^>t;#im2&fwvq=j8rMYaENj&&%{sQu zf1{S~gaeE3GO+MmxVzh2`OKyU<40FdPhZc-WXUcNvFAtry+bvEA_@Tu8X8Ye*A8}L Yu-wFWZh~OVJD*)!US3|t%*0>~07}SiSpWb4 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image37.gif b/doc/salome/gui/SMESH/image37.gif new file mode 100755 index 0000000000000000000000000000000000000000..edd5263d85a207447082330eed7c63e2e33d233d GIT binary patch literal 1001 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

"; +} + +function fakeItemsArea(nB,n,sKA,sKB,obj) +{ + this.nB=nB; + this.nNum=n; + this.sKA=sKA; + this.sKB=sKB; + this.obj=obj; + this.nMargin=(n-1)*gnUHeight; + + this.setNum=function(n) + { + var nLastobj=-1; + var nDelta=this.nMargin; + this.nMargin=(n-1)*gnUHeight; + nDelta=nDelta-this.nMargin; + if(n>0) + { + this.nNum=n; + var nMU=getMaxUnits(); + nLastobj=Math.floor((n-1)/nMU); + if(this.obj.length) + this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight; + else + this.obj.style.marginTop=((n-1)%nMU)*gnUHeight; + } + if(this.obj.length) + { + for(var i=this.obj.length-1;i>nLastobj;i--) + removeThis(this.obj[i]); + } + else + { + if(nLastobj==-1) + removeThis(this.obj); + } + return nDelta; + } + this.insertAdjacentHTML=function(sWhere,sHTML) + { + if(sWhere=="beforeBegin") + { + if(this.obj.length) + this.obj[0].insertAdjacentHTML(sWhere,sHTML); + else + this.obj.insertAdjacentHTML(sWhere,sHTML); + } + else if(sWhere=="afterEnd") + { + if(this.obj.length) + { + if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling) + this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML); + else + this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML); + } + else + { + if(gbMac&&gbIE5&&this.obj.nextSibling) + this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML); + else + this.obj.insertAdjacentHTML(sWhere,sHTML); + } + } + } + this.getBtm=function() + { + if(this.obj.length) + return this.obj[this.obj.length-1].offsetTop; + else + return this.obj.offsetTop; + } + this.getTop=function() + { + return this.getBtm()-this.nMargin; + } +} + +function usedItems(nB,nE) +{ + this.nB=nB; + this.nE=nE; + this.oN=null; +} + +function checkReady() +{ + var len=gaChunks.length; + var bNeedLoad=false; + var aDataCon; + var s=0; + var bDown=(gsSKB==null); + var sK=bDown?gsSKA:gsSKB; + if(sK==null) + { + markEnd(); + setTimeout("checkAgain();",50); + return; + } + if(!gsChK||sK!=gsChK||gnNum==0) + { + gnCheck=0; + gsChK=sK; + aDataCon=new Array(); + } + else{ + s=gnNum; + aDataCon=gaDataCon; + } + for(var i=gnCheck;i0&&aPos[i]>=0&&aPos[i]0) + { + sCurrentK=aDataCon[i].aKs[aPos[i]].sName; + } + } + } + return sCurrentK; +} + +function checkAgain() +{ + if(!gbProcess) + { + if(gsBCK!=null) + { + gsCK=gsBCK; + gsBCK=null; + findCK(); + } + else + { + markBegin(); + getUnitIdx(document.body.scrollTop,document.body.clientHeight); + } + } + else + setTimeout("checkAgain()",50); +} + +function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i) +{ + aMaxPos[i]=aDataCon[i].nNum; + aMinPos[i]=-1; + var oPNode=null; + if(aDataCon[i].oUsedItems) + { + var oUsedItems=aDataCon[i].oUsedItems; + do{ + if(oUsedItems.nB>aPos[i]) + { + aMaxPos[i]=oUsedItems.nB; + break; + } + oPNode=oUsedItems; + oUsedItems=oUsedItems.oN; + }while(oUsedItems!=null); + if(oPNode) + aMinPos[i]=oPNode.nE; + } + else if(aDataCon[i].aKs==null) + { + aMaxPos[i]=aMinPos[i]=aPos[i]; + } + if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i]) + { + aMaxPos[i]=aMinPos[i]=aPos[i]; + } +} + +function getIdxPos(oIdx,bDown,sK) +{ + var aKs=oIdx.aKs; + var nIdx; + if(bDown) + nIdx=oIdx.nNum; + else + nIdx=-1; + if(aKs!=null) + { + for(var i=0;i0) + { + nIdx=i; + break; + } + } + else + { + if(compare(aKs[i].sName,sK)<0) + nIdx=i; + else + break; + } + i+=aKs[i].nNKOff; + } + } + else if(oIdx.aKsOnly) + { + var aKsOnly=oIdx.aKsOnly; + for(var i=0;i0) + { + nIdx=i; + break; + } + } + else + { + if(compare(aKsOnly[i],sK)<0) + nIdx=i; + else + break; + } + } + } + } + return nIdx; +} + +function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel) +{ + var aOldPos=new Array(); + for(var i=0;iaMinPos[i])) + { + if(sCurrentK==""|| + (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)|| + (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0)) + { + sCurrentK=aDataCon[i].aKs[aPos[i]].sName; + p=0; + aCurIdxSet[p++]=i; + } + else if(sCurrentK==aDataCon[i].aKs[aPos[i]].sName){ + aCurIdxSet[p++]=i; + } + } + else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){ + if(bDown&&aPos[i]==aMaxPos[i]) + { + if(aDataCon[i].aKs) + { + gsSKA=aDataCon[i].aKs[aOldPos[i]].sName; + return false; + } + } + else if(!bDown&&aPos[i]==aMinPos[i]) + { + if(aDataCon[i].aKs) + { + gsSKB=aDataCon[i].aKs[aOldPos[i]].sName; + return false; + } + } + } + } + if(p>=1){ + for(var s=0;s0); + return true; +} + +function updateUsedK(aDataCon,aOriPos,aOldPos,bDown) +{ + for(var i=0;inB) + { + if(oUsedItems.nB==nE+1) + { + oUsedItems.nB=nB; + } + else{ + var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE); + oNewNode.oN=oUsedItems.oN; + oUsedItems.nB=nB; + oUsedItems.nE=nE; + oUsedItems.oN=oNewNode; + } + break; + } + oPNode=oUsedItems; + oUsedItems=oUsedItems.oN; + }while(oUsedItems); + if(!oUsedItems) + { + if(oPNode!=null) + oPNode.oN=new usedItems(nB,nE); + } + if(oPNode!=null){ + if(oPNode.nE==oPNode.oN.nB-1) + { + oPNode.nE=oPNode.oN.nE; + oPNode.oN=oPNode.oN.oN; + } + } + } +} + +function projInfo(sPPath,sDPath,sFile) +{ + this.sPPath=sPPath; + this.sDPath=sDPath; + this.sFile=sFile; +} + +function addProjInfo(sPPath,sDPath,sFile) +{ + var oIdxInfo=new projInfo(sPPath,sDPath,sFile); + gaData[gaData.length]=oIdxInfo; + return oIdxInfo; +} + +function writeDataIFrame() +{ + if(gnLoad=nPos) return true; + oUsed=oUsed.oN; + } + return false; +} + +function getKByIdx(oCData,nB) +{ + var nRelPos=nB-(oCData.nTotal-oCData.nNum); + var aIKs=oCData.aKs; + if(nRelPos>=0&&aIKs&&nRelPos=0) + { + do{ + oK=aIKs[nRelPos--]; + } + while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0); + } + if(oK.nType!=3) + { + return oK.sName; + } + } + } + return null; +} + +function loadData2(sFileName) +{ + disEvt(); + if(gbXML) + loadDataXML(sFileName); + else + loadData(sFileName); + enEvt(); +} + +function projReady(aChunk) +{ + gaChunks[gnLoad++]=aChunk; + var len=aChunk.length; + var nTotal=0; + if(len>0) + nTotal=aChunk[len-1].nTotal; + gnItems+=nTotal; + if(nTotal>gnMaxItems) + { + gnMaxItems=nTotal; + gnRef=gnLoad-1; + } + setTimeout("writeDataIFrame();",1); +} + +function writeFakeItems() +{ + disEvt(); + gnUHeight=15; + var sHTML=getFakeItemsHTMLbyCount(0,gnItems); + document.body.insertAdjacentHTML("beforeEnd",sHTML); + var obj=getH6ById(0); + if (document.body != null) + { + gnVisible=Math.ceil(document.body.clientHeight/gnUHeight); + } + gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj); + enEvt(); +} + +function getEndString() +{ + var sBC=getBiggestChar(); + return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC; +} + +function getUnitIdx(nScrl,nHeight) +{ + if(gaFakes.length==0) + { + markEnd(); + return; + } + var nB=0; + var nE=gaFakes.length-1; + var nM=-1; + var nTop=0; + var nBtm=0; + var bF=false; + do{ + nM=(nB+nE)>>1; + nBtm=gaFakes[nM].getBtm(); + nTop=gaFakes[nM].getTop(); + + if(nTop>=nScrl+nHeight) + nE=nM-1; + else if(nBtm=nB); + if(bF) + { + if(nTop>=nScrl){ + gsSKA=gaFakes[nM].sKA; + gsSKB=null; + gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight); + gnIns=gaFakes[nM].nB; + checkReady(); + } + else if(nBtm<=nScrl+nHeight){ + gsSKB=gaFakes[nM].sKB; + gsSKA=null; + gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight); + gbNeedCalc=true; + checkReady(); + } + else{ + gnNeeded=gnVisible; + var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight); + if (!showItemsInEvaluation(nUnitIdx)) + { + gsSKA=gaFakes[nM].sKA; + gsSKB=null; + gnNeeded=Math.ceil(nHeight/gnUHeight); + gnIns=gaFakes[nM].nB; + checkReady(); + } + } + } + else + markEnd(); +} + +function disEvt() +{ + window.onscroll=null; + window.onresize=null; +} + +function enEvt() +{ + window.onscroll=window_OnScroll; + window.onresize=window_OnResize; +} + +function insertIdxKs(nIns,oHTML,bScrl) +{ + var bRtn=true; + disEvt(); + var nCount=oHTML.nConsumed; + var nB=0; + var nE=gaFakes.length-1; + var nM=-1; + var bF=false; + do{ + nM=(nB+nE)>>1; + if(gaFakes[nM].nB>nIns) + nE=nM-1; + else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns) + nB=nM+1; + else{ + bF=true; + break; + } + }while(nE>=nB); + if(bF) + { + var oFIA=gaFakes[nM]; + var nOffsetTop=oFIA.getTop(); + var nOffsetBottom=oFIA.getBtm(); + var nDelta=0; + var nHDiff=nIns-oFIA.nB; + var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount); + if(nHDiff>0) + { + nDelta=oFIA.setNum(nHDiff); + var sOldKBefore=oFIA.sKB; + oFIA.sKB=oHTML.sFK; + if(nTDiff>0) + { + var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff); + oFIA.insertAdjacentHTML("afterEnd",sHTML); + var obj=getH6ById(nIns); + insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj)); + } + oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML); + if(bScrl) + { + if(gbMac&&gbIE4) + { + var nScrollPos=nOffsetBottom-nDelta; + while(document.body.scrollTop!=nScrollPos) + document.body.scrollTop=nScrollPos; + } + else + window.scrollTo(0,nOffsetBottom-nDelta); + } + } + else{ + oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML); + if(bScrl){ + if(gbMac&&gbIE4) + { + var nScrollPos=nOffsetTop; + while(document.body.scrollTop!=nScrollPos) + document.body.scrollTop=nScrollPos; + } + else + window.scrollTo(0,nOffsetTop); + } + + if(nTDiff>0) + { + oFIA.nB=nIns+nCount; + nDelta=oFIA.setNum(nTDiff); + oFIA.sKA=oHTML.sLK; + } + else{ + gaFakes[nM].setNum(0); + removeItemFromArray(gaFakes,nM); + } + } + } + else + bRtn=false; + enEvt(); + return bRtn; +} + +function window_OnScroll() +{ + gnSE++; + setTimeout("procScroll();",50); +} + +function procScroll() +{ + if(gnSE==1&&!gbProcess) + { + markBegin(); + getUnitIdx(document.body.scrollTop,document.body.clientHeight); + } + gnSE--; +} + +function window_OnResize() +{ + gnRE++; + setTimeout("procResize();",50); +} + +function procResize() +{ + if(gnRE==1&&!gbProcess) + { + markBegin(); + gnVisible=Math.ceil(document.body.clientHeight/gnUHeight); + if(gnIns==-1) + getUnitIdx(document.body.scrollTop,document.body.clientHeight); + } + gnRE--; +} + +function getChunkByIdx(nIdx,nPosition) +{ + var oCData=null; + if(nIdx0) + { + var nB=0; + var nE=len-1; + var bF=false; + do{ + var nM=(nB+nE)>>1; + if(nPositionnB); + if(bF) + oCData=gaChunks[nIdx][nE]; + else if(nPosition0) + { + var nB=0; + var nE=len-1; + var bF=false; + do{ + var nM=(nB+nE+(bDown?0:1))>>1; + if(bDown) + { + if(compare(sK,gaChunks[nIdx][nM].sEK)<0) + { + bF=true; + nE=nM; + } + else + nB=nM+1; + } + else + { + if(compare(sK,gaChunks[nIdx][nM].sBK)>0) + { + bF=true; + nB=nM; + } + else + nE=nM-1; + } + }while(nE>nB); + if(bF) + { + if(bDown) + nCandId=nE; + else + nCandId=nB; + } + else + { + if(bDown) + { + if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0) + nCandId=nB; + else + nCandId=gaChunks[nIdx].length-1; + } + else + { + if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0) + nCandId=nE; + else + nCandId=0; + } + } + return gaChunks[nIdx][nCandId]; + } + } + return null; +} + +function findCK() +{ + if(gsCK!=null) + { + gsSKA=gsCK; + gbFindCK=true; + gnNeeded=1; + markBegin(); + checkReady(); + } +} + +function writeLoadingDiv(nIIdx) +{ + return ""; +} + +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 index 000000000..62cbf7af9 --- /dev/null +++ b/doc/salome/gui/SMESH/whibody.htm @@ -0,0 +1,288 @@ + + +Index content + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whidhtml.htm b/doc/salome/gui/SMESH/whidhtml.htm new file mode 100755 index 000000000..8a420e4b5 --- /dev/null +++ b/doc/salome/gui/SMESH/whidhtml.htm @@ -0,0 +1,30 @@ + + +Index + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whiform.htm b/doc/salome/gui/SMESH/whiform.htm new file mode 100755 index 000000000..1f2835db8 --- /dev/null +++ b/doc/salome/gui/SMESH/whiform.htm @@ -0,0 +1,91 @@ + + +Index form + + + + + + + + + + + + + + \ 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 index 000000000..7e2ab32d5 --- /dev/null +++ b/doc/salome/gui/SMESH/whihost.js @@ -0,0 +1,432 @@ +var gsDefaultTarget="bsscright"; +var gsBgColor="#ffffff"; +var gsBgImage=""; +var goIdxFont=null; +var goIdxEmptyFont=null; +var goIdxHoverFont=null; +var gsIdxMargin="0pt"; +var gsIdxIndent="8pt"; +var gsIdxActiveBgColor="#cccccc"; +var gsCK = null; +var gsBCK = null; +var gbCR = false; +var gbBCR = false; +var gbWhIHost=true; + +function myEvent() +{ + this.pageX = 0; + this.pageY = 0; +} +var _event=new myEvent(); + +function setBackgroundcolor(sBgColor) +{ + gsBgColor=sBgColor; +} + +function setBackground(sBgImage) +{ + gsBgImage=sBgImage; +} + +function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + if(sType=="Normal") + goIdxFont=vFont; + else if(sType=="Empty") + goIdxEmptyFont=vFont; + else if(sType=="Hover") + goIdxHoverFont=vFont; +} + +function setActiveBgColor(sBgColor) +{ + gsIdxActiveBgColor=sBgColor; +} + +function setMargin(sMargin) +{ + gsIdxMargin=sMargin; +} + +function setIndent(sIndent) +{ + gsIdxIndent=sIndent; +} + +function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel) +{ + var sHTML=""; + var nIdxSet=aCurIdxSet[0]; + var nIIdx=aPos[nIdxSet]; + var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx); + var sKName=_textToHtml(sKOriName); + + var nIdxIndent=parseInt(gsIdxIndent); + var sTopics=""; + if(nLevel==1){ + if(getItemType(aDataCon,nIdxSet,nIIdx)==1) + { + sHTML+="
"; + sHTML+=""+sKName+"
"; + } + else{ + for(var i=0;i"; + sHTML+="0) + sHTML+=sTopics+");return false;\">"+sKName+"

"; + else + sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"

"; + } + } + else if(nLevel>=2){ + var nIndent=nIdxIndent*nLevel; + for(var i=0;i"; + else + sHTML+="
"; + sHTML+="0) + sHTML+=sTopics+");return false;\">"+sKName+"
"; + else + sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+""; + } + oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName); +} + +function getTargetName(aDataCon,nIdxSet,nIIdx) +{ + if(nIdxSetnIIdx) + if(aDataCon[nIdxSet].aKs[nIIdx].sTarget) + return aDataCon[nIdxSet].aKs[nIIdx].sTarget; + return gsDefaultTarget; +} + +function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel) +{ + var oLocalHTML=new indexHTMLPart(); + writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel); + + var aLocalPos=new Array(); + var aMaxPos=new Array(); + for(var i=0;i0) + aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff; + } + var oSubHTML=new indexHTMLPart(); + writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1); + oLocalHTML.addSubHTML(oSubHTML,true); + oHTML.appendHTML(oLocalHTML,bDown); +} + +function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos) +{ + if(bDown) + { + for(var i=0;inIIdx) + return aDataCon[nIdxSet].aKs[nIIdx].sName; + else + return null; +} + +function getItemType(aDataCon,nIdxSet,nIIdx) +{ + if(nIdxSetnIIdx) + return aDataCon[nIdxSet].aKs[nIIdx].nType; + else + return 0; +} + +function getNKOff(aDataCon,nIdxSet,nIIdx) +{ + if(nIdxSetnIIdx) + return aDataCon[nIdxSet].aKs[nIIdx].nNKOff; + else + return null; +} + +function getPKOff(aDataCon,nIdxSet,nIIdx) +{ + if(nIdxSetnIIdx) + return aDataCon[nIdxSet].aKs[nIIdx].nPKOff; + else + return null; +} + +function window_OnLoad() +{ + if(gsBgImage&&gsBgImage.length>0) + { + document.body.background=gsBgImage; + } + if(gsBgColor&&gsBgColor.length>0) + { + document.body.bgColor=gsBgColor; + } + document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv()); + loadIdx(); + var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null) + SendMessage(oMsg); +} + +function loadIdx() +{ + if(!gbReady) + { + var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null); + if(SendMessage(oResMsg)&&oResMsg.oParam) + { + gbReady=true; + var oProj=oResMsg.oParam; + var aProj=oProj.aProj; + gbXML=oProj.bXML; + if(aProj.length>0) + { + var sLangId=aProj[0].sLangId; + for(var i=0;inIIdx) + { + if(aDataCon[nIdxSet].aKs[nIIdx].aTopics) + { + var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length; + var nProj=aDataCon[nIdxSet].nProjId; + var sPath=gaData[nProj].sPPath; + for(var i=0;i>1; + sItem=getInnerText(oP[nM]); + + if(compare(sItem,sK)==0) + { + bF=true; + break; + } + else if(compare(sItem,sK)>0) + nE=nM-1; + else if(compare(sItem,sK)<0) + nB=nM; + } + if(!bF) + { + if(nB==nE) nM=nB; + + if(nM+10){ + var nbTag=getElementsByTag(oMatch,"NOBR"); + if(nbTag&&nbTag.length>0) + HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent"); + if (gbCR) + { + if (gbIE4) + tempColl(0).click(); + else + { + var strCommand = tempColl[0].getAttribute("onClick"); + var nstrCommand = strCommand.indexOf(";"); + strCommand = strCommand.substring(0, nstrCommand); + strCommand = strCommand.replace("event", "_event"); + window._event.pageX = oMatch.offsetLeft ; + window._event.pageY = oMatch.offsetTop + 20; + window.setTimeout(strCommand, 100); + } + } + } + } + gsCK=gsBCK; + gbCR=gbBCR; + if(gsBCK!=null) + { + gsBCK=null; + gbBCR=false; + findCK(); + return false; + } + + } + return true; +} + +function clearHighLight() +{ + resetHighLight(gsBgColor); +} + +function IndexWriteClassStyle() +{ + var sStyle=""; + sStyle+=""; + document.write(sStyle); + return; +} + +function window_Unload() +{ + UnRegisterListener2(this,WH_MSG_PROJECTREADY); + UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY); +} + +function onSendMessage(oMsg) +{ + if(oMsg) + { + var nMsgId=oMsg.nMessageId; + if(nMsgId==WH_MSG_SEARCHINDEXKEY) + { + if(oMsg.oParam && oMsg.oParam.sInput) + { + if(gsCK==null) + { + gsCK=oMsg.oParam.sInput; + gbCR = oMsg.oParam.bCR; + findCK(); + } + else + { + gsBCK=oMsg.oParam.sInput; + gbBCR = oMsg.oParam.bCR; + } + } + } + else if(nMsgId==WH_MSG_PROJECTREADY) + { + loadIdx(); + } + } + return true; +} + +if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy) +{ + RegisterListener2(this,WH_MSG_PROJECTREADY); + RegisterListener2(this,WH_MSG_SEARCHINDEXKEY); + goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none"); + goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none"); + goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline"); + + window.onload=window_OnLoad; + window.onbeforeunload=window_BUnload; + window.onunload=window_Unload; + gbWhIHost=true; +} +else + document.location.reload(); + diff --git a/doc/salome/gui/SMESH/whlang.js b/doc/salome/gui/SMESH/whlang.js new file mode 100755 index 000000000..055b5b80e --- /dev/null +++ b/doc/salome/gui/SMESH/whlang.js @@ -0,0 +1,452 @@ +var garrSortChar=new Array(); +var gaFtsStop=new Array(); +var gaFtsStem=new Array(); +var gbWhLang=false; + +garrSortChar[0] = 0; +garrSortChar[1] = 1; +garrSortChar[2] = 2; +garrSortChar[3] = 3; +garrSortChar[4] = 4; +garrSortChar[5] = 5; +garrSortChar[6] = 6; +garrSortChar[7] = 7; +garrSortChar[8] = 8; +garrSortChar[9] = 40; +garrSortChar[10] = 41; +garrSortChar[11] = 42; +garrSortChar[12] = 43; +garrSortChar[13] = 44; +garrSortChar[14] = 9; +garrSortChar[15] = 10; +garrSortChar[16] = 11; +garrSortChar[17] = 12; +garrSortChar[18] = 13; +garrSortChar[19] = 14; +garrSortChar[20] = 15; +garrSortChar[21] = 16; +garrSortChar[22] = 17; +garrSortChar[23] = 18; +garrSortChar[24] = 19; +garrSortChar[25] = 20; +garrSortChar[26] = 21; +garrSortChar[27] = 22; +garrSortChar[28] = 23; +garrSortChar[29] = 24; +garrSortChar[30] = 25; +garrSortChar[31] = 26; +garrSortChar[32] = 38; +garrSortChar[33] = 45; +garrSortChar[34] = 46; +garrSortChar[35] = 47; +garrSortChar[36] = 48; +garrSortChar[37] = 49; +garrSortChar[38] = 50; +garrSortChar[39] = 33; +garrSortChar[40] = 51; +garrSortChar[41] = 52; +garrSortChar[42] = 53; +garrSortChar[43] = 88; +garrSortChar[44] = 54; +garrSortChar[45] = 34; +garrSortChar[46] = 55; +garrSortChar[47] = 56; +garrSortChar[48] = 115; +garrSortChar[49] = 119; +garrSortChar[50] = 121; +garrSortChar[51] = 123; +garrSortChar[52] = 125; +garrSortChar[53] = 126; +garrSortChar[54] = 127; +garrSortChar[55] = 128; +garrSortChar[56] = 129; +garrSortChar[57] = 130; +garrSortChar[58] = 57; +garrSortChar[59] = 58; +garrSortChar[60] = 89; +garrSortChar[61] = 90; +garrSortChar[62] = 91; +garrSortChar[63] = 59; +garrSortChar[64] = 60; +garrSortChar[65] = 131; +garrSortChar[66] = 148; +garrSortChar[67] = 150; +garrSortChar[68] = 154; +garrSortChar[69] = 158; +garrSortChar[70] = 168; +garrSortChar[71] = 171; +garrSortChar[72] = 173; +garrSortChar[73] = 175; +garrSortChar[74] = 185; +garrSortChar[75] = 187; +garrSortChar[76] = 189; +garrSortChar[77] = 191; +garrSortChar[78] = 193; +garrSortChar[79] = 197; +garrSortChar[80] = 214; +garrSortChar[81] = 216; +garrSortChar[82] = 218; +garrSortChar[83] = 220; +garrSortChar[84] = 225; +garrSortChar[85] = 230; +garrSortChar[86] = 240; +garrSortChar[87] = 242; +garrSortChar[88] = 244; +garrSortChar[89] = 246; +garrSortChar[90] = 252; +garrSortChar[91] = 61; +garrSortChar[92] = 62; +garrSortChar[93] = 63; +garrSortChar[94] = 64; +garrSortChar[95] = 66; +garrSortChar[96] = 67; +garrSortChar[97] = 131; +garrSortChar[98] = 148; +garrSortChar[99] = 150; +garrSortChar[100] = 154; +garrSortChar[101] = 158; +garrSortChar[102] = 168; +garrSortChar[103] = 171; +garrSortChar[104] = 173; +garrSortChar[105] = 175; +garrSortChar[106] = 185; +garrSortChar[107] = 187; +garrSortChar[108] = 189; +garrSortChar[109] = 191; +garrSortChar[110] = 193; +garrSortChar[111] = 197; +garrSortChar[112] = 214; +garrSortChar[113] = 216; +garrSortChar[114] = 218; +garrSortChar[115] = 220; +garrSortChar[116] = 225; +garrSortChar[117] = 230; +garrSortChar[118] = 240; +garrSortChar[119] = 242; +garrSortChar[120] = 244; +garrSortChar[121] = 246; +garrSortChar[122] = 252; +garrSortChar[123] = 68; +garrSortChar[124] = 69; +garrSortChar[125] = 70; +garrSortChar[126] = 71; +garrSortChar[127] = 27; +garrSortChar[128] = 114; +garrSortChar[129] = 28; +garrSortChar[130] = 82; +garrSortChar[131] = 170; +garrSortChar[132] = 85; +garrSortChar[133] = 112; +garrSortChar[134] = 109; +garrSortChar[135] = 110; +garrSortChar[136] = 65; +garrSortChar[137] = 113; +garrSortChar[138] = 223; +garrSortChar[139] = 86; +garrSortChar[140] = 213; +garrSortChar[141] = 29; +garrSortChar[142] = 255; +garrSortChar[143] = 30; +garrSortChar[144] = 31; +garrSortChar[145] = 80; +garrSortChar[146] = 81; +garrSortChar[147] = 83; +garrSortChar[148] = 84; +garrSortChar[149] = 111; +garrSortChar[150] = 36; +garrSortChar[151] = 37; +garrSortChar[152] = 79; +garrSortChar[153] = 229; +garrSortChar[154] = 222; +garrSortChar[155] = 87; +garrSortChar[156] = 212; +garrSortChar[157] = 32; +garrSortChar[158] = 254; +garrSortChar[159] = 251; +garrSortChar[160] = 39; +garrSortChar[161] = 72; +garrSortChar[162] = 97; +garrSortChar[163] = 98; +garrSortChar[164] = 99; +garrSortChar[165] = 100; +garrSortChar[166] = 73; +garrSortChar[167] = 101; +garrSortChar[168] = 74; +garrSortChar[169] = 102; +garrSortChar[170] = 133; +garrSortChar[171] = 93; +garrSortChar[172] = 103; +garrSortChar[173] = 35; +garrSortChar[174] = 104; +garrSortChar[175] = 75; +garrSortChar[176] = 105; +garrSortChar[177] = 92; +garrSortChar[178] = 122; +garrSortChar[179] = 124; +garrSortChar[180] = 76; +garrSortChar[181] = 106; +garrSortChar[182] = 107; +garrSortChar[183] = 108; +garrSortChar[184] = 77; +garrSortChar[185] = 120; +garrSortChar[186] = 199; +garrSortChar[187] = 94; +garrSortChar[188] = 116; +garrSortChar[189] = 117; +garrSortChar[190] = 118; +garrSortChar[191] = 78; +garrSortChar[192] = 131; +garrSortChar[193] = 131; +garrSortChar[194] = 131; +garrSortChar[195] = 131; +garrSortChar[196] = 131; +garrSortChar[197] = 131; +garrSortChar[198] = 131; +garrSortChar[199] = 150; +garrSortChar[200] = 158; +garrSortChar[201] = 158; +garrSortChar[202] = 158; +garrSortChar[203] = 158; +garrSortChar[204] = 175; +garrSortChar[205] = 175; +garrSortChar[206] = 175; +garrSortChar[207] = 175; +garrSortChar[208] = 154; +garrSortChar[209] = 193; +garrSortChar[210] = 197; +garrSortChar[211] = 197; +garrSortChar[212] = 197; +garrSortChar[213] = 197; +garrSortChar[214] = 197; +garrSortChar[215] = 95; +garrSortChar[216] = 197; +garrSortChar[217] = 230; +garrSortChar[218] = 230; +garrSortChar[219] = 230; +garrSortChar[220] = 230; +garrSortChar[221] = 246; +garrSortChar[222] = 227; +garrSortChar[223] = 224; +garrSortChar[224] = 131; +garrSortChar[225] = 131; +garrSortChar[226] = 131; +garrSortChar[227] = 131; +garrSortChar[228] = 131; +garrSortChar[229] = 131; +garrSortChar[230] = 131; +garrSortChar[231] = 150; +garrSortChar[232] = 158; +garrSortChar[233] = 158; +garrSortChar[234] = 158; +garrSortChar[235] = 158; +garrSortChar[236] = 175; +garrSortChar[237] = 175; +garrSortChar[238] = 175; +garrSortChar[239] = 175; +garrSortChar[240] = 154; +garrSortChar[241] = 193; +garrSortChar[242] = 197; +garrSortChar[243] = 197; +garrSortChar[244] = 197; +garrSortChar[245] = 197; +garrSortChar[246] = 197; +garrSortChar[247] = 96; +garrSortChar[248] = 197; +garrSortChar[249] = 230; +garrSortChar[250] = 230; +garrSortChar[251] = 230; +garrSortChar[252] = 230; +garrSortChar[253] = 246; +garrSortChar[254] = 227; +garrSortChar[255] = 250; + +gaFtsStop[0] = "a"; +gaFtsStop[1] = "about"; +gaFtsStop[2] = "after"; +gaFtsStop[3] = "against"; +gaFtsStop[4] = "all"; +gaFtsStop[5] = "also"; +gaFtsStop[6] = "among"; +gaFtsStop[7] = "an"; +gaFtsStop[8] = "and"; +gaFtsStop[9] = "are"; +gaFtsStop[10] = "as"; +gaFtsStop[11] = "at"; +gaFtsStop[12] = "be"; +gaFtsStop[13] = "became"; +gaFtsStop[14] = "because"; +gaFtsStop[15] = "been"; +gaFtsStop[16] = "between"; +gaFtsStop[17] = "but"; +gaFtsStop[18] = "by"; +gaFtsStop[19] = "can"; +gaFtsStop[20] = "come"; +gaFtsStop[21] = "do"; +gaFtsStop[22] = "during"; +gaFtsStop[23] = "each"; +gaFtsStop[24] = "early"; +gaFtsStop[25] = "for"; +gaFtsStop[26] = "form"; +gaFtsStop[27] = "found"; +gaFtsStop[28] = "from"; +gaFtsStop[29] = "had"; +gaFtsStop[30] = "has"; +gaFtsStop[31] = "have"; +gaFtsStop[32] = "he"; +gaFtsStop[33] = "her"; +gaFtsStop[34] = "his"; +gaFtsStop[35] = "however"; +gaFtsStop[36] = "in"; +gaFtsStop[37] = "include"; +gaFtsStop[38] = "into"; +gaFtsStop[39] = "is"; +gaFtsStop[40] = "it"; +gaFtsStop[41] = "its"; +gaFtsStop[42] = "late"; +gaFtsStop[43] = "later"; +gaFtsStop[44] = "made"; +gaFtsStop[45] = "many"; +gaFtsStop[46] = "may"; +gaFtsStop[47] = "me"; +gaFtsStop[48] = "med"; +gaFtsStop[49] = "more"; +gaFtsStop[50] = "most"; +gaFtsStop[51] = "near"; +gaFtsStop[52] = "no"; +gaFtsStop[53] = "non"; +gaFtsStop[54] = "not"; +gaFtsStop[55] = "of"; +gaFtsStop[56] = "on"; +gaFtsStop[57] = "only"; +gaFtsStop[58] = "or"; +gaFtsStop[59] = "other"; +gaFtsStop[60] = "over"; +gaFtsStop[61] = "several"; +gaFtsStop[62] = "she"; +gaFtsStop[63] = "some"; +gaFtsStop[64] = "such"; +gaFtsStop[65] = "than"; +gaFtsStop[66] = "that"; +gaFtsStop[67] = "the"; +gaFtsStop[68] = "their"; +gaFtsStop[69] = "then"; +gaFtsStop[70] = "there"; +gaFtsStop[71] = "these"; +gaFtsStop[72] = "they"; +gaFtsStop[73] = "this"; +gaFtsStop[74] = "through"; +gaFtsStop[75] = "to"; +gaFtsStop[76] = "under"; +gaFtsStop[77] = "until"; +gaFtsStop[78] = "use"; +gaFtsStop[79] = "was"; +gaFtsStop[80] = "we"; +gaFtsStop[81] = "were"; +gaFtsStop[82] = "when"; +gaFtsStop[83] = "where"; +gaFtsStop[84] = "which"; +gaFtsStop[85] = "who"; +gaFtsStop[86] = "with"; +gaFtsStop[87] = "you"; + +gaFtsStem[0] = "s"; +gaFtsStem[1] = "e"; +gaFtsStem[2] = "ed"; +gaFtsStem[3] = "es"; +gaFtsStem[4] = "er"; +gaFtsStem[5] = "ly"; +gaFtsStem[6] = "ing"; +gaFtsStem[7] = "ingly"; + + +// as javascript 1.3 support unicode instead of ISO-Latin-1 +// need to transfer come code back to ISO-Latin-1 for compare purpose +// Note: Different Language(Code page) maybe need different array: +var gaUToC=new Array(); +gaUToC[8364]=128; +gaUToC[8218]=130; +gaUToC[402]=131; +gaUToC[8222]=132; +gaUToC[8230]=133; +gaUToC[8224]=134; +gaUToC[8225]=135; +gaUToC[710]=136; +gaUToC[8240]=137; +gaUToC[352]=138; +gaUToC[8249]=139; +gaUToC[338]=140; +gaUToC[381]=142; +gaUToC[8216]=145; +gaUToC[8217]=146; +gaUToC[8220]=147; +gaUToC[8221]=148; +gaUToC[8226]=149; +gaUToC[8211]=150; +gaUToC[8212]=151; +gaUToC[732]=152; +gaUToC[8482]=153; +gaUToC[353]=154; +gaUToC[8250]=155; +gaUToC[339]=156; +gaUToC[382]=158; +gaUToC[376]=159; + +var gsBiggestChar=""; +function getBiggestChar() +{ + if(gsBiggestChar.length==0) + { + if(garrSortChar.length<256) + gsBiggestChar=String.fromCharCode(255); + else + { + var nBiggest=0; + var nBigChar=0; + for(var i=0;i<=255;i++) + { + if(garrSortChar[i]>nBiggest) + { + nBiggest=garrSortChar[i]; + nBigChar=i; + } + } + gsBiggestChar=String.fromCharCode(nBigChar); + } + + } + return gsBiggestChar; +} + +function getCharCode(str,i) +{ + var code=str.charCodeAt(i) + if(code>256) + { + code=gaUToC[code]; + } + return code; +} + +function compare(strText1,strText2) +{ + if(garrSortChar.length<256) + { + var strt1=strText1.toLowerCase(); + var strt2=strText2.toLowerCase(); + if(strt1strt2) return 1; + return 0; + } + else + { + for(var i=0;igarrSortChar[getCharCode(strText2,i)]) return 1; + } + if(strText1.lengthstrText2.length) return 1; + return 0; + } +} +gbWhLang=true; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whmozemu.js b/doc/salome/gui/SMESH/whmozemu.js new file mode 100755 index 000000000..699779f3c --- /dev/null +++ b/doc/salome/gui/SMESH/whmozemu.js @@ -0,0 +1,68 @@ +if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){ + +HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode) +{ + switch (where){ + case 'beforeBegin': + this.parentNode.insertBefore(parsedNode,this) + break; + case 'afterBegin': + this.insertBefore(parsedNode,this.firstChild); + break; + case 'beforeEnd': + this.appendChild(parsedNode); + break; + case 'afterEnd': + if (this.nextSibling){ + this.parentNode.insertBefore +(parsedNode,this.nextSibling); + } else { + this.parentNode.appendChild(parsedNode) + } + break; + } +} + +HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){ + + var r = this.ownerDocument.createRange(); + r.setStartBefore(this); + var parsedHTML = r.createContextualFragment(htmlStr); + this.insertAdjacentElement(where,parsedHTML) +} + + +HTMLElement.prototype.insertAdjacentText = function(where,txtStr){ + + var parsedText = document.createTextNode(txtStr) + this.insertAdjacentElement(where,parsedText) +} +} + +function testScroll() { + // Initialize scrollbar cache if necessary + if (window._pageXOffset==null) { + window._pageXOffset = window.pageXOffset + window._pageYOffset = window.pageYOffset + } + // Expose Internet Explorer compatible object model + document.body.scrollTop = window.pageYOffset + document.body.scrollLeft = window.pageXOffset + window.document.body.scrollHeight = document.height + window.document.body.scrollWidth = document.width + window.document.body.clientWidth = window.innerWidth; + window.document.body.clientHeight = window.innerHeight; + + // If cache!=current values, call the onscroll event + if (((window.pageXOffset!=window._pageXOffset) || + (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) + window.onscroll() + // Cache new values + window._pageXOffset = window.pageXOffset + window._pageYOffset = window.pageYOffset + } + +// Create compatibility layer for Netscape +if (window.gbNav6) { + setInterval("testScroll()",50) +} \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whmsg.js b/doc/salome/gui/SMESH/whmsg.js new file mode 100755 index 000000000..e08cc08ac --- /dev/null +++ b/doc/salome/gui/SMESH/whmsg.js @@ -0,0 +1,64 @@ +var WH_MSG_RESIZEPANE =0x0100; +var WH_MSG_SHOWPANE =0x0101; +var WH_MSG_HIDEPANE =0x0102; +var WH_MSG_SYNCTOC =0x0103; +var WH_MSG_NEXT =0x0104; +var WH_MSG_PREV =0x0105; +var WH_MSG_ENABLEPREV =0x0106; +var WH_MSG_ENABLESYNC =0x0107; +var WH_MSG_ENABLEWEBSEARCH =0x0108; + +var WH_MSG_ISPANEVISIBLE =0x0109; +var WH_MSG_PANESTATUE =0x010a; + +var WH_MSG_SYNCINFO =0x010b; +var WH_MSG_PANEINFO =0x010c; +var WH_MSG_WEBSEARCH =0x010d; + +var WH_MSG_SEARCHINDEXKEY =0x0201; + +var WH_MSG_SEARCHFTSKEY =0x020a; + +var WH_MSG_PROJECTREADY =0x0301; +var WH_MSG_GETPROJINFO =0x0302; + +var WH_MSG_SHOWTOC =0x0401; +var WH_MSG_SHOWIDX =0x0402; +var WH_MSG_SHOWFTS =0x0403; +var WH_MSG_SHOWGLO =0x0404; + +var WH_MSG_SHOWGLODEF =0x0500; + +var WH_MSG_GETTOCPATHS =0x0600; +var WH_MSG_GETAVIAVENUES =0x0601; +var WH_MSG_GETCURRENTAVENUE =0x0602; +var WH_MSG_GETPANEINFO =0x0603; +var WH_MSG_AVENUEINFO =0x0604; + +var WH_MSG_GETSTARTFRAME =0x0701; +var WH_MSG_GETDEFAULTTOPIC =0x0702; + +var WH_MSG_SEARCHTHIS =0x0801; +var WH_MSG_GETSEARCHS =0x0802; + +var WH_MSG_ISINFRAMESET =0x0900; + +var WH_MSG_TOOLBARORDER =0x0a00; +var WH_MSG_MINIBARORDER =0x0a01; +var WH_MSG_ISSYNCSSUPPORT =0x0a02; +var WH_MSG_ISSEARCHSUPPORT =0x0a03; +var WH_MSG_GETPANETYPE =0x0a04; +var WH_MSG_BACKUPSEARCH =0x0a05; +var WH_MSG_GETPANES =0x0a06; +var WH_MSG_INITSEARCHSTRING =0x0a07; +var WH_MSG_RELOADNS6 =0x0a08; +var WH_MSG_ISAVENUESUPPORT =0x0a09; + +function whMessage(nMessageId,wSender,nVersion,oParam) +{ + this.nMessageId=nMessageId; + this.wSender=wSender; + this.nVersion=nVersion; + this.oParam=oParam; +} +var gbWhMsg=true; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whnjs.htm b/doc/salome/gui/SMESH/whnjs.htm new file mode 100755 index 000000000..ccf9b7920 --- /dev/null +++ b/doc/salome/gui/SMESH/whnjs.htm @@ -0,0 +1,15 @@ + + +SMESH reference manual + + + + + + + + + + +<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> + \ 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 index 000000000..d4c80bbb9 --- /dev/null +++ b/doc/salome/gui/SMESH/whphost.js @@ -0,0 +1,526 @@ +var gaProj=new Array(); +var gnChecked=0; +var gsProjName=""; +var gbReady=false; +var goMan=null; +var gbXML=false; +var gsFirstPane=""; +var gServerEnabled=false; +var gsPath=""; +var gbWhPHost=false; +var goDiv = null; +var gsHTML = ""; + +if (navigator.currentNavPen) + gsFirstPane = navigator.currentNavPen; + + +function delayLoad() +{ + if (goDiv&&gsHTML) + { + goDiv.innerHTML=gsHTML; + goDiv=null; + gsHTML=""; + } +} + +function whCom(sName,sComFile) +{ + this.msName=sName; + this.msDivId=sName+"Div"; + this.msIFrameId=sName+"IFrame"; + this.msComFile=sComFile; + this.mbloaded=false; + this.mbShow=false; + this.show=function(bShow) + { + if(this.mbShow!=bShow) + { + if(bShow&&!this.mbloaded) + { + this.load(); + } + + var oDiv=getElement(this.msDivId); + if(oDiv) + { + if(gbIE55||(gbIE5&&gbMac)) + { + var oIframe=getElement(this.msIFrameId); + if(oIframe) + { + if(bShow) + { + oDiv.style.zIndex=3; + if(oIframe!=null) + { + oIframe.style.zIndex=3; + if (!gbIE55) + oIframe.style.visibility="visible"; + } + } + else + { + oDiv.style.zIndex=2; + if(oIframe!=null) + { + oIframe.style.zIndex=2; + if (!gbIE55) + oIframe.style.visibility="hidden"; + } + } + } + } + if (!gbIE55) + oDiv.style.visibility=(bShow==true)?'visible':'hidden'; + this.mbShow=bShow; + } + + } + } + this.load=function() + { + if(!this.mbloaded) + { + if(this.msComFile.length>0){ + var strFile= _getFullPath(getPath(), this.msComFile); + var oDiv=getElement(this.msDivId); + if(oDiv){ + if(gbIE4){ + var nIFrameHeight=oDiv.style.pixelHeight; + var nIFrameWidth=oDiv.style.pixelWidth; + var sHTML=""; + }else{ + sHTML+="100%; height:100%;\">"; + } + oDiv.innerHTML=sHTML; + }else if(gbNav6){ + gsHTML=""; + goDiv = oDiv; + setTimeout("delayLoad()", 100); + } + this.mbloaded=true; + } + } + } + } + this.unload=function() + { + var oDiv=getElement(this.msDivId); + if(oDiv) + oDiv.innerHTML=""; + } + this.getDivHTML=function() + { + var sHTML=""; + if(gbMac&&gbIE4) + sHTML+="
"; + else + if (gbIE5) + sHTML+="
"; + else + sHTML+="
"; + sHTML+="
"; + return sHTML; + } +} + +function whComMan() +{ + this.sName=""; + this.maCom=new Array(); + this.addCom=function(sName,sComFile) + { + var owhCom=new whCom(sName,sComFile); + this.maCom[this.maCom.length]=owhCom; + } + this.init=function() + { + var sHTML=""; + for(var i=0;i 1 && document.body.clientHeight>1) + { + var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null); + SendMessage(oMsg); + } + } +} + +function window_unload() +{ + UnRegisterListener2(this,WH_MSG_GETPROJINFO); + UnRegisterListener2(this,WH_MSG_SHOWTOC); + UnRegisterListener2(this,WH_MSG_SHOWIDX); + UnRegisterListener2(this,WH_MSG_SHOWFTS); + UnRegisterListener2(this,WH_MSG_SHOWGLO); + UnRegisterListener2(this,WH_MSG_GETPANEINFO); +} + +function onSendMessage(oMsg) +{ + if(oMsg) + { + var nMsgId=oMsg.nMessageId; + if(nMsgId==WH_MSG_GETPROJINFO) + { + if(gbReady) + { + var oProj=new Object(); + oProj.aProj=gaProj; + oProj.bXML=gbXML; + oMsg.oParam=oProj; + } + else + return false; + } + else if(nMsgId==WH_MSG_SHOWTOC) + { + if(goMan) + goMan.show("toc"); + var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc"); + SendMessage(onMsg); + onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null); + SendMessage(onMsg); + } + else if(nMsgId==WH_MSG_SHOWIDX) + { + if(goMan) + goMan.show("idx"); + var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx"); + SendMessage(onMsg); + onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null); + SendMessage(onMsg); + } + else if(nMsgId==WH_MSG_SHOWFTS) + { + if(goMan) + goMan.show("fts"); + var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts"); + SendMessage(onMsg); + onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null); + SendMessage(onMsg); + } + else if(nMsgId==WH_MSG_SHOWGLO) + { + if(goMan) + goMan.show("glo"); + var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo"); + SendMessage(onMsg); + onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null); + SendMessage(onMsg); + } + else if(nMsgId==WH_MSG_GETPANEINFO) + { + oMsg.oParam=goMan.getCurrent(); + return false; + } + } + return true; +} + +if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy) +{ + RegisterListener2(this,WH_MSG_GETPROJINFO); + RegisterListener2(this,WH_MSG_SHOWTOC); + RegisterListener2(this,WH_MSG_SHOWIDX); + RegisterListener2(this,WH_MSG_SHOWFTS); + RegisterListener2(this,WH_MSG_SHOWGLO); + RegisterListener2(this,WH_MSG_GETPANEINFO); + + if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)) + { + window.onresize=window_resize; + } + else if(gbIE4) + { + window.onresize=window_resize2; + } + window.onload=window_OnLoad; + window.onbeforeunload=window_MyBunload; + window.onunload=window_unload; + gbWhPHost=true; +} +else + document.location.reload(); + diff --git a/doc/salome/gui/SMESH/whproj.htm b/doc/salome/gui/SMESH/whproj.htm new file mode 100755 index 000000000..455bec74d --- /dev/null +++ b/doc/salome/gui/SMESH/whproj.htm @@ -0,0 +1,24 @@ + + +project description + + + + + + + + + + + \ 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 index 000000000..0e235159b --- /dev/null +++ b/doc/salome/gui/SMESH/whproj.js @@ -0,0 +1,82 @@ +var gaProj=new Array(); + +gaProj[0]=new project(""); + +function setLangId(sLangId) +{ + gaProj[0].sLangId=sLangId; +} + +function setDataPath(sPath) +{ + if(sPath.length!=0) + { + if(sPath.lastIndexOf("/")!=sPath.length-1) + sPath+="/"; + gaProj[0].sDPath=sPath; + } + else + gaProj[0].sDPath=""; +} + +function addToc(sFile) +{ + gaProj[0].sToc=sFile; +} + +function addIdx(sFile) +{ + gaProj[0].sIdx=sFile; +} + +function addFts(sFile) +{ + gaProj[0].sFts=sFile; +} + +function addGlo(sFile) +{ + gaProj[0].sGlo=sFile; +} + +function addRemoteProject(sProjRelPath) +{ + gaProj[gaProj.length]=new project(sProjRelPath); +} + +function project(sPPath) +{ + this.sPPath=sPPath; + this.sLangId=""; + this.sDPath=""; + this.sToc=""; + this.sIdx=""; + this.sFts=""; + this.sGlo=""; +} + +window.onload=window_OnLoad; + +function window_OnLoad() +{ + gsName=document.location.href; + gsName=_replaceSlash(gsName); + var nPos=gsName.lastIndexOf("/"); + if(nPos!=-1) + gaProj[0].sPPath=gsName.substring(0,nPos+1); + else + alert("Error in Loading navigation component. Please regenerate WebHelp."); + patchPath(gaProj); + if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function") + { + parent.putProjectInfo(gaProj); + } +} + +function patchPath(aProj) +{ + for(var i=1;i + + diff --git a/doc/salome/gui/SMESH/whproxy.js b/doc/salome/gui/SMESH/whproxy.js new file mode 100755 index 000000000..222927a0a --- /dev/null +++ b/doc/salome/gui/SMESH/whproxy.js @@ -0,0 +1,63 @@ +var gbInited=false; +var gWndStubPage=null; +function getStubPage() +{ + if(!gbInited) + { + gWndStubPage=getStubPage_inter(window); + gbInited=true; + } + return gWndStubPage; +} + +function getStubPage_inter(wCurrent) +{ + if(null==wCurrent.parent||wCurrent.parent==wCurrent) + return null; + + if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname) + return wCurrent.parent; + else + if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent) + return getStubPage_inter(wCurrent.parent); + else + return null; +} + +function RegisterListener(framename,nMessageId) +{ + var wSP=getStubPage(); + if(wSP&&wSP!=this) + return wSP.RegisterListener(framename,nMessageId); + else + return false; +} + +function RegisterListener2(oframe,nMessageId) +{ + var wSP=getStubPage(); + if(wSP&&wSP!=this) + return wSP.RegisterListener2(oframe,nMessageId); + else + return false; +} + +function UnRegisterListener2(oframe,nMessageId) +{ + var wSP=getStubPage(); + if(wSP&&wSP!=this&&wSP.UnRegisterListener2) + return wSP.UnRegisterListener2(oframe,nMessageId); + else + return false; +} + +function SendMessage(oMessage) +{ + var wSP=getStubPage(); + if(wSP&&wSP!=this&&wSP.SendMessage) + return wSP.SendMessage(oMessage); + else + return false; +} + +var gbWhProxy=true; \ 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 index 000000000..9634684e9 --- /dev/null +++ b/doc/salome/gui/SMESH/whres.xml @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + </fonts> + <button normal="" hover="" /> + <editwith value="20" /> + </form> + <background color="#ffffff" img="" /> + <fonts> + <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" /> + <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" /> + <empty name="" size="8pt" color="" style="" weight="" decoration="" /> + </fonts> + <activebackgroundcolor attr="#c0c0c0" /> + <margin attr="" /> + <indent attr="" /> + </index> + <fts> + <form> + <fonts> + <title name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="none" /> + </fonts> + <button normal="" hover="" /> + <editwith value="20" /> + </form> + <background color="#ffffff" img="" /> + <fonts> + <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" /> + <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" /> + <error name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" /> + </fonts> + <activebackgroundcolor attr="#c0c0c0" /> + <margin attr="" /> + <indent attr="" /> + </fts> + <glossary> + <background color="#ffffff" img="" /> + <fonts> + <normal name="Tahoma" size="8pt" color="#000000" style="Normal" weight="Normal" decoration="none" /> + <hover name="Tahoma" size="8pt" color="#000080" style="Normal" weight="Normal" decoration="underline" /> + </fonts> + <activebackgroundcolor attr="#c0c0c0" /> + <margin attr="" /> + <indent attr="" /> + </glossary> + </paneskin> +</resource> \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whrstart.ico b/doc/salome/gui/SMESH/whrstart.ico new file mode 100755 index 0000000000000000000000000000000000000000..bffcd6eb9409a6e1121695adf763c2ab477ce902 GIT binary patch literal 10134 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 UFMH1!hGZ~$el#mfpYA#HU*7IM9RL6T literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/whskin_banner.htm b/doc/salome/gui/SMESH/whskin_banner.htm new file mode 100755 index 000000000..afe2d3f06 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_banner.htm @@ -0,0 +1,41 @@ +<html> +<head> +<title>About WebHelp                                                                                    + + + + + + + + + + + + + + + + + + + + + + +
+

Author: eHelp Corporation

+

Powered by: WebHelp 5.00 +
Generated by: RoboHelp 2002

+

www.ehelp.com

+
+ + \ 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 index 000000000..5b506c2cb --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_blank.htm @@ -0,0 +1,10 @@ + + +Blank Page + + + + + + + diff --git a/doc/salome/gui/SMESH/whskin_frmset01.htm b/doc/salome/gui/SMESH/whskin_frmset01.htm new file mode 100755 index 000000000..6916dee97 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_frmset01.htm @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + \ 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 index 000000000..357fc8224 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_frmset010.htm @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + \ 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 index 000000000..46c2ea732 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_info.htm @@ -0,0 +1,20 @@ + + +WebHelp 5.00 + + + + +

WebHelp 5.00 System Info

+ + + + + + + + + +
Start Page smesh.html
Skin Name Default
Generating Time 17:39 02/24/2004
Language ID 1033
Compile Script webhelp5_compile_script.xml
Compile Build Version 10.00.949
Product Name WebHelp 5.00
Authoring Tool Name RoboHelp 2002
+ + \ 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 index 000000000..66e8c5329 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_mbars.htm @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + \ 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 index 000000000..aab44ddea --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_papplet.htm @@ -0,0 +1,357 @@ + + +Navigation Pane + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whskin_pdhtml.htm b/doc/salome/gui/SMESH/whskin_pdhtml.htm new file mode 100755 index 000000000..ffb243969 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_pdhtml.htm @@ -0,0 +1,57 @@ + + + Navigation Pane + + + + + + + + + + + + + + \ 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 index 000000000..35f0155b8 --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_plist.htm @@ -0,0 +1,204 @@ + + + Navigation Pane + + + + + + + + + \ 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 index 000000000..8b705444c --- /dev/null +++ b/doc/salome/gui/SMESH/whskin_tbars.htm @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + \ 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 index 000000000..2a61402a9 --- /dev/null +++ b/doc/salome/gui/SMESH/whst_topics.xml @@ -0,0 +1,81 @@ + + + + + + + + + +";]]> + + + + +"]]> + + + + +"; +OutputInTopicNavBarDataWebSearch.form();]]> + + + + + + + + + + +";]]> + + + diff --git a/doc/salome/gui/SMESH/whstart.ico b/doc/salome/gui/SMESH/whstart.ico new file mode 100755 index 0000000000000000000000000000000000000000..365eceac87e1f84509afe98f098b13c5012ebef8 GIT binary patch literal 10134 zcmeI1PiR}o8Nfd&V|guvlXX+rg%YbmhhTCDITQjRQNxSv7~?~T4|_R~ zle~+2EZY1zXoELKm{OD;V-s=`MuAdfA99N+ArvDD3&O`hL)G6mGf#SwWhYyjmSsKm zym|9|zxn2yd83&(Z$uK3l4Hk?iH4I2k>8MJvzin6(?=qIK<3r*#em2!(yDj-KawKf z9u+x#+U37UiTr*<^S=DBNb?iyl2sy0Oo-tsQnlB9mr#U%2}74~<(3#qwOU2dvj5U* z=^c?j73pQ)U`$X@zbwj^nd$n>&QNh` zrC!$pQ-7}Q%#fPZTC=%>fkHh9NU-1%d++@ad3!-*cTnUtv3kVCkbcxquvcW{U!zk_ zd39g=DN8I66GG<`LSvIYmk=f5Fmwr5Zr`h)QmK@TjEuh&yYIe}H*em^ z?mt_yy0RkGzg1=TuYbg;^Tcb!MdCx^GvZ6)uH^GAnVf7SK!y-H{iG6x8WP`$Kg-F^8_EBfjU5 zK=&{%^TbKw9I;4*-@kjLwGO`lzXiVy-+;V0o4 zqpc$R6XlP?pJ23|WVD@Ow4GzLjWgP2;pgF(;Fsao;5XsN;4i>mg}(`Z8~z@A1%4fV z1AYsB8@>U59{w8qBK$-6XYeoKcj1|T7|$)nbBpoZVmyz*Ux2>~e-r*T{5|*z{5t#w z{1*H+d;|VC{0aDz@Mqx9!H>hw!q3Am!7szF!EfsC0rENz)Nb|G@Jz%Y?9yM*}#_3}K6?6cvwa>sd(kiLK8SoDe z`=UPLqLw8LS$)bqyl=D}RvmkW=GV3X6#d2q+r(H0YYo10IzU|C18C)4YTCxbb-m*{ z(zzD9I`KYA%SA-2&?Oaqfy)yIa(Dt67qV% zD_Z7vBE!VgQ;~tcAV)t)nWL0Fij7fgOKqy{SkU*BW5g^mdQU0%k&CD&guIj>3PYE0 z<(3$}^L_5{J>~E{gO#WbcX%Fs15UX8yGnN+zAnO`;0KW;)U)oK+9j_}V5yi49|-wgjBhky_( z92A1UbOa{3I#GuxcqB-#EY@ch7JS~ge52v>fmBu|>NCv+X90DkY;1W8Xue_=v6plC z=O32{GmV`QoByfi9?Z@x+$eo5BHWMU1bdC0%cYVGm5xu9DXaEx{Jc~wNnvbtu`pP# z%`_T;l!`K5Sy`NzuGa$q87j(Dr7VWL0tFpMl}eUuT`d%fQX-#UtOfPLOtW#B3h!4c zzpdArLC{1`UM4FOM;7K2{Dnq4GI|@ zgYDmx*JH!VYuyS{$gKtp;a*EYHJ2Sk-dt$^8r6`Qu9jDi^iP zH)N)*P~~bqm-q7EGekDr$Dg27;**31FMKdNdli2o`4HmSkz7u^{{gcEvjF1z^>R5M z1k>6s3f#zjYUhtqpmL;6-q^YL@#T_E9ED_g)rxs6Gg=@h3?Y{BFLNsy#R({Isi3$7 zF?mf3&|YfbOC_D-aArN7HsG0v%v5fy?BunJ27aM1R2(X)JXaR02(o$jMgc2BB`dd2 zefnb3@|UR<#Z)<0UR3XQ3VG^nPrRm_%jK;+unlNW(6`Dt8eF3n2n|1tVJi44m*Xiq zIgdblS%dj%g#xwP4sR5!P%jgeWNx}Xp^An0m^Kru7pXuWZ!{WQnP6%HkLtCa@rKGig&Iq{UN+!0})#}09Cidid<($|{jJ9Vfj->jqbXPW=SedQH0i<&=Y|3&lP zYW`Es5H$UX$lo=^4({T(_bW>AL;Y2M)PMC)+hhHvfNj@X-`*B#qHcCwe?&0BoWr)yWhdI8_Zem|F7!#Eg#_x{_j>UwlQKSfToQ_m+YZyoYq>Gd#z zPx?JUJ4KIFXfGaF-+b?oXqR>K-g#f3ho{co0&SiHlj!uMZC_72dOU)Uk@{tb4?^~w z1n=>%hc_lN>d=VS{&z<&iLM63D81FH^dQG}=pNp~1NKZuA6Iw((~QWR_K~~i2{97z z(*`#@t$o`DTHubCB3`@4^N#i7O+C^9$Kg;yYq93l0pW;9M{~u0Y+07r-6o5e2{*Ze6^73befc zmBkutc{`XpB@|Ca_EYwwpm&M^srKzaw7fc!Q9Nef_l;`?Uk@$se!BKhjvnOsS@-QY zQrn&2D$tRrK{2hP-P}F1gcZoKTkRaIMdW7 z*iNOuJ7~&9KKQg_>7Y9c9|Zhhb-Igk`>OAoM*Fa6U*`8|(Y}p++~Gb|_pJx_>%Rdt Cw@GdQ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/whstart.js b/doc/salome/gui/SMESH/whstart.js new file mode 100755 index 000000000..0cb5e2c8d --- /dev/null +++ b/doc/salome/gui/SMESH/whstart.js @@ -0,0 +1,244 @@ +RegisterListener2(this, WH_MSG_GETSTARTFRAME); +RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC); +RegisterListener2(this, WH_MSG_MINIBARORDER); +RegisterListener2(this, WH_MSG_TOOLBARORDER); +RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT); +RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT); +RegisterListener2(this, WH_MSG_ISAVENUESUPPORT); +RegisterListener2(this, WH_MSG_GETPANETYPE); +RegisterListener2(this, WH_MSG_GETPANES); +RegisterListener2(this, WH_MSG_RELOADNS6); + +if (gbNav6) +{ + var gnReload=0; + setTimeout("delayReload();",5000); +} + +function delayReload() +{ + if(!gnReload) + { + if(nViewFrameType&&nViewFrameType==1) + document.location=document.location; + } +} + +var gsToolbarOrder = "toc|fts|glo|blankblock|banner"; +var gsMinibarOrder = "blankblock|hide2|"; + +var gsTopic = "files/introduction_to_smesh.htm"; + +if (location.hash.length > 1) + gsTopic = location.hash.substring(1); + +function setToolbarOrder(sOrder) +{ + gsToolbarOrder = sOrder; +} + +function setMinibarOrder(sOrder) +{ + gsMinibarOrder = sOrder; +} + +function onSendMessageX(oMsg) +{ + var nMsgId = oMsg.nMessageId; + if (nMsgId == WH_MSG_GETSTARTFRAME) + { + oMsg.oParam.oFrame = this; + return false; + } + else if (nMsgId == WH_MSG_GETDEFAULTTOPIC) + { + if (this.cMRServer && cMRServer.m_strVersion) + { + if (cMRServer.m_strURLTopic); + { + oMsg.oParam.sTopic = cMRServer.m_strURLTopic; + return false; + } + + } + oMsg.oParam.sTopic = gsTopic; + return false; + } + else if (nMsgId == WH_MSG_TOOLBARORDER) + { + var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null); + if (SendMessage(oMsg1)) + { + if (oMsg1.oParam) + { + if (this.cMRServer && cMRServer.m_strVersion) + { + var aToolbarOrder=cMRServer.m_strAgentList.split(";"); + var i=0; + for (i=0;i0) + frame=getframehandle(frames[i].frames,framename); + if(null!=frame) + return frame; + } + } + return frame; +} + +function AddToArray(arr,obj) +{ + var bFound=false; + for(var i=0;ii) + return gArrayCompoentsArray[i]; + else + return null; + } + } + return null; +} + +function CreateComponentsArray(nMessageId) +{ + var len=gArrayRegistedMessage.length; + gArrayRegistedMessage[len]=nMessageId; + gArrayCompoentsArray[len]=new Array(); + return gArrayCompoentsArray[len]; +} + +function listener(sName,oWindow) +{ + this.sName=sName; + this.oWindow=oWindow; +} + +function RegisterListener(windowName,nMessageId) +{ + var arrayComponents=GetComponentsArray(nMessageId); + if(arrayComponents==null) + arrayComponents=CreateComponentsArray(nMessageId); + + if(arrayComponents!=null) + { + for (var i=0;i0){ + for(var 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 Ou1P#Q%Gbz0tN#PC0b&>c literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_abgi.jpg b/doc/salome/gui/SMESH/wht_abgi.jpg new file mode 100755 index 0000000000000000000000000000000000000000..f0729b7e5b4c7c54063069ca80a3c4194e8c972a GIT binary patch literal 24385 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�_nkqF@BmW00=Ri)?Ih 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∨Sp@Fa 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 F{ukFtg|z?x literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_abgw.jpg b/doc/salome/gui/SMESH/wht_abgw.jpg new file mode 100755 index 0000000000000000000000000000000000000000..74de750c656930519ea1f3f2ca4d813df65f2606 GIT binary patch literal 22665 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 BznB03 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_abte.jpg b/doc/salome/gui/SMESH/wht_abte.jpg new file mode 100755 index 0000000000000000000000000000000000000000..78fabbbad481aa5d5da0b50bc17fb1bcc6ec2418 GIT binary patch literal 8785 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_abti.jpg b/doc/salome/gui/SMESH/wht_abti.jpg new file mode 100755 index 0000000000000000000000000000000000000000..92c2d68ee27624e3a56016b432caf9ba0560c3ee GIT binary patch literal 6985 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 D-2ODE literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_abtw.jpg b/doc/salome/gui/SMESH/wht_abtw.jpg new file mode 100755 index 0000000000000000000000000000000000000000..1fdd1a8dc9acc6b6fb3681debe1ada91041ff355 GIT binary patch literal 7382 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 R!-3(^#)V}^r`Of|{{T5O_&NXp literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_fts_h.gif b/doc/salome/gui/SMESH/wht_fts_h.gif new file mode 100755 index 0000000000000000000000000000000000000000..feb79ae82af9eee69c53f26bb0259032aa075e4c GIT binary patch literal 188 zcmZ?wbhEHb6k-ry*vtR||BZo|;r~pAw6rq}GyfZ(`9E{!|Cwk00|8hbg;4y-!pXqE z#h?Qc1)0IXk;x#+A>*+@!I6POSS!RrfT58|K-tSA;Q<3fBLi2!k`9H&MbLd(38!(I_bg5(mI)e{m-^3EslCSX>cVorP8PRGb9PR6=s1mS VaaxGfR)s^WLRThtQ&FfcSSumvosU}!wfETS0aGr@3? zdxspSh(KrHq9aoT-KUjs8mD>B;@}XNpmBMr|7?}oYb>uWEcfeVa+@?~=Y)rj)7TcL Tg-C5xIJ7EsWs<0b0E0CE)e1Lr literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_glo_h.gif b/doc/salome/gui/SMESH/wht_glo_h.gif new file mode 100755 index 0000000000000000000000000000000000000000..12223e5cc1fce0341697756352f9b0c62a8bda9e GIT binary patch literal 142 zcmZ?wbhEHb;*%)rSZ<1s;@p_xON zNrEGx;cz=YBa6U|fCh#RKGmQj9D&M>U1H90Uv5lDKGrGE-oazpu;k=q>F}tW&P_`^ cr|TEqTeC7i(Tj<(iA(m^<^_R`jEoG{0RC$x-v9sr literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_glo_n.gif b/doc/salome/gui/SMESH/wht_glo_n.gif new file mode 100755 index 0000000000000000000000000000000000000000..32803ebd9c781fc4af17f14b9adb90110ad849a1 GIT binary patch literal 142 zcmZ?wbhEHb@X1N5r3sx&Z zBLV=4v;qQ96f125gAlJ(vTB>)VTcF>e1HjSQzA4<9|pnMWEc<%-et>uWHyKA(+U!g z4uJt+@c?WLQ_}Q_eFTV@14JlfC4%*0>~0PKD^E&u=k literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_idx_h.gif b/doc/salome/gui/SMESH/wht_idx_h.gif new file mode 100755 index 0000000000000000000000000000000000000000..2df1b16a21c18de76f78db446889be1049f15b00 GIT binary patch literal 168 zcmZ?wbhEHbHIyb7gPvHyQ kB=ho<%9&Y;?rBphgO@tBstIyPcx}nJ(B#3&#=>9?0DB23GXMYp literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_idx_n.gif b/doc/salome/gui/SMESH/wht_idx_n.gif new file mode 100755 index 0000000000000000000000000000000000000000..fd193a0f7e3769bce176e5d3218e2da3c9be2047 GIT binary patch literal 168 zcmZ?wbhEHbHIyb7gPvHyQ kB=ho<%9&Y;?rBphgO@tBstIyPcx}nJ(B#3&#=>9?0JH-snE(I) literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_logo1.gif b/doc/salome/gui/SMESH/wht_logo1.gif new file mode 100755 index 0000000000000000000000000000000000000000..2ef5700f23ab96a8894ca981f6dd4e03d49f15da GIT binary patch literal 1405 zcma)5|4$WE6hEw{WP@2sq*B9~s6A-aMR*TnGR<$WUK)=_0wxAtNI`_D1ml-yB@+dP zsBc$OLBW;418aN}T?NWeuY}?Bfsicx`ks)f$(obf=f1z7^V``u=W{-v&$)NSs^v!0 zhCK42aU!KdDkYTSN-?EKXHqIDl;lb>B}o^BR6;1hm0(Jc?&VT(p*UBZDNcHnNyUU> zTrs8?0ZEZmBouK)Oc4@b0~%NuMmOm_I)s#5N+u=gwaA2!f=j`qAk6|rE+prYGs#Jl zLN61Namkou1dbS$BqVW3OcJ(&HNZd`EI|u3ECx29frVkxf^?4HLNFmn>%&@PoD0qb zCoLB&P-I*%CKy3INTF8{7sLcX9{d1JOv4W72MH(yYk+|?SfUj?uo&2Y1{P`ObQw8< zaZcJu=)+oMjB!Tr6>`A>MNW(pe1y|50KCu+qoEd7!Vl2IH0%H;2!=wi1{g?V612br zi-8Sj(kIg0C?iJ@E(Rl^4{MPz(vL&?>bbWrdQPZq_FP5xdW_btd%V-59y|0AJPI|E zhqS(lhld9CK;t>!N-z(auxesr;>C*>&!0aZA0L1G__5378Xg|*>+9?2=xAtYa5x-x zyS==;+-9>C6cl7Ir5@_O*4oZ-Tq?);~Jw)@?`Uhkdf_@b?ChvDevnOl;F z{O)wEUF3fwWN`b)p`hmZ74ZqyTirWDCr?jHsG7Z?C^Xjcp&@tK+MJ-tiMM~t9y(JK zd-+uTg%MTgfphNkTBpS5^mmrr#| z=1}8IkeVGn}pQ zHCVpPI1rxNZ#=ktLsVCB(fa0eo*wA+OG$X#zE39BrDL!$%heFLP(bmTWMLtsXdezCQX!b?w-hht2M>_D5ZYzs^3rKC2$Fu?!mp%pGtM0mD$)S0T6oZ8-Q*iUS3+ zDzgE-%n30xlNRs;5XMTtl6*OipdgX0;uj$63{EkQgRk@UFX;Yu=iYnnIp@B&EOx2M zye^*tXpBhdkV*-qxKd0h(wUS>3MILcOi9v3A(aqHa3z=$qJXNr>^Wl}Mr z7*~ubMnF;|6$wRL5mST&*nkEWhS5!Wj}9Rvmy$_IdMz>`q~KC8DM+(GkqgPWP8G$24B?(Df5|f0jU=1*k220RF4U2&dXkcNOv>=@$xDZST()zF#8RvpC z!AZ*n3ltd_j0r|i4^rqA#04=ykOx0N6VtE*`auE;!5Uy74VGvH4=e^Ypn*l&IbBAM zV4RaS68f+f8DpFge1%-FK#>#U1Rvov3;-{*!)U05mGA>JF%3Jw34);ztN{knm;^2G zz+zwnn)HcuH_FHngp0vQ=)+oMjP&EszWVO1i@ppt)FsLu|41fN2U zU1*M@NT-hCCimS65eCTU%XSo!jlM ztgI|6E8DSSM?pb>-EL1$PftxvO-xL*SS)dIanaGyixw?1o6Sa}apA&+c+rD zNfU@hDNHx(KS7ff-Rhk3c74^E!pVWJynC+xKzs4DS^mMz)zxQ9XR^%xa|s(llR}r2 z1jioxuG2Md`IFVX4K?R0XT4bz{IaFL*)`ZvlVS57ip{xpY2?KG(bTHa`@JWp_&u}KZK_yd+ndw= zha=RHKc}R0(C=zQuhW#Y?VB9y!1iTl`Lj_SC#@D!ZPmbq>`6%{de#gqZfY|Hy5kS* zG1S*QW3W1sFK?qS&-rgzkUFDp_5M{o$?vcK`l*4^%p04(jTpGu;s5EX)ajO}X-VCl zH9x;KvnO}N6T7;qHLas$XMA{ZS+O(QdeCt#tFSu$N=k(#^7`qoc+K9Fl0jZx{`q?w z^8W4ZKJsc%c#T4}) D2$`RH literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_next.gif b/doc/salome/gui/SMESH/wht_next.gif new file mode 100755 index 0000000000000000000000000000000000000000..8ea834d5e7032dbe1ad10ea4cddaf55ac91156cc GIT binary patch literal 73 zcmZ?wbhEHbu&t4cF*@n~ Vey2jt%i6i7QHe!nS-}hp)&O=i6J!7Y literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_next_g.gif b/doc/salome/gui/SMESH/wht_next_g.gif new file mode 100755 index 0000000000000000000000000000000000000000..c0e9758468e31a83aea3f3d353e5d88920ca011b GIT binary patch literal 73 zcmZ?wbhEHb0c=>&3LIf YBPcn4pOU*-tpa=3)XoK`gBTdB0bkn^WB>pF literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_prev_g.gif b/doc/salome/gui/SMESH/wht_prev_g.gif new file mode 100755 index 0000000000000000000000000000000000000000..86479091649ebee62ce8a95f7880d3aa95305ce1 GIT binary patch literal 73 zcmZ?wbhEHbutpmhBaYhCPCMFj~25SJyItL8^ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_sync.gif b/doc/salome/gui/SMESH/wht_sync.gif new file mode 100755 index 0000000000000000000000000000000000000000..0ef174735ff57f43ff709fc824f326c8f7d9a772 GIT binary patch literal 846 zcmZ?wbhEHb1(%oXCs~51m>$<%ME692A|p#B_yPer#Ci)*`POB%^7dz+epkpkfn) literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab0.gif b/doc/salome/gui/SMESH/wht_tab0.gif new file mode 100755 index 0000000000000000000000000000000000000000..955c42f47a076d635e5f28250996e98e7cd7c076 GIT binary patch literal 285 zcmV+&0pk8gNk%w1VeSDK0HXf@|NsBx<>kP@z`wu00002Mz`y_i00000A^8LW000F5 zEC2ui0PX=806+ucIJ(^aFv>}*y*TU5yZ>M)j$~<`XsWJk>%MR-&vb3yc&_h!@BhG{ za7Zi~kI1BQ$!z`v(5Q4uty-_xtai)odcWYXcuX#v&*-#z&0ag-@VIs;jK6uCK7M zvayD>wzs&sy1Tr+zQ4f1!o$SH#>dFX%FE2n&d<=%($mz{*4NnC+S}aS*#O|-;^XAy j=I7|?>g(+7?(gvN^7Hid_V@Vt`uqI*-v0piBme+AZ&j?@ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab1.gif b/doc/salome/gui/SMESH/wht_tab1.gif new file mode 100755 index 0000000000000000000000000000000000000000..b3ec41d6d8a6a3f2d06b41f8ea70572610acbfdb GIT binary patch literal 237 zcmZ?wbhEHbbYl=@*vtR|4Pe{=rW$~}1`s%K;J|;N_$ATn&sXV7$()z5O37izzJfJ!?b`Q$c;Bvk-@SYO2XPn1zT*pp zB8-__JR?GW^@#djjxO6e*VI2&EU2lc@8~ll%UIi3@4F^ZKI_$wf6tQps&@3Ne^E|F zLup%Hd_-awznW-Ok)e6q?^?=|z+uGd_>VZ)}) RYqxIm-m%k}fnAWn8USudW4QnT literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab2.gif b/doc/salome/gui/SMESH/wht_tab2.gif new file mode 100755 index 0000000000000000000000000000000000000000..08fb0ce4fe630b4dd33f1f8d099945ff48531b0c GIT binary patch literal 226 zcmZ?wbhEHbv||uu*vtR|4Pe{=rW$~}1`s%K;J|;N_amdW@3l){E)f@i$$g^S+H!mvz_+Zb?dcPZQ>AQ Gum%87{9UmC literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab3.gif b/doc/salome/gui/SMESH/wht_tab3.gif new file mode 100755 index 0000000000000000000000000000000000000000..1819c8e8f786ed0b62007b198cb69dca982c49f6 GIT binary patch literal 209 zcmZ?wbhEHbG-eQG*vtR|4Pe{=rW$~}1`s%K;J|;N_tQPIo@N&L#vFwFx*~w?0Zi@IVyZ?G?SxwgB2Sq=oM{i31m{lp1 o6|Yd&+>jp=)lsO@?iOr5ams`##?z)-O`hdDXRZYUyC8!#0CKBV4FCWD literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab4.gif b/doc/salome/gui/SMESH/wht_tab4.gif new file mode 100755 index 0000000000000000000000000000000000000000..1a6fc4f4aa68d1b8fdd35c21c002f4a117133639 GIT binary patch literal 198 zcmZ?wbhEHb)MF53*vtR|4Pe{=rW$~}1`s%K;J|;N_j1LiMqShUz?=`!;bD@_^L1sSXX;;C5C literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab6.gif b/doc/salome/gui/SMESH/wht_tab6.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe312d238ad98026d9171f20077f95e372a82752 GIT binary patch literal 212 zcmZ?wbhEHbG-D8D*vtR|4Pe{=rW$~}1`s%K;J|;N_*vtR|4Pe{=rW$~}1`s%K;J|;N_$5v+f;9S4GUsJ*HDtct_r7pLLGEFr+V_8Ee0O;8o<&2<`FKKp zgqPAJzo)&PT}q5Wa-}I#9eTspT+b9~?!S8>tcA^f&bH2eyZmdZ{r>)&Ny+JT znL<_d9VJB_oh^Np#xCXkwNtyg@*7p#oATmQ7Br?-^r+2=G;7V8xWXY%WBJ+@8#e`Q P+3L7`hb;rUAcHjkosMI* literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_tab8.gif b/doc/salome/gui/SMESH/wht_tab8.gif new file mode 100755 index 0000000000000000000000000000000000000000..c80acc8d57852a246362d981ae89d4148f157987 GIT binary patch literal 225 zcmZ?wbhEHbv|$is*vtR|4Pe{=rW$~}1`s%K;J|;N_WX{W2)us4ipV)^3U#ew_*Or&hV{|y+vg7j?6Bkay z$U8Fi;%Ua8k9bV=dSI~ftX`|PkLjzUMS>3vSbJQ%3r}pVys>U^^SeKxMtvvmrk72WmQa=UOuH{qFu0FTg{|-^09LkFYj1xWvjh*-FnScs{|RW E0hmEvxBvhE literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_toc1.gif b/doc/salome/gui/SMESH/wht_toc1.gif new file mode 100755 index 0000000000000000000000000000000000000000..515c352de2fa5d8ae7def9c3590b6ea3c49d26e5 GIT binary patch literal 124 zcmZ?wbhEHb6krfwSoEI(2>$>7&oJ-*fddDQ9Xr<2(gG4Ur-`p57buiKh)yOmArD}p8*#ut zAm9+x5Cb$Q@e~{w3~fk5%OknCMvY^t9znt%#-cJ)bL0xUpunZNsUt@ujR3%f=Li~Z z5hd~fCb|&^m|z$VK@BlLqZ3%*z+h-Y+G9oW8rP_C92-NB@Q1Oe%sm#E)*lpUqp{Dl zq<~7f$9hwg!I;vCZ70KloIJ$x6IM7#lOT=H0b4?N@RUYTp-?E5N|j2bTCHYTR;$(O z^?IJ?jYgx{Y_{9&PN&oDc6+^EzuzAW2E*ZSG#YL8{`-*s|L4HQ)^VbDbR=5iKSA5> z((Uox<+lqT@Bdicb>eezWjfzpXg#^L_I)XzC||u&Svz?0;oilWEwu3S(*s(qx8IM} zr)T%SSzP{b;pv&V@{O0*XGVu#&vCYXZ-alGozL#f?`WMr^yS&ko98b6{`%Zr9DVh8 Xd1Wd8HoIr4wQu54=hEe|F`E1fN0FWD literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_toc3.gif b/doc/salome/gui/SMESH/wht_toc3.gif new file mode 100755 index 0000000000000000000000000000000000000000..330f3691c32e371e8af44c6d5780747737d30ed9 GIT binary patch literal 911 zcmb7@J!_Ov5QWDmm;@qe-9i*h41P3@iC=}qMkQM<*oi4b9MBbPV;2y%2x5`NVi3gz z8w(eMTCI&lj4LCeMf3-3XSJ1Bjn94KAMiHIaPORX&Y5>FFI_rw_WHC;%Wv5^Dqosn6`5s$)%puXwb8QAYDopE%Dt?&in1_P z>6C3(h6{4#p)9|`Dh{eiNb@-GBm{$McJ-rgP#hojMGr}y87{Qp0P{_L3$c_YV5Yxz&e_#L@5@qDKD z?EU@Sd)N9Oo3+i>_sQAA3oOHR&S`}AscYi!@wT|dXa-58AhSX_T+>obil1R^jjNr4Mc#bG=`Z##K4d?lL5$1V*qMm z0P}&YQ7{?;LplT$f3h$#FfcLbfP4YU6Yd<-7+5)EJT@#iz|5@VQZYdRD8a|bv%nyr z(WQ+;DCLYt;e!TFE@6k77X?ZO8M#FSIu0CYJjBQ%=+&cO^oW6hn}@@PL-EOpiE7+_ zOB}Xn1U57CJc(fte#zL$Am!4aQ0f%SsF82x@IfFcXc?2JjfX{pcEfa6R=o+UF047k gA!N-p;ls7Hhjyr|dn8ybc;CR}$jc=rA;4e_0PdJkt^fc4 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_toc_h.gif b/doc/salome/gui/SMESH/wht_toc_h.gif new file mode 100755 index 0000000000000000000000000000000000000000..fe20f686099a401a1ea951e81eae565b4efc9f2c GIT binary patch literal 204 zcmZ?wbhEHb6l4%!*v!Ci;J|^jnP(Vg{{L^x@c;k+GiS~);0205SvVOOI2d$5sz7Ei za8xn~DsU)lSa7hJnOnf6<3a-i6BjQVhrxpd&P*&~ekukF79H#sFi(<6IB>v;MS)X7 zqoGiRk&%sMS2{-t%PGMb54ie#tQ3VkTE>M8b>n fP2%BUxjRKxH>^)M>~=J2)0&$bc`mcDFjxZsWfwhm literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/wht_toc_n.gif b/doc/salome/gui/SMESH/wht_toc_n.gif new file mode 100755 index 0000000000000000000000000000000000000000..ce283101f4204c55c042012228385fb6fefef830 GIT binary patch literal 195 zcmZ?wbhEHb6l4%!*v!Ci;J^U}oR0_I6278?~j`dAG5&b;`T z(lAAtd4tFcA+_V}BAIqFnUf#;u$YFH{qdZ%{K6E=QoEX&fedGsSmj%V{=EF;$m)oN Sv)-K8y4t-hft8Jg!5RR!bUSIM3=H~ zN)dJACBnOLG2yCKg3_iIgCMkYRX44^=D7ne&-cwcGiS~@&%6J?t1s?4K7}d#g%MhM zv~;NdN!jsxUi#%e4Q`Mj3~49>2qQ>1AtHz*ih#o$bhtx~aHOLgJ}X>_BEVN7Eg zySCFEPKpdN$?5@4^O1F@oZ(DoIh&+ul)5M}#1u3M2>&BvDR zk}F*4D({iq-G!YS5mHJewG$RJ+o3X_iiplDN9wt zxED>Y-R`3HuM)Pip z&1NhV%2Xqdn_)5Z^%z@5WJXprc;ocQ?(V|Q<>cZ0h>MaYeOV@$EFFFJua3=suUH2B zi|zfgzlbSd)m1!P{p98E;;|FUH#~7C4$f`g_{fi&XD|OWxA)BYnfI1|Hvj$2Gk?7D z{@#UCv2)qF{b!%~`O|myoS58NJ!R{@{o>r=={0v(-9CTg>%-GqrnyG@K6&o*{~mvE zZQIO+=^a<+zsf5we}FgtJaT;IOKf}N*S7SGk;rHSbOjF#b2@K=7*bBJpJ0@wSy~PcO&VR2YQMZ#sDTX=cCZ{OXWotfu7aB%eW~9-LGKMjY zW$fBccQ`3B$Rw)=IL$}aopOdVo#kwjrcvsm#1K;~v6)+peh(@b!3J*i|Q zGg-;j$cl~RMHQo%#VTT`+vDUz9>pN7f?74Rf$b)l!jz^mVXzqs`BHu{^)(+` zx=XHbrK`M0c6S$cZbV2amDEmHsQGxOLJ`VPh1woVHA(NfRHQOhsrJlD&D^`W6s0Ux z3FBTgy>`2c+QYW1of$5g4K3Wp#IQ`uvNorE7y>y5ObmHiiQ%{TP|bZ{hi7`0w;0X4 zDK?w2P$*N4JZ^@?(AQ&Z8Ic)T(cq2KBfGl`JD1Dvmm+RUTJFoTjOCT1&;Hf1>D^=s z_z&CqWq%QK!0a`=Up;>&YHISq`gNaP-*j%Iq4yyztld;}i+4) + { + if (button.arguments[4+i]) + this.aIs[i]=_getFullPath(_getPath(document.location.href),button.arguments[4+i]); + else + this.aIs[i]=""; + i++; + } +} + +function getImage(oImage,sTitle) +{ + if(oImage.aIs[0]) + { + var sI=""; + if(sTitle=="") + sTitle=oImage.sText; + sI+="\""+sTitle+"\"0) + sI+=" width="+oImage.nWidth; + if(oImage.nHeight>0) + sI+=" height="+oImage.nHeight; + sI+=" border=no align=\"absmiddle\">"; + return sI; + } + return ""; +} + +function getCurrentAveName() +{ + var oSelect=getElement("avenue"); + if(oSelect) + return oSelect.value; + else + return ""; +} + +function updateWebSearch(bEnable) +{ + var oWebSearch=getElement("btnwebsearch"); + var oWebSearchParent=null; + if(oWebSearch) + oWebSearchParent=getParentNode(oWebSearch); + goWebSearchEnable=bEnable; + if(oWebSearchParent) + { + if(bEnable) + enableButton(oWebSearchParent,goWebSearch); + else + disableButton(oWebSearchParent,goWebSearch); + } + +} + +function setState(oEL,sState) +{ + if(gbNav6) + oEL.setAttribute("state",sState); + else + oEL.state=sState; +} + +function updateAvenueIfNeeded() +{ + gbUpdateTimerCount--; + if (gbNeedUpdateAve&&gbUpdateTimerCount==0) + { + updateAvenue(); + } +} + +function updateAvenue() +{ + var sSelect=getAvenueHTML(gaAvenues); + var oSelect=getElement("avenue"); + if(oSelect) + { + if(gbNav6) + { + var oParent=getParentNode(oSelect); + + if(oParent) + { + removeThis(oSelect); + oParent.insertAdjacentHTML("afterBegin",sSelect); + } + } + else + oSelect.outerHTML=sSelect; + oSelect=getElement("avenue"); + if(isValidAvenue(gaAvenues,gsCurAveName)) + oSelect.value=gsCurAveName; + } + updateAveButton(); +} + +function initAveButtonObj() +{ + if(!gbAveButttnInited) + { + var oNext=getElement("btnavnext"); + if(oNext) + goNextParent=getParentNode(oNext); + + var oPrev=getElement("btnavprev"); + if(oPrev) + goPrevParent=getParentNode(oPrev); + } + gbAveButttnInited=true; +} + +function disableAveButton() +{ + initAveButtonObj(); + if(goNextParent) + disableButton(goNextParent,goNext); + if(goPrevParent) + disableButton(goPrevParent,goPrev); +} + +function disableButton(oEl,oBtn) +{ + setState(oEl,"disable"); + var sPF=oEl.className.substring(0,6); + oEl.className=sPF+"Normal"; + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3) + { + if(oBtn.aIs[3]) + oIs[0].src=oBtn.aIs[3]; + } + else + oEl.style.visibility="hidden"; +} + +function enableButton(oEl,oBtn) +{ + setState(oEl,"normal"); + if(oEl==goEl) + { + var sPF=oEl.className.substring(0,6); + oEl.className=sPF+"Up"; + } + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0) + { + if(oBtn.aIs[0]) + oIs[0].src=oBtn.aIs[0]; + } + oEl.style.visibility="visible"; +} + +function updateAveButton() +{ + initAveButtonObj(); + var strAveName=getCurrentAvenue(); + if(strAveName!="") + { + if(gaAvenues) + { + for(var i=0;i0) + { + for(var i=0;i"; + sSelect+=""; + if(aAvenues) + { + for(var i=0;i"+aAvenues[i].sName+""; + } + } + sSelect+=""; + return sSelect; +} + +function addAvenueSelection() +{ + var oMsg=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object()); + var sButton=""; + if(SendMessage(oMsg)) + { + sButton=getAvenueHTML(oMsg.oParam.aAvenues); + } + else + { + sButton=getAvenueHTML(null); + } + gaButtons[gaButtons.length]="

"; +} + +function setSearchFormTitle(sTitle) +{ + gsSearchFormTitle=sTitle; +} + +function highLightIfNeeded() +{ + if(document.searchForm.searchString.value==gsSearchPrompt) + { + document.searchForm.searchString.select(); + } +} + +function addSearchForm() +{ + var sPropmptString=gsSearchPrompt; + + var nWidth=20; + if(!nWidth) nWidth=20; + if(gbNav4) nWidth=nWidth*.6; + + if(gsSearchFormTitle) + sPropmptString=""; + var sButton="
"+sButton+"
"; + if(gbNav6) + sButton=""+sButton; + if("image"=="text") + { + sButton+=""; + } + else if("image"=="image"&&gsIGo) + { + sButton+=""; + } + sButton+="
"+_textToHtml(gsSearchFormTitle)+"" + sButton+="\"Go\"
"; + if(gbNav6) + sButton+=""; + var nBtn=gaButtons.length; + gaButtons[nBtn]=""+sButton+""; + gaTypes[nBtn]="searchform"; +} + +function getShowHide() +{ + var sText=""; + var sI=""; + if(hasNavPane()) + { + if(goHide) + { + if(gnShowHideStyle&BTN_TEXT) + sText=goHide.sText; + if(gnShowHideStyle&BTN_IMG) + sI=getImage(goHide,"Hide"); + } + } + else + { + if(goShow) + { + if(gnShowHideStyle&BTN_TEXT) + sText=goShow.sText; + if(gnShowHideStyle&BTN_IMG) + sI=getImage(goShow,"Show"); + } + } + var sButton=genButton(sText,sI,gnShowHideStyle); + return sButton; +} + +function addBanner(sImage) +{ + if(sImage) + { + var nBtn=gaButtons.length; + gaButtons[nBtn]="     \"About"; + gaTypes[nBtn]="banner"; + } +} + +function showBanner() +{ + if (!gbPreview) + { + var nWidth=360; + var nHeight=240; + var nScreenWidth=screen.width; + var nScreenHeight=screen.height; + var nLeft=(nScreenWidth-nWidth)/2; + var nTop=(nScreenHeight-nHeight)/2; + if (gbIE4) + { + if (gbIE5) + nHeight+=20; + else + nHeight+=40; + window.showModalDialog("whskin_banner.htm","","dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:no;status:no;scroll:no;help:no;center:yes;"); + } + else + 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); + } +} + +function addButton(sType,nStyle,sTitle,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6) +{ + var sButton=""; + var bMini=false; + var sText=""; + var sI=""; + var bState=false; + var nBtn=gaButtons.length; + var bHref=false; + if(sType=="show"&&isShowHideEnable()) + { + var svTitle="Show Navigation Component"; + sButton=""; + gnShowHideStyle=nStyle; + goShow=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3); + gaObjBtns[nBtn]=goShow; + if(gnShowHide!=-1) + { + nBtn=gnShowHide; + } + else + { + gnShowHide=nBtn; + } + sButton+=getShowHide(); + sButton+=""; + bState=true; + } + else if(sType=="hide"&&isShowHideEnable()) + { + var svTitle="Hide Navigation Component"; + sButton=""; + gnShowHideStyle=nStyle; + goHide=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3); + gaObjBtns[nBtn]=goHide; + if(gnShowHide!=-1) + { + nBtn=gnShowHide; + } + else + { + gnShowHide=nBtn; + } + sButton+=getShowHide(); + sButton+=""; + bState=true; + } + else if(sType=="hide2"&&(!gbNav4)) + { + var svTitle="Hide Navigation Component"; + sButton=""; + gnShowHideStyle=nStyle; + if(!sI1) + sI1=gsIHide; + goHide2=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3); + gaObjBtns[nBtn]=goHide2; + if(nStyle&BTN_TEXT) + sText=goHide2.sText + + if(nStyle&BTN_IMG) + sI=getImage(goHide2,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bMini=true; + } + else if(sType=="synctoc") + { + var svTitle="Sync TOC"; + sButton=""; + if(!sI1) + sI1=gsISync; + goSync=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3); + gaObjBtns[nBtn]=goSync; + if(nStyle&BTN_TEXT) + sText=goSync.sText + + if(nStyle&BTN_IMG) + sI=getImage(goSync,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bMini=true; + } + else if(sType=="toc") + { + var svTitle="Contents"; + sButton=""; + if(!sI1) + sI1=gsIToc; + if(!sI2) + sI2=gsITocS; + if(!sI4) + sI4=gsITocS; + goToc=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goToc; + if(nStyle&BTN_TEXT) + sText=goToc.sText + + if(nStyle&BTN_IMG) + sI=getImage(goToc,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bState=true; + } + else if(sType=="idx") + { + var svTitle="Index"; + sButton=""; + if(!sI1) + sI1=gsIIndex; + if(!sI2) + sI2=gsIIndexS; + if(!sI4) + sI4=gsIIndexS; + goIdx=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goIdx; + if(nStyle&BTN_TEXT) + sText=goIdx.sText + + if(nStyle&BTN_IMG) + sI=getImage(goIdx,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bState=true; + } + else if(sType=="fts") + { + var svTitle="Search"; + sButton=""; + if(!sI1) + sI1=gsISearch; + if(!sI2) + sI2=gsISearchS; + if(!sI4) + sI4=gsISearchS; + goFts=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goFts; + if(nStyle&BTN_TEXT) + sText=goFts.sText + + if(nStyle&BTN_IMG) + sI=getImage(goFts,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bState=true; + } + else if(sType=="glo") + { + var svTitle="Glossary"; + sButton=""; + if(!sI1) + sI1=gsIGlossary; + if(!sI2) + sI2=gsIGlossaryS; + if(!sI4) + sI4=gsIGlossaryS; + goGlo=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goGlo; + if(nStyle&BTN_TEXT) + sText=goGlo.sText + + if(nStyle&BTN_IMG) + sI=getImage(goGlo,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bState=true; + } + else if(sType=="avnext") + { + var svTitle="Next Topic"; + sButton=""; + if(!sI1) + sI1=gsINext; + if(!sI4) + sI4=gsINextD; + goNext=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goNext; + if(nStyle&BTN_TEXT) + sText=goNext.sText + + if(nStyle&BTN_IMG) + sI=getImage(goNext,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bMini=true; + } + else if(sType=="avprev") + { + var svTitle="Previous Topic"; + sButton=""; + if(!sI1) + sI1=gsIPrev; + if(!sI4) + sI4=gsIPrevD; + goPrev=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goPrev; + if(nStyle&BTN_TEXT) + sText=goPrev.sText + + if(nStyle&BTN_IMG) + sI=getImage(goPrev,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + bMini=true; + } + else if(sType=="blankblock") + { + gaButtons[nBtn]=null; + gaTypes[nBtn]=sType; + } + else if(sType=="websearch") + { + var svTitle="WebSearch"; + sButton=""; + if(!sI1) + sI1=gsIWebSearch; + if(!sI4) + sI4=gsIWebSearchD; + goWebSearch=new button(sType,sTitle,nWidth,nHeight,sI1,sI2,sI3,sI4,sI5,sI6); + gaObjBtns[nBtn]=goWebSearch; + if(nStyle&BTN_TEXT) + sText=goWebSearch.sText + + if(nStyle&BTN_IMG) + sI=getImage(goWebSearch,svTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + } + else if(sType.indexOf("custom")==0) + { + var nCusBtnIdx=goCusButton.length; + goCusButton[nCusBtnIdx]=new cusButton(sType,sTitle,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sI1,sI2,sI3); + gaObjBtns[nBtn]=goCusButton[nCusBtnIdx]; + var re=new RegExp("\"","g"); + var svTitle=sTitle.replace(re, """); + if(sHref&&sHref.length!=0) + { + sButton=""; + if(nStyle&BTN_TEXT) + sText=sTitle; + if(nStyle&BTN_IMG) + sI+=getImage(goCusButton[nCusBtnIdx],sTitle); + sButton+=genButton(sText,sI,nStyle); + sButton+=""; + } + if(sButton.length!=0) + { + var btnClass=""; + if(sText||bMini) + btnClass="clsBtnNormal"; + else + btnClass="clsNoBNormal"; + + if(!bState) + { + if(bHref) + gaButtons[nBtn]=""+sButton+""; + else + gaButtons[nBtn]=""+sButton+""; + } + else + gaButtons[nBtn]=""+sButton+""; + gaTypes[nBtn]=sType; + } + + if(sType=="avenuesel") + addAvenueSelection(); + else if(sType=="searchform") + addSearchForm(); + else if(sType=="banner") + { + if(!sI1) + sI1=gsIBanner; + addBanner(sI1); + } +} + +function isShowHideEnable() +{ + if(gbIE4) + return true; + else + return false; +} + +function genButton(sText,sI,nStyle) +{ + var sButton=""; + var sShowText=_textToHtml(sText); + if (gbNav4 && !gbNav6) + sShowText += " "; + if(sText!=""&&sI!="") + { + if(nStyle&BTN_IMG_TOP) + sButton+=sI+"
"+ sShowText; + else if(nStyle&BTN_IMG_BOTTOM) + sButton+=sText+"
"+sI; + else if(nStyle&BTN_IMG_RIGHT) + sButton+=sText+" "+sI; + else + sButton+=sI+" "+sShowText; + } + else if(sText!="") + { + sButton+=sShowText; + } + else if(sI!="") + { + sButton+=sI; + } + return sButton; +} + +function searchB() +{ + var onMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null); + SendMessage(onMsg); + + var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,document.searchForm.searchString.value); + if(!SendMessage(oMsg)) + gstrSearch=document.searchForm.searchString.value; + else + gstrSearch=""; +} + +function ReSortToolbarButtons() +{ + var bSearchEnabled=isSearchEnabled(); + var strOrder=""; + var oMsg=new whMessage(WH_MSG_TOOLBARORDER,this,1,null); + if(SendMessage(oMsg)) + { + strOrder=oMsg.oParam; + } + if(strOrder.length>0) + { + gaOrders=strOrder.split("|"); + var aTempButtons=new Array(); + var ti=0; + for(var si=0;si0) + { + gaOrders=strOrder.split("|"); + var aTempButtons=new Array(); + var ti=0; + for(var si=0;si0) + { + var strHeight="100%"; + var strWidth="100%"; + if (gbNav4) + { + strHeight=window.innerHeight-4; + strWidth=window.innerWidth-4; + } + if (gbIE4) + { + strHeight=document.body.clientHeight-4; + strWidth=document.body.clientWidth-4; + } + if(gbNav6) + sHTML=""; + else + sHTML="
"; + if((gnButtonLayout&LAYOUT)==HLAYOUT) + { + sHTML+=""; + for(var i=0;i"; + } + sHTML+=""; + } + else + { + for(var i=0;i"+gaButtons[i]+""; + else + sHTML+=""; + } + } + if(gbNav6) + sHTML+="
"; + else + sHTML+=""; + } + document.write(sHTML); + if(document.body) + document.body.onselectstart=onSelect; + updateAveButton(); +} + +function hasNavPane() +{ + if(gnHasNavPane==-1) + { + gnHasNavPane=0; + var oParam=new Object(); + oParam.bVisible=false; + var oMsg=new whMessage(WH_MSG_ISPANEVISIBLE,this,1,oParam); + if(SendMessage(oMsg)) + { + if(oParam.bVisible) + gnHasNavPane=1; + } + + } + if(gnHasNavPane==1) + return true; + else + return false; +} + +function getTocInfo() +{ + var oParam=new Object(); + oParam.oTocInfo=null; + var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam); + if(SendMessage(oMsg)) + { + goTocInfo=oParam.oTocInfo; + gbTocInfoInited=true; + } +} + +function onBtnClick(e) +{ + var oEl=null; + var oElo=null; + if(gbNav6) + { + oElo=e.target; + while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo); + oEl=oElo; + } + else + { + oElo=event.srcElement; + oEl=oElo; + event.cancelBubble=true; + } + while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB")) + { + oEl=getParentNode(oEl); + if(!oEl) return; + } + if(oElo.tagName=="A"||oElo.tagName=="IMG") return true; + var oaA=getElementsByTag(oElo,"A"); + if(oaA&&oaA.length) + { + var oA=oaA[0]; + if(gbNav6) + { + var sCmd=oA.getAttribute("onclick"); + var nCmd=sCmd.indexOf("return false;"); + if(nCmd!=-1); + sCmd=sCmd.substring(0,nCmd); + setTimeout(sCmd,1); + } + else + oA.onclick(); + } +} + +function onBtnMouseDown(e,nBtn) +{ + var oEl=null; + if(gbNav6) + { + var oElo=e.target; + while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo); + oEl=oElo; + } + else + { + oEl=event.srcElement; + event.cancelBubble=true; + } + while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB")) + { + oEl=getParentNode(oEl); + if(!oEl) return; + } + var sPF=oEl.className.substring(0,6); + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>2) + { + if(gaObjBtns[nBtn].aIs[2]) + oIs[0].src=gaObjBtns[nBtn].aIs[2]; + } + var sState=getState(oEl); + if(sState!="disable") + { + oEl.className=sPF+"Down"; + } +} + +function onBtnMouseUp(e,nBtn) +{ + var oEl=null; + if(gbNav6) + { + var oElo=e.target; + while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo); + oEl=oElo; + } + else + { + oEl=event.srcElement; + event.cancelBubble=true; + } + while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB")) + { + oEl=getParentNode(oEl); + if(!oEl) return; + } + var sPF=oEl.className.substring(0,6); + var sState=getState(oEl); + if(sState=="down"||sState=="disable") + { + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3) + { + if(gaObjBtns[nBtn].aIs[3]) + oIs[0].src=gaObjBtns[nBtn].aIs[3]; + } + } + else + { + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0) + { + if(gaObjBtns[nBtn].aIs[0]) + oIs[0].src=gaObjBtns[nBtn].aIs[0]; + } + } + if(goEl==oEl) + { + if(sState!="down"&&sState!="disable") + { + oEl.className=sPF+"Up"; + } + } +} + +function getState(oEl) +{ + var sState=""; + if(gbNav6) + sState=oEl.getAttribute("state"); + else + if(oEl.state) + sState=oEl.state; + return sState; +} + +function onBtnMouseOver(e,nBtn) +{ + markButton(e); + var oEl=null; + if(gbNav6) + { + var oElo=e.target; + while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo); + oEl=oElo; + } + else + { + oEl=event.srcElement; + event.cancelBubble=true; + } + while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB")) + { + oEl=getParentNode(oEl); + if(!oEl) return; + } + var sPF=oEl.className.substring(0,6); + var sState=getState(oEl); + if(sState=="down"||sState=="disable") + { + if(sState=="down") + oEl.className=sPF+"Down"; + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>4) + { + if(gaObjBtns[nBtn].aIs[4]) + oIs[0].src=gaObjBtns[nBtn].aIs[4]; + } + } + else + { + oEl.className=sPF+"Up"; + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>1) + { + if(gaObjBtns[nBtn].aIs[1]) + oIs[0].src=gaObjBtns[nBtn].aIs[1]; + } + } +} + +function onBtnMouseOut(e,nBtn) +{ + goEl=null; + var oEl=null; + if(gbNav6) + { + var oElo=e.target; + while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo); + oEl=oElo; + } + else + { + oEl=event.srcElement; + event.cancelBubble=true; + } + while(-1==oEl.className.indexOf("clsBtn")&&-1==oEl.className.indexOf("clsNoB")) + { + oEl=getParentNode(oEl); + if(!oEl) return; + } + var sPF=oEl.className.substring(0,6); + var sState=getState(oEl); + if(sState=="down"||sState=="disable") + { + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>3) + { + if(gaObjBtns[nBtn].aIs[3]) + oIs[0].src=gaObjBtns[nBtn].aIs[3]; + } + if(sState=="down") + oEl.className=sPF+"Down"; + } + else + { + var oIs=getElementsByTag(oEl,"img"); + if(oIs.length>0&&gaObjBtns[nBtn]&&gaObjBtns[nBtn].aIs&&gaObjBtns[nBtn].aIs.length>0) + { + if(gaObjBtns[nBtn].aIs[0]) + oIs[0].src=gaObjBtns[nBtn].aIs[0]; + } + oEl.className=sPF+"Normal"; + } +} + +function showToc() +{ + var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null) + SendMessage(oMsg); +} + +function showIndex() +{ + var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null) + SendMessage(oMsg); +} + +function showFts() +{ + var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null) + SendMessage(oMsg); +} + +function showGlossary() +{ + var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null) + SendMessage(oMsg); +} + +function syncWithShow() +{ + if(!gbTocInfoInited) + { + getTocInfo(); + } + if(goTocInfo) + { + showToc(); + var oParam=goTocInfo; + var oMsg=new whMessage(WH_MSG_SYNCTOC,this,1,oParam); + SendMessage(oMsg); + } +} + +function markButton(e) +{ + var oEl=null; + if(gbNav6) + { + var oElo=e.target; + while(oElo&&oElo.nodeName.indexOf("#")==0) oElo=getParentNode(oElo); + oEl=oElo; + } + else + oEl=event.srcElement; + while(oEl&&oEl.tagName!="TD") oEl=getParentNode(oEl); + if(oEl) + goEl=oEl; +} + +function showHidePane() +{ + var oMsg=null; + if(hasNavPane()) + oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null); + else + oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null); + SendMessage(oMsg); +} + +function goAveNext() +{ + goAvenue(true); +} + +function goAvePrev() +{ + goAvenue(false); +} + +function doWebSearch() +{ + if (goWebSearchEnable) + { + var oMsg=new whMessage(WH_MSG_WEBSEARCH,this,1,null); + SendMessage(oMsg); + } +} + +function goAvenue(bNext) +{ + var oMsg=null; + initAveButtonObj(); + gsCurAveName=getCurrentAveName(); + if(gbNav4&&!gbNav6) + { + if(bNext) + { + gaAvenues=null; + updateAvenue(); + oMsg=new whMessage(WH_MSG_NEXT,this,1,null); + SendMessage(oMsg); + } + else if(!bNext) + { + gaAvenues=null; + updateAvenue(); + oMsg=new whMessage(WH_MSG_PREV,this,1,null); + SendMessage(oMsg); + } + } + else + { + if(bNext&&goNextParent) + { + var sState=getState(goNextParent); + if(sState!="disable") + { + gaAvenues=null; + gbNeedUpdateAve=true; + gbUpdateTimerCount++; + setTimeout("updateAvenueIfNeeded();", 2000); + oMsg=new whMessage(WH_MSG_NEXT,this,1,null); + SendMessage(oMsg); + } + } + else if(!bNext&&goPrevParent) + { + var sState=getState(goPrevParent); + if(sState!="disable") + { + gaAvenues=null; + gbNeedUpdateAve=true; + gbUpdateTimerCount++; + setTimeout("updateAvenueIfNeeded();", 2000); + oMsg=new whMessage(WH_MSG_PREV,this,1,null); + SendMessage(oMsg); + } + } + } +} + +function window_Unload() +{ + if(!gbNav4||gbNav6) + { + UnRegisterListener2(this,WH_MSG_GETSEARCHS); + UnRegisterListener2(this,WH_MSG_PANESTATUE); + UnRegisterListener2(this,WH_MSG_SYNCINFO); + UnRegisterListener2(this,WH_MSG_PANEINFO); + UnRegisterListener2(this,WH_MSG_AVENUEINFO); + UnRegisterListener2(this,WH_MSG_GETCURRENTAVENUE); + UnRegisterListener2(this,WH_MSG_ENABLEWEBSEARCH); + UnRegisterListener2(this,WH_MSG_INITSEARCHSTRING); + } +} + +function window_OnLoad() +{ + if(document.body) + { + if(gsBgImage&&gsBgImage.length>0) + { + document.body.background=gsBgImage; + } + if(gsBgColor&&gsBgColor.length>0) + { + document.body.bgColor=gsBgColor; + } + } + doCusOnLoad(); + var oMsg=new whMessage(WH_MSG_GETPANEINFO,this,1,null); + if(SendMessage(oMsg)) + { + setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1); + } + if (!gaAvenues) + { + var oMsg2=new whMessage(WH_MSG_GETAVIAVENUES,this,1,new Object()); + if(SendMessage(oMsg2)) + { + gaAvenues=oMsg2.oParam.aAvenues; + gbNeedUpdateAve=false; + setTimeout("updateAvenue();",1); + } + } +} + +function onSendMessage(oMsg) +{ + var nMsgId=oMsg.nMessageId; + if(nMsgId==WH_MSG_GETSEARCHS) + { + if(document.searchForm&&document.searchForm.searchString) + { + oMsg.oParam.sValue=document.searchForm.searchString.value; + return false; + } + } + else if(nMsgId==WH_MSG_PANESTATUE) + { + if(oMsg.oParam=="visible") + { + if(isShowHideEnable()) + setTimeout("flipShowHide(true);",1); + setTimeout("showPaneButton();",1); + } + else + { + if(isShowHideEnable()) + setTimeout("flipShowHide(false);",1); + setTimeout("hidePaneButton();",1); + } + } + else if(nMsgId==WH_MSG_PANEINFO) + { + if(oMsg.oParam) + setTimeout("flipPaneButton(\""+oMsg.oParam+"\");",1); + else + setTimeout("hidePaneButton();",1); + } + else if(nMsgId==WH_MSG_SYNCINFO) + { + if(oMsg.oParam) + goTocInfo=oMsg.oParam; + else + goTocInfo=null; + gbTocInfoInited=true; + } + else if(nMsgId==WH_MSG_AVENUEINFO) + { + gaAvenues=oMsg.oParam; + gbNeedUpdateAve=false; + setTimeout("updateAvenue();",1); + } + else if(nMsgId==WH_MSG_GETCURRENTAVENUE) + { + var sAveName=getCurrentAvenue(); + if(sAveName!="") + { + oMsg.oParam.sAvenue=sAveName; + return false; + } + else + return true; + } + else if(nMsgId==WH_MSG_ENABLEWEBSEARCH) + { + setTimeout("updateWebSearch("+oMsg.oParam+");",1); + } + else if(nMsgId==WH_MSG_INITSEARCHSTRING) + { + if(gstrSearch!="") + { + oMsg.oParam=gstrSearch; + gstrSearch=""; + return false; + } + } + return true; +} + +function getCurrentAvenue() +{ + var strAveName=""; + var oSelect=getElement("avenue"); + if(oSelect) + { + strAveName=oSelect.value; + } + return strAveName; +} + +function initBtn() +{ + var oBtn=null; + oBtn=getElement("btntoc"); + if(oBtn) + gaBtns[gaBtns.length]=oBtn; + oBtn=getElement("btnidx"); + if(oBtn) + gaBtns[gaBtns.length]=oBtn; + oBtn=getElement("btnfts"); + if(oBtn) + gaBtns[gaBtns.length]=oBtn; + oBtn=getElement("btnglo"); + if(oBtn) + gaBtns[gaBtns.length]=oBtn; + gbInitBtn=true; +} + +function showPaneButton() +{ + flipPaneButton(gsPane); +} + +function hidePaneButton() +{ + flipPaneButton(""); +} + +function flipPaneButton(sPane) +{ + if (sPane) + gsPane=sPane; + if(!gbInitBtn) + initBtn(); + + var oUp=null; + if(sPane) + { + oUp=getElement("btn"+sPane); + } + for(var i=0;i0) + { + var strClassName=oaA[0].className; + oaA[0].className="btnsel"+strClassName.substring(3); + } + } + var oIs=getElementsByTag(oEl,"img"); + var oBtn=getButtonObjByType(gaBtns[i].id.substring(3)); + if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>3) + { + if(oBtn.aIs[3]) + oIs[0].src=oBtn.aIs[3]; + } + } + } + else + { + var oEl=getParentNode(gaBtns[i]); + var sState=getState(oEl); + var sPF=oEl.className.substring(0,6); + if(sState=="down") + { + setState(oEl,"up"); + if(oEl==goEl) + oEl.className=sPF+"Up"; + else + oEl.className=sPF+"Normal"; + + if(sPF=="clsBtn") + { + if(gaBtns[i].id) + { + var sColor=getBtnColor(gaBtns[i].id.substring(3),false); + if(sColor) + { + oEl.style.backgroundColor=sColor + } + else + { + oEl.style.backgroundColor=""; + } + } + + var oaA=getElementsByTag(oEl,"A"); + if(oaA.length>0) + { + var strClassName=oaA[0].className; + oaA[0].className="btn"+strClassName.substring(6); + } + } + var oIs=getElementsByTag(oEl,"img"); + var oBtn=getButtonObjByType(gaBtns[i].id.substring(3)); + if(oIs.length>0&&oBtn&&oBtn.aIs&&oBtn.aIs.length>0) + { + if(oBtn.aIs[0]) + oIs[0].src=oBtn.aIs[0]; + } + } + } + } + } +} + +function flipShowHide(bShow) +{ + gnHasNavPane=-1; + var oA=getElement("btnshowhide"); + if(oA) + { + var oEl=getParentNode(oA); + var sPF=oEl.className.substring(0,6); + if(oEl&&oEl.state) + { + if(bShow) + { + oEl.state="down"; + oEl.className=sPF+"Down"; + } + else + { + oEl.state="up"; + + if(oEl==goEl) + oEl.className=sPF+"Up"; + else + oEl.className=sPF+"Normal"; + } + } + oA.innerHTML=getShowHide(); + } +} + +function cusOnClick(nIdx) +{ + if(goCusButton.length>nIdx) + { + var sOnClick=goCusButton[nIdx].sOnClick; + if(sOnClick&&sOnClick.length>0) + { + if(!gbPreview) + eval(sOnClick); + return false; + } + } + return true; +} + +function cusOnMouseOver(nIdx) +{ + if(goCusButton.length>nIdx) + { + var sOnMouseOver=goCusButton[nIdx].sOnMouseOver; + if(sOnMouseOver&&sOnMouseOver.length>0) + { + if(!gbPreview) + eval(sOnMouseOver); + return false; + } + } + return true; +} + +function doCusOnLoad() +{ + if(!gbPreview&&gaOrders) + { + for(var i=0;ii+7) + { + if (cusButton.arguments[7+i]) + this.aIs[i]=_getFullPath(_getPath(document.location.href),cusButton.arguments[7+i]); + else + this.aIs[i]=""; + i++; + } + if(sOnLoad) + { + registerOnLoad(sOnLoad,sType); + } +} + +function getBtnColor(sType,bSel) +{ + var aBtnColors=null; + if(bSel) + aBtnColors=gaSelBtnBgColor; + else + aBtnColors=gaBtnBgColor; + if(aBtnColors) + { + for(var i=0;i + +Table of contents + + + + + + + + + + + + + + + + \ 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 index 000000000..80806d7c7 --- /dev/null +++ b/doc/salome/gui/SMESH/whthost.js @@ -0,0 +1,1372 @@ +var gaHSLoad=new Array(); +var gnMinIdx=0; +var gnInsIdx=-1; +var gsLoadingDivID="LoadingDiv"; +var gsLoadingMsg="Loading, click here to cancel..."; +var gaProj=null; +var gaTocs=new Array(); +var goChunk=null; +var gbReady=false; +var gbLoadToc=false; +var gbXML=false; +var gaRoot=new Array(); +var gnCC=-1; +var gsTP=""; +var gaBTPs=""; +var gsCTPath=""; +var gnLT=-1; +var gsPathSplit="\n"; +var gsBgColor="#ffffff"; +var gsBgImage=""; +var goFont=null; +var goHFont=null; + +var gsMargin="0pt"; +var gsIndent="15pt"; +var gsABgColor="#cccccc"; + +var giBookClose=""; +var giBookOpen=""; +var giBookItem=""; +var giURLItem=""; +var giNewBookClose=""; +var giNewBookOpen=""; +var giNewBookItem=""; +var giNewURLItem=""; +var gnImages=0; +var gnLoadedImages=0; +var gaImgs=new Array(); +var gbLoadData=false; +var gobj=null; +var gaTocsNs61Fix=null; +var gbWhTHost=false; +var gBookItems=new Array(); +var gInSync=false; + +function setBackground(sBgImage) +{ + gsBgImage=sBgImage; +} + +function setBackgroundcolor(sBgColor) +{ + gsBgColor=sBgColor; +} + +function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + if(sType=="Normal") goFont=vFont; + else if(sType=="Hover") goHFont=vFont; +} + +function setActiveBgColor(sBgColor){gsABgColor=sBgColor;} + +function setMargin(sMargin){gsMargin=sMargin;} + +function setIndent(sIndent){gsIndent=sIndent;} + +function setIcon(sType,sURL) +{ + if(sType=="BookOpen") + giBookOpen=sURL; + else if(sType=="BookClose") + giBookClose=sURL; + else if(sType=="Item") + giBookItem=sURL; + else if(sType=="RemoteItem") + giURLItem=sURL; + else if(sType=="NewBookClose") + giNewBookClose=sURL; + else if(sType=="NewBookOpen") + giNewBookOpen=sURL; + else if(sType=="NewItem") + giNewBookItem=sURL; + else if(sType=="NewRemoteItem") + giNewURLItem=sURL; +} + +function bookItem(sTarget, sURL) +{ + if (sTarget) + this.sTarget=sTarget; + else + this.sTarget="bsscright"; + this.sURL=sURL; +} + +function addBookItem(sBookId, sTarget, sURL) +{ + gBookItems[sBookId] = new bookItem(sTarget, sURL); +} + +function tocChunk(sPPath,sDPath) +{ + this.sPPath=sPPath; + this.sDPath=sDPath; + this.nMI=-1; + this.aTocs=null; +} + +function addTocChunk(sPPath,sDPath) +{ + var oChunk=new tocChunk(sPPath,sDPath); + gaTocs[gaTocs.length]=oChunk; + return oChunk; +} + +function isHSLoad(nIdx) +{ + for(var i=0;i"; + sHTML+="

\"Book\""; + var sURL=_textToHtml_nonbsp(getItemURL(nIdx)); + if(sURL!="") + addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL); + sHTML+=" "+sName+"

"; + return sHTML; +} + +function getBookId(nIdx){return "B_"+nIdx;} + +function getItemId(nIdx){return "I_"+nIdx;} + +function markBook(nIdx) +{ + var obj=getElement(getItemId(nIdx)); + if(obj==null) + obj=getElement(getBookId(nIdx)); + if(gbNav6) + { + gobj=obj; + setTimeout("delayMarkObj();",1); + } + else + markObj(obj); +} + +function delayMarkObj() +{ + if(gobj) + { + markObj(gobj); + gobj=null; + } +} + +function markObj(obj) +{ + if(obj!=null) + { + HighLightElement(obj,gsABgColor,"transparent"); + var sPath=calTocPath(obj); + if(gsCTPath!=sPath) + gsCTPath=sPath; + } +} + +function markItem(nIdx) +{ + var obj=getElement(getItemId(nIdx)); + if(gbNav6) + { + gobj=obj; + setTimeout("delayMarkObj();",1); + } + else + markObj(getElement(getItemId(nIdx))); +} + +function calTocPath(obj) +{ + var sPath=getInnerText(obj).substring(1); + var pObj=getParentNode(obj); + do + { + while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj); + if(pObj!=null) + { + var nId=getIdByCBId(pObj.id); + var sObj=getElement(getPBId(nId)); + if(sObj!=null) + { + var objs=getItemsByBook(sObj); + for(var i=0;i\""+sAltString+"\" "+sName+"

"; + return sHTML; +} + +function writeBookItems(nIdx,num) +{ + var sHTML=""; + if(num>0){ + var nCIdx=0; + do{ + nCIdx++; + var i=nIdx+nCIdx; + var nItemType=getItemType(i); + if(nItemType==1){ + sHTML+=writeBook(i); + nCIdx+=getItemContentsNum(i); + } + else if(nItemType==2||nItemType==16){ + sHTML+=writeAnItem(i); + }else if(nItemType==4){ + sHTML+=writeBook(i,false); + }else if(nItemType==8){ + sHTML+=writeBook(i,true); + } + } + while(nCIdx"+gsLoadingMsg+"
"; +} + +function getItemName(nIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + return oChunk.aTocs[nIdx-oChunk.nMI].sItemName; + else + return null; +} + +function getItemContentsNum(nIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + return oChunk.aTocs[nIdx-oChunk.nMI].nContents; + else + return null; +} + +function getItemType(nIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + return oChunk.aTocs[nIdx-oChunk.nMI].nType; + else + return 0; +} + +function getItemURL(nIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + { + var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL; + if(!(sPath==null||sPath=="")) + { + return _getFullPath(oChunk.sPPath,sPath); + } + } + return ""; +} + +function getRefURL(nIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + { + var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL; + if(!(sPath==null||sPath=="")) + { + return _getFullPath(oChunk.sPPath,sPath) + } + } + return ""; +} + +function getTopicTarget(nIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + { + if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined") + return oChunk.aTocs[nIdx-oChunk.nMI].sTarget; + } + return ""; +} + +function getItemIcon(nIdx,nIconIdx) +{ + var oChunk=getChunk(nIdx); + if(oChunk) + { + if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined") + { + var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef; + var nIndex=sIconRef.indexOf(";"); + while(nIconIdx-->0&&nIndex!=-1) + { + sIconRef=sIconRef.substring(nIndex+1); + nIndex=sIconRef.indexOf(";"); + } + if(nIconIdx<0) + { + if(nIndex!=-1) + sIconRef=sIconRef.substring(0,nIndex); + return _getFullPath(oChunk.sPPath,sIconRef) + } + } + } + return ""; +} + +function TocWriteClassStyle() +{ + var sStyle=""; + document.write(sStyle); +} + +function TocWriteFixedWidth(bBegin,nWidth) +{ + if((gbIE4)&&(gbMac)&&(!gbIE5)){ + if(bBegin) + document.write("
"); + else + document.write("
"); + } +} + +function TocInitPage() +{ + var tempColl=getItemsByBook(document.body); + if(tempColl.length>0) + tempColl[0].focus(); +} + +function getItemsFromObj(obj) +{ + var aAnchor=new Array(); + var tempColl=getChildrenByTag(obj,"P"); + if(tempColl&&tempColl.length>0) + { + var anobr=new Array(); + for(var i=0;i0) + { + for(var j=0;j0) + { + for(var u=0;u0) + { + for(var j=0;jdocument.body.clientHeight){ + nNewScroll=nTop-20; + } + } + document.body.scrollTop=nNewScroll; + } +} + +function TocExpand(nId,bChangeImg,bForceOpen) +{ + var oDiv=getElement(getCBId(nId)); + if(oDiv==null) return null; + + var whichIm=document.images[getBId(nId)]; + if((oDiv.style.display!="block")||bForceOpen){ + oDiv.style.display="block"; + if(bChangeImg){ + var sPath=getPath(whichIm.src); + sPath=_getFullPath(sPath,getBookImage(nId,false)); + whichIm.src=sPath; + } + }else{ + oDiv.style.display="none"; + if(bChangeImg){ + var sPath=getPath(whichIm.src); + sPath=_getFullPath(sPath,getBookImage(nId,true)); + whichIm.src=sPath; + } + if(gbMac&&gbIE5){ + this.parent.document.getElementById("tocIFrame").style.width="101%"; + this.parent.document.getElementById("tocIFrame").style.width="100%"; + } + } + return oDiv; +} + +function getChunkId(n) +{ + var nCandidate=-1; + for(var i=0;in)) + { + return gaTocs[gnCC]; + } + else{ + gnCC=getChunkId(n); + if(gnCC!=-1) + return gaTocs[gnCC]; + else + return null; + } +} + +function getBookImage(nIdx,bClosed) +{ + var nIdx=bClosed?0:1; + var sIcon=getItemIcon(nIdx,nIdx); + if(sIcon=="") + if(bClosed) + sIcon=giBookClose; + else + sIcon=giBookOpen; + return _getFullPath(gaProj[0].sPPath,sIcon); +} + +function getItemImage(nIdx,bRemote) +{ + var sIcon=getItemIcon(nIdx,0); + if(sIcon=="") + if(bRemote) + sIcon=giURLItem; + else + sIcon=giBookItem; + return _getFullPath(gaProj[0].sPPath,sIcon); +} + +function expandToc(oObj,sRest,aIdList) +{ + var len=aIdList.length; + var nPos=sRest.indexOf(gsPathSplit); + if(nPos!=-1) + { + sPart=sRest.substring(0,nPos); + sRest=sRest.substring(nPos+1); + } + else + { + sPart=sRest; + var aTagAs=getItemsByBook(oObj); + for(var s=0;s0) + sText=sText.substring(1); + if(sText==sPart) + { + aIdList[len]=aTagAs[s]; + return 1; + } + } + return 0; + } + + var aChildren=getChildrenByTag(oObj,"DIV"); + for(var i=0;i0) + { + if(gbNav6) + { + var sCommand=obj[0].getAttribute("onClick"); + var nCommand=sCommand.indexOf(";"); + sCommand=sCommand.substring(0,nCommand); + setTimeout(sCommand,1); + } + else + obj[0].click(); + } + return -1; + } + var nRet=expandToc(oCObj,sRest,aIdList); + if(nRet) + return nRet; + } + } + aIdList.length=len; + return 0; +} + +function getIdByPBId(sPId) +{ + return parseInt(sPId.substring(5,sPId.length-6)); +} + +function getIdByCBId(sCId) +{ + return parseInt(sCId.substring(5,sCId.length-5)); +} + +function isPBId(sId) +{ + return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Parent")==sId.length-6); +} + +function isCBId(sId) +{ + return (sId&&sId.indexOf("Book_")==0&&sId.lastIndexOf("Child")==sId.length-5); +} + +function getBId(nIdx) +{ + return "Book_"+nIdx; +} + +function getPBId(nIdx) +{ + return getBId(nIdx)+"Parent"; +} + +function getCBId(nIdx) +{ + return getBId(nIdx)+"Child"; +} + +function getClosestTocPath(aPaths) +{ + var nMaxSimilarity=0; + var nThatIndex=-1; + var sPath=null; + if(aPaths.length==0) return sPath; + for(var i=0;inMaxSimilarity) + { + nMaxSimilarity=nSimilarity; + nThatIndex=i; + } + } + if(nThatIndex!=-1) + { + sPath=aPaths[nThatIndex]; + } + else + { + sPath=aPaths[0]; + } + return sPath; +} + +function comparePath(sPath1,sPath2) +{ + var nMaxSimilarity=0; + var nStartPos1=0; + var nPos1=-1; + var nStartPos2=0; + var nPos2=-1; + do{ + var sCheck1=null; + var sCheck2=null; + nPos1=sPath1.indexOf(gsPathSplit,nStartPos1); + if(nPos1!=-1) + { + sCheck1=sPath1.substring(nStartPos1,nPos1); + nStartPos1=nPos1+1; + } + else + { + sCheck1=sPath1.substring(nStartPos1); + nStartPos1=-1; + } + nPos2=sPath2.indexOf(gsPathSplit,nStartPos2); + if(nPos1!=-1) + { + sCheck2=sPath2.substring(nStartPos2,nPos2); + nStartPos2=nPos2+1; + } + else + { + sCheck2=sPath2.substring(nStartPos2); + nStartPos2=-1; + } + if(sCheck1==sCheck2) + nMaxSimilarity++; + else + break; + }while(nStartPos1!=-1&&nStartPos2!=-1); + return nMaxSimilarity; +} + +function getTocPaths(oTopicParam) +{ + var aRelTocPaths=oTopicParam.aPaths; + var aPaths=new Array(); + for(var i=0;i0) + { + for(var i=0;i0) + { + document.body.background=gsBgImage; + } + if(gsBgColor&&gsBgColor.length>0) + { + document.body.bgColor=gsBgColor; + } + loadToc(); + var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null) + SendMessage(oMsg); +} + +function loadImages() +{ + if(giBookClose) + { + gaImgs[gnImages]=giBookClose; + gnImages++; + } + if(giBookOpen) + { + gaImgs[gnImages]=giBookOpen; + gnImages++; + } + if(giBookItem) + { + gaImgs[gnImages]=giBookItem; + gnImages++; + } + if(giURLItem) + { + gaImgs[gnImages]=giURLItem; + gnImages++; + } + if(giNewBookClose) + { + gaImgs[gnImages]=giNewBookClose; + gnImages++; + } + if(giNewBookOpen) + { + gaImgs[gnImages]=giNewBookOpen; + gnImages++; + } + if(giNewBookItem) + { + gaImgs[gnImages]=giNewBookItem; + gnImages++; + } + if(giNewURLItem) + { + gaImgs[gnImages]=giNewURLItem; + gnImages++; + } + if(gnImages>0) + { + setTimeout("loadDataAfter();",1000); + loadImage(gaImgs[0]); + } + else + loadDataAfter(); +} + +function loadImage(sURL) +{ + var oImg=new Image(); + oImg.onload=checkImageLoading; + oImg.onerror=errorImageLoading; + oImg.src=_getFullPath(gaProj[0].sPPath,sURL); +} + +function loadDataAfter() +{ + if(!gbLoadData) + { + gbLoadData=true; + loadTData(); + } +} + +function errorImageLoading() +{ + gnLoadedImages++; + if(gnImages==gnLoadedImages) + loadDataAfter(); + else + loadImage(gaImgs[gnLoadedImages]); +} + +function checkImageLoading() +{ + gnLoadedImages++; + if(gnImages==gnLoadedImages) + loadDataAfter(); + else + loadImage(gaImgs[gnLoadedImages]); +} + +function window_unload() +{ + UnRegisterListener2(this,WH_MSG_PROJECTREADY); + UnRegisterListener2(this,WH_MSG_SYNCTOC); + UnRegisterListener2(this,WH_MSG_SHOWTOC); +} + +function onSendMessage(oMsg) +{ + if(oMsg) + { + var nMsgId=oMsg.nMessageId; + if(nMsgId==WH_MSG_PROJECTREADY) + { + loadToc(); + } + else if(nMsgId==WH_MSG_SYNCTOC) + { + if(gbReady) + { + syncWithPaths(oMsg.oParam); + } + } + else if(nMsgId==WH_MSG_SHOWTOC) + { + if(!gbNav6) + document.body.focus(); + } + } + return true; +} + +if (window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy) +{ + RegisterListener2(this,WH_MSG_PROJECTREADY); + RegisterListener2(this,WH_MSG_SYNCTOC); + RegisterListener2(this,WH_MSG_SHOWTOC); + goFont=new whFont("Verdana","8pt","#000000","normal","normal","none"); + goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline"); + + window.onload=window_OnLoad; + window.onbeforeunload=window_BUnload; + window.onunload=window_unload; + gbWhTHost=true; +} +else + document.location.reload(); + diff --git a/doc/salome/gui/SMESH/whtopic.js b/doc/salome/gui/SMESH/whtopic.js new file mode 100755 index 000000000..3adaa251e --- /dev/null +++ b/doc/salome/gui/SMESH/whtopic.js @@ -0,0 +1,662 @@ +var gsPPath = ""; +var gaPaths = new Array(); +var gaAvenues = new Array(); + +var goFrame = null; +var gsStartPage = ""; +var gsRelCurPagePath = ""; +var gsSearchFormHref = ""; +var gnTopicOnly = -1; +var gnOutmostTopic = -1; + +var BTN_TEXT=1; +var BTN_IMG=2; + +var goSync = null; + +var goShow = null; +var goHide = null; + +var goPrev = null; +var goNext = null; +var gnForm = 0; +var goShowNav = null; +var goHideNav = null; + +var goWebSearch = null; + +var gsBtnStyle = ""; +var gaButtons = new Array(); +var gaTypes = new Array(); +var whtopic_foldUnload = null; +var gbWhTopic=false; +var gbCheckSync=false; +var gbSyncEnabled=false; + +function setButtonFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + gsBtnStyle += ".whtbtn" + sType + "{"+getFontStyle(vFont) + "}"; +} + +function writeBtnStyle() +{ + if (gaButtons.length > 0) + { + if (gsBtnStyle.length > 0) + { + var sStyle = ""; + document.write(sStyle); + } + } +} + +function button(sText, nWidth, nHeight) +{ + this.sText = sText; + this.nWidth = nWidth; + this.nHeight = nHeight; + + this.aImgs = new Array(); + var i = 0; + while (button.arguments.length > i + 3) + { + this.aImgs[i] = button.arguments[3 + i]; + i ++; + } +} + +// project info +function setRelStartPage(sPath) +{ + if (gsPPath.length == 0) + { + gsPPath = _getFullPath(_getPath(document.location.href), _getPath(sPath)); + gsStartPage = _getFullPath(_getPath(document.location.href), sPath); + gsRelCurPagePath = _getRelativeFileName(gsStartPage, document.location.href); + } +} + +function getImage(oImage, sType) +{ + var sImg=""; + if (oImage && oImage.aImgs && (oImage.aImgs.length > 0)) + { + sImg+="\""+ 0) + sImg+=" width=" + oImage.nWidth; + if (oImage.nHeight > 0) + sImg+=" height=" + oImage.nHeight; + sImg+=" border=no>"; + } + return sImg; +} + +function addTocInfo(sTocPath) +{ + gaPaths[gaPaths.length] = sTocPath; +} + +function addAvenueInfo(sName, sPrev, sNext) +{ + gaAvenues[gaAvenues.length] = new avenueInfo(sName, sPrev, sNext); +} + +function addButton(sType, nStyle, sText, sHref, sOnClick, sOnMouseOver, sOnLoad, nWidth, nHeight, sImg1, sImg2, sImg3) +{ + var sButton = ""; + var nBtn=gaButtons.length; + if (sType == "prev") + { + if (canGo(false)) + { + var sTitle = "Previous Topic"; + goPrev = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goPrev.sText; + else + sButton += getImage(goPrev, sTitle); + sButton += ""; + } + } + else if (sType == "next") + { + if (canGo(true)) + { + var sTitle = "Next Topic"; + goNext = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goNext.sText; + else + sButton += getImage(goNext, sTitle); + sButton += ""; + } + } + else if (sType == "show") + { + if (isTopicOnly()) + { + var sTitle = "Show Navigation Component"; + goShow = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goShow.sText; + else + sButton += getImage(goShow, sTitle); + sButton += ""; + } + } + else if (sType == "hide") + { + if (!isTopicOnly()) + { + var sTitle = "Hide Navigation Component"; + goHide = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goHide.sText; + else + sButton += getImage(goHide, sTitle); + sButton += ""; + } + } + else if (sType == "shownav") + { + + if (isShowHideEnable()) + { + var sTitle = "Show Navigation Component"; + goShowNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goShowNav.sText; + else + sButton += getImage(goShowNav, sTitle); + sButton += ""; + } + } + else if (sType == "hidenav") + { + if (isShowHideEnable()) + { + var sTitle = "Hide Navigation Component"; + goHideNav = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goHideNav.sText; + else + sButton += getImage(goHideNav, sTitle); + sButton += ""; + } + } + else if (sType == "synctoc") + { + if (gaPaths.length > 0) + { + var sTitle = "Sync TOC"; + goSync = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goSync.sText; + else + sButton += getImage(goSync, sTitle); + sButton += ""; + } + } + else if (sType == "websearch") + { + if (gsSearchFormHref.length > 0) + { + var sTitle = "WebSearch"; + goWebSearch = new button(sText, nWidth, nHeight, sImg1, sImg2, sImg3); + sButton = ""; + if (nStyle == BTN_TEXT) + sButton += goWebSearch.sText; + else + sButton += getImage(goWebSearch, sTitle); + sButton += ""; + } + } + else if (sType == "searchform") + { + gaButtons[nBtn] = "NeedSearchForm"; + gaTypes[nBtn] = sType; + } + if (sButton.length != 0) + { + if (nStyle == BTN_TEXT) + sButton += " "; + gaButtons[nBtn] = "" + sButton + ""; + gaTypes[nBtn] = sType; + } +} + +function isSyncEnabled() +{ + if (!gbCheckSync) + { + var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null); + if(SendMessage(oMsg)) + { + gbSyncEnabled=oMsg.oParam; + } + gbCheckSync=true; + } + return gbSyncEnabled; +} + +function isInPopup() +{ + return (window.name.indexOf("BSSCPopup") != -1); +} + +function getIntopicBar(sAlign) +{ + var sHTML = ""; + if (gaButtons.length > 0) + { + sHTML += "
"; + + sHTML += ""; + for (var i = 0; i < gaButtons.length; i++) + { + if (gaTypes[i]!="synctoc" || isSyncEnabled()) + { + if (gaButtons[i] == "NeedSearchForm") + sHTML += getSearchFormHTML(); + else + sHTML += gaButtons[i]; + } + } + sHTML += "
"; + + sHTML += "
"; + } + return sHTML; +} + + +function writeIntopicBar(nAligns) +{ + if (isInPopup()) return; + if (gaButtons.length > 0) + { + var sHTML = ""; + if (nAligns != 0) + { + sHTML += "" + if (nAligns & 1) + sHTML += ""; + if (nAligns & 2) + sHTML += ""; + if (nAligns & 4) + sHTML += ""; + sHTML += "
" + getIntopicBar("left") + "" + getIntopicBar("center") + "" + getIntopicBar("right") + "
"; + document.write(sHTML); + } + } +} + +function sendAveInfoOut() +{ + if (!isInPopup()) + setTimeout("sendAveInfo();", 100); +} + +function sendAveInfo() +{ + var oMsg = new whMessage(WH_MSG_AVENUEINFO, this, 1, gaAvenues); + SendMessage(oMsg); +} + + +function onNext() +{ + var oMsg = new whMessage(WH_MSG_NEXT, this, 1, null); + SendMessage(oMsg); +} + +function onPrev() +{ + var oMsg = new whMessage(WH_MSG_PREV, this, 1, null); + SendMessage(oMsg); +} + +function createSyncInfo() +{ + var oParam = new Object(); + if (gsPPath.length == 0) + gsPPath = _getPath(document.location.href); + oParam.sPPath = gsPPath; + oParam.sTPath = document.location.href; + oParam.aPaths = gaPaths; + return oParam; +} + +function syncWithShow() +{ + if (isTopicOnly()) + show(); + else + { + sync(); + showTocPane(); + } +} + +function showTocPane() +{ + var oMsg = new whMessage(WH_MSG_SHOWTOC, this, 1, null); + SendMessage(oMsg); +} + +function sendSyncInfo() +{ + if (!isInPopup()) + { + var oParam = null; + if (gaPaths.length > 0) + { + oParam = createSyncInfo(); + } + var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, oParam); + SendMessage(oMsg); + } +} + +function sendInvalidSyncInfo() +{ + if (!isInPopup()) + { + var oMsg = new whMessage(WH_MSG_SYNCINFO, this, 1, null); + SendMessage(oMsg); + } +} + +function enableWebSearch(bEnable) +{ + if (!isInPopup()) + { + var oMsg = new whMessage(WH_MSG_ENABLEWEBSEARCH, this, 1, bEnable); + SendMessage(oMsg); + } +} + +function autoSync(nSync) +{ + if (nSync == 0) return; + if (isInPopup()) return; + if (isOutMostTopic()) + sync(); +} + +function isOutMostTopic() +{ + if (gnOutmostTopic == -1) + { + var oMessage = new whMessage(WH_MSG_ISINFRAMESET, this, 1 , null); + if (SendMessage(oMessage)) + gnOutmostTopic = 0; + else + gnOutmostTopic = 1; + } + return (gnOutmostTopic == 1); +} + +function sync() +{ + if (gaPaths.length > 0) + { + var oParam = createSyncInfo(); + var oMessage = new whMessage(WH_MSG_SYNCTOC, this, 1, oParam); + SendMessage(oMessage); + } +} + + +function avenueInfo(sName, sPrev, sNext) +{ + this.sName = sName; + this.sPrev = sPrev; + this.sNext = sNext; +} + +function getCurrentAvenue() +{ + var oParam = new Object(); + oParam.sAvenue = null; + var oMessage = new whMessage(WH_MSG_GETCURRENTAVENUE, this, 1, oParam); + SendMessage(oMessage); + return oParam.sAvenue; +} + +function unRegisterListener() +{ + sendInvalidSyncInfo(); + enableWebSearch(false); + if (whtopic_foldUnload) + whtopic_foldUnload(); +} + +function onSendMessage(oMsg) +{ + var nMsgId = oMsg.nMessageId; + if (nMsgId == WH_MSG_GETAVIAVENUES) + { + oMsg.oParam.aAvenues = gaAvenues; + return false; + } + else if (nMsgId == WH_MSG_GETTOCPATHS) + { + if (isOutMostTopic()) + { + oMsg.oParam.oTocInfo = createSyncInfo(); + return false; + } + else + return true; + } + else if (nMsgId == WH_MSG_NEXT) + { + goAvenue(true); + } + else if (nMsgId == WH_MSG_PREV) + { + goAvenue(false); + } + else if (nMsgId == WH_MSG_WEBSEARCH) + { + websearch(); + } + return true; +} + +function goAvenue(bNext) +{ + var sTopic = null; + var sAvenue = getCurrentAvenue(); + var nAvenue = -1; + if (sAvenue != null && sAvenue != "") + { + for (var i = 0; i < gaAvenues.length ; i ++) + { + if (gaAvenues[i].sName == sAvenue) + { + nAvenue = i; + break; + } + } + if (nAvenue != -1) + { + if (bNext) + sTopic = gaAvenues[nAvenue].sNext; + else + sTopic = gaAvenues[nAvenue].sPrev; + } + } + else + { + for (var i = 0; i < gaAvenues.length ; i ++) + { + if (gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) + { + sTopic = gaAvenues[i].sNext; + break; + } + else if (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext) + { + sTopic = gaAvenues[i].sPrev; + break; + } + } + } + + if (sTopic != null && sTopic != "") + { + if (gsPPath != null && gsPPath != "") + { + sFullTopicPath = _getFullPath(gsPPath, sTopic); + document.location = sFullTopicPath; + } + } +} + +function canGo(bNext) +{ + for (var i = 0; i < gaAvenues.length ; i ++) + { + if ((gaAvenues[i].sNext != null && gaAvenues[i].sNext.length > 0 && bNext) || + (gaAvenues[i].sPrev != null && gaAvenues[i].sPrev.length > 0 && !bNext)) + return true; + } + return false; +} + +function show() +{ + if (gsStartPage != "") + window.location = gsStartPage + "#" + gsRelCurPagePath; +} + +function hide() +{ + if (goFrame != null) + { + goFrame.location = window.location; + } +} + +function isTopicOnly() +{ + if (gnTopicOnly == -1) + { + var oParam = new Object(); + oParam.oFrame = null; + var oMsg = new whMessage(WH_MSG_GETSTARTFRAME, this, 1, oParam); + if (SendMessage(oMsg)) + { + goFrame = oParam.oFrame; + gnTopicOnly = 0; + } + else + gnTopicOnly = 1; + } + if (gnTopicOnly == 1) + return true; + else + return false; +} + +function websearch() +{ + if (gbNav4) + { + if (document.ehelpform) + document.ehelpform.submit(); + } + else + { + if (window.ehelpform) + window.ehelpform.submit(); + } +} + +function addSearchFormHref(sHref) +{ + gsSearchFormHref = sHref; + enableWebSearch(true); +} + +function searchB(nForm) +{ + var sValue = eval("document.searchForm" + nForm + ".searchString.value"); + var oMsg = new whMessage(WH_MSG_SEARCHTHIS, this, 1, sValue); + SendMessage(oMsg); +} + +function getSearchFormHTML() +{ + var sHTML = ""; + gnForm ++; + var sFormName = "searchForm" + gnForm; + var sButton = "
" + sButton += ""; + if ("" == "text") + { + sButton+=""; + } + else if ("" == "image") + { + sButton+="" + sButton+=""; + } + sButton += "
"; + sHTML ="" + sButton + ""; + return sHTML; +} + +function showHidePane(bShow) +{ + var oMsg=null; + if (bShow) + oMsg=new whMessage(WH_MSG_SHOWPANE, this, 1, null); + else + oMsg=new whMessage(WH_MSG_HIDEPANE, this, 1, null); + SendMessage(oMsg); +} + +function isShowHideEnable() +{ + if (gbIE4) + return true; + else + return false; +} + +if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy) +{ + RegisterListener("bsscright", WH_MSG_GETAVIAVENUES); + RegisterListener("bsscright", WH_MSG_GETTOCPATHS); + RegisterListener("bsscright", WH_MSG_NEXT); + RegisterListener("bsscright", WH_MSG_PREV); + RegisterListener("bsscright", WH_MSG_WEBSEARCH); + if (gbMac && gbIE4) + { + if (typeof(window.onunload) != "unknown") + whtopic_foldUnload = window.onunload; + } + else + { + if (window.onunload) + whtopic_foldUnload = window.onunload; + } + window.onunload = unRegisterListener; + setButtonFont("show","","10pt","","","",""); + + gbWhTopic=true; +} +else + 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 index 000000000..7fa6c28a8 --- /dev/null +++ b/doc/salome/gui/SMESH/whutils.js @@ -0,0 +1,463 @@ +var gsFileName=""; +var xmlDoc=null; +var sdocPath=null; +var gsInsertBeforeEndHTML=""; +var sReplaceStringsSrc=new Array(); +sReplaceStringsSrc[0]="&"; +sReplaceStringsSrc[1]=">"; +sReplaceStringsSrc[2]="<"; +sReplaceStringsSrc[3]="""; +sReplaceStringsSrc[4]=" "; +var sReplaceStringsDst=new Array(); +sReplaceStringsDst[0]="&"; +sReplaceStringsDst[1]=">"; +sReplaceStringsDst[2]="<"; +sReplaceStringsDst[3]="\""; +sReplaceStringsDst[4]=" "; +var goHighLighted=null; + +function _getRelativePath(strParentPath,strCurrentPath) +{ + if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath); + strParentPath=_replaceSlash(strParentPath); + strParentPath=_getPath(strParentPath); + strCurrentPath=_replaceSlash(strCurrentPath); + strCurrentPath=_getPath(strCurrentPath); + for(var i=0;i0) + { + var nPosx=sPath.indexOf("/",nPos+2); + if(nPosx>0) + return sPath.substring(0,nPosx); + else + return sPath; + } + return sPath; +} + +function _getFullPath(sPath,sRelPath) +{ + if(_isAbsPath(sRelPath)) + return sRelPath; + else if(_isAbsPathToHost(sRelPath)) + return _getHost(sPath)+sRelPath; + else + { + var sFullPath=sPath; + var nPathPos=0; + while(nPathPos!=-1) + { + var nPathPos=sRelPath.indexOf("../"); + if(nPathPos!=-1) + { + sRelPath=sRelPath.substring(nPathPos+3); + sFullPath=sFullPath.substring(0,sFullPath.length-1); + var nPos2 = sFullPath.lastIndexOf("/"); + if(nPos2!=-1) + sFullPath=sFullPath.substring(0,nPos2+1); + else + break; + } + } + sFullPath+=sRelPath; + return sFullPath; + } +} + +function _isAbsPath(strPath) +{ + var strUpper=strPath.toUpperCase(); + return (strUpper.indexOf(":")!=-1); +} + +function _replaceSlash(strURL) +{ + var re=new RegExp("\\\\","g"); + var strReplacedURL=strURL.replace(re,"/"); + return strReplacedURL; +} + +function _getPath(strURL) +{ + pathpos=strURL.lastIndexOf("/"); + if(pathpos>0) + return strURL.substring(0,pathpos+1); + else + return ""; +} + +function removeItemFromArray(oArray,i) +{ + if(oArray.length&&i>=0&&i=0&&i<=oArray.length) + { + var len=oArray.length; + for(var s=len;s>i;s--) + oArray[s]=oArray[s-1]; + oArray[i]=obj; + } +} + +function loadData(sFileName) +{ + if(!getElement("dataDiv")) + { + if(!insertDataDiv()) + { + gsFileName=sFileName; + return; + } + } + var sHTML=""; + if(gbMac) + sHTML+=""; + else + sHTML+=""; + + var oDivCon=getElement("dataDiv"); + if(oDivCon) + { + if(gbNav6) + { + if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0) + { + oDivCon.getElementsByTagName("iFrame")[0].src=sFileName; + } + else + oDivCon.innerHTML=sHTML; + } + else + oDivCon.innerHTML=sHTML; + } +} + +function loadDataXML(sFileName) +{ + var sCurrentDocPath=_getPath(document.location.href); + sdocPath=_getFullPath(sCurrentDocPath,sFileName); + if(gbIE5) + { + xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + xmlDoc.async=true; + xmlDoc.onreadystatechange=checkState; + if(document.body!=null) + xmlDoc.load(sdocPath); + } + else if(gbNav6) + { + xmlDoc=document.implementation.createDocument("","",null); + xmlDoc.addEventListener("load",initializeData,false); + xmlDoc.load(sdocPath,"text/xml"); + } +} + +function initializeData() +{ + if(xmlDoc!=null) + putDataXML(xmlDoc,sdocPath); +} + +function checkState() +{ + if(xmlDoc!=null) + { + var state=xmlDoc.readyState; + if(state==4) + { + var err=xmlDoc.parseError; + if(err.errorCode!=0) + alert(err.reason); + else + putDataXML(xmlDoc,sdocPath); + } + } +} + +function insertDataDiv() +{ + var sHTML=""; + if(gbMac) + sHTML+="
"; + else + sHTML+="
"; + if((gbIE5||gbNav6)&&document.body) + document.body.insertAdjacentHTML("beforeEnd",sHTML); + else + { + gsInsertBeforeEndHTML=sHTML; + setTimeout("insertWhenBodyReady();",100); + return false; + } + return true; +} + +function insertWhenBodyReady() +{ + if(gsInsertBeforeEndHTML=="") return; + if(document.body) + { + document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML); + gsInsertBeforeEndHTML=""; + loadData(gsFileName); + } + else + { + setTimeout("insertWhenBodyReady();",100); + } +} + +function window_BUnload() +{ + var oDivCon=getElement("dataDiv"); + if(oDivCon) + oDivCon.innerHTML=""; +} + +function removeThis(obj) +{ + if(obj.parentNode) + obj.parentNode.removeChild(obj); + else + obj.outerHTML=""; +} + +function getParentNode(obj) +{ + if(obj.parentNode) + return obj.parentNode; + else if(obj.parentElement) + return obj.parentElement; + return null; +} + +function getElement(sID) +{ + if(document.getElementById) + return document.getElementById(sID); + else if(document.all) + return document.all(sID); + return null; +} + +function getChildrenByTag(obj,sTagName) +{ + if(obj.getElementsByTagName) + { + var aChildren=new Array(); + var aElements=getElementsByTag(obj,sTagName); + if(aElements!=null) + { + for(var i=0;i=4) +{ + if(navigator.appName=="Netscape") + { + gbNav4=true; + if(gnVerMajor>=5) + gbNav6=true; + } + gbIE4=(navigator.appName.indexOf("Microsoft")!=-1); +} +if(gbNav6) +{ + document.gnPageWidth=innerWidth; + document.gnPageHeight=innerHeight; + var nPos=gAgent.indexOf("netscape"); + if(nPos!=-1) + { + var nVersion=parseFloat(gAgent.substring(nPos+10)); + if(nVersion>=6.1) + gbNav61=true; + } +}else if(gbIE4) +{ + var nPos=gAgent.indexOf("msie"); + if(nPos!=-1) + { + var nVersion=parseFloat(gAgent.substring(nPos+5)); + if(nVersion>=5) + gbIE5=true; + if(nVersion>=5.5) + gbIE55=true; + } +} + +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 index 000000000..8d8b65de9 --- /dev/null +++ b/doc/salome/tui/Makefile.in @@ -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 index 000000000..8a92d45dd --- /dev/null +++ b/doc/salome/tui/SMESH/HTML/SMESH_BasicHypothesis.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + +
interface SMESH_LocalLength
IDL file
Python
void SetLength ( in double length )
SetLength ( length )
double GetLength ( )
return_value = GetLength ( )

+ + + + + + + + + + + + + + + +
interface SMESH_NumberOfSegments
IDL file
Python
void SetNumberOfSegments ( in long segmentsNumber )
SetNumberOfSegments ( segmentsNumber )
long GetNumberOfSegments ( )
return_value = GetNumberOfSegments ( )

+ + + + + + + + + + + + + + + +
interface SMESH_MaxElementArea
IDL file
Python
void SetMaxElementArea ( in double area )
SetMaxElementArea ( area )
double GetMaxElementArea ( )
return_value = GetMaxElementArea ( )

+ + + + + + + + + + + + + + + +
interface SMESH_MaxElementVolume
IDL file
Python
void SetMaxElementVolume ( in double volume )
SetMaxElementVolume ( volume )
double GetMaxElementVolume ( )
return_value = GetMaxElementVolume ( )

+ + + + + + + +
interface SMESH_Regular_1D
IDL file
Python

+ + + + + + + +
interface SMESH_MEFISTO_2D
IDL file
Python

+ + + + + + + +
interface SMESH_Quadrangle_2D
IDL file
Python

+ + + + + + + +
interface SMESH_Hexa_3D
IDL file
Python

+
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Gen.html b/doc/salome/tui/SMESH/HTML/SMESH_Gen.html new file mode 100644 index 000000000..03b96aba2 --- /dev/null +++ b/doc/salome/tui/SMESH/HTML/SMESH_Gen.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
interface SMESH_Gen
IDL file
Python
SMESH_Hypothesis CreateHypothesis ( in string anHyp, in long studyId )
return_value = CreateHypothesis ( anHyp, studyId )
SMESH_Mesh Init ( in GEOM_Gen geomEngine, in long studyId, in GEOM_Shape aShape )
return_value = Init ( geomEngine, studyId, aShape )
boolean Compute ( in SMESH_Mesh aMesh, in GEOM_Shape aSubShape )
return_value = Compute ( aMesh, aSubShape )
boolean IsReadyToCompute ( in SMESH_Mesh aMesh, in GEOM_Shape aSubShape )
return_value = IsReadyToCompute ( aMesh, aSubShape )
long_array GetSubShapesId ( in GEOM_Gen geomEngine, in long studyId, in GEOM_Shape mainShape, in shape_array listOfSubShape )
return_value = GetSubShapesId ( geomEngine, studyId, mainShape, listOfSubShape )

+
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html b/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html new file mode 100644 index 000000000..8ffb0b9fb --- /dev/null +++ b/doc/salome/tui/SMESH/HTML/SMESH_Hypothesis.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + +
interface SMESH_Hypothesis
IDL file
Python
string GetName ( )
return_value = GetName ( )
long GetId ( )
return_value = GetId ( )

+ + + + + + + + + + + +
interface SMESH_Algo
IDL file
Python
ListOfHypothesisName GetCompatibleHypothesis ( )
return_value = GetCompatibleHypothesis ( )

+ + + + + + + +
interface SMESH_1D_Algo
IDL file
Python

+ + + + + + + +
interface SMESH_2D_Algo
IDL file
Python

+ + + + + + + +
interface SMESH_3D_Algo
IDL file
Python

+
diff --git a/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html b/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html new file mode 100644 index 000000000..b6a66cf43 --- /dev/null +++ b/doc/salome/tui/SMESH/HTML/SMESH_Mesh.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
interface SMESH_Mesh
IDL file
Python
SMESH_subMesh GetElementsOnShape ( in GEOM_Shape aSubShape )
return_value = GetElementsOnShape ( aSubShape )
boolean AddHypothesis ( in GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp )
return_value = AddHypothesis ( aSubShape, anHyp )
boolean RemoveHypothesis ( in GEOM_Shape aSubShape, in SMESH_Hypothesis anHyp )
return_value = RemoveHypothesis ( aSubShape, anHyp )
ListOfHypothesis GetHypothesisList ( in GEOM_Shape aSubShape )
return_value = GetHypothesisList ( aSubShape )
log_array GetLog ( in boolean clearAfterGet )
return_value = GetLog ( clearAfterGet )
void ClearLog ( )
ClearLog ( )
long GetId ( )
return_value = GetId ( )
long GetStudyId ( )
return_value = GetStudyId ( )
SMESH_MeshEditor GetMeshEditor ( )
return_value = GetMeshEditor ( )
void ExportDAT ( in string file )
ExportDAT ( file )
void ExportMED ( in string file )
ExportMED ( file )
void ExportUNV ( in string file )
ExportUNV ( file )
MESH GetMEDMesh ( )
return_value = GetMEDMesh ( )
long NbNodes ( )
return_value = NbNodes ( )
long NbEdges ( )
return_value = NbEdges ( )
long NbFaces ( )
return_value = NbFaces ( )
long NbTriangles ( )
return_value = NbTriangles ( )
long NbQuadrangles ( )
return_value = NbQuadrangles ( )
long NbVolumes ( )
return_value = NbVolumes ( )
long NbTetras ( )
return_value = NbTetras ( )
long NbHexas ( )
return_value = NbHexas ( )
long NbSubMesh ( )
return_value = NbSubMesh ( )

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
interface SMESH_subMesh
IDL file
Python
long GetNumberOfElements ( )
return_value = GetNumberOfElements ( )
long GetNumberOfNodes ( )
return_value = GetNumberOfNodes ( )
long_array GetElementsId ( )
return_value = GetElementsId ( )
long_array GetNodesId ( )
return_value = GetNodesId ( )
SMESH_Mesh GetFather ( )
return_value = GetFather ( )
long GetId ( )
return_value = GetId ( )
FAMILY GetFamily ( )
return_value = GetFamily ( )

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
interface SMESH_MeshEditor
IDL file
Python
boolean RemoveElements ( in long_array IDsOfElements )
return_value = RemoveElements ( IDsOfElements )
boolean RemoveNodes ( in long_array IDsOfNodes )
return_value = RemoveNodes ( IDsOfNodes )
boolean AddNode ( in double x, in double y, in double z )
return_value = AddNode ( x, y, z )
boolean AddEdge ( in long_array IDsOfNodes )
return_value = AddEdge ( IDsOfNodes )
boolean AddFace ( in long_array IDsOfNodes )
return_value = AddFace ( IDsOfNodes )
boolean AddVolume ( in long_array IDsOfNodes )
return_value = AddVolume ( IDsOfNodes )

+
diff --git a/doc/salome/tui/SMESH/doxyfile b/doc/salome/tui/SMESH/doxyfile new file mode 100755 index 000000000..a4c5be459 --- /dev/null +++ b/doc/salome/tui/SMESH/doxyfile @@ -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 index 0000000000000000000000000000000000000000..7b58330d50856e28562e8f9ed80dae72d6e6dda3 GIT binary patch literal 19226 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

5r3>=?gKv-6#gF2kVYm^Euk4pDx%bDo{L~m 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 Ao&W#< literal 0 HcmV?d00001 diff --git a/doc/salome/tui/SMESH/sources/application.gif b/doc/salome/tui/SMESH/sources/application.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b05d5c18ee88779d283508781836e2b151f606f GIT binary patch literal 2602 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 literal 0 HcmV?d00001 diff --git a/doc/salome/tui/SMESH/sources/bg_salome.gif b/doc/salome/tui/SMESH/sources/bg_salome.gif new file mode 100755 index 0000000000000000000000000000000000000000..677b70468f798fe4fbc20fac3d706e61179ff12b GIT binary patch literal 17294 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 literal 0 HcmV?d00001 diff --git a/doc/salome/tui/SMESH/sources/myheader.html b/doc/salome/tui/SMESH/sources/myheader.html new file mode 100755 index 000000000..83ca543cd --- /dev/null +++ b/doc/salome/tui/SMESH/sources/myheader.html @@ -0,0 +1,24 @@ + + + + + + Main Page + + + +  +
+ + + + + + +
+
+
+ + + + diff --git a/doc/salome/tui/SMESH/sources/occ.gif b/doc/salome/tui/SMESH/sources/occ.gif new file mode 100755 index 0000000000000000000000000000000000000000..ce017c8ae11236ef5c52eee1723657cb8b08989f GIT binary patch literal 14790 zcmV;%IXT8hNk%v~VRQkY0QUd@1_TBOg`<>&4T;4JdIT4h$I-{foOVg3n-^whzoZv-R!6wSgo zd8iFsVia^~2;Ql+iLnuX7c0ux+OKvLsTV=p$y2eac}|U*=;-JMXL)pSb1-6Xxy6^W zCQAt`F?R%0NJmH#pRnrm^vbOXz^tt#Moh4XfIU1t26&LQ+1mzHTeSl%+1kbS_4B2q zq`telsD>Q4cwFY##Prt%$cvX6sLmvYIYxw}ad>Dt^G85xj_IEO`C@9fY~nxy30jcu;KFQ2h`1}ymOq+WU$udJH>PJW^6oiI+KETwH(|REUokENkjXNP$Yd}>4`9wO@IwTw4!M79 za5;*nTqZcCot(c%XdG^QnU|P$j}(ZgEX1lLuhT!As$^t(G`HjA%(^j{mO{jeRN3e2 znZ3cBGIWm`T2`*SdBe>7w^lDj72SvhIr(&6Fuywje?BN{m>iPFIZ>ktXfH0Yz{X zefp$HldQY4>Z(&mjT#CR=K`N|C;={lvP9#X6L&umgDN=m@$AKe&`2ggH4J%OK;Oc49TrXP|qkar|^5)Nn z0)=pD)1HAwR8;{|R-k|gCdd?m2dQOU1{r+t0UZ?5amy_dUS-*8s&uHzcHfC1;)o=Y z7)d1c)H4%=G|&)CFl@D`g%*E#Hrjv*nUZL!4_S9H@&0}Z_BgAYIaaK{}D{RIdh+J38Tih(Zi*SDI21J1YV zb|Zoa0--cxr5i;yE=oiFg)O(8b}EP<++w@$PXZMgFF2ZNI%7+JIc&|rovyOV!7qmU zS3{9mjB&w;Ao6XBAF~wQxe;5Vt;Z-N^jEkqYO1Zx-N^ebwkXG(Q;ItK@UXlOKdddb z0{vB%Sjs3Pg%rmeqlX@Ig%eJ)aKLfw*31wa%GY3Xz(Em3h>Z&_tgs^KWCb2nWXar4 zjMUqROl_@Nue>s~+yYtudoZ>|!TS(5`--( zsI1QU!Gzzd@$VXIOuX>`Ts|YWt5*)g!PsYy{ZyQA(m@CM=p&3UcGwX?1Z1C0cKW!i zU&PsBvoDS~kr5Qxv*XS)&n&YzTR~?%2-m?F6Dfu%L|$>z!nZn=xE~O#6))=B7Ko>@ z%N48@-1^)S7TAibxJ?36o0^6Sa<3O*OD!+@-RWKu8I)XQTpsK}bPhH;0BCM%FRG#D zxD^p@)ew4;yPe?wH1(Gh-EMUnOIg2UaFrPWj3a0`*AXWtxFS7oavIa1wU$S^PFYKM zSGc0&H20#Z0TBSbNn;r#H#IXA%Jqz3-jRePpxR{Nfl#0~o+0e(;0-`1goM z4B?Q7JY*pgnaDx{0~q@AA3B3DN_s6>|84}_?Kr+j(7uWfC|B}ObJ*k zT!h=qjI34vBb@Zb3}%?)Ar7%fL>82hLpZ2G9}$unICKVyNCZ025lEke>vETS*$?)) zg>cCWaShO*TDWyN4N59p#M4xfR=Uy=a*%MINzuWEXpNNp&Zbf9?6D_$d-*9~ldIsjyj23bYe!g7XRhIJ#V5Q~|$ zg^6uF7?&g@0oS(9<+7Ir0ucDB*Uok}qT?9HGoEqDC0vCoPn%Pl+Vmz@W#P534M7Na zw z5P$$U+gXPi!x+?g)LUO6j-|h_O_M)u!XH_<4a%JHlYb@8CRvCo7n#P z_rH_kFH!^yU3$v^ zi2<0UXwA57GA2-zw>0J60{6Ky|rL`=kNx!<*Pj)qy zXN~JstvJQZfdB+#`)5O^_tbj25MXZ&*)7}J(Y}6mrBm!|R{fgNdA1gxi49vblY$f! z>WFw%ENyI?``qZBak>k_Tm~DV5|v0tItI#FhlUok{B}&>h+4;sdnv{U?;GjOR`H^WJ)13|-DLg5UyWEd-qSZi` z*LW8?aUreSyf>NL>c(`nmv9yd!5J*Nn$w+HpeH`*$xd^+5QIuA5Zmlw4=%{O3!LE$ zM17|_h!Q(Apuv~~0evzvQi2jV&-o6KeLHVY!I82vO1)dT*FBfY-EF^j&P@CTw9-?X z_(ZEW(MnBiQj@JNgpy~eK@CVif=N1JntL(kF@IU~z-!#!gZyRf4~P!`<)@vQ0@}IX z+;=vsbN`vM@L4#0=!2}<^le`7Lf*o{TGq72wf<)sJs(!Y${L zG6!)k#B@fzaY_j>E;+S2r&JNTbXEY+DT?zDDdJN))jQ`RGbr#?#?u?}k`SxpgObBk z!SEO3LWDl35)}b&;WIvPMK)q1HeUk*AP_%zbT;bqKDZ!n2iRB-flY#-EimY1SK&HS zhyr<&K&m7G8iOs?A~^Y^5T+yu%mfG$2o7p7eg|z?9kGH9BLSTPA($aAC1V;KG&P!XE-{o#KhQga zH4yD05Z}^?sPqt#ae>$p5hWB1FNgvu6pCJOgbMK&S790`5gFLxh=PMHC{;XE1OvBa zEtfNiX>>*!!!5m|gM#37N%I#dfD+^K7xz+&vQq}!5*alAX+yp6EeA0p!UzD6C=gPF zJCn0R4PcCoic-GMLb1Pi zL|%|RKPfrVqXpChk%?J1A#^!Y)0E7X8PTC}a0OQyM^|E5R}b}2+;s>MHBsY75PxAU z=fW-A0yhnCF8ZYt%UBO>$(#-u3{xYWqS*lV@{SGv>5c_4Bi{lu2{9w*QZj-=JiXIP zWHlq2f}479IiK`K6_6r=i9^9KE|H<14bUmKqd66%0+=ZQ2)6_%;Zfl5n5b|ohG zFeCq25A-=TgqfZS5rW_970B3;`)TVprmwtW6XvS3~ zJJ$mSCj&KMT;_)+TAEy4%B5k7e!E5{)^VjQB&PkAVrp7}8&P5h@upyErVcTsUIt}n zG7}x)M;eD&n5A9E$)f``QKMxN`9c8_av{1|(qlVDVWAdVA@E?MFbZc8kjm8*PIi0J z6>Cnpn>W%D?dGYVDr;rZYnw`I{?!qKFbHr}7xgv+Lb_}baTOPGUK92z1W;kTnyc^? zsiEd7mHLP5SFFam8UNQtT)dWIp*j#PGG?z8VHtL4r>15+R$)U%X7gocZ}K#IiCYJ# zr?+>en(<#$Md|V;8b8 z_DZe`(yYy;YxVlBoLXh1s;UDbuFYD2^17~kcdXBvufR%V1hB7!Heo^5s~-zz`*^G- zd$QJcsyA|JoocZ_ff8i_ty$n_k;-O9=BQ`JCtd*|2rGCC8+g%Dus(aS5$m!*K zsei{?4~w!(VJ-QP4;@Cc-8QWnc40k636xM;r$<;_>$G5dSPDCMNsAOH(WDQSV^%w1 zx{?(gfvFH1Y5!#lYhx>EK&!AwJFa${spJ>7$l3#Y)&;NiZ4`1_etWoxdw#t4We0&0 zeL-?0;ZPxAsLv36`?k0(*0o>DxR@)Wb=z!UO0@7=5R0Z3S8*0u!A~eqx<+6FHsBU+ zfe-kwqlfTuva4Ai*B7WG1A);PjsY157ra87pn0pVcWb;f=5wufynHJf^g6eCE3R=1 z8cIV9e8x1&kPOLSE6Sn0TGup0Km=FOBK8Ltfe;9pkO@^#1$S|~K%liVVjG6RAFyE` zF)$za!5{oV7=dvU!K=Im3%bx7zb^plG4((uDWDp%Jzyj4ZSr%Xc-$im*Ndb?M25E34W*2woF~b3H5BETG#l^el zpcsU~ABF)BKpe!1@fZn8z`ZxR#frcR!oY+zE_vg0vY{yIv2wAXbYh?$ilTPwpo*=~ z8?{gi8vJ|3fgIZVk27W(@S!A5(jDC)BIZ#a=`jq7@fRo39pUkE_M6A`VZ$zr!=jsR zn%lYS7RU`^1eIbN9n!`~x5y&$9Vfyb1Q9M`!42HdaKxb;+Mo^E!n2Ee5T@}X>LDWG z5gseAU{zgm**iLvLvqzdlx_+;QHT@(Ik1={hXAkz!Ax!rjVka9;cXF#SBtEgS zR0_Zg@}*R^yP7h32UB#H_bJ=qb{B9W+0i56iFu`(-M zU?-2qczV(Xae^ytkbH8$X(MzH9nlfv!XEJP)6>8nDPkH9jj9ZL#CO@b!8(24^>gtyaF2@x6R0*YtU zJ3NUK;nFFzv^v_&mW*8xnnFv~lOhRmFIH$gl?VeXBoJ4zno+e)Uhs}*a0c;5D<15@ zR$v9@U=E=@+Q*VLqb-JHI6qCRyeP4O@$=)r(3=W;UjFhb{YFfK#}FY-4rt`mYD zOD(=eJM#)78xhi2-m%9|uZc@)%5Ppsb_i`>8!$6&c2rnWxDMCCA1n#96+nVx=et8hsB2IeX z6V`IvoWxbA5Inm%BL&Zz$L)xna!p!rIWBHIfdIsH>eSH!fh}KOOTr`wr`aiyW?+Bt2Y~tscT_gpc!u6s2d!Ep(Lo&_LG!aPoCx(u zAF*s2dNAmH887l8rtu=&!Y)S8mb#?p1#vF4vjy!oF5DtG5-I2s`7NtsI)-Qj+8Kx( z^X*p<_nesL%E;(?uQ?J~f#VV`4|Mhsssev6Ip&@c1A&Q(34-*JPPcQ3C?MaLV;U7t zIu~x20#WKe4))-{@inP2)lZ^aUm1T<4&~qv{&4v2(~aQRs(#cL&-Z-ii1`39MBqSz z1qVKQ1PquTKRtRZSwewAuwV@uNRR+g<3^4UF(N|b!~cgwiYipptJiTO%2lf{s^n6GTymLf4K_2OkK(jPy- zf$Li|@nfc2EMFFpSp-g%4mZ-HcjU;XO)OYo^sJEwk0(zOB|>OW_H5Y*zkGSUVFMa8 z8=0=v^V6wA;>4YbG-(k93WpX!TJD${CF38(Q>PY56*}i7OfAx+sWkP^#Cyvmj%+ls zNt)^34n;aNtzQ7$x>2Q{7HN5|E+sG>%&)ijTmK9OljgfhKN#dgCB33d!U#Y5CM+r~ zrJQ1mLcTWS5T?{1`fv#uWB{=TBaDddp(R#hg_Tb}*=3j45Q--r+J>l6AcSng?KK|{ zIYc+!I+92vkSwA|B>S90#G=NQgJ{IZC@PDi)G%tvB#NdC=CRDoy22!;LfmLXh?bLy zD*K?+h$*&)dds}GT2iVps@{4lE0LC4XB~+!I)zL9MQi0 zym0WZGLQm^Df{vqv=^!}TP{=-L_#X7x6-nYB2#-w6i-&YNUJ4_oEmXCidw~U)m1rt zi#v_TTmo2NS2M#54?OV1lVf89l13YGjQ{7h+h&--M{5%SGTTGYLB|(gICE$@rhY;x zGl@LxK_WK6?SZMr8bb-*dPWR4RC&IqUF zoU$x4rq=CFi^fEfsWFU}19qc&8&is4KwjcVqKHM97zNJyw2Wbndsvt$En=2gi;guC zSLV!GuDNHXzO)kHUxhA{MDB<+BiR>UOg33&522P?Z4p2~TdS=up@egB8gZX}q>us> zP%gQI2qJ8{nO$GkUi&(t*@m0#wBx3GZo2QrJ8!-B9-6b&;)o;JV~>6D*klC|;5BU( zzq;|)vK|s=6ufr80XN*(A@d!w;Qzey1r~q=5<2L}AOpMkMm=@aS7*I-yiZTjb=NDX zfEsGjNr&*Ibw`|W#v9LeoN-P$<(X%^rQN1uj`7Bu7Fx)Bf(bO=fdB$J$36?|Ki5T< zY_gFEcG<@#zkKu0M;~tSVH!~)PB@8i>7{$e_K@GReT{fpXo>v94?eJkE!xlq=}9kh zQ$XMpsAs+GHL!ErTL1(g5RGW`DShc%pWZT9qPuPIU+426>uxr}w{65*q7Vh(UPQmE zam#qNE0Nc3af{0xa0&+80RnLtz3FYvfj|6V6PhrJQ9Maybt~ZqmB_&*Hqm2ABq0-} z7_``R28vhAmld;EMJ~1ti&b8H;uf{oH|~TeL{7mS;DF@9XTUIMbC?6!blAfLDo}IM zo8tnn2Sh$%&w4=!Lg^eryDm;KjAJY$8P%ppDmt-@LOY!qzj#Ptz0GY^l;k1}$;d2e@^(n$|{&Ga8JSHFO$jnx@vzY|d+(0!qLm>#^ zp2CdcJ~!zr4?dKl{X}9SC+f(HiqRneEvGHDhsy*O)TDPbs4_M8z3}0yk%_z{CuQ2v zPj>R9H)UcbYdTYo_B5gzb>vTR%2T1{)RK@?Q6*slQjt0^odx7!R1=y&b|P^9fGnke zP-ALSt}3ypJ+-M;lX_G!dK9BN)ud0!y3>tXG@mD;;2F*U&8BuPj|gpMED=ZwQhX1a z5(R8v1>4oZqD~^jAVvs6P*-Hy(S}uhW#*daHA4E*t%U_EPAZDgU|trpO|%Kw7|Xd_ zGBcI~WCI&YL`us}5}bkEYzH~}*}ZwTte*sFANpX+(&mt=6L=mKs8CsZ&bGG3C7*5C z`bgO}*L-+UmX+s3dfoP58l&&qdRY2yEW}yj2|b?)0l|r7uwvEZzl|cew}ucJO>}i(uMr zvj<)a9p^Nlfn56aCKU#8h($c&@^zvUy6xVHNW5Yew|Kk~e(+IsT1npQPg-BdngSHC zHT9C$sP08-k10%DuLjw`=pE{iH(Fohigm(ChVO_SA`#m)qZwJF)@|4*$^j!+qR{nn zVU?>o2tS#&{({MgDp3jC0f}+c65eZsXAEO>`H9vEbBpyXyD>lai)aPo+KPK3o0!;Z zmRZiAjbH;C9Kg{Bzz04wp$Q;SEz&>$0@c6^DH)vO9CDG%10FCUQj^-g96_^!&CEy$ zJ2|LlT`QBHEI#>07|MNK_1$dZHLp?76s8DZ=zfh@6W7xS(vXJ#qZP4iMZ9RzvVgWM zCT&gIEyvTIc7!9|vF&$c8yUy|bq++GYJB24xp{6aY|ks?)h!3HUFbsSl%b4dB*Pu< zaD^-C{fl4B+iW&DB`_7w}6Pc(&6`*}-AW(u5Oo>7iwhaX+vY2R?uS3`HA} zsLd`Hf8ER6AbvaF;vV>xzID=*{vP)*yT0y@jBHbU+wg#W?7uy3 zquqDiC)e|-EsViG8@VGV>XX{Rzz%k7o9q_H1~x3d?TA}&2__bNRt|soVibeuiGM@B z;ka5fEN3;V>2hj3eS#AtAOSki0q9eZ0?=c<^jIIpF#7Hg;!k55WZ!tkW6<%9Zye-~ zFuOi6HW^CYMEif!122JWKo8m)CayeC7E)%>chbS&z ziMTjKKPGg$!Z>25qnpK|;Wx>65&RzY1Kx^*cR^+dJoz zi#^zb6=XqJgvAy#KO2lVKqJCg3&mV)x#Dt&()pj!8J!vWADgHm;)}yLG(RPT#7DG2 zlyIBUIVFlfwo^(OSDTwYF}sMv13bvPzLN|8=L-tYlf^SMM;uH6&$GC1(>+48z1y0x zK9omzygfnes&=%;UNnMTT*!rV24`SK&_h3FBtvL`2D#v;Ut$U+P=cd8%7!#Y zle~cS^E~piNHS}(T?DK>6iar?n*fran`{A{)XC>zOA=7a0iveoS)P}H2vKuNB(w*6 zh(m}3Ju*x_2DCcj6UU*6N3vX`dlAI{)EE(&a7wB`LRYMT8Zf^&#KTA+zitE?vsyVY zgfU%wM~x&vxofbFkb~2d101>>fxH~GyqugQfy~j#8B(#Kk&AAmNQkV!2eiMvi#ShH z%*^Vn+3FLyh&Y+BKbn}#T8xCe3&3^2N0yY%^dY*_oJ*W+gXbBb0lJ*i93bgA&HXaQ zf8h<@aEiXOzx14jzC(#V3C=~rMUDKi)G0Nmkc(5YI;XTc&>*+enHyJIvPSyD^m;WQ z3($Nl5dw>{c!Y=$q^9qj0G*_!%%P^!1W!4*w;7TM+ED{F5G5VsjXueYP;x^b5uAeVZ`NMFH-pJ)uH@T4;P zr1*pg>#?5dL``bCH}7nN<{=wQzyv@N4JKd$W&qSc9e@Gw(RQ&rLYPL0f358aY3m7f12&w>yg87Mo@d1!93Chp{eW8e!0EwS?3|DP{4E{~_BbOOcOg67P*$?$BYju#6M=3PGycSa48^6Il+BFb||Ki96|qyJ!WH84%gqXk-2(DZ zjH^ftu}}fKpkpr(iH-P)$K49dE#f7}3<@q;FKCID@MEJ86SHlAEPi5ug=9!Bjza4M z3M!owsl2A~1m+!HW*AgJ9n?WZUge!(8pZ|XP2pm>;k~(DkSIaJyvQZ^iLn5L<**1i z-Ux{ZkCBmpmUv~DsKQpT50IdU%$TnB6_0k&g4dOb8=#1I`2j+1<~@!G3Xo>{FbRse zW&mgjnE+RC|1egXc#OntfSfG@laLpXu-u|}V-+Zl$5>~-ppK1b;HW?fNCgQ3ISLr~ z2`tWIwou!(U0a4tQK4Bgeb5JC5QbxsVN#ygQC?o=m1tAO1?Ht;+*xJvVhT0s1~xez zn;_<3SdOo-2nO!uRrm?ZKnf=Ai0lYo2~di+1&0%XQHRKk$M^||K#6#c+$wPhkw}YG zL5e*=fyU5h3pR=c?qP>uX36k^zV!j6sFQbz88l7{k+lpi2H>aGgAj*E~0oA`?KIM}EtT|h_;G%kvv_|;dvg6+r*Jho>T zAXtZ(WfcI4w5??nm<|{yWUA3|ME zXocSE2#A2fmgpkz>xn+)h^ArZO|=oB9jBOwd6p>{gVw z|6mL7E{eCXh}5u%F)n1JkO|Dz=b~r{Z|#8*u?ePVDc(SgIo4koz=+57<%Th9FD_qM zzJkYn3*gWY4k-$@ND*KG+xBJv2H5K{58hI~?-;i4ipFmm2HTC`4cpPN0UvOL7;r-{ z1Uusn$0nKR9A-qw45erZ2ycLpt`d|;iwOS-sRo3tkqMgc=^pqAs_^omv5btJZi_$* zRG{Vqtr+D7fU#DJc&3TeV2ZqeZ3+=uaT#mp9nkb#Tc?^)~6Aot!nNW(qT7t$HieFxW2zG5BP-@1M0XF7e6)EvxSX>m( zW7ADl6tIatk%$rbiFn@MD`{*YBDDV20?*)Pv5gBlb#$eSkP79OJcmODE3fKs0|2=Q0771xi z459|>2T_4O;qHxp>5YKrE`ICECT{_zTSPDkw#Z%|AW+&N4Zvyd_U?ITPhsaJ4bm_G z1JE&s2=F?8gm16?+DHgs2=D@@?a+r&U$Ny!6=@V;5;bk4t{2&ua%o-?8YKqgDQ@kb zFlVZe_^#g&HAds181~1_3bt?vM!f=wnHiV{gvZGK8!(A&MhetWk*H6UIu-UKEQku#l`9Pz6fEe)3pj9Ev`CP!Wy_Br6PIx8=<(x6 z6e!A-^XKo+pCT%Y)Txsv&!9mD3{az{=BAoivxe~O>GLPhpgbQv{{jZgkDnerI8vYx zEZD+|Ag6Y$hzOAnA5EXCP*JZQRgPa*t&$p+qcv*+$&fjlmh97tPZM⁣iMxf-qnJ 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 literal 0 HcmV?d00001 diff --git a/doc/salome/tui/SMESH/sources/static/PluginMeshers.html b/doc/salome/tui/SMESH/sources/static/PluginMeshers.html new file mode 100755 index 000000000..f860aef7b --- /dev/null +++ b/doc/salome/tui/SMESH/sources/static/PluginMeshers.html @@ -0,0 +1,344 @@ + + + + + + + + Main Page + + + + +   +
+ + + + + + + + +
+

+

+
+ +
+
+ +
+

How to add your own mesher

+
+ +
+

(as a set of hypotheses and algorithms)

+
+ +
+

to the application.

+
+ +

Table of contents

+ + + +

1. Introduction

+ 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.
+The goal of this document is to describe the process of creation external +mesher plugins. +

Back to the contents

+

2. Implementation steps

+ +

+

2.1. Mesher plugin package

+

+Create your mesher plugin package which will contain the sources files, e.g. + MyMesherPlugin.
+
+Back +to the contents
+

2.2. List of available hypotheses and algorithms

+Create XML file to describe all algorithms and hypotheses, provided by your +plugin package (see SMESH_SRC/resources/SMESH_Meshers.xml for example).
+
<meshers-group name="MyName"
+               resources="MyResourceKey"
+               +server-lib="libMyServerLib.so"
+               gui-lib="libMyClientLib.so">
+     <hypotheses>
+          <hypothesis type="MyHypType1"
+                  +    label-id="My beautiful hypothesis name"
+                   +   icon-id="my_hypo_1_icon.png"/>
+          </hypotheses>
+     <algorithms>
+          <algorithm type="MyAlgType1"
+                +     label-id="My beautiful algorithm name"
+                 +    icon-id="my_algo_1_icon.png"/>
+          </algorithms>
+</meshers-group>
+

+ +
    +
  • Attributes of <meshers-group> tag:
  • +
+
+
    +
  • value of <name> attribute is used to collect hypotheses/algoritms +in groups; you can also use this attribute for short description of your +mesher plugin.
  • +
  • value of <resources> attribute (MyResourceKey) is used to +access resources (messages and icons) from GUI (see paragraphs 2.4.2 and 2.5); in the current implementation +it should coincide with the name of plugin package; this limitation will +be eliminated in the further development.
  • +
  • value of <server-lib> attribute describes the name of your +mesher's server plugin library (See paragraph 2.3)
  • +
  • value of <gui-lib> attribute describes the name of your mesher's +client plugin library (See paragraph 2.4)
  • +
+
+
    +
  • Attributes of <hypothesis/algorithm> tag:
  • +
+
+
    +
  • value of <type> attribute is an unique name of the hypothesis/algorithm
  • +
+
    +
      +
    • It is a value of _name field of your hypothesis class (see paragraph + 2.3, implementation of constructor of StdMeshers_LocalLength +class: _name = "LocalLength")
    • +
    • It is a key to each certain hypothesis class (see paragraph 2.3, implementation of "GetHypothesisCreator()" method in +StdMeshers_i.cxx)
    • +
    • It is a key to each certain hypothesis GUI (see paragraph 2.4, implementation of "StdMeshersGUI_HypothesisCreator::CreateHypothesis()" +and "StdMeshersGUI_HypothesisCreator::EditHypothesis()" methods in StdMeshersGUI.cxx)
    • +
    • It is a key to each certain hypothesis icon in Object Browser +(see paragraph 2.4.2.1)
    • +
    +
+
+
+
    +
  • value of <label-id> attribute is displayed in the GUI in +the list of available hypotheses/algorithms ("Create Hypothesis/Algorithm" +dialog)
  • +
  • value of <icon-id> attribute is a name of icon file, which +is displayed in GUI in the list of available hypotheses/algorithms ("Create +Hypothesis/Algorithm" dialog)
  • +
+
+Note: All attributes values are accessible in your GUI via HypothesisData +class (see paragraph 2.4.1)
+
+Note: The environment variable SMESH_MeshersList contains the list of plugins +names, separated by colon (":") symbol, e.g.:
+
+     setenv SMESH_MeshersList StdMeshers:NETGENPlugin
+
+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.
+
+The SALOME automatically locates XML files, searching them in the following +directories:
+
+    ${<PLUGINNAME>_ROOT_DIR}/share/salome/resources
+    ${SALOME_<PluginName>Resources}
+    ${HOME}/.salome/resources
+    ${KERNEL_ROOT_DIR}/share/salome/resources

+
+where <PluginName> is a name of each mesher plugin package
+
+Back to the contents +

2.3. Build server plugin library <libMyServerLib.so>.

+ +

2.3.1. Define interface to your hypotheses and algorithms.

+ +
Example: SMESH_SRC/idl/SMESH_BasicHypothesis.idl
+         NETGENPLUGIN_SRC/src/NETGENPlugin_Algorithm.idl
+
+ +

2.3.2. Implement functionality of your hypotheses +and algorithms.

+ +
Inherit corresponding classes from SMESH. +

Example: SMESH_SRC/src/StdMeshers/StdMeshers_*
+         NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D
+

+
+ +

2.3.3.Implement interface to your hypotheses and +algorithms.

+ +
Inherit corresponding classes from SMESH_I. +

Example: SMESH_SRC/src/StdMeshers_I/SMESH_*_i
+         NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D_i
+

+
+ +

2.3.4. Implement being exported method.

+ +
GenericHypothesisCreator_i* GetHypothesisCreator (const char* +aHypType) +

<aHypType> is a value of <type> attribute in the XML-description +file

+
+ +
Example: SMESH_SRC/src/StdMeshers_I/StdMeshers_i.cxx
+         NETGENPLUGIN_SRC/src/NETGENPlugin_i.cxx
+
+ Back to the contents +

2.4. Build client (GUI) plugin library <libMyClientLib.so>.

+ +
This step is required only if your hypotheses/algorithms need +specific GUI for their construction.
+ +

2.4.1. Implement the required GUI (e.g. construction +dialog boxes).

+ +
Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI_*Dlg +

Note: all data from XML-description files is accessible in your GUI +via HypothesisData class  (mySMESHGUI->GetHypothesisData (aHypType), +see SMESHGUI_Hypotheses.h for HypothesisData definition)

+
+ +

2.4.2. Provide icons and messages for your GUI.

+ +
2.4.2.1. Implement resource files
+ +
MyResourceKey_icons.po and MyResourceKey_msg_en.po +

Example: SMESH_SRC/src/StdMeshersGUI/StdMeshers_*.po
+         NETGENPLUGIN_SRC/src/NETGENPlugin_icons.po
+

+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".
+See paragraph 2 for definition of MyResourceKey, MyHypType1, MyAlgType1.
+

+
+ +
2.4.2.2. Define environment variable SALOME_<MyResourceKey>Resources
+
It should point to the directory where resources are situated.
+ +
Example: setenv SALOME_StdMeshersResources ${SMESH_ROOT_DIR}/share/salome/resources
+ +

2.4.3. Implement your Hypothesis Creator and being +exported method

+ +
SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator +
+   (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI) +

<aHypType> is to pass a value of <type> attribute in XML-description +file;
+<aServerLibName> is to pass a value of <server-lib> attribute +in XML-description file.

+

Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI.cxx

+
+ Back to the contents +

2.5. Provide icons for object browser.

+ +
If your hypotheses/algorithms do not need specific GUI, but you +want to provide icons for object browser, see 2.4.2 paragrath.
+
+ + +

2.6. Setup your SALOME environment.

+ +

2.6.1.  Add your plugin to the LD_LIBRARY_PATH, +PYTHONPATH (and maybe PATH) environment variables.
+

+
setenv PATH <path-to-my-plugin>/bin/salome:${PATH}
+setenv LD_LIBRARY_PATH <path-to-my-plugin>/lib/salome:${LD_LIBRARY_PATH}
+Setenv PYTHONPATH <path-to-my-plugin>/lib/python2.2/site-packages/salome:${PYTHONPATH}
+
  
+
+

2.6.2.  Set mesher plugin resources environment +variable

+
 This enviroment variable is used to set meshers plugins +which should be loaded by SMESH module (see 2.4.2.2 +paragraph). Add your plugin to this variable. All plugins are separated by +colon (":") symbol.
+
+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 <plugin> section to your ${HOME}/.salome/salome.launch +file for SMESH module section:
+
+...
+<modules-list>
+    ...
+    <module name="SMESH">
+        <plugin name="MyMesher"/>
+    </module>
+    ...
+</modules-list>
+...

+
+Back to the contents

+ + diff --git a/doc/salome/tui/SMESH/sources/static/doxygen.css b/doc/salome/tui/SMESH/sources/static/doxygen.css new file mode 100755 index 000000000..0a8e93d50 --- /dev/null +++ b/doc/salome/tui/SMESH/sources/static/doxygen.css @@ -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 index 000000000..bfb35c85e --- /dev/null +++ b/doc/salome/tui/SMESH/sources/static/page2.html @@ -0,0 +1,46 @@ + + + + + + + + Main Page + + + + +   +
+ + + + + + + + +
+ + +
+
+ + +
+ + diff --git a/doc/salome/tui/SMESH/sources/static/tree.js b/doc/salome/tui/SMESH/sources/static/tree.js new file mode 100755 index 000000000..8461479c2 --- /dev/null +++ b/doc/salome/tui/SMESH/sources/static/tree.js @@ -0,0 +1,22 @@ +foldersTree = gFld("SALOME v.2.0.0 ", "", "") + 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 index 000000000..55eb43d07 --- /dev/null +++ b/doc/salome/tui/SMESH/sources/static/treeview.js @@ -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 0) + auxEv = "" + else + auxEv = "" + + if (level>0) + if (lastNode) //the last 'brother' in the children array + { + this.renderOb(leftSide + auxEv + "") +// leftSide = leftSide + "" + this.isLastNode = 1 + } + else + { + this.renderOb(leftSide + auxEv + "") + leftSide = leftSide + "" + 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("") + } + if (browserVersion == 3) + { + doc.write("
") + } + + doc.write("\n") + doc.write("\n\n") + doc.write("\n
") + doc.write(leftSide) + this.outputLink() + doc.write("") + doc.write("") + if (USETEXTLINKS) + { + this.outputLink() + doc.write(this.desc + "") + } + else + doc.write(this.desc) + +/*! + if (this.tagName!="") + { + doc.write(" [external]") + } +*/ + doc.write("
\n") + + if (browserVersion == 2) { + doc.write("") + } + if (browserVersion == 3) { + doc.write("
") + } + + 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(" 0) + doc.write("onClick='javascript:clickOnFolder("+this.id+")'") + doc.write(">") + } + else + doc.write("") +} + +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 + "") + leftSide = leftSide + "" + } + else + { + this.renderOb(leftSide + "") + leftSide = leftSide + "" + } + else + this.renderOb("") +} + +function drawItem(leftSide) +{ + if (browserVersion == 2) + doc.write("") + if (browserVersion == 3) + doc.write("
") + + doc.write("\n\n") + doc.write("\n
") + doc.write(leftSide) + if (this.link!="") + { + doc.write("") + } + doc.write("") + if (this.link!="") + { + doc.write("") + } + doc.write("") + if (USETEXTLINKS && this.link!="") + doc.write("" + this.desc + "") + else + doc.write(this.desc) +/*! + if (this.tagName!="") + { + doc.write(" [external]"); + } +*/ + doc.write("\n
\n") + + if (browserVersion == 2) + doc.write("") + if (browserVersion == 3) + doc.write("
") + + 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(" ") + + // 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 diff --git a/src/SMESH/Makefile.in b/src/SMESH/Makefile.in index e5badac14..f8fe6b7fa 100644 --- a/src/SMESH/Makefile.in +++ b/src/SMESH/Makefile.in @@ -29,7 +29,7 @@ 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@ @@ -40,22 +40,11 @@ EXPORT_HEADERS= \ 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_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 = @@ -65,20 +54,11 @@ LIB= libSMESHimpl.la 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_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 = @@ -89,20 +69,13 @@ BIN = 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 -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@ diff --git a/src/SMESH/SMESH_1D_Algo.cxx b/src/SMESH/SMESH_1D_Algo.cxx index caa3978e9..846f28fb0 100644 --- a/src/SMESH/SMESH_1D_Algo.cxx +++ b/src/SMESH/SMESH_1D_Algo.cxx @@ -26,7 +26,6 @@ // Module : SMESH // $Header$ -using namespace std; 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; -} - diff --git a/src/SMESH/SMESH_1D_Algo.hxx b/src/SMESH/SMESH_1D_Algo.hxx index cdacad4ac..378ed7545 100644 --- a/src/SMESH/SMESH_1D_Algo.hxx +++ b/src/SMESH/SMESH_1D_Algo.hxx @@ -37,13 +37,6 @@ class 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 diff --git a/src/SMESH/SMESH_2D_Algo.cxx b/src/SMESH/SMESH_2D_Algo.cxx index 90102e5ed..c84a35398 100644 --- a/src/SMESH/SMESH_2D_Algo.cxx +++ b/src/SMESH/SMESH_2D_Algo.cxx @@ -26,7 +26,6 @@ // Module : SMESH // $Header$ -using namespace std; 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; diff --git a/src/SMESH/SMESH_2D_Algo.hxx b/src/SMESH/SMESH_2D_Algo.hxx index fbf99f60b..5c904e22e 100644 --- a/src/SMESH/SMESH_2D_Algo.hxx +++ b/src/SMESH/SMESH_2D_Algo.hxx @@ -41,13 +41,6 @@ public: 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 diff --git a/src/SMESH/SMESH_3D_Algo.cxx b/src/SMESH/SMESH_3D_Algo.cxx index 603d80ee6..ce35f66d4 100644 --- a/src/SMESH/SMESH_3D_Algo.cxx +++ b/src/SMESH/SMESH_3D_Algo.cxx @@ -26,7 +26,6 @@ // Module : SMESH // $Header$ -using namespace std; 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() { } - -//============================================================================= -/*! - * - */ -//============================================================================= - -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; -} diff --git a/src/SMESH/SMESH_3D_Algo.hxx b/src/SMESH/SMESH_3D_Algo.hxx index 330624693..62621ce3c 100644 --- a/src/SMESH/SMESH_3D_Algo.hxx +++ b/src/SMESH/SMESH_3D_Algo.hxx @@ -37,13 +37,6 @@ class 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 diff --git a/src/SMESH/SMESH_Algo.cxx b/src/SMESH/SMESH_Algo.cxx index 234b7ecce..cef1ea89c 100644 --- a/src/SMESH/SMESH_Algo.cxx +++ b/src/SMESH/SMESH_Algo.cxx @@ -26,7 +26,6 @@ // Module : SMESH // $Header$ -using namespace std; using namespace std; #include "SMESH_Algo.hxx" #include "SMESH_Gen.hxx" @@ -39,6 +38,8 @@ using namespace std; #include "utilities.h" #include +#include +#include //============================================================================= /*! @@ -52,6 +53,8 @@ SMESH_Algo::SMESH_Algo(int hypId, int studyId, // _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; } -//============================================================================= -/*! - * - */ -//============================================================================= - -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. @@ -164,12 +96,21 @@ const list & SMESH_Algo::GetUsedHypothesis( 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 diff --git a/src/SMESH/SMESH_Algo.hxx b/src/SMESH/SMESH_Algo.hxx index 53a0fbdde..d19bd94f3 100644 --- a/src/SMESH/SMESH_Algo.hxx +++ b/src/SMESH/SMESH_Algo.hxx @@ -39,7 +39,7 @@ #include using namespace std; -class SMESH_gen; +class SMESH_Gen; 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 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 & 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); - 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 _compatibleHypothesis; - list _appliedHypList; - list _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 _compatibleHypothesis; + list _appliedHypList; + list _usedHypList; }; #endif diff --git a/src/SMESH/SMESH_Gen.cxx b/src/SMESH/SMESH_Gen.cxx index d120f41f1..44000dfac 100644 --- a/src/SMESH/SMESH_Gen.cxx +++ b/src/SMESH/SMESH_Gen.cxx @@ -30,14 +30,17 @@ #include "SMESH_subMesh.hxx" #include "SMDS_MeshElement.hxx" #include "SMDS_MeshNode.hxx" -#include "SMESHDriver.h" - -#include -#include #include "utilities.h" #include "OpUtil.hxx" +#include +#include +#include +#include +#include "Utils_ExceptHandlers.hxx" + + //============================================================================= /*! * default constructor: @@ -48,7 +51,7 @@ SMESH_Gen::SMESH_Gen() { 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) { @@ -89,7 +92,7 @@ SMESH_Hypothesis *SMESH_Gen::CreateHypothesis(const char *anHyp, int studyId) 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!"); @@ -113,86 +117,506 @@ SMESH_Mesh *SMESH_Gen::Init(int studyId, const TopoDS_Shape & aShape, int meshID // 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); - myStudyContext->mapMesh[meshID] = mesh; + myStudyContext->mapMesh[_localId] = mesh; // associate a TopoDS_Shape to the mesh - mesh->ShapeToMesh(aShape); +//mesh->ShapeToMesh(aShape); 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) -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) + 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; + 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 "<AddNode(P1.X(), P1.Y(), P1.Z()); - meshDS->SetNodeOnVertex(node, V1); - smToCompute->GetSubMeshDS(); - smToCompute->_vertexSet = true; - smToCompute->ComputeStateEngine(SMESH_subMesh::COMPUTE); - } - smToCompute = sm->GetFirstToCompute(); - } + if ( !CheckAlgoState( aMesh, aShape )) + { + INFOS( "ABORT MESHING: some algos or hypothesis are missing"); + return false; + } - aMesh.GetMeshDS()->logFullUpdate(); + SMESH_subMesh *sm = aMesh.GetSubMesh(aShape); - return ret; + // ----------------------------------------------------------------- + // 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& smMap = sm->DependsOn(); + map::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 "<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; +} + + +//======================================================================= +//function : checkConformIgnoredAlgos +//purpose : +//======================================================================= + +static bool checkConformIgnoredAlgos(SMESH_Mesh& aMesh, + SMESH_subMesh* aSubMesh, + const SMESH_Algo* aGlobIgnoAlgo, + const SMESH_Algo* aLocIgnoAlgo, + bool & checkConform, + map& aCheckedMap) +{ + ASSERT( aSubMesh ); + if ( aSubMesh->GetSubShape().ShapeType() == TopAbs_VERTEX) + return true; + + + bool ret = true; + + const list& listHyp = + aMesh.GetMeshDS()->GetHypothesis( aSubMesh->GetSubShape() ); + list::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 (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: " + " hypotesis is missing"); + } + + // sub-algos will be hidden by a local + const map& smMap = aSubMesh->DependsOn(); + map::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; +} + +//======================================================================= +//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& aCheckedMap) +{ + 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& subMeshes = aSubMesh->DependsOn(); + map::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; +} + +//======================================================================= +//function : CheckAlgoState +//purpose : notify on bad state of attached algos, return false +// if Compute() would fail because of some algo bad state +//======================================================================= + +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& listHyp = meshDS->GetHypothesis( mainShape ); + list::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 (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& smMap = sm->DependsOn(); + map::const_reverse_iterator revItSub = smMap.rbegin(); + map 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 ); +} + +//======================================================================= +//function : IsGlobalAlgo +//purpose : check if theAlgo is attached to the main shape +//======================================================================= + +bool SMESH_Gen::IsGlobalAlgo(const SMESH_Algo* theAlgo, SMESH_Mesh& aMesh) +{ + const SMESHDS_Mesh* meshDS = aMesh.GetMeshDS(); + TopoDS_Shape mainShape = meshDS->ShapeToMesh(); + const list& listHyp = meshDS->GetHypothesis( mainShape ); + list::const_iterator it=listHyp.begin(); + for ( ; it != listHyp.end(); it++) + if ( *it == theAlgo ) + return true; + + return false; +} + + +//======================================================================= +//function : getAlgoId +//purpose : return algo ID or -1 if not found +//======================================================================= + +static int getAlgo(const list& theHypList, + const int theAlgoDim, + const int theAlgoShapeType) +{ + list::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; } //============================================================================= @@ -203,88 +627,113 @@ Solid, Collection de Solid : 3D SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) { - //MESSAGE("SMESH_Gen::GetAlgo"); +// MESSAGE("SMESH_Gen::GetAlgo"); - const SMESHDS_Hypothesis *theHyp = NULL; - SMESH_Algo *algo = NULL; - const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); - int hypType; - int hypId; - int algoDim; + const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); + int dim = GetShapeDim( aShape ); + int shape_type = aShape.ShapeType(); + int algo_id = -1; - // try shape first, then main shape + algo_id = getAlgo( meshDS->GetHypothesis( aShape ), dim, shape_type ); - TopoDS_Shape mainShape = meshDS->ShapeToMesh(); - const TopoDS_Shape *shapeToTry[2] = { &aShape, &mainShape }; + 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; + } - for (int iShape = 0; iShape < 2; iShape++) - { - TopoDS_Shape tryShape = (*shapeToTry[iShape]); + ASSERT(_mapAlgo.find(algo_id) != _mapAlgo.end()); - const list& listHyp = - meshDS->GetHypothesis(tryShape); - list::const_iterator it=listHyp.begin(); + 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& listHyp = +// meshDS->GetHypothesis(tryShape); +// list::const_iterator it=listHyp.begin(); - int nb_algo = 0; - int shapeDim = GetShapeDim(aShape); - int typeOfShape = aShape.ShapeType(); +// 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 - } +// 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 +// if (!theHyp) +// return NULL; // no algo found - hypType = theHyp->GetType(); - hypId = theHyp->GetID(); +// hypType = theHyp->GetType(); +// hypId = theHyp->GetID(); - ASSERT(_mapAlgo.find(hypId) != _mapAlgo.end()); - algo = _mapAlgo[hypId]; - //MESSAGE("Algo found " << algo->GetName() << " Id " << hypId); - return algo; +// 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 type = aShape.ShapeType(); + int type = aShapeType;//.ShapeType(); switch (type) { -// case TopAbs_COMPOUND: -// { -// break; -// } case TopAbs_COMPOUND: case TopAbs_COMPSOLID: case TopAbs_SOLID: @@ -410,43 +855,17 @@ int SMESH_Gen::GetShapeDim(const TopoDS_Shape & aShape) break; } } -// SCRUTE(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) +//============================================================================= + +int SMESH_Gen::GetANewId() { - MESSAGE("SMESH_Gen::Import("<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; + //MESSAGE("SMESH_Gen::GetANewId"); + return _hypId++; } - diff --git a/src/SMESH/SMESH_Gen.hxx b/src/SMESH/SMESH_Gen.hxx index 27b4a8abc..3a01de04c 100644 --- a/src/SMESH/SMESH_Gen.hxx +++ b/src/SMESH/SMESH_Gen.hxx @@ -31,7 +31,6 @@ #include "Utils_SALOME_Exception.hxx" -#include "SMESH_HypothesisFactory.hxx" #include "SMESH_Hypothesis.hxx" #include "SMESH_Algo.hxx" #include "SMESH_1D_Algo.hxx" @@ -55,43 +54,53 @@ typedef struct studyContextStruct class SMESH_Gen { - public: - SMESH_Gen(); - ~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); +// 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); - 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 + 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 - 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); + StudyContextStruct *GetStudyContext(int studyId); - SMESH_HypothesisFactory _hypothesisFactory; + 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); - 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; + // inherited methods from SALOMEDS::Driver - private: - int _localId; // unique Id of created objects, within SMESH_Gen entity - map < int, StudyContextStruct * >_mapStudyContext; - map < int, SMESH_Hypothesis * >_mapHypothesis; + 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 diff --git a/src/SMESH/SMESH_Group.cxx b/src/SMESH/SMESH_Group.cxx new file mode 100644 index 000000000..da29a2989 --- /dev/null +++ b/src/SMESH/SMESH_Group.cxx @@ -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 +#include +#include + +//============================================================================= +/*! + * + */ +//============================================================================= + +SMESH_Group::SMESH_Group (const SMESH_Mesh* theMesh, + const SMDSAbs_ElementType theType, + const char* theName) + : myName(theName) +{ + myGroupDS = new SMESHDS_Group (const_cast(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 index 000000000..5147a44d7 --- /dev/null +++ b/src/SMESH/SMESH_Group.hxx @@ -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 +#include +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 index 94c6ec47c..000000000 --- a/src/SMESH/SMESH_Hexa_3D.cxx +++ /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 -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#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 * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition* fpos - = static_cast(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(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX1]->GetSubShape()); - - SMDS_Iterator * 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(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(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY0]->GetSubShape()); - - SMDS_Iterator * 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(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(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY1]->GetSubShape()); - - SMDS_Iterator * 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(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(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ0]->GetSubShape()); - - SMDS_Iterator * 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(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(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ1]->GetSubShape()); - - SMDS_Iterator * 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(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(" "<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(" "<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(" "<&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 index 0aa874c7a..000000000 --- a/src/SMESH/SMESH_Hexa_3D.hxx +++ /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& 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 diff --git a/src/SMESH/SMESH_Hypothesis.cxx b/src/SMESH/SMESH_Hypothesis.cxx index 0d61a5f52..dac1ee325 100644 --- a/src/SMESH/SMESH_Hypothesis.cxx +++ b/src/SMESH/SMESH_Hypothesis.cxx @@ -48,8 +48,8 @@ SMESH_Hypothesis::SMESH_Hypothesis(int hypId, 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 + _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) @@ -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 PARAM_ALGO: dim = _param_algo_dim; break; } return dim; } @@ -87,7 +88,7 @@ int SMESH_Hypothesis::GetDim() */ //============================================================================= -int SMESH_Hypothesis::GetShapeType() +int SMESH_Hypothesis::GetShapeType() const { return _shapeType; } @@ -98,7 +99,7 @@ int SMESH_Hypothesis::GetShapeType() */ //============================================================================= -int SMESH_Hypothesis::GetStudyId() +int SMESH_Hypothesis::GetStudyId() const { 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); +} diff --git a/src/SMESH/SMESH_Hypothesis.hxx b/src/SMESH/SMESH_Hypothesis.hxx index edcfeba06..9fcea7b25 100644 --- a/src/SMESH/SMESH_Hypothesis.hxx +++ b/src/SMESH/SMESH_Hypothesis.hxx @@ -36,17 +36,39 @@ class SMESH_Gen; 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(); - int GetDim(); - int GetStudyId(); + int GetDim() const; + int GetStudyId() const; void NotifySubMeshesHypothesisModification(); - int GetShapeType(); + int GetShapeType() const; + const char* GetLibName() const; + void SetLibName(const char* theLibName); protected: SMESH_Gen* _gen; int _studyId; int _shapeType; + int _param_algo_dim; + +private: + string _libName; }; #endif diff --git a/src/SMESH/SMESH_HypothesisCreator.hxx b/src/SMESH/SMESH_HypothesisCreator.hxx deleted file mode 100644 index 32d44487a..000000000 --- a/src/SMESH/SMESH_HypothesisCreator.hxx +++ /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 SMESH_HypothesisCreator - : public GenericHypothesisCreator -{ -public: -// map _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 index 1373fae69..000000000 --- a/src/SMESH/SMESH_HypothesisFactory.cxx +++ /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 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; -_creatorMap["NumberOfSegments"] = new SMESH_HypothesisCreator; -_creatorMap["LengthFromEdges"] = new SMESH_HypothesisCreator; -_creatorMap["MaxElementArea"] = new SMESH_HypothesisCreator; -_creatorMap["MaxElementVolume"] = new SMESH_HypothesisCreator; -_creatorMap["Regular_1D"] = new SMESH_HypothesisCreator; -_creatorMap["MEFISTO_2D"] = new SMESH_HypothesisCreator; -_creatorMap["Quadrangle_2D"] = new SMESH_HypothesisCreator; -_creatorMap["Hexa_3D"] = new SMESH_HypothesisCreator; -#ifdef HAVE_NETGEN -_creatorMap["NETGEN_3D"] = new SMESH_HypothesisCreator; -#endif -//--------------------------------------- -} - -//============================================================================= -/*! - * Destructor: deletes specific hypothesis creators instanciated in the - * constructor. - */ -//============================================================================= - -SMESH_HypothesisFactory::~SMESH_HypothesisFactory() -{ - map::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 index 9e4121c1e..000000000 --- a/src/SMESH/SMESH_HypothesisFactory.hxx +++ /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 - -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 _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 index cccfa55ac..000000000 --- a/src/SMESH/SMESH_LengthFromEdges.cxx +++ /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 index 41890e0e8..000000000 --- a/src/SMESH/SMESH_LengthFromEdges.hxx +++ /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 index 410ff1d2c..000000000 --- a/src/SMESH/SMESH_LocalLength.cxx +++ /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 index 7cb47251e..000000000 --- a/src/SMESH/SMESH_LocalLength.hxx +++ /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 index 88257be18..000000000 --- a/src/SMESH/SMESH_MEFISTO_2D.cxx +++ /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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -//============================================================================= -/*! - * - */ -//============================================================================= - -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_iterator itl; - const SMESHDS_Hypothesis *theHyp; - - const list &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(theHyp); - ASSERT(_hypMaxElementArea); - _maxElementArea = _hypMaxElementArea->GetMaxArea(); - _edgeLength = 0; - isOk = true; - } - - if (hypName == "LengthFromEdges") - { - _hypLengthFromEdges = static_cast(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 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(" -+- " <&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 * 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 * ite= - aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes(); - - bool isForward = (E.Orientation() == TopAbs_FORWARD); - map params; - - while(ite->more()) - { - const SMDS_MeshNode * node = ite->next(); - const SMDS_EdgePosition* epos - = static_cast(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(" "<::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(" "<Value(l); // last point = Vertex Reversed - uvslf[m].x = scalex * p.X(); - uvslf[m].y = scaley * p.Y(); - mefistoToDS[m + 1] = idLast; -// MESSAGE(" "<::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(" "<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<<" "<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&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<<" "<(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("-- "<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 index 7727a86e0..000000000 --- a/src/SMESH/SMESH_MEFISTO_2D.hxx +++ /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 -#include - -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& 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& 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 index b44efdcb0..000000000 --- a/src/SMESH/SMESH_MaxElementArea.cxx +++ /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 index cb60c66c5..000000000 --- a/src/SMESH/SMESH_MaxElementArea.hxx +++ /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 index cb25383d7..000000000 --- a/src/SMESH/SMESH_MaxElementVolume.cxx +++ /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 index f69fb7747..000000000 --- a/src/SMESH/SMESH_MaxElementVolume.hxx +++ /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 diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index a25911730..6d03700c7 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -30,12 +30,27 @@ #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 "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 +#include +#include +#include +#include +#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; @@ -77,7 +92,14 @@ SMESH_Mesh::SMESH_Mesh(int localId, 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 @@ -101,52 +121,42 @@ throw(SALOME_Exception) TopExp::MapShapes(aShape, _subShapes); } -//============================================================================= -/*! - * - */ -//============================================================================= +//======================================================================= +//function : MEDToMesh +//purpose : +//======================================================================= -bool SMESH_Mesh::AddHypothesis(const TopoDS_Shape & aSubShape, - int anHypId) throw(SALOME_Exception) +int SMESH_Mesh::MEDToMesh(const char* theFileName, const char* theMeshName) { - MESSAGE("SMESH_Mesh::AddHypothesis"); + MESSAGE("MEDToMesh - theFileName = "< 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()); - 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; + // Reading groups (sub-meshes are out of scope of MED import functionality) + list aGroupNames = myReader->GetGroupNames(); + MESSAGE("MEDToMesh - Nb groups = "<::iterator it = aGroupNames.begin(); it != aGroupNames.end(); it++ ) { + SMESH_Group* aGroup = AddGroup( SMDSAbs_All, it->c_str(), anId ); + if ( aGroup ) { + MESSAGE("MEDToMesh - group added: "<c_str()); + SMESHDS_Group* aGroupDS = aGroup->GetGroupDS(); + aGroupDS->SetStoreName( it->c_str() ); + myReader->GetGroup( aGroupDS ); + } + } + return (int) status; } //============================================================================= @@ -155,9 +165,78 @@ 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::AddHypothesis(const TopoDS_Shape & aSubShape, + int anHypId) throw(SALOME_Exception) { + 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 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; +} + +//============================================================================= +/*! + * + */ +//============================================================================= + +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); @@ -176,18 +255,20 @@ bool SMESH_Mesh::RemoveHypothesis(const TopoDS_Shape & aSubShape, event = SMESH_subMesh::REMOVE_HYP; else event = SMESH_subMesh::REMOVE_ALGO; - int ret = subMesh->AlgoStateEngine(event, anHyp); + SMESH_Hypothesis::Hypothesis_Status ret = subMesh->AlgoStateEngine(event, anHyp); - // subShapes (only when shape is mainShape) - - 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; - subMesh->SubMeshesAlgoStateEngine(event, anHyp); + SMESH_Hypothesis::Hypothesis_Status ret2 = + subMesh->SubMeshesAlgoStateEngine(event, anHyp); + if (ret2 > ret) // more severe + ret = ret2; } subMesh->DumpAlgoState(true); @@ -213,22 +294,24 @@ SMESHDS_Mesh * SMESH_Mesh::GetMeshDS() //============================================================================= const list& - SMESH_Mesh::GetHypothesisList(const TopoDS_Shape & aSubShape) + SMESH_Mesh::GetHypothesisList(const TopoDS_Shape & aSubShape) const throw(SALOME_Exception) { - MESSAGE("SMESH_Mesh::GetHypothesisList"); - _subShapeHypothesisList.clear(); - const list& listHyp = - _myMeshDS->GetHypothesis(aSubShape); + Unexpect aCatch(SalomeException); +// MESSAGE("SMESH_Mesh::GetHypothesisList"); +// _subShapeHypothesisList.clear(); +// const list& listHyp = +// _myMeshDS->GetHypothesis(aSubShape); - list::const_iterator it=listHyp.begin(); - while (it!=listHyp.end()) - { - const SMESHDS_Hypothesis *anHyp = *it; - _subShapeHypothesisList.push_back(anHyp); - it++; - } - return _subShapeHypothesisList; +// list::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 list & SMESH_Mesh::GetLog() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); MESSAGE("SMESH_Mesh::GetLog"); return _myMeshDS->GetScript()->GetCommands(); } @@ -250,6 +334,7 @@ const list & SMESH_Mesh::GetLog() throw(SALOME_Exception) //============================================================================= void SMESH_Mesh::ClearLog() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); 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) { + Unexpect aCatch(SalomeException); //MESSAGE("SMESH_Mesh::GetSubMesh"); SMESH_subMesh *aSubMesh; int index = _subShapes.FindIndex(aSubShape); + 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) { + Unexpect aCatch(SalomeException); //MESSAGE("SMESH_Mesh::GetSubMeshContaining"); bool isFound = false; SMESH_subMesh *aSubMesh = NULL; @@ -374,6 +462,68 @@ throw(SALOME_Exception) 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(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 &usedHyps = + algo->GetUsedHypothesis(*this, aSubShape); + list ::const_iterator itl; + for (itl = usedHyps.begin(); itl != usedHyps.end(); itl++) + if (anHyp == (*itl)) + return true; + } + else + { + // look through all assigned hypotheses + { + const list &usedHyps = + _myMeshDS->GetHypothesis( aSubShape ); + list ::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 &usedHyps = + _myMeshDS->GetHypothesis( aSubShape ); + list ::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) { + 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; - bool usesHyp = false; - SMESH_Algo *algo = _gen->GetAlgo(*this, aSubMesh->GetSubShape()); - if (algo != NULL) - { - const list &usedHyps - = algo->GetUsedHypothesis(*this, aSubMesh->GetSubShape()); - list ::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; } +//============================================================================= /*! - * 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("<SetMesh(GetMeshDS()); - writer->SetFile(string(fileName)); - writer->Write(); - } + Unexpect aCatch(SalomeException); + std::auto_ptr 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::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) { + Unexpect aCatch(SalomeException); return _myMeshDS->NbNodes(); } @@ -445,6 +621,7 @@ int SMESH_Mesh::NbNodes() throw(SALOME_Exception) //============================================================================= int SMESH_Mesh::NbEdges() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); return _myMeshDS->NbEdges(); } @@ -455,6 +632,7 @@ int SMESH_Mesh::NbEdges() throw(SALOME_Exception) //============================================================================= int SMESH_Mesh::NbFaces() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); return _myMeshDS->NbFaces(); } @@ -463,11 +641,11 @@ int SMESH_Mesh::NbFaces() throw(SALOME_Exception) /////////////////////////////////////////////////////////////////////////////// int SMESH_Mesh::NbTriangles() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); int Nb = 0; - SMDS_Iterator * itFaces=_myMeshDS->facesIterator(); + SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator(); while(itFaces->more()) if(itFaces->next()->NbNodes()==3) Nb++; - delete itFaces; return Nb; } @@ -476,11 +654,11 @@ int SMESH_Mesh::NbTriangles() throw(SALOME_Exception) /////////////////////////////////////////////////////////////////////////////// int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); int Nb = 0; - SMDS_Iterator * itFaces=_myMeshDS->facesIterator(); + SMDS_FaceIteratorPtr itFaces=_myMeshDS->facesIterator(); while(itFaces->more()) if(itFaces->next()->NbNodes()==4) Nb++; - delete itFaces; return Nb; } @@ -491,24 +669,43 @@ int SMESH_Mesh::NbQuadrangles() throw(SALOME_Exception) //============================================================================= int SMESH_Mesh::NbVolumes() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); return _myMeshDS->NbVolumes(); } int SMESH_Mesh::NbTetras() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); int Nb = 0; - SMDS_Iterator * itVolumes=_myMeshDS->volumesIterator(); + SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator(); while(itVolumes->more()) if(itVolumes->next()->NbNodes()==4) Nb++; - delete itVolumes; return Nb; } int SMESH_Mesh::NbHexas() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); int Nb = 0; - SMDS_Iterator * itVolumes=_myMeshDS->volumesIterator(); + SMDS_VolumeIteratorPtr itVolumes=_myMeshDS->volumesIterator(); 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; } @@ -519,5 +716,187 @@ int SMESH_Mesh::NbHexas() throw(SALOME_Exception) //============================================================================= int SMESH_Mesh::NbSubMesh() throw(SALOME_Exception) { + Unexpect aCatch(SalomeException); 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& listHyp = + _myMeshDS->GetHypothesis( _myMeshDS->ShapeToMesh() ); + list::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 SMESH_Mesh::GetGroupIds() +{ + list anIds; + for ( map::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 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 ::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 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 ::iterator itV; + for (itV = myVolumesMap.begin(); itV != myVolumesMap.end(); itV++) + save << "--> nb nodes: " << itV->first << " - nb elemens: " << itV->second << endl; + } + } + save << "===========================================================================" << endl; + return save; +} diff --git a/src/SMESH/SMESH_Mesh.hxx b/src/SMESH/SMESH_Mesh.hxx index fbda43b02..2f77fa2e5 100644 --- a/src/SMESH/SMESH_Mesh.hxx +++ b/src/SMESH/SMESH_Mesh.hxx @@ -34,6 +34,7 @@ #include "SMESHDS_Command.hxx" #include "SMESH_Hypothesis.hxx" #include "SMESH_subMesh.hxx" +#include #include "Utils_SALOME_Exception.hxx" #include @@ -50,12 +51,25 @@ #include #include #include +#include #include #include #include +#if (__GNUC__>2) +#include +#include +#include +#else +#include +#include +#include +#endif + class SMESH_Gen; +class SMESH_Group; +class TopTools_ListOfShape; class SMESH_Mesh { @@ -64,18 +78,24 @@ class SMESH_Mesh 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); - bool RemoveHypothesis(const TopoDS_Shape & aSubShape, int anHypId) + SMESH_Hypothesis::Hypothesis_Status + RemoveHypothesis(const TopoDS_Shape & aSubShape, int anHypId) throw(SALOME_Exception); const list & - GetHypothesisList(const TopoDS_Shape & aSubShape) + GetHypothesisList(const TopoDS_Shape & aSubShape) const throw(SALOME_Exception); const list & GetLog() throw(SALOME_Exception); @@ -101,8 +121,22 @@ class SMESH_Mesh 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); @@ -120,21 +154,43 @@ class SMESH_Mesh int NbHexas() throw(SALOME_Exception); + int NbPyramids() throw(SALOME_Exception); + + int NbPrisms() 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 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 - 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 _subShapeHypothesisList; list _subMeshesUsingHypothesisList; SMESHDS_Document * _myDocument; SMESHDS_Mesh * _myMeshDS; TopTools_IndexedMapOfShape _subShapes; - map _mapSubMesh; + map _mapSubMesh; + map _mapGroup; SMESH_Gen *_gen; + + TopTools_IndexedDataMapOfShapeListOfShape _mapAncestors; }; #endif diff --git a/src/SMESH/SMESH_NETGEN_3D.cxx b/src/SMESH/SMESH_NETGEN_3D.cxx deleted file mode 100644 index a7fc6d04c..000000000 --- a/src/SMESH/SMESH_NETGEN_3D.cxx +++ /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 -#include -#include -#include -#include - -#include -#include -#include -#include - -#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_iterator itl; - const SMESHDS_Hypothesis* theHyp; - - const list& 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 (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 netgenToDS; - - MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Faces"); - - // check if all faces were meshed by a triangle mesher (here MESFISTO_2D) - - vector meshFaces; - vector 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;iGetSubShape(); - 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 * 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 * 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 * triangleNodesIt = triangle->nodesIterator(); - - const SMDS_MeshNode * node1 = static_cast(triangleNodesIt->next()); - double node1X = node1->X(); - double node1Y = node1->Y(); - double node1Z = node1->Z(); - - const SMDS_MeshNode * node2 = static_cast(triangleNodesIt->next()); - double node2X = node2->X(); - double node2Y = node2->Y(); - double node2Z = node2->Z(); - - const SMDS_MeshNode * node3 = static_cast(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) 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 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;iGetSubShape(); - 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 * 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 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;iGetSubShape(); - - 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 * 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 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; iGetSubMeshDS(); - - SMDS_Iterator * 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; iGetSubMeshDS(); - - SMDS_Iterator * 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; iGetSubMeshDS(); - - SMDS_Iterator * 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; iGetSubMeshDS(); - - TopoDS_Shape aFace = shapeFaces[i]; - - SMDS_Iterator * 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 * 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; jmore()) - { - const SMDS_MeshElement * triangle = iteratorTriangle->next(); - int triangleId = triangle->GetID(); - - SMDS_Iterator * 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=1) && (Nij<=Netgen_NbOfNodes)); - - nodesUsed[Nij-1] = 1; - Netgen_Connectivity[i*nbNodesByTri+j] = Nij; - } - - for (int i=0; i Adding the New Nodes to SMESHDS"); - - for (int i=0; iAddNode(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 Adding the New elements (Tetrahedrons) to the SMESHDS"); - - for (int i=0; iAddVolume(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 * 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 * iteratorTetra = aSubMeshDSShell->GetElements(); - - SCRUTE(nbTetra); - - index = 0; - while(iteratorTetra->more()) - { - index++; - const SMDS_MeshElement * tetra = iteratorTetra->next(); - int tetraId = tetra->GetID(); - - SMDS_Iterator * 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 index 9606eb010..000000000 --- a/src/SMESH/SMESH_NETGEN_3D.hxx +++ /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 index 0e5d6c4d2..000000000 --- a/src/SMESH/SMESH_NumberOfSegments.cxx +++ /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 index 5071c92c2..000000000 --- a/src/SMESH/SMESH_NumberOfSegments.hxx +++ /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 index eab7b2838..000000000 --- a/src/SMESH/SMESH_Quadrangle_2D.cxx +++ /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 -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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(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 "<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 "<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- "< * 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 params; - SMDS_Iterator * ite= - aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes(); - - while(ite->more()) - { - const SMDS_MeshNode * node = ite->next(); - const SMDS_EdgePosition* epos - = static_cast(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 "<::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("__ "<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 "<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 "<::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("__ "<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 "<> (*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 index 59bc904e7..000000000 --- a/src/SMESH/SMESH_Quadrangle_2D.hxx +++ /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 index 1f4e6ebfe..000000000 --- a/src/SMESH/SMESH_Regular_1D.cxx +++ /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 -#include -#include -#include -#include -#include - -#include -#include - -//============================================================================= -/*! - * - */ -//============================================================================= - -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_iterator itl; - const SMESHDS_Hypothesis *theHyp; - - const list &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 (theHyp); - ASSERT(_hypLocalLength); - _localLength = _hypLocalLength->GetLength(); - _numberOfSegments = 0; - isOk = true; - } - - if (hypName == "NumberOfSegments") - { - _hypNumberOfSegments = - dynamic_cast (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 * 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 : "< 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 "<AddNode(P.X(), P.Y(), P.Z()); - meshDS->SetNodeOnEdge(node, E); - - // **** edgePosition associe au point = param. - SMDS_EdgePosition* epos=dynamic_cast(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(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 index 09daed94e..000000000 --- a/src/SMESH/SMESH_Regular_1D.hxx +++ /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 diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx index 2e6799ed2..2b78950b9 100644 --- a/src/SMESH/SMESH_subMesh.cxx +++ b/src/SMESH/SMESH_subMesh.cxx @@ -40,6 +40,8 @@ using namespace std; #include #include #include +#include +#include //============================================================================= /*! @@ -50,7 +52,6 @@ using namespace std; 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 ... @@ -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; - _dependantsFound = false; 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; } -//============================================================================= -/*! - * 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) @@ -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(); @@ -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(); @@ -526,10 +466,6 @@ const map < int, SMESH_subMesh * >&SMESH_subMesh::DependsOn() 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 @@ -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& shapeList) -// { -// //MESSAGE("SMESH_subMesh::FinalizeDependence"); -// list::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; } + +//======================================================================= +//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); + // 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); + // **** 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_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; - _oldAlgoState = _algoState; - bool modifiedHyp = false; // if set to true, force event MODIF_ALGO_STATE - // in ComputeStateEngine + 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 - switch (_algoState) - { + // ---------------------- + // 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; - 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; + 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 + } - 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; + // ------------------ + // analyse algo state + // ------------------ + if (!IsApplicableHypotesis( anHyp )) + return ret; // not applicable hypotheses do not change algo state - // ---------------------------------------------------------------------- + switch (_algoState) + { - 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 originalUsedHyps = algo->GetUsedHypothesis((*_father), _subShape); // copy + // ---------------------------------------------------------------------- - 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 & 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; + 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; - // ---------------------------------------------------------------------- + // ---------------------------------------------------------------------- - default: - ASSERT(0); - break; - } - //SCRUTE(_algoState); - if ((_algoState != _oldAlgoState) || modifiedHyp) - int retc = ComputeStateEngine(MODIF_ALGO_STATE); - return ret; + 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; +} + + +//======================================================================= +//function : IsConform +//purpose : check if a conform mesh will be produced by the Algo +//======================================================================= + +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) { - if (state != _oldAlgoState) +// if (state != _oldAlgoState) // 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"); - 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(); @@ -1036,9 +996,36 @@ void SMESH_subMesh::SubMeshesAlgoStateEngine(int event, 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,237 +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); + //MESSAGE("SMESH_subMesh::ComputeStateEngine"); + //SCRUTE(_computeState); + //SCRUTE(event); - int dim = SMESH_Gen::GetShapeDim(_subShape); + 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; + 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) - { + 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: // 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; + 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); - 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 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 - 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; + 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: - 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; + 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; - } + // ---------------------------------------------------------------------- + default: + ASSERT(0); + break; + } - //SCRUTE(_computeState); - return ret; + //SCRUTE(_computeState); + return ret; } -//============================================================================= -/*! - * - */ -//============================================================================= +//======================================================================= +//function : ApplyToCollection +//purpose : Apply theAlgo to all subshapes in theCollection +//======================================================================= -void SMESH_subMesh::UpdateDependantsState() +bool SMESH_subMesh::ApplyToCollection (SMESH_Algo* theAlgo, + const TopoDS_Shape& theCollection) { - //MESSAGE("SMESH_subMesh::UpdateDependantsState"); + MESSAGE("SMESH_subMesh::ApplyToCollection"); + ASSERT ( !theAlgo->NeedDescretBoundary() ); - 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); - } + 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; +} + + +//======================================================================= +//function : UpdateSubMeshState +//purpose : +//======================================================================= + +void SMESH_subMesh::UpdateSubMeshState(const compute_state theState) +{ + const map& smMap = DependsOn(); + map::const_iterator itsub; + for (itsub = smMap.begin(); itsub != smMap.end(); itsub++) + { + SMESH_subMesh* sm = (*itsub).second; + sm->_computeState = theState; + } +} + +//======================================================================= +//function : ComputeSubMeshStateEngine +//purpose : +//======================================================================= + +void SMESH_subMesh::ComputeSubMeshStateEngine(int event) +{ + const map& smMap = DependsOn(); + map::const_iterator itsub; + for (itsub = smMap.begin(); itsub != smMap.end(); itsub++) + { + SMESH_subMesh* sm = (*itsub).second; + sm->ComputeStateEngine(event); + } +} + +//======================================================================= +//function : UpdateDependantsState +//purpose : +//======================================================================= + +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 ); + } } //============================================================================= @@ -1340,18 +1430,47 @@ void SMESH_subMesh::UpdateDependantsState() void SMESH_subMesh::CleanDependants() { - MESSAGE("SMESH_subMesh::CleanDependants"); - // **** parcourir les ancetres dans l'ordre de dépendance + //MESSAGE("SMESH_subMesh::CleanDependants: shape type " << _subShape.ShapeType() ); - 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); + 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); +} + + +//============================================================================= +/*! + * + */ +//============================================================================= + +static void removeSubMesh( SMESHDS_Mesh * meshDS, const TopoDS_Shape& subShape) +{ + 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: "<GetID()<<" ( "<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() { - MESSAGE("SMESH_subMesh::RemoveSubMeshElementsAndNodes"); - SCRUTE(_subShape.ShapeType()); - SCRUTE(_Id); + SCRUTE(_subShape.ShapeType()); - _subMeshDS = _meshDS->MeshElements(_subShape); - if (_subMeshDS!=NULL) - { - SMDS_Iterator * ite=_subMeshDS->GetElements(); - while(ite->more()) - { - const SMDS_MeshElement * elt = ite->next(); - _subMeshDS->RemoveElement(elt); - _meshDS->RemoveElement(elt); - } - delete ite; - - SMDS_Iterator * itn=_subMeshDS->GetNodes(); - while(itn->more()) - { - const SMDS_MeshNode * node = itn->next(); - _subMeshDS->RemoveNode(node); - _meshDS->RemoveNode(node); - } - delete itn; - } + 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 - //MESSAGE("SMESH_subMesh::Dependants"); + 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; + } - int shapeType = _subShape.ShapeType(); - //SCRUTE(shapeType); - TopTools_IndexedDataMapOfShapeListOfShape M; - TopoDS_Shape mainShape = _meshDS->ShapeToMesh(); - - 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; + return false; } -//============================================================================= -/*! - * - */ -//============================================================================= -void SMESH_subMesh:: -ExtractDependants(const TopTools_IndexedDataMapOfShapeListOfShape & M, - const TopAbs_ShapeEnum etype) +//======================================================================= +//function : GetCollection +//purpose : return a shape containing all sub-shapes of the MainShape that can be +// meshed at once along with _subShape +//======================================================================= + +TopoDS_Shape SMESH_subMesh::GetCollection(SMESH_Gen * theGen, SMESH_Algo* theAlgo) { - //MESSAGE("SMESH_subMesh::ExtractDependants"); + MESSAGE("SMESH_subMesh::GetCollection"); + ASSERT (!theAlgo->NeedDescretBoundary()); + + TopoDS_Shape mainShape = _father->GetMeshDS()->ShapeToMesh(); - TopoDS_Shape mainShape = _meshDS->ShapeToMesh(); - int lg = M.Extent(); - //SCRUTE(lg); + if ( mainShape.IsSame( _subShape )) + return _subShape; - 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; - } + list 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; +} + +//======================================================================= +//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) +{ + int nb = 0; + + const list& aHypList = + _father->GetHypothesisList( theShape ); + list::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; +} + +//======================================================================= +//function : CheckConcurentHypothesis +//purpose : check if there are several applicable hypothesis on fathers +//======================================================================= + +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; } diff --git a/src/SMESH/SMESH_subMesh.hxx b/src/SMESH/SMESH_subMesh.hxx index f72e4f65b..937479da7 100644 --- a/src/SMESH/SMESH_subMesh.hxx +++ b/src/SMESH/SMESH_subMesh.hxx @@ -31,6 +31,7 @@ #include "SMESHDS_Mesh.hxx" #include "SMESHDS_SubMesh.hxx" +#include "SMESH_Hypothesis.hxx" #include "Utils_SALOME_Exception.hxx" #include #include @@ -42,90 +43,136 @@ class SMESH_Mesh; class SMESH_Hypothesis; +class SMESH_Algo; +class SMESH_Gen; 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); - 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); + SMESHDS_SubMesh* CreateSubMeshDS(); + // Explicit SMESHDS_SubMesh creation method, required for persistence mechanism - const map < int, SMESH_subMesh * >&DependsOn(); - const map < int, SMESH_subMesh * >&Dependants(); + SMESH_subMesh *GetFirstToCompute(); - const TopoDS_Shape & GetSubShape(); + const map < int, SMESH_subMesh * >&DependsOn(); + //const map < int, SMESH_subMesh * >&Dependants(); - bool _vertexSet; // only for vertex subMesh, set to false for dim > 0 + const TopoDS_Shape & GetSubShape(); - 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 _vertexSet; // only for vertex subMesh, set to false for dim > 0 - bool AlgoStateEngine(int event, SMESH_Hypothesis * anHyp) - throw(SALOME_Exception); + 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 + }; - void SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp) - throw(SALOME_Exception); + SMESH_Hypothesis::Hypothesis_Status + AlgoStateEngine(int event, SMESH_Hypothesis * anHyp); - void DumpAlgoState(bool isMain); + SMESH_Hypothesis::Hypothesis_Status + SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp); - bool ComputeStateEngine(int event) throw(SALOME_Exception); + int GetAlgoState() { return _algoState; } - int GetComputeState() - { - return _computeState; - }; + void DumpAlgoState(bool isMain); - protected: - void InsertDependence(const TopoDS_Shape aSubShape); -// void FinalizeDependence(list& shapeList); + bool ComputeStateEngine(int event); - bool SubMeshesComputed() throw(SALOME_Exception); + int GetComputeState() + { + return _computeState; + }; - bool SubMeshesReady(); + bool IsConform(const SMESH_Algo* theAlgo); + // check if a conform mesh will be produced by the Algo - void RemoveSubMeshElementsAndNodes(); - void UpdateDependantsState(); - void CleanDependants(); - void ExtractDependants(const TopTools_IndexedDataMapOfShapeListOfShape & M, - const TopAbs_ShapeEnum etype); - void SetAlgoState(int state); + bool CanAddHypothesis(const SMESH_Hypothesis* theHypothesis) const; + // return true if theHypothesis can be attached to me: + // its dimention is checked - 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; + bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const; + // return true if theHypothesis can be used to mesh me: + // its shape type is checked + - int _algoState; - int _oldAlgoState; - int _computeState; + 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; };

=~bFMH$lt#(LK%Z(1AcctlF+Zv+OgMm24q+ z{s=(MH?4Pm_ctO(+14Vlyu=oMK7GNXDLf;}wLqEbhf<7Fatt3_x|*!@qUf8fD5)p4 z;9(VRRpMiTR>l{tv|(y^kEd)YAz2+>F)V0vW?L=OH+wzx=Dz&qr;PLU%FBYR9FlyT zFt?TY3#M+?^4}S*Yxj0+rBh;qS{aQg987L%a=jU_zkRSxm}E&%tFz^_9Dd1z*A%!U zremrrWZ`k8e(|Vc?jTp;O49uqLpEG#TdL|N{YGs(JtRk|(B6`u=IA(0t$eW>iM{9O z5Oj$ZhxDVo+HDU=S1LEpt&wLG3zph{uUW`Us&uh0NetE#OX9b5=82~^`A)TCW|Z2C z#ed%7lXg7~;F(-iQ;F?3+@$vR4L`Xd*dr!KJ__ATXuvv>hes?#yPG(^Tr3_DnL7 zIx~Pi+hy`u?NXH5Yk%z3nH4>V1pkI1(K z7Zq3qXmO2QIN>nlRQBx-<1*(a=g}X&wDs^-f_c3${v{+oQJ#WuZrYh9>k4uOqvuP)Umjz>7w$3x zz%3{bms@d=aGUYGGA#7hu`C8g@qKNf<)>EOnP`{|bTUz2Ztb;d%@&GF?c1QWi+?z6 zY7$#fX5BRPuv+6NCcWOm_3wZ#*SC8%eqe#@_NKNl=AX1Y)N}NxY4)&VI)-XB2+1T#o;l#aNz<=cRz~ugneZ0r(oHjQg zWe{!6%E`3I)CGrgn2?rv=G;=FU{%hayEl7IGw%YIn2+nfF?ykW>OHL1{6zMhJ=nyV zLwQEZE7VS1qFT;huVqzhyjkET!lNTjsK5zx4iVBCv%TZ~=OyLF^0(9AyJ^SV6D#cR zOAhDV9`arG`fQ=x)NClz|8w{w@Ok-gT;h;>NFP3LptIi}x3K}e zVXw-W@3KeuDop6sOmIhx`WZ=NCX0M~Q-~>!98{gy2uUku6i%uUb^nu+JJ^|cLHH*Q zkaST0m{ajl+THys0tlyQ2o6Yf#24o$ z+7x}c{F(nI`o}+~o^lYIDH!$Jw^o}zMgHJnxT-Bzlty#(q~yWawSrF`qET^tQ;Rut zo0zPnB_%ySiRFi(a^@l>5NM8MTWYWzUv8D2dl&%GMtlZQMvU_7L|p&v(}lmwo)^ z5gubmglFC=Vu4n)%hw)mD`lN7Hj*OMP$YHBUu;*3y!eKM5HA_y)2XYF;&Ma_+$7pt zBIwN(34{Sb_rJPtA)RARA>m8YXv%ONkHA=R+EQQ(KqkY>MRLSPRU}3CSAWV^XW=^r-McKyG!y2U+srG zJz{(wCVXp25r4A_8hp7}leUq_+1HWH93eGJ1El`0a!t#~WvsN<;lJ0({LP$Q^c6M3iL8PCJXz#4D`fw2zT zfi7xVAu;^Fs1pVSCx^Hcz6*9S22|vCDQau9 zvHUG=-DsbrXUR(?kN*4R*@h)HUgU?Y(ww>Y(i;vbRcg|s{2N6=n!n;D6Ob-t%+dl- z5eg{loNW>qnT##E=bBfKmF&QgPuh$2u*fwGpC?u)>y*z23k>-(;UOZ;z++0%k4zyF zVl?WEU8|uKR)f$~_$G5W$QeX(7_bmm2z1ZCm9^q>Y~sFdNhSo0^R>?R3#J+m4P$c4 zUQnryn8pmaSA%`PIr^Uo+T!su7Co}joUU4kM;Bk0Ro|}E$Q@gkVk)C4lPM60D%l`V zs;2>{y4uKM+yKr3Omo8RAkTtp+FL4<_8~}17Rf0*&l@!SOx@2a*-ysIK(hb&uSx7h z)-VQh=IY-BcpdeOC0<@n%pN|TQH8IRK$%VRBurvu1WAE!heEjDkfv>m5>>J}n3j9F zmc{ZG2vrjr4pe;@QvoNGoHnYV_Q9Ig>iL z_b$;QPm|;Nt>4hqbw=?i(WoD)G$kyFmju8vRGDW?dG9(9mkzR#il&!^uhgI$4pFRpGN+Wu2 zx?^<-i7O9!Tz1-xj^BJ}HoqgRJiR*sxW1E-*#b$EjQaIzvBr4&gxbhv-=jm+-wA@kpxK@6Q zXzZ0r4i#Z6XKfQqZ&*!0uw19xd#1NKOEwJFVf>=99;mP>&&P{Qx#dZ|y$y&OK_hUj zonc-sy=r*$9RBF6FLR))(Nsia+pgSeT^3RUBpay^i(W=-W8Z81KHNd*Hf*C=nE??t z*`^RMjf*4fl#$fQ!41iJ%;(wC`8_VYc{ct*SG62oKL_vp65kToTqui{wZz>^0`4VU zx7&OWC1FV;?93p~s5%C+97uK$7gR1V%asHhV~*^7MyN$s3KoLr9*RiDOcYXfLkSLn zz)S4kaq7W3b!zDTP*)?*ofe$W-z3VdcLeW~SdGtz?Ph_E-SaD;=r<;m0taB^{rY=d z3q#eg@PkjV;x>Keflo`@ihCp;@GIJ5fLxV&?nrNI#ajqkz5-($j`k>q7Vv<#SC|g5m^p|iMqZ) zO1L%9b8-P|}x739X0?6T3dMZa)mmU(>O#ih6oQv3o-WNUP!-EQ>( z8vVX}LUUqO{@Y62fLwyadZLb_?I_P3k3adh>HnIquD|<3*xi$;G8fQXy=kWss(i z7isTBo0yia7;|kdkPQ^l8``FcP4w%}Uws6b?Px=x_7g5>CJ}j*9=n{d=~gaz%M}K2$1?OM zFyFvtFc|9vshGojpp(dthgIbOnMfF4KH+K#6k}wU!`GyJ9`5pnPQ&Pxd>iQlgIg?sP)|0(L^Tv@r>ucL$Qa#?TxC! zZ~71nfB$mOHjOIu-U@f+s@RMZL@$&H#AD~v!maqlb8>-4;a<&%a)PDbAWt#sq1eH1 zbo=CGDAmBPW$K+oFPXF}=#`AX`=!Qgx(g}C|M?bpmCe)NMchrh>wK?@zB%zkz-z`N zQa(Vw`ibm?i7d&jS*=e0@3))on@@EJhM9WVp@h(GNObGWa^N|u)-pO|y+^x0YISNAW5 zcFcIvbZwsuGQE-b6opGo)dkAB_PW1yM}xlp6h2gRb@Ju<)``L7m9sF6K#(FUXafDfCJD6Z{=$Q#6u<}~aal8LPCH^d0!1M2r7Yg%;uD5zFtK_4Lwb#ij zfWv;~AhvgjnASpZ?%Dsoy6@8i6OD!Y37g4ArD!l51)qb754Ly+8CzPSQs<5$I-ZEv z?dt4~Y9g6Z+Uf6J2=!DtgLWd@9^@wy0=gBX?9C;7B#+-+?`+*2KC(zG!j9hV@oW)` zh{u6oaUZx`saByDaq)P*QmvEiw*7OTQKyk`ER{L;TiAT7Evtcz4$QuI2P(x}2ICJW z@m^m-v1R*T#o_~ebSkaUP*<9Rkyw!&gR589iA+|q)!M%;4pT2No*MG_fVzt7b2S3_r9rdc;FwQmAEoYy&|E@KU6Fu#uT_f!IonyQ>_STC{ z9JlL#cYed)GYG`;TJ%5{#?KGKN~9*S{Iv)l;@N~$8BKxbsHn9r-}ccD4@)$Vo> zaWmi%mm4b4Cq>cma$m|kve1j8l@Wh!LQt)Pu(lD$-U=e_^!ebB$HfUq*sUpDlG!o!4VU4HgPpB`k-bH+>1e?bN<_LhLhrnMn>Ut)G&vUzM&LxJ$R}LiJeZ;2cHq+XyY^3CQ zS^M+K^kAPk5Q>_kmv>*oHZwpY=rXvlAzR(*KYP_MC-9ksWCUG=gv)|TCIB#s%Nxu% zhGX07s>1mF%vGB{PVl}_cU@qp3HZITYI^p-(w|4F7mQ^>;-JM|N{zJsS`6KdQ397Sq zJEhtSR~1gf!)2)`^7{ zV>UwIDB;sbqSYt=-A{|3L}+pvMTbE%D5szL=vhv_%lPj@kZf2ANL>8uIj3L^m)h#V zpX_Vy_CFi*7DQpX29|PUAjuO9L|oG+TKX5xRIV}LUSLr(e-Q-$@rL^xE8>jc^ZXai zMDGp3DHP)7ll0V+vh69%0IG$S0wghksd$m8C9TtUdP!9^Yd~;-XHA0nRW429pFhEIE7lI?b-Sbb6puAYf!tXro5 zPjE!pXeeJtdU7nMEBqkTAOkId#3KH2WRWwi%@xrrQ;)irkQ2ZNsoJs=x>*}WN$gF% zzx5#(e6mQZ#`m*9RC0Z;QBt^~{>u9{>7I&da?@Jr!C<#&H3T0=%v_WKIT$4}6SZ3l zN0&VYFLUNp37N3d%j+|U&CGJ;|0zDlaSl}%KKCdgAPttU)Fw>))RrSgVYe(w1%<5Z z+C>SXsjKH#Lr|NSVTWo7CGL(m`TCc`Le?3yE0Ay@(fMxG@X8#Op{Mu}f+Zb;n z`KDIG_noprleDGbNzDor4#>J!Uc{uph+!;p@Fug?aWR2i2c)w$6F)>&MR}c1rYEL zTEknL?Dp-$seM|@vEhU!?belAz2!_5+otSd82P(XY9VV~?;{$VdX)s-7-bBYn;tv# zl&t8sf{rO};b#AoD$ZQ8-D^-EMuvevTJ0G>e~)jgFgBP`h+a%L8|oaRw``r-JjSBR zVo$s6wjw+X3FKaeX$NsnaE;5Ozy=yvO zZDZxR>92#iqn5!O2;oQZYV1=#O}e9FT-;dQtfo@sItMfE-=&`nrGya?`cDfiKi?vJ zdN1J>aENSnVys-tI5DyloS$s8)3GTKl*GeOoT{`1{Gz{~xnU+mMDN^P2Ae1rX>AIM z^8f0Xlegwa1uOlc+;yK+ykXa$s~M0!zV^uy!?XG|mgZvhyCu8Uj?P%9!lS%x9)WMQ z-a0<=m9%58cjRy|>a96(Lsa)Q0&FKse8VEt+;*9G-E;UMTLFc8eQJMrN~w6V4|$Oj zg$WcOFBD=Thi%iHnxPou{kLBKU0|EW*?YZX!Gr7T5rckJ6Omtm9kX=y4`)=1_8cJB zarS%;-si<$mgSXC(_L5IO1`~Oac!ORLYL8czuCNyt6GUO&pNaM)=0_T-c)}Pdp^JB zwm_e>lKzF+iU_Srxj*FIoAoORLsDaek9T@m0-{N^Tcf8`WTx539zZ)jit<;3yH}FN z*9dA6l4)FT2@dQSFX&1)M{`rfo6wlTzE|BJn0q=TDrd0~u{X195U6HXddg-FEPnn%9^d?C^Zs>rXd#=7 zz-d_AuXopbYS|i^7E8Pdq{w&_*0S4JV)?LkxH#S9e?OFkB#Rkrzv7M~Ot{ylM|U|6Im^1gkgwY@;o;+K`;nBXi*OOxnia;%%L zuCpWs>HE2uW`(~=+yXU)CP$vub*S8SsO$jL-~Ril(f{fts;+YYz$n&jHPowI8(l{$ zQ6#31Jb1j;=R^m5vBH9}jO^diKJ6-Dyf;4cH2o!tP`OxwIThJYk~6wu5UQZYit_34 zqr^S>fc`#RijYdzR4P*y|Imj*4j1+7MKV{S)F&2I?Pv=JC%D>0bzaM_4m5h(!+rBgNsLOY+^_9xaXj+Q@4IoONsnzX)k zYv}^bRgdN2+BAR5M&OmpNMMjlYLy+fZj(_G=20N79H&UbQc;*`$iu6YvnSLC=E`Pn zeHx1Dg3)NYGxmqy7dI(Ua2s2qK|0bTAtl_ecs*2twP3r*vqMO>gwKnd!1D>uXPQ(~ zlUf*ZR9E+lUok29aMe0t%elu)({iHG{zsW%_|>DBl0ykzmtU*&?^nb!OaChaZrG{rLc^)5oyNk+JJ4jG4>~pfAG4Iq&+cKtHFegy^+Hy2%mHq~oB-Nv(j-@q?u4yY=xIsXlT6DsjYhPil_b!Gs#ryx zfTiV9Gq^=>GBjhfest#Vj8oHOWyq{_Lg@`Xr!=%^PSMnZcg}*Hj@wDkq-bo=Z*)5+ zPnRVuim2bEc+Ysp&_9Rl!qJ z;Y33Yijg_kF}aGJc+%TIp1Tr+n(LKEHgRvoVPwTu?)n&Fx1`qO%$2VqK*kXaLma<` zq1d`&m-oif5)xKqI!$(@%83;h4`5%ouNt*#%>#GBpFMKI4(I?uh3!hoa6+}ok`A;m zHlrwt#Zv`~NOB;%Ma5)>3e(f^ujl__YGWY~MFRWcHw<@{nW^S0U#TJ~PttmY;_joh zhP^A*cIx5wl0?Z2jlq0g4CY1Q3S8UeVl+s}D$~-cEh(+$veyzU4NxB8BFKb!r0lfq zW0A9KpFQZ>ir!o`9hrGiZT+jfM)<_9zf4#kba5$on~_S>Qe;y3YLq(?4BP6vU@A{r zbxxMr&+X=dUdS=3*GLFZ?E$>{mV#5ZOv)s?lm+A!s?43G3&)|mIt?E*pW-Xp?#WI+ zmh^2KDJ<&qv8wZ+W#K-V9WR`T;B2{)s67&d6)k3ZPnPST8{hY%_{lwG-&`fp`pc}! z+vdaHZu^UM(PlwAiKNcbEY6!>>){|v4<{FAiFUh#bOBaVVr~sk*ZubXF*}n>CXDsq zyU5p137a>$4+YMnBgtllvao^adXietPNsk57`(G1Kb(STBGifZH~%F%=kVa`JRdt9 zs4oZ5%AH(&|5gp#Vt`aQ4u?bV4=-gwiw&CUj5_qgoyJVZ=|qR2R9DIjInHHjQmHqu zaZQHphy)+C<987c^w(RgU7%+qVuR`g9_?#(K2FpO9Mu<0ee63l_Ql5rZ7sxiN-gZq zBiQ=*`x19J-nK(;E_+s(QD&}qJ#08rI#zmUkyzovAvnj~niE^>cN@+q_&M;b6vQ2_ zb;99wla0kQu1*AvERMmAJk5XQ=*iUUs1cgCY}lhWa&q+|GcM%B)~*^t2~+OL7ovwa#AmcP;BuK+*;o#n`~=zHe-OarwQwo7 zJiakjQYv-~LV6?G(3nTxi+yh9}JD3>>GoMy7LXPu|6xy zwmgj_b*l}u&tzy#wRhYHxbFLRSnKsEaL!3^x|40 z>*l`hHoz(v`QUWC&zj#VqTXR?#=O;^yj7m)<@{2Rk>#yie-ztc>8ZHTA7NYiGJwYd zbYq6;;|*|*1(!HoFkpwLUTIwOeixB48Qx{XGj~PpgdgeP8_hgg_5O^acjJOBa_be= z&~h52IY#8>FAj+K{ECT{a*0V1SW_=Fta-DH?IP`ML| z2TH;3N+AQK(siY>g3@@q(nLV%(p~AwpbYJ<44f`m(Jn*>&=2pfAKyV)QC(R{pzI%A z*@d8-imsdnP;N(8?f@unyen@Wl>e(Mzri>2g%1D^0zCQ_-gY9vcNcx;FUIdKCgU%m p>n>sCFXinn72z+F?k-d22WxkOjrq&1yUU&VE5zRs;o$)S{|7sb)Mfwx literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image4.jpg b/doc/salome/gui/SMESH/image4.jpg new file mode 100755 index 0000000000000000000000000000000000000000..c90ba78d9cfb353465f872a083cdedc877903637 GIT binary patch literal 60769 zcmcG#2UJtvwl5t1pa>!eh=72obP%NXVgn=yNK2%P)FdWI7eY}GkuEJLRp}6tNC~}& zNDEE65JK;e(0hBF`|i2-zVXiazVm(K-kp)`z30qWnJasZIe&A`-#YtqHVL>2)Y8!c zP@TVS0ImT5XQu$(rTDq(BbeAsCu`)7VzRG@$gX8+O>(@EC`FT0H?r>edeoO4u9YG-x5fP4? z;*xiTCHaL#gs3jk($Za`W1**K5xQ~xhS2}#ow_j zvEMH7JuGfyGwNOEmwD+HL`Q#}orCj+fS{1Dh^VZbyn>>V@}tL^TG~%^fW{`KAnZK?za(d7W#{DPVMUZfR|6C-n6X3=R$d85y0Lo|&DSUszmP-q_sQ-r3#TKR9GQH~B9b8fqHaznM(+ zm-qRbnwjRpZK;ba4-9E-U0Lr)zq@qpVeGf!Mmjzjqjk2IZoTx^`DLdBHvVSyzZw0n z*&Ou$%jo~G`9DlP`vG9SM5RSFNKJKaJu?+GGu7EBfPtFo{DzttpaIyOpfL#aob39` z-$Z$tWvP74gFnWO?kUtp>|Gh9hl2yB#Y?ZQzQ@mpG5-}_;}x%8ZmAE zQ=2;~7N2qAw$<+{G^J^cTOa+Isa*8GB!^{XHDG%vS3njxxo0}?lQrszRyI#R*k;(X zbhZC6zEARBHSO<{pyvA(xQq!L4?ICtt{iLkIRrKaG-S%&ZJ6n1I-GAHRDWB~`uQvH zMgVS0=wF>Ym8n_uppn7XYx1Z$E$R3&(~*k>`H({f;N*hj*T3|Y)D2Ty5`^qa0X z`>QjTgJRYMa0uMoCTYYcG0a0!EQMW;mx8fBwe}({`FB5hzCqq;MxO!fT6e|Z^9o59 za%Z_6it*lzZ{6r`!X~#E`I}$9I0>!cBKBbLBUW%YB0aBjMlq-~`!wg~lku*#dtx~RMzxO#JIs|=k2A>ka%`LtLS=w8Bujr&)j-}z) zj}q&BGcMAnP#QUBPo+isc|7sZh0*b5?~zhNG&wNL54PZ`BH-Xv&5L~7f_x(+v|)7y zAdb3YY%B`06O&YHWWM3b)&85FiO~9yS$S}7dFn@$)({_}IJf!vZq!$aix;I@6tVe! z!t2GnEg9(JF8Zv0VSQ5dwrrLU7`2YZL&Qpf9t%d6-@%U7dDC!S&3Hmh6(pDT%7uK! z_5tqH$rsUIdep=gT#q$_8av{S`&RK4*p4~m0r%%fuge!C%(rS*I7aaGYYvX(H38Z( z(=j)e1EDBFV@OmULloT|oo8oXr8Ix@(%#Mt3z2F+?!K#_yB@xbMC zDQw*T&K&HTHGg^9b�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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image40.gif b/doc/salome/gui/SMESH/image40.gif new file mode 100755 index 0000000000000000000000000000000000000000..becc12a47ada2fd7d463f6f9374bda6eee2ed3f9 GIT binary patch literal 1000 zcmZ?wbh9u|lwc5N_|50B3k)1*86-JmJT@#i*vKuU6?0<4!o%$X%3eJ;6cSw- zBxI9VE^KIY@0WJ&Vo7L7JjyC=C>L?^(*ZXoHF2g4PvHX$jEqTYA)dvm#~7H{bOIbg z9Ge#zSO4M>NN{Led51Mp}V$ZGH#68 zxv7*>B>T?F)X2ON?r_JZ{hV%Gd=3W~9vp5oyq9vSB0up+JFftPRYODS>27)Ff87fh i8ktymI>dN?88@A65R|asjWo@^vLX5OytxVr4Aua(&umKo literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image41.gif b/doc/salome/gui/SMESH/image41.gif new file mode 100755 index 0000000000000000000000000000000000000000..2e132c239c6ea1c8a539f2b60918526065a75f88 GIT binary patch literal 2145 zcmeH``9Bm00L90qD7nexigis$jSfx__NM2;A%f zDTXvrCo5eV0_W*XmD4p|uaFAX%~fw30w$;)L(SE*EnzG4V(S*#e0vmobAG6$W}!Ro zh>+r~*4iZ+KqP`c+huRG9|bl=b>xEm1`7~2jN!K%YYb82g!~5xm>HAkiMJ^ZyS$Z0 z^Bn4Ojc#VqTV(nfhT+_gGaU}Uh}yVE?yX#i9a2QOt41u-vCxd~m^N7YR83F~Iu^!d ziIocQcp~qV5sc*_Tj$XyK8JJbvnm-+4?4f5an7!H8;=?Bc*j`l=s2Eu6#Chx1Fl@$ z7WhM1h^V>#LZo0b$tzO2z5til5d@XR~uv7u`2a$lz6 z1(?zL{-%d!xnG7YoTKLI*PQQ<3@teY&2f)zRL4rTA^hW984r9*BNZEGOD5*ipf_|G z(=M=O@j_7I8g7mJGy@{5RDpA){@b$$T8YR_3S1-bBM#4&J#9AMG$GP3P%2WFH?2wh zmZ`Z#q%7@IV%z(tf+*iuRBUZCjjB~gEpgKhd!vc1sw^`MvunZDnS zZkaey%WCOPzD9ezXkV$BJlnjr-M-tewbQ|w3fk%152>V;HALPGdBVa7Z4*}x(;wpA z$!b^o9?d#%YZ!}8(|&EFb62j9UnB$klCdrKG1x>WhS{@}4+Q@qloAt;rcvGZ8n6g$ zolwgz`7P*W=*eJ)yxi-HZ7t)4SUNm#2Fqk93s;O2Bs3x{Y$K#Tn>z%Vog+PRWNAR$ z1ZM29F3@w^#U8l__HR!`K4AOtg(2ZLLmi~JW-iHwG625SYVNxjE|0}sh!fD+Urdw< z*?V1i0!Z2jBEH-o=C?|?<)vmFGj+%gB1Yw^xPd7t?JliU>#$9r*rc< z@6V=Bc6u))NE>;tJa+8zT93&4o;Jbj>T=roB5mx%W;=E}a<}q~9lxwhcK^<6um<3C zP1>Z!E;6;mIoaHooby{FrAA+^vU+~*y1JAX4caS>bDw||MIX=9dn!nkwoE^S@ zIHyiEvQb6OO2T4qq)sn(kZ`yQ>Nbuy%g$~mV8jXs45`OslVPJ?z(Q&M&vl3#`P2Kl z8?{#9x)yU^R#&f3Ob_o!I9G7S+4gC~;UfF=YFGtG`f|Igj$MA$Up~-#Y2B(7$pwyk zBWmBE)?NnC{Qm3yI_D>qZPatK3S-nS6+K{_S3V~wIRM> zCx5s_GMFA@z}wixyBVbG>sF)DGwhQ6VUiJd(0ugCA-fbHOg0gKjK#}x$^>tdO=aj~ z$p##pSSHy_1HweQaqz$qvbi3eiHhbBl!Pgk7Lf7h7*09pHU;8Lw@>Bg2VDCHxxURB literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image42.gif b/doc/salome/gui/SMESH/image42.gif new file mode 100755 index 0000000000000000000000000000000000000000..fdfb1b164538eab03a827d678aa18b0dc13d186c GIT binary patch literal 1087 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image44.gif b/doc/salome/gui/SMESH/image44.gif new file mode 100755 index 0000000000000000000000000000000000000000..4c9cc1a0e669ed30b97b16f0ae6d100d25154891 GIT binary patch literal 4554 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 t5kih8AJF`SW|v|AQScN{oiUK!tz~$YM}l zVBq-A;K?E5v0=f%W)5MoF9$X(bmnJdvYF#?F_A$;QN@lWKyZ;;ho(*qi^Ha524PJV zH)Sb)pr%PGgE$V~;tF+Pr;HJX5~`SN7LK_*sirN^iK zCM~#+oZD1v9fYTrgVnUx rVyg;g9A%G?DhQZc;qw0eUf~x97TEmye(C(-`TqO&)xKwBWUvMR`K!@O literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image46.gif b/doc/salome/gui/SMESH/image46.gif new file mode 100755 index 0000000000000000000000000000000000000000..0f00ea7cfb6cc0db49698e5ca9568e0438a9c72f GIT binary patch literal 2274 zcmeH``8yK~0LP^WQA{~=HODA&y;`YEhq2kvfgD-o7?ra(Qp{0|h&CEImN{k{Hbm#7euV+h&%^!^)f-ygou_t($odA?952k?&klw=GVA|PW2VM0&vu~kKOfT0TGfcrv+=M>@9V~oA`1YD1Btt zQdkk}Idy>MSsyaOeNGe7QSIqkaAws|J-UzT+rz9LW`$31i{Px9k(QXHZzDY{`sk~K z?Yp#{8yTP4vC0Q8ziq6Y;A8`>q;>NRCAhgIm-&a3t%AtKb}jOzUdGe!D(6CxFBh$^ zlWP33d`w$Fa~}+@O{`GvvchUvnB-a0{YDGpYFR+mi+hcWU(J(G6GKHu|4tpGv-mZ> zdaK`!UL}j|K=GS5mZk_Wm#m_=pjCjd9cqj@$zELfYg{0(yN5~H_yu)~lay0LB`Rsj zXeY`)7Q!l=4~pQUU^bd}g^$Ab>ot3N_tJ*{`nV?1qFHP|m5$nGMg zSlW01Q_a}Xz)YR5U?A3Z%M+D-O3v|f*hv**SKPFgYze;A{%BbatQi_`)8lHM!F6Yq zCIiC7P_?glkQK+kq!aPMeuR7}^RZavW_98%f-z{akUWszTck1=txHs;OshUq!Ksq- z^lxL8O7?uAOr6ajow65v+OrtE=@jIT=1G>>GSXE1Qwo5_ifyZru0VXu_~OXe8LSb!|)qz6qYte2rLoBV`FYIx2l9eyxL4a3*?MzbF)) zJoaui6fSDrYdcFnpD{LJHAKUGZ<)w3fAE65chjj|dH!xkRh0Mn1p|xG%>^`6t!=Wy zjEG+XB3y0NDKdR)eU>%9wef=!V<-sZj}~KxO9_~OjVvL? zUp#}9(6MTp*~_rlS%{QWt%qoK3*vEXogF~WSF(n?p(;LVS(Y)T@{!?Q`!-Px$3bkR zP{w_xt)5)2Dtn(zI2e6LFVcTXS7SZsK^Kkhbpxwk?MgR3o^j4yoRkMR08=>VP_}1x z)LM>CNMPEb92nrDWry%Wtw&VT)sTjm!%g9})_(f#zU;MpbDUe6>*lz6Z{r!$V-Z-_ zjAFMz#||)ZA=A60)E`&L8GIk{C~oY*BU%jpZ;vfJFN{`m=U)0(I5)m;ptg?nz1e@fYV)&fy>EjNHgk-gtafzb9;>goZXvFUm^h#nEtY+!;*0J zAsXSWQ@L59`dgb&Kt_}Ghzfq%+FbU0zPo?mXNEqaZ7wA*QN2i!m~Zn5rEG4$ZWu-l ze(bw)wlJQebPQ96Y;Ef*!~{=XKBw<;8)xM!{lZA*e-&Fw2*UnWBosIIB7ev*c$(h)&DN8t8X91~GoGpQHIumP%< zi0a9sy0f?gHL)TZN`dCdfeqF@6;+`TG%q1{kl8G%4$q|dOu~fCA4D}VJlf?|uCR4o aL{CttLhXdVXKSo5u!yRwaR5aL+kXM*SpQrA literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image47.gif b/doc/salome/gui/SMESH/image47.gif new file mode 100755 index 0000000000000000000000000000000000000000..8d63f4dcf9d9097245c01387061b7faf91f81942 GIT binary patch literal 1040 zcmZ?wbh9u|lw^=#_|5ljwY|@;9lLk! z*z;@Wo?p9m?cTY2_s%`PckTJTd(WTWd;TA6=_oN80)rt0bU=;(KE`Sr;2HYRuhrMZKX@Y?E7$rs>M? zrAEqWve^%lI)&sX1kKedcJkPiYUz_8ut@vrHa-Cv4uuW|v25SI-w7P%* literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image48.gif b/doc/salome/gui/SMESH/image48.gif new file mode 100755 index 0000000000000000000000000000000000000000..1d5704bf2821997c3760d66e2fe8de1e177d8eb4 GIT binary patch literal 4473 zcmeH``8N~{`^Lu>*`t^lCDN09S7r;wK!D8TWts;Vj! z3f0%wx3jYg2nax-P&nKPX*e9Q1lL|tQc{B(slicea5NH%O2VB$Bc;*WakTc6Nj!nx z-rn9@LhG$Lf!<4^_4f9T)X+vqw2}4`=p!Q|)OI?xmqzWSQ%C4jDwQ@uqm9sMR631D zr_<>B`}@a$lOQLY?EmS14g7yJpzvRl|Na7i>lmQJb>5^dzcZRkSk9rpuHZddP|A#G zQeW5;2jpbk5-cj}OO!B(J#X4jJdi5$Z>7UPL&*?c#dVMfV(aV$f&x~*4K$X0%+re& zX&SgwK3ZgwD)$haCSxhUQfQWAMymW$Wz*<2Gf1lX`r7$@>;-dj^<+J34!8CYxn`Q; zw=kGvZvAvB`{~;1%n;@E>^qnHtQa^&W*h(zlFzLSR-Nlhk}^*?3M{zQB|a{0#H$w> z*?mViH0XSO(Y-P6I}!Ke&n+&NS33>S>}}_l0I%}YHjZq!JwKJXvMa}F1=)Y;ZNEZq zMUZz}(uIZ7azj)$R%0q+H~vgB{U*8wM2-anC{UYS+tKSzd2ptYz<8A_)!{{`>*lOE zTJyuP>(+Kx%PH~a3w$>BpZ{HFx@ich2Sd%)-fHx>h8Tg<#$=A|N z=2koku^gJyH?!N?S6Q8 z|3?P>miUF617#0K91XV)yTY8SePd-pNIrQ|pR!F+^W(r6{2Fv`pq` zyR_hoSD!`i7j{gdor;{ex#s=gLdQVa96>qIQgz)FyebV~#FWjyE`CqW5j}&>s~?_Z zt~CtnidNrv@4o-wRqnN?KS^Og%ar zUM&}%;dHVzw$l7HCUCC(He&n6c;MJMmw1hFhw0wu)Iu}L{AYWyz~AMY&rDuS>3Ly( z8+n&0Qm795B=AB#Hff6x=1V=N@Va`wN0=bu3c zC;_FQrC9tQ%5<6l`@wQC-iNtTURKLot)^@+*Xpuqw-=PgecE^|FV@25xN_QG&c&j0 zAX8oe{6~5e>DNa)!B4YT3+qwif>P z`-OnKb{C$O%|9EDcxGE>JufO#=m$kkzo&9sXL}YsKtC^_B3UgY-V2&&uz^ug+&GC& z37{H77KIcV&VQ={yv%b26%FQ<{8tYmIECFp9bA%ZSDMf{+v+DPr*YQc5u*$I<8sWE zrUL$GqyeW0Dh3MeU^xyd?-Ymog(_+cve-ByC52RxMhL1v>V&W){~|zfB2rk#xks9+ z7|VxsVe5tTqR%@U=(|O6R0l_%!#Kw|BEUcolbg{v|G>v?{UG7!9+6B54!PhWF?m2A zg!@^-c9ql(@Ej!RYzJGc#&npOGpkufBs;H6v1D|NiHIC3`BGG|0YETH)G%LFQsM@u zMvH0Qi=F7?UjP|cAutj1T+&0MM9He6=>h-GbQ6nyh0U>K`%8wH&~Hmh=f-Y2?eS)E z;+9mz{vEbas^?IIu*jy{n)P_=#f>1`6@~)4J-HhJO~qF%t4)!7wt zmrMHhaIDw#`sG^#tN)R&(u>3-b6}iVeP2}#F0Qh)J~AwTmw=r9fNezi_o`o!=3Ruv zMtan!_=K?aD^l{4kh|mtt2YYnFUu!C$n8}_e<_@S$=kh029>(U=XhBUO;KC-NOkcw z-X8X?W5*c*d0&TWd|nPs)0lgd4!&By`o5&L^o;Ue9UtS=DhGrbrDX)66lgCyvjT2t zrT)GY)M(!Qvrs@LaABk8jo8~fl=T~7sn>J-nl0O3tfc&T9)9^Gull<|({Jqqk@>3) z#-xgp0u&!^1bgWI4tpKkXYLgFWN7XbjL|9RIAi?2S$kiixnoJnFKW{`X&%maFTr1r zDbsY(8WDI)oIbxf=yClo^JO%dqr%qe+qoUBG{VQuHPNLxlIESlq3C zSt-SoC6h%%CEG}|a5d@dbyL}hq4H_T%nnEG0TP0 zw^q#Bibr9R8XdgPRxCrAV;4G`EDJ42;r`(9a?9TZH^bf=XE*xp4SlV+e{0RI5A_8k z`8(YAJXylpjY{Sx*I6N-;+ElIYY*$KB6Zf?VX$%JUw?m=Z(sdWta`R{d@VEotouy2 zPKb_Pol`q%d2Bv4z07~DS@DvOL~`3Z*nChceP-o_b@5CznD`fQ>rBYl;cOgP^QOih z|U>_pXaC(;ZO9>dYga3HgY4vu?_oYtt9c{8r_J@vVu$?_mU&K32@!_hzw&O*onKplV z?YFP97vFpw+6RumJ-o>I<}=)Peb#>Z$meh)^15;9QAE<=mS_b1(uH55K70G{O%X>% zDr9X}4*-l5-4AmT2~XY+8RbOGs_QaeUR6Bh%fEbPlQT*H9XdFM$fXB;eh~hv$oF*6 z_0X}WESI$eWRP6w(ES29N52oJjOtJ0=rb6EOg>QB16i#ZZrK-&rAGr!ZaD$N#!+uQ zQ1|I7I_0RV%fZlKUziO10mE;{_=+vW&)(#ffpv^~aLk7Q<$ykcukSf5DPU?fZ#X>UOif7v9mO~Cdt6PYH74=FKGkSksy zNvs5SU-hI@AxU!{*SK1ectMV4M#w%B9b#G1nI}5Jr<2av>WG?#|K&;m5|Td`!Oxyf z8I?-8XqxiTHRU`MEebSmMhB>XQq?KRU>1~GNGjx*@LU5bca4y$3rdAeq7?|}u_%O; z3c#3AVOY2hu1eN|Shf2PBe z%ohYi_zKEHmVm23B!URBqp0+dj7VFw%yP!n0X&WXbQ=fq)e-DN2+7!tG+RO?7GJZ1 zs=;PCP7;PDlK(K0O`%!wUs180A&ryxgcf`f0pCzTh^xqql_m655F<>9VIbl#fjETC z>O~M2a~}&T*N=Jg6FcXx*{Pet*)mA3q-bIN9Zsx)0F=p{~vHc zscDwbps=DGVk0@s2ps*+sOYL)Sa;5%3r%q)8fFN@?Z zgKL$?*p<1*W_z1vf{t$k;+f?M;EE)ziWIvFK4$oi|s0l zwJJ-qDl56mux5F2S*2Crss_2rZfF%btFjzk)ygcZi4`okn$iZYeq&eFWmjEoR^6Lb z9o1SS1uo@1s6J(z^hv9Ry&`EGUh}xO`Yy9_in4ziY1Jov!n{ zW;tU3lY!QswXgr2DyXz&qK2xIORWco#+{#57SG0wiZ%$VH=Hqlc1288=CEF_t$}x} zL8%I-(x#&3Xx?zON>wwvK_k17y|GcJP%c3VFAGY E1D?8^(*OVf literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image49.gif b/doc/salome/gui/SMESH/image49.gif new file mode 100755 index 0000000000000000000000000000000000000000..92f715cd01eeda7e4a9896c16ad494187cca937a GIT binary patch literal 4423 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 WV%$_~GFxkURQo`(ZctnRp!FZ!n}Trw literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image50.gif b/doc/salome/gui/SMESH/image50.gif new file mode 100755 index 0000000000000000000000000000000000000000..f2d52bed58122a3784e4e42d10dd3130d6399a87 GIT binary patch literal 995 zcmZ?wbh9u|lw^=#_|5+sI zR5@fkHY_;U%pojRa$v(kXLd#=n>ijA6B)P!RKk`>2sRvN5EaWPc_4V;7=y6Zl$ev3 zQd}npdP!|C*qnB<*C_LqiNfX7qthI8e=M1?S?%mRVM&d*8Cx_PW-=&g%{}#C(W$u+ zj54tbld`U|bI(iK%DI)Hks)q1+l5;p>bF;9T-Fl3Jx$%ezi9a;S?v&wdwY0Z^wmaP z%5FN$+4W9mAk&s_a2*b@7U6N$JPST^J81@9XodH+}eBRwgS=fb9?Wd+xz_7vFGQ` zox8U8`L$#Bt{r=R?cDQg*RI_=ckkZ0=l8BXzjyEX^Lx+1mX8vnAuy03paZfTlouE{ z{xi69$arj6aIl#}SnbP!4GRyqF*4cA@hD7c5LQ$PyCWf}#Kk3LTXN@w0Yk%NC4H+G z5(ik?Cy4sa<7r@WNhQDJC_YY(%ry49=&%DH*nIV3k4FfytDP_4It86SkzZO(t5_f1! fFL-+6@P9$M1Br|kA7AWW9)Et{-rpRIj11NQ^T5ZA literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image52.gif b/doc/salome/gui/SMESH/image52.gif new file mode 100755 index 0000000000000000000000000000000000000000..2049e090c7c53337bd1b981ad8649606ddbf6fdb GIT binary patch literal 990 zcmZ?wbh9u|lwy!z_|58P9 z95Nmo794Em5SA-BuwkKd8zYm=9FLEQ3|s;#VQVA=8;&!Gie;2M5Io?<&ZrimadOkr zlf4ScQ%oE-FKe8no_=eI<>#kv(;f2Xsk|&yKflOM+9=}Gg2fkSF;uvvczu0zYPn6N zo`7d*W&=C-q9jr71q_W0v3uDBeouLGWsA>Esop3dz0jT3FRQjli@!cQyLzRXgiS+1M2ryU!0Pz@s AhyVZp literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image53.gif b/doc/salome/gui/SMESH/image53.gif new file mode 100755 index 0000000000000000000000000000000000000000..2049e090c7c53337bd1b981ad8649606ddbf6fdb GIT binary patch literal 990 zcmZ?wbh9u|lwy!z_|58P9 z95Nmo794Em5SA-BuwkKd8zYm=9FLEQ3|s;#VQVA=8;&!Gie;2M5Io?<&ZrimadOkr zlf4ScQ%oE-FKe8no_=eI<>#kv(;f2Xsk|&yKflOM+9=}Gg2fkSF;uvvczu0zYPn6N zo`7d*W&=C-q9jr71q_W0v3uDBeouLGWsA>Esop3dz0jT3FRQjli@!cQyLzRXgiS+1M2ryU!0Pz@s AhyVZp literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image55.gif b/doc/salome/gui/SMESH/image55.gif new file mode 100755 index 0000000000000000000000000000000000000000..7858e6ee6e769e36064516d03988b671b9126abf GIT binary patch literal 1040 zcmZ?wbh9u|lxC1%_|5ljwY|@;9lLk! z*z;@Wo?p9m?cTY2_s%`PckTJTd(WTWdk(g9lo$rD}lg%8D!XySEIhC+G5*rg6goI7o!RKzy4Y~C*4$shPhGepbX}%smTFy{ zEV#Mrs@EcyPX5@vYBMYqpG2%-wD3s~PHeh+iR>2^B&0Dg v^C-CqY+20hMh0sD=6k}o literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image56.gif b/doc/salome/gui/SMESH/image56.gif new file mode 100755 index 0000000000000000000000000000000000000000..e19be5b24d9fac476398147d010da8429df79d21 GIT binary patch literal 1044 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 U8qSi~&a)cMK`vVG@Brce1#oT-egFUf literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image6.jpg b/doc/salome/gui/SMESH/image6.jpg new file mode 100755 index 0000000000000000000000000000000000000000..7dda1f9bfb229bd2d4d8c2079d8a1bfbd52b9bc1 GIT binary patch literal 71431 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ፇ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�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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image7.jpg b/doc/salome/gui/SMESH/image7.jpg new file mode 100755 index 0000000000000000000000000000000000000000..d6728e29ca8045da909ccab9443b99fc04f5543b GIT binary patch literal 72829 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 $5p- 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 IAGZ1CFW~D0SpWb4 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/image8.jpg b/doc/salome/gui/SMESH/image8.jpg new file mode 100755 index 0000000000000000000000000000000000000000..c542c460eb0bed2991f5a09c9f7f6027915c6a2b GIT binary patch literal 69191 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
"; + document.body.insertAdjacentHTML("beforeEnd",sHTML); +} + +function loadFts() +{ + if(!gbReady) + { + var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null); + if(SendMessage(oResMsg)&&oResMsg.oParam) + { + gbReady=true; + var oProj=oResMsg.oParam; + var aProj=oProj.aProj; + gbXML=oProj.bXML; + if(aProj.length>0) + { + var sLangId=aProj[0].sLangId; + for(var i=0;i=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){ + gnCurrentOp=0; + gbNot=false; + }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){ + gnCurrentOp=1; + gbNot=false; + }else if((sCW=="not")|| + ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){ + gbNot=!gbNot; + }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){ + var sCurrentStem=GetStem(sCW); + gsCW=sCurrentStem; + ftsFindKeyword(); + return; + } + findOneKey(); + return; + } + else{ + displayTopics(); + checkAgain(); + } +} + +function checkAgain() +{ + gsSK=gsSK2; + gsSK2=null; + if(gsSK!=null) + setTimeout("findFTSKey();",1); +} + +function displayTopics() +{ + var sHTML=""; + var sLine=""; + for(var i=0;i"+_textToHtml(gaTI[i].sTopicTitle)+""; + if(i>>4<<4==i) + { + sHTML+=sLine; + sLine=""; + } + } + if(sLine.length>0) + sHTML+=sLine; + + if(sHTML.length==0) + sHTML="

"+gsNoTopics+"

" + else + sHTML="
"+sHTML+"
"; + + var resultDiv=getElement(gsResultDivID); + if(resultDiv) + resultDiv.innerHTML=sHTML; +} + +function displayMsg(sErrorMsg) +{ + var sHTML="

"+sErrorMsg+"

"; + + var resultDiv=getElement(gsResultDivID); + if(resultDiv) + resultDiv.innerHTML=sHTML; +} + +function ftsFindKeyword() +{ + var sKey=gsCW; + var bNeedLoad=false; + var aFtsContentsCon=null; + var s=0; + if(sKey==null) return; + if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0) + { + aFtsContentsCon=new Array(); + gnCheck=0; + gsCheckKey=sKey; + gnTopicCheck=0; + gaTopicCheckInfo=null; + } + else{ + s=gnIndexNum; + aFtsContentsCon=gaFtsContentsCon; + } + for(var i=gnCheck;i=aTI.length) + { + aLS=gaTI; + aSS=aTI; + } + else + { + aLS=aTI; + aSS=gaTI; + } + var s=0; + for(var i=0;i=0) + { + var nM; + var bFound=false; + do{ + nM=(nB+nE)>>1; + if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0) + nE=nM-1; + else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) + nB=nM+1; + else + { + bFound=true; + break; + } + }while(nB<=nE); + if(bFound) + insertItemIntoArray(aTI,nM,oTI); + else + { + if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) + insertItemIntoArray(aTI,nM+1,oTI); + else + insertItemIntoArray(aTI,nM,oTI); + } + } + else + aTI[0]=oTI; +} + +function mergeTopics(aTI1,aTI2) +{ + var i1=0; + var i2=0; + var len1=aTI1.length; + var len2=aTI2.length; + var aTopicNew=new Array(); + var i=0; + while(i1>1; + if(compare(keys[nM].sItemName,sKey)>0) + nE=nM-1; + else if(compare(keys[nM].sItemName,sKey)<0) + nB=nM+1; + else{ + bFound=true; + break; + } + }while(nB<=nE); + if(bFound) + { + if(keys[nM].aTopics) + { + for(var i=0;i>1; + if(aFTCD[nM].nBegin>nTopicId) + nE=nM-1; + else if(aFTCD[nM].nEnd

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 pH!?R8$izq5`mB1xtN_gn|tJh=gW_I4`OB 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�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 Q3jZPVNgUp@|1(PF8qwhOMZ*Gb&d!F+w34 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 yPAU#zDeSNT0RTJoi#Lw| literal 0 HcmV?d00001 diff --git a/doc/salome/gui/SMESH/pics/new.jpg b/doc/salome/gui/SMESH/pics/new.jpg new file mode 100755 index 0000000000000000000000000000000000000000..4fec7adc5847bfa19034c97c9b32121495b61082 GIT binary patch literal 957 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!&mR$H@3XBdiAUJp6?cali6;5S6SxpFIX2P z-!ZLR;JAquduK|QD_`HNnAS*-6AFC`uAT3$f8uk!{*8R$e}+Z3w*L|T&!D8Nd}jEpJyt2-Zne!Wwwl(FWp?b2=Lw0}4~69O6~QS6!U + + SMESH reference manual + + + + + + + + + + + + + + + + + + + + + + \ 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 index 000000000..187fb111f --- /dev/null +++ b/doc/salome/gui/SMESH/smesh_csh.html @@ -0,0 +1,100 @@ + + +SMESH reference manual + + + + + + + + + + + + + \ 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 index 000000000..9acb37e4c --- /dev/null +++ b/doc/salome/gui/SMESH/smesh_rhc.html @@ -0,0 +1,100 @@ + + +SMESH reference manual + + + + + + + + + + + + + \ 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 index 0000000000000000000000000000000000000000..a10d494a5b6870a17ca18b9fd45de5bf80da5de5 GIT binary patch literal 1255 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.^h7ffZU;;|FV&o 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 C!RYDR;MGJ_)-GU;!!{7g4L@n4Xsn`6lp>C1? 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 + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whftdata0.xml b/doc/salome/gui/SMESH/whdata/whftdata0.xml new file mode 100755 index 000000000..3a6d528f3 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whftdata0.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whfts.htm b/doc/salome/gui/SMESH/whdata/whfts.htm new file mode 100755 index 000000000..977cbfa97 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whfts.htm @@ -0,0 +1,16 @@ + + + + + + + + + \ 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 index 000000000..2041512fe --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whfts.js @@ -0,0 +1,39 @@ +var gaFileMapping = new Array(); +var gaFileTopicMapping = new Array(); + +function fileMapping(sStartKey, sEndKey, sFileName) +{ + this.sStartKey = sStartKey; + this.sEndKey = sEndKey; + this.sFileName = sFileName; + this.aFtsKeys = null; +} + +function fileTopicMapping(nIdBegin, nIdEnd, sFileName) +{ + this.nBegin = nIdBegin; + this.nEnd = nIdEnd; + this.sFileName = sFileName; + this.aTopics = null; +} + + +function iWM(sStartKey, sEndKey, sFileName) +{ + gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName); +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.ftsReady) + { + parent.ftsReady(gaFileMapping, gaFileTopicMapping); + } +} + +function iTM(nIdBegin, nIdEnd, sFileName) +{ + gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName); +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/SMESH/whdata/whfts.xml b/doc/salome/gui/SMESH/whdata/whfts.xml new file mode 100755 index 000000000..8322231b5 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whfts.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whfwdata.js b/doc/salome/gui/SMESH/whdata/whfwdata.js new file mode 100755 index 000000000..463bfb00d --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whfwdata.js @@ -0,0 +1,36 @@ +var gWEA = new Array(); +function aWE() +{ + var len = gWEA.length; + gWEA[len] = new ftsEntry(aWE.arguments); +} + +function ftsEntry(fn_arguments) +{ + if (fn_arguments.length && fn_arguments.length >= 1) + { + this.sItemName = fn_arguments[0]; + this.aTopics = null; + var nLen = fn_arguments.length; + if (nLen > 1) + { + this.aTopics = new Array(); + for (var i = 0; i < nLen - 1; i ++ ) + { + this.aTopics[i] = fn_arguments[i + 1]; + } + } + } +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putFtsWData) + { + parent.putFtsWData(gWEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whdata/whfwdata0.htm b/doc/salome/gui/SMESH/whdata/whfwdata0.htm new file mode 100755 index 000000000..8b0a6b8e3 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whfwdata0.htm @@ -0,0 +1,356 @@ + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whfwdata0.xml b/doc/salome/gui/SMESH/whdata/whfwdata0.xml new file mode 100755 index 000000000..66eddc02d --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whfwdata0.xml @@ -0,0 +1,344 @@ + + + 5, + 5, + 10,11,13,19,20,22,24,28,34,35,39,42, + 0,5,6,23, + 10,11,13,19,20,22,24,28,34,35,39,42, + 1,2,5,6,10,11,23,26,28,42, + 5,10,11,22,32,34,42, + 3,5,6,23,27,36, + 5, + 5,10,11,34,35,42, + 5, + 25,29, + 8,10,11,24,28,34,35,42, + 4, + 9, + 23, + 5,32, + 28, + 0,1,2,3,4,5,6,8,10,15,16,23,26,27,30,36, + 4,22,23, + 8,23,28,34,42, + 5, + 0,1,2,3,10,11,23,24,28,34,35,36,42, + 15,16,25,26,27,29,32, + 10,11,24,25,26,27,28,29,34,35,42, + 8, + 4,15,16, + 29, + 42, + 4,8,10,23,26,27,35, + 8,11,23, + 42, + 25,42, + 42, + 8,33, + 4,10,23,42, + 5, + 4, + 32, + 42, + 42, + 23, + 32, + 5, + 4, + 15,16,22,25,26,27,29,32, + 13,39, + 0,1,2,3,10,11,13,15,16,22,24,25,26,27,28,29,34,35,36,39,42, + 5, + 8,11,35, + 4,10,24,28, + 12, + 8, + 5, + 4, + 10,11,22,24,28,32,34,35,42, + 26,27, + 0,1,2,3,10,11,13,15,16,22,24,25,26,27,28,29,32,34,35,36,39,42, + 5, + 8,10,11,24,28,34,35,42, + 24, + 23,32, + 4,5,6,8,19,25,26,27,29,34, + 13, + 13,15,16, + 4, + 5,23, + 14, + 5, + 8,10,11,15,16,24,25,26,27,28,29,35, + 15,16, + 15,16, + 5,6,22, + 5, + 8,10,11,23,24,28,34,35,42, + 5, + 42, + 42, + 5,8,22, + 5, + 5,23,32,42, + 5,32, + 23, + 10,11,24,28,34,35,42, + 42, + 5, + 5, + 32, + 5,11,25,26,27,29, + 5,8,23,29, + 25,26,27,29, + 23, + 4,5,26,27, + 5, + 32, + 5,8,23, + 4, + 17,35, + 15,16,22,25,26,27,29, + 4, + 5, + 5, + 42, + 0,5,6, + 18, + 8,10,11,19,20,24,28,34,35,39,40,42, + 8, + 42, + 5, + 0,4,5,6,8,11,23,24,25,29,42, + 21, + 4,5,8,9,10,11,12,17,19,23,24,26,27,28,31,34,35,42, + 16, + 22, + 0,1,2,3,5,6,36, + 5, + 11, + 11, + 8, + 42, + 5, + 22,23, + 22, + 42, + 1,2,4,5,6,23,25,26,29,42, + 22, + 13, + 22, + 5, + 4,5,6,8,11,15,16,19,20,25,26,27,29,32,39, + 22,23, + 5,42, + 5,23, + 5, + 5,22, + 4,5,8,23,25,29,32, + 13, + 5,23, + 5,8, + 0,1,2,3,4,5,6,15,16,23,25,26,27,29,36, + 15, + 23, + 42, + 11, + 11, + 42, + 11,42, + 8, + 5,7,9,12,14,17,18,31,33,41, + 3,5,6,27, + 5, + 15,16, + 0,1,2,3,4,15,16,21,23,25,26,27,29,30,36, + 4,25,26,27,29, + 3, + 32, + 19,20, + 5, + 5, + 22,23, + 22, + 5, + 42, + 39, + 5,39, + 32, + 5, + 23, + 5, + 17, + 22, + 3, + 34, + 3, + 6, + 42, + 11, + 32, + 4,8,11,23,24,25,29,42, + 4, + 19,20,32, + 5,34, + 4,16,23,25,29, + 22, + 11, + 19,20,32, + 5, + 32, + 4, + 1, + 4,23,26,27, + 26,27,34, + 5, + 5, + 42, + 2, + 0,1,2,3,13,15,16,19,20,22,25,26,27,29,32,36,39, + 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, + 8,23,28, + 40, + 5,23, + 5,7,23, + 5,6,23,32, + 23, + 23, + 11, + 22,25,26,27,29, + 29, + 36, + 32, + 5,9,10,11,18,20,23,25,29,31,34,35,42, + 42, + 5, + 4,5,23,29, + 19,20, + 0,1,2,3,4,6,13,15,16,25,26,27,29,36,39, + 22, + 5,15,16, + 23, + 34, + 5, + 5, + 12, + 42, + 5, + 5, + 4, + 5, + 5, + 11, + 23, + 42, + 42, + 32, + 5,25,29,42, + 5, + 4, + 5, + 8, + 4, + 15,16,23, + 11, + 5, + 42, + 42, + 33,41, + 42, + 1,5,6,10,11,24,26,28,34, + 8,10,11,23,24,28,34,35,42, + 4, + 8,11,23,35,42, + 30, + 5,8, + 4, + 34, + 32, + 5, + 5, + 11, + 31, + 11, + 4,5,25,29,35, + 5, + 5, + 4, + 11, + 5, + 4, + 32, + 11, + 23,32, + 5,29, + 8,33, + 5, + 22, + 4,23,25,29, + 0,1,2,3,4,13,15,16,19,20,22,25,26,27,29,32,36,39, + 5, + 35, + 5,6,23,25,26,27,29,32, + 40, + 4,5,11, + 11,42, + 32, + 8, + 40, + 11,28,34, + 5, + 8,23,34, + 4,5,6,8,19,20,22,23,32,37,40, + 4,11,35, + 5, + 25,29, + 22,32, + 32, + 13, + 32, + 22, + 4,16, + 5, + 5, + 5, + 4, + 8,23,35, + 5,6,27,36, + 7,9,12,14,17,18,31,33,41, + 5,40, + 0,1,2,3,11,13,15,16,24,32,34,35,36,39,42, + 7,9,12,14,17,18,31,33,41, + 5, + 5, + 2,5,6,10,11,24,26,28,34,35, + 5,11,28,35, + 5,7,9,12,14,17,18,31,33,41, + 5, + 22, + 32,38, + 0,1,2,3,5,6,15,16,25,29,36,37, + 8, + 5, + 8,11,28,34, + 42, + 5, + 10,11,19,20,24,28,32,34,35,38,39,40,42, + 8, + 40,41, + 3,4,5,6,23,27,36, + 32, + 8,23,42, + 5, + 4,5,10,11,15,16,19,20,22,24,25,26,27,28,29,32,34,35,39,42, + 32, + 0,6, + 40, + 29, + 32, + 5,42, + 5, + 4,5,8,10,11,13,16,19,20,22,24,25,26,27,28,29,34,35,39,42, + 5, + + diff --git a/doc/salome/gui/SMESH/whdata/whgdata.js b/doc/salome/gui/SMESH/whdata/whgdata.js new file mode 100755 index 000000000..729327323 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whgdata.js @@ -0,0 +1,25 @@ +var gIEA = new Array(); +function aGE(sName, sDef) +{ + var len = gIEA.length; + gIEA[len] = new gloEntry(sName, sDef); +} + +function gloEntry(sName, sDef) +{ + this.sName = sName; + this.sDef = sDef; + this.nNKOff = 0; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putData) + { + parent.putData(gIEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whdata/whgdata0.htm b/doc/salome/gui/SMESH/whdata/whgdata0.htm new file mode 100755 index 000000000..9fbefcb8f --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whgdata0.htm @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whgdata0.xml b/doc/salome/gui/SMESH/whdata/whgdata0.xml new file mode 100755 index 000000000..de6359242 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whgdata0.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whglo.htm b/doc/salome/gui/SMESH/whdata/whglo.htm new file mode 100755 index 000000000..d00c26063 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whglo.htm @@ -0,0 +1,14 @@ + + + + + + + + + \ 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 index 000000000..ded3d5791 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whglo.js @@ -0,0 +1,33 @@ +var gaFileMapping = new Array(); +function fileMapping(sBK, sEK, sFileName, nNum) +{ + this.sBK = sBK; + this.sEK = sEK; + this.sFileName = sFileName; + this.aKs = null; + this.nNum = nNum; + this.oUsedItems = null; +} + + +function iFM(sBK, sEK, sFileName, nNum) +{ + var i = gaFileMapping.length; + gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); + if (i == 0) { + gaFileMapping[i].nTotal = nNum; + } + else { + gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; + } +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) + { + parent.projReady(gaFileMapping); + } +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/SMESH/whdata/whglo.xml b/doc/salome/gui/SMESH/whdata/whglo.xml new file mode 100755 index 000000000..dcdf6cf11 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whglo.xml @@ -0,0 +1,5 @@ + + + + + \ 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 index 000000000..c8c2a05fd --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whidata.js @@ -0,0 +1,88 @@ +// const strings +var gIEA = new Array(); +function aIE() +{ + var len = gIEA.length; + gIEA[len] = new indexEntry(aIE.arguments); +} + +function topic(sName, sURL) +{ + this.sName = sName; + this.sURL = sURL; +} + +function indexEntry(fn_arguments) +{ + if (fn_arguments.length && fn_arguments.length >= 3) + { + this.nType = fn_arguments[0]; + this.nPKOff = 0; + this.nNKOff = fn_arguments[1]; + this.sName = fn_arguments[2]; + this.aTopics = null; + var nLen = fn_arguments.length; + if (Math.floor(nLen / 2) * 2 == nLen) + { + this.sTarget = fn_arguments[3]; + if (nLen > 5) + { + this.aTopics = new Array(); + for (var i = 0; i < (nLen - 5)/2; i++) + { + this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]); + } + } + + } + else + { + if (nLen > 4) + { + this.aTopics = new Array(); + for (var i = 0; i < (nLen - 4)/2; i++) + { + this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]); + } + } + } + } +} + +function getIndexTopicMappingList(nItemIndex) +{ + var sTopics = ""; + if (gIEA.length > nItemIndex) + { + if (gIEA[nItemIndex].aTopics) + { + var i = 0; + var nLen = gIEA[nItemIndex].aTopics.length; + for (i = 0; i < nLen; i ++) + { + sTopics += "," + gIEA[nItemIndex].aTopics[i]; + } + } + } + return sTopics; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putData) + { + for (var i = 0; i < gIEA.length; i ++ ) + { + if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length) + { + + gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff; + } + } + parent.putData(gIEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whdata/whidx.htm b/doc/salome/gui/SMESH/whdata/whidx.htm new file mode 100755 index 000000000..c0aa1758e --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whidx.htm @@ -0,0 +1,13 @@ + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whtdata.js b/doc/salome/gui/SMESH/whdata/whtdata.js new file mode 100755 index 000000000..64bcff920 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whtdata.js @@ -0,0 +1,58 @@ +var gTEA = new Array(); +function aTE() +{ + gTEA[gTEA.length] = new tocEntry(aTE.arguments); +} + +function tocEntry(fn_arguments) +{ + if (fn_arguments.length < 3) + { + alert ("data format wrong!!!"); + return; + } + + this.nType = fn_arguments[0]; + this.nContents = fn_arguments[1]; + this.sItemName = fn_arguments[2]; + + if (this.nType == 1 || this.nType == 2 || this.nType == 16) + { + if (fn_arguments.length > 3) + { + this.sItemURL = fn_arguments[3]; + if (fn_arguments.length > 4) + { + this.sTarget = fn_arguments[4]; + if (fn_arguments.length > 5) + this.sIconRef = fn_arguments[5]; + } + } + } + if (this.nType == 4 || this.nType == 8) + { + if (fn_arguments.length > 3) + { + this.sRefURL = fn_arguments[3]; + if (fn_arguments.length > 4) + { + this.sItemURL = fn_arguments[4]; + if (fn_arguments.length > 5) + { + this.sTarget = fn_arguments[5]; + if (fn_arguments.length > 6) + this.sIconRef = fn_arguments[6]; + } + } + } + } +} + + +function window_OnLoad() +{ + if (parent && parent != this && parent.putData) { + parent.putData(gTEA); + } +} +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whdata/whtdata0.htm b/doc/salome/gui/SMESH/whdata/whtdata0.htm new file mode 100755 index 000000000..429476ba8 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whtdata0.htm @@ -0,0 +1,66 @@ + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whtdata0.xml b/doc/salome/gui/SMESH/whdata/whtdata0.xml new file mode 100755 index 000000000..175e7627d --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whtdata0.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whdata/whtoc.htm b/doc/salome/gui/SMESH/whdata/whtoc.htm new file mode 100755 index 000000000..5f8c14e00 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whtoc.htm @@ -0,0 +1,14 @@ + + + + + + + + + \ 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 index 000000000..145605087 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whtoc.js @@ -0,0 +1,28 @@ +// const strings +var gaProj = new Array(); +var gsRoot = ""; + +function setRoot(sRoot) +{ + gsRoot = sRoot +} + +function aPE(sProjPath, sRootPath) +{ + gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath); +} + +function tocProjEntry(sProjPath, sRootPath) +{ + this.sPPath = sProjPath; + this.sRPath = sRootPath; +} + + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) { + parent.projReady(gsRoot, gaProj); + } +} +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/SMESH/whdata/whtoc.xml b/doc/salome/gui/SMESH/whdata/whtoc.xml new file mode 100755 index 000000000..bffb89aa7 --- /dev/null +++ b/doc/salome/gui/SMESH/whdata/whtoc.xml @@ -0,0 +1,4 @@ + + + + diff --git a/doc/salome/gui/SMESH/whestart.ico b/doc/salome/gui/SMESH/whestart.ico new file mode 100755 index 0000000000000000000000000000000000000000..110f18356d05f6e8631200b7482a694591a61c61 GIT binary patch literal 10134 zcmeI1O=whC6o8M>=GoR}L{jL=q(h)VrHVU25*I32i&yL*iPW^=HB$@F=OVu@La8-&mNKsB4kcZ!Dn4 zkkKn<^jag}<5&ZQpP0z%6}NgSr1xuZtEa-&dgI3N^?)zZYpbqZB1-*R{r4u&Q2&QX z&+nTQ@J?SY((hM84sR+1`j^&!xvUlP^i+5d=wr)Y&ePJpZkLHDW374dY4dN3Gh&V(Z{Z_hCdrVc6p^& zgOZdRPHvaBUvm4QB4YIXd~3PQmD^nzxw7QS9#;;!vf@hp`OnTXOirZgN2ahJ%ui{m zVnkwIF$JGowlvRlc6Q31J$t05r$-JPI3P!k9FY?zPROZKr{wI}vobO=B4cA?QmfVE z`t|Eluh-?yojY>(?p=BK@S!|@{8(02R^-{UXTq04*8Yy=$6L2#_V-y?`|T%!8X%t` zUn1Wm-y=UEuSs8DEJH&vZNxG@9?R4eH{K1u7rr0%@QjrF(Zf2a4}J)qF&dA%kZo41Mp|yFTvl0zX$&W zehr@W8{;`_`3!|#Rfhd&H|6#gXq zF#ITd4So`S8h%l~FYhHqTc&InQE7`5y?=g3VItO?cna|y`TVZJl+SP4LpkxhE>Adl zRjfM4f5LO|p(a~UwMbyc!Hqvo>zbeyt|8>`%S$E@%Y<* z8@vym(uD3m^v3f1za}5xS^s*=IsQXF^0AmQpZ_FCU0ojssTIDXBdyRHpH^s*Pb%c| zrA+)Cnp{XN^R@zbUVoN?2D-W;(}1ba65nNcDkz@sKW(6^%kv!uFW{33DR1#2-d9L? zhZpkhrXBC;qWGt@3w2ze=c4ee?DHs7kIbvH#{u8-vaOO1u6Sf zReGf#EYE$p;pBE{`z5y@DsOk6+DlW%$o@RE%Gs(<@9sP_IJPjS8NqQ&zWkRzri`uK zp1yIm;^g$W#@QcPjkj++iZ|vt@AI;rCeE7^L*L$l%Jta$qXA@UI6FSJCGl{&hRmUukN>60+_abD zmn%=T53J1nleF7InIo(#=3!UV%2C(VtHvx9)8BE$pQ}|&e`B|1e;ie@wUcA3F=tMW zrR+$0AyQg<_qm5Q2FVq2yv7O6nrtUWv7X2Dl8=$~eS)Uy4pZ2V_IXVEJSKZw)jp4D zpT`705b5Psi<^SgXX2m*dv>vi6fU``pIsc9rE$6jZoz-UT3y9VeQP%xUtRY#*{#xT zj8$l;k8DD;`_w$Uy#u$8ZLaTb(C>4b{BL1*=3U7~xgkEkw@miMMfQ%!ZaNF?Zdcl1 zPc~+5+u9Vr3&8F>%_cI_|9*4o_KnT`lWgR)0X1izpDMHoQ(uJ~yAs%~wZR^Yk7Trm z<2SV1T~!)>!|oz7yTHJ#_GEn1uI>{KZ- zDZ7cIm+aT$vt0Y6wlq~)#31pq$P|2X+0uI>-{Fy2^sz!Rt2UE7v$y)P=`;_afS$|PGoG}Z6=Rh|i6*NH9C^{0ls{S7if zS4-p``+hC$C%c|I7OvsKYwaEW-=v?~@7LPz*V^yb{>Sgv{0|*pf0M$+kt(8KuCcP8 z5KH{j7(3IEzUkQI + +Search Result + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whfdhtml.htm b/doc/salome/gui/SMESH/whfdhtml.htm new file mode 100755 index 000000000..ec6c521f9 --- /dev/null +++ b/doc/salome/gui/SMESH/whfdhtml.htm @@ -0,0 +1,30 @@ + + +Search Frame + + + + + + + + + diff --git a/doc/salome/gui/SMESH/whfform.htm b/doc/salome/gui/SMESH/whfform.htm new file mode 100755 index 000000000..e40b10b1f --- /dev/null +++ b/doc/salome/gui/SMESH/whfform.htm @@ -0,0 +1,136 @@ + + +Search Form + + + + + + + + + + + + + + \ 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 index 000000000..a30564d41 --- /dev/null +++ b/doc/salome/gui/SMESH/whfhost.js @@ -0,0 +1,916 @@ +var gsSK2=null; +var gsSK=null; +var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7"; +var gnCLF=0; +var gsHelpCannotSearch="Cannot search for that phrase."; +var gsNoTopics="No Topics Found."; +var gsLoadingDivID="LoadingDiv"; +var gsLoadingMsg="Loading data, please wait..."; +var gsSearchMsg="Searching..."; +var gsResultDivID="ResultDiv"; +var gaaFCD=new Array(); +var gaaFTCD=new Array(); +var goCF=null; +var goCTF=null; +var gaTI=null; +var gnCurrentOp=0; +var gbNot=false; +var gbReady=false; +var gnLoadFts=1; +var gnCacheLimits=5; +var gaCCD=new Array(); +var gbXML=false; +var gaData=new Array(); +var gsBgColor="#ffffff"; +var gsBgImage=""; +var gsMargin="0pt"; +var gsIndent="0pt"; +var gsCheckKey=null; +var gnIndexNum=0; +var gaFtsContentsCon=null; +var gaTopicCheckInfo=null; +var gnTopicCheck=0; +var goFont=null; +var goErrFont=null; +var goHoverFont=null; +var gsABgColor="#cccccc"; +var gbWhFHost=false; + +function setBackground(sBgImage) +{ + gsBgImage=sBgImage; +} + +function setBackgroundcolor(sBgColor) +{ + gsBgColor=sBgColor; +} + +function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + if(sType=="Normal") + goFont=vFont; + else if(sType=="Error") + goErrFont=vFont; + else if(sType=="Hover") + goHoverFont=vFont; +} + +function setActiveBgColor(sBgColor) +{ + gsABgColor=sBgColor; +} + +function setMargin(sMargin) +{ + gsMargin=sMargin; +} + +function setIndent(sIndent) +{ + gsIndent=sIndent; +} + +function updateCache(oCF) +{ + var len=gaCCD.length; + if(len0&&sURL) + { + var topic=new Object(); + topic.sTopicTitle=name; + topic.sTopicURL=sURL; + aTopics[aTopics.length]=topic; + } + } + oChild=oChild.nextSibling; + } + putFtsTData(aTopics); + } + } + else if(gnLoadFts==2) + { + var node=xmlDoc.lastChild; + if(node) + { + var oChild=node.firstChild; + var aFtsContents=new Array(); + while(oChild) + { + if(oChild.nodeName=="key") + { + var name=oChild.getAttribute("name"); + if(name&&name.length>0) + { + var item=new Object(); + item.sItemName=name; + aFtsContents[aFtsContents.length]=item; + var oChildChild=oChild.firstChild; + while(oChildChild) + { + if(oChildChild.nodeName=="#text") + { + var sIDs=oChildChild.nodeValue; + if(sIDs) + { + var nBPos=0; + do + { + var nPos=sIDs.indexOf(",",nBPos); + var sID=null; + if(nPos!=-1) + sID=sIDs.substring(nBPos,nPos); + else + sID=sIDs.substring(nBPos); + + if(sID) + { + var id=parseInt(sID); + if(!isNaN(id)) + { + if(!item.aTopics) + item.aTopics=new Array(); + item.aTopics[item.aTopics.length]=id; + } + } + nBPos=nPos+1; + }while(nBPos!=0&&nBPos0) + { + document.body.background=gsBgImage; + } + if(gsBgColor&&gsBgColor.length>0) + { + document.body.bgColor=gsBgColor; + } + writeResultDiv(); + loadFts(); + var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null) + SendMessage(oMsg); +} + +function writeResultDiv() +{ + var sHTML="