From 953451df51750a1d9910c0325f01d5ca7b6e0330 Mon Sep 17 00:00:00 2001 From: smh Date: Tue, 7 Feb 2006 15:11:58 +0000 Subject: [PATCH] Merge from OCC_development_generic_2006 Preparation of 3.2.0a1 --- adm_local/unix/make_commence.in | 1 + doc/salome/VISU_index.html | 86 + doc/salome/VISU_index_v3.1.0.html | 19 +- ...activation_of_commands_display_results.htm | 191 + doc/salome/gui/GAUSS/animation_function.htm | 94 + doc/salome/gui/GAUSS/blue_down.jpg | Bin 0 -> 806 bytes doc/salome/gui/GAUSS/blue_left.jpg | Bin 0 -> 747 bytes doc/salome/gui/GAUSS/blue_right.jpg | Bin 0 -> 792 bytes doc/salome/gui/GAUSS/blue_up.jpg | Bin 0 -> 799 bytes doc/salome/gui/GAUSS/cameras.htm | 236 + doc/salome/gui/GAUSS/command_activation.htm | 112 + .../command_activation_in_display_meshes.htm | 114 + .../gui/GAUSS/command_activation_picking.htm | 139 + .../GAUSS/command_activation_segmentation.htm | 174 + ...ommand_activation_timestamps_animation.htm | 108 + doc/salome/gui/GAUSS/command_deactivation.htm | 101 + .../command_description_in_display_meshes.htm | 283 ++ .../command_description_segmentation.htm | 529 ++ ...mmand_description_timestamps_animation.htm | 172 + doc/salome/gui/GAUSS/command_result.htm | 115 + doc/salome/gui/GAUSS/cshdat_robohelp.htm | 258 + doc/salome/gui/GAUSS/cshdat_webhelp.htm | 251 + doc/salome/gui/GAUSS/default.css | 76 + doc/salome/gui/GAUSS/default_ns.css | 93 + ...escription_of_commands_display_results.htm | 952 ++++ ...scription_of_the_picking_functionality.htm | 234 + .../gui/GAUSS/display_meshes_general.htm | 92 + ...isplay_results_at_gauss_points_general.htm | 111 + doc/salome/gui/GAUSS/ehelp.xml | 10 + doc/salome/gui/GAUSS/ehlpdhtm.js | 4239 +++++++++++++++++ doc/salome/gui/GAUSS/ex_green.jpg | Bin 0 -> 7431 bytes doc/salome/gui/GAUSS/gauss points viewer.log | 341 ++ doc/salome/gui/GAUSS/gauss_points_viewer.htm | 139 + .../gui/GAUSS/gauss_points_viewer_csh.htm | 106 + .../gui/GAUSS/gauss_points_viewer_rhc.htm | 106 + .../{VISU/files/a2.htm => GAUSS/general.htm} | 34 +- .../general_navigation_within_the_scene.htm} | 30 +- .../general_storage_of_produced_data.htm | 158 + .../general_timestamps_animation.htm} | 34 +- doc/salome/gui/GAUSS/image1.gif | Bin 0 -> 33620 bytes doc/salome/gui/GAUSS/image10.gif | Bin 0 -> 3091 bytes doc/salome/gui/GAUSS/image100.gif | Bin 0 -> 31172 bytes doc/salome/gui/GAUSS/image101.gif | Bin 0 -> 21412 bytes doc/salome/gui/GAUSS/image102.gif | Bin 0 -> 957 bytes doc/salome/gui/GAUSS/image103.gif | Bin 0 -> 955 bytes doc/salome/gui/GAUSS/image104.gif | Bin 0 -> 941 bytes doc/salome/gui/GAUSS/image105.gif | Bin 0 -> 966 bytes doc/salome/gui/GAUSS/image106.gif | Bin 0 -> 1158 bytes doc/salome/gui/GAUSS/image107.gif | Bin 0 -> 1153 bytes doc/salome/gui/GAUSS/image108.gif | Bin 0 -> 1147 bytes doc/salome/gui/GAUSS/image109.gif | Bin 0 -> 957 bytes doc/salome/gui/GAUSS/image11.gif | Bin 0 -> 3018 bytes doc/salome/gui/GAUSS/image110.gif | Bin 0 -> 941 bytes doc/salome/gui/GAUSS/image111.gif | Bin 0 -> 966 bytes doc/salome/gui/GAUSS/image112.gif | Bin 0 -> 955 bytes doc/salome/gui/GAUSS/image113.gif | Bin 0 -> 966 bytes doc/salome/gui/GAUSS/image114.gif | Bin 0 -> 988 bytes doc/salome/gui/GAUSS/image115.gif | Bin 0 -> 1348 bytes doc/salome/gui/GAUSS/image116.gif | Bin 0 -> 55330 bytes doc/salome/gui/GAUSS/image117.gif | Bin 0 -> 1700 bytes doc/salome/gui/GAUSS/image12.gif | Bin 0 -> 14028 bytes doc/salome/gui/GAUSS/image13.gif | Bin 0 -> 1650 bytes doc/salome/gui/GAUSS/image28.gif | Bin 0 -> 964 bytes doc/salome/gui/GAUSS/image29.gif | Bin 0 -> 884 bytes doc/salome/gui/GAUSS/image3.gif | Bin 0 -> 36609 bytes doc/salome/gui/GAUSS/image30.gif | Bin 0 -> 24689 bytes doc/salome/gui/GAUSS/image31.gif | Bin 0 -> 2957 bytes doc/salome/gui/GAUSS/image32.gif | Bin 0 -> 3071 bytes doc/salome/gui/GAUSS/image33.gif | Bin 0 -> 1947 bytes doc/salome/gui/GAUSS/image34.gif | Bin 0 -> 1494 bytes doc/salome/gui/GAUSS/image35.gif | Bin 0 -> 1603 bytes doc/salome/gui/GAUSS/image36.gif | Bin 0 -> 482 bytes doc/salome/gui/GAUSS/image37.gif | Bin 0 -> 52125 bytes doc/salome/gui/GAUSS/image38.gif | Bin 0 -> 24487 bytes doc/salome/gui/GAUSS/image39.gif | Bin 0 -> 57210 bytes doc/salome/gui/GAUSS/image4.gif | Bin 0 -> 2849 bytes doc/salome/gui/GAUSS/image40.gif | Bin 0 -> 37657 bytes doc/salome/gui/GAUSS/image41.gif | Bin 0 -> 54854 bytes doc/salome/gui/GAUSS/image42.gif | Bin 0 -> 25675 bytes doc/salome/gui/GAUSS/image45.gif | Bin 0 -> 2196 bytes doc/salome/gui/GAUSS/image46.gif | Bin 0 -> 981 bytes doc/salome/gui/GAUSS/image47.gif | Bin 0 -> 973 bytes doc/salome/gui/GAUSS/image48.gif | Bin 0 -> 1004 bytes doc/salome/gui/GAUSS/image49.gif | Bin 0 -> 963 bytes doc/salome/gui/GAUSS/image5.gif | Bin 0 -> 2339 bytes doc/salome/gui/GAUSS/image50.gif | Bin 0 -> 21965 bytes doc/salome/gui/GAUSS/image51.gif | Bin 0 -> 8122 bytes doc/salome/gui/GAUSS/image52.gif | Bin 0 -> 8982 bytes doc/salome/gui/GAUSS/image53.gif | Bin 0 -> 9634 bytes doc/salome/gui/GAUSS/image54.gif | Bin 0 -> 8557 bytes doc/salome/gui/GAUSS/image55.gif | Bin 0 -> 17523 bytes doc/salome/gui/GAUSS/image56.gif | Bin 0 -> 15380 bytes doc/salome/gui/GAUSS/image57.gif | Bin 0 -> 2023 bytes doc/salome/gui/GAUSS/image58.gif | Bin 0 -> 2649 bytes doc/salome/gui/GAUSS/image59.gif | Bin 0 -> 13929 bytes doc/salome/gui/GAUSS/image6.gif | Bin 0 -> 25675 bytes doc/salome/gui/GAUSS/image60.gif | Bin 0 -> 1963 bytes doc/salome/gui/GAUSS/image61.gif | Bin 0 -> 34441 bytes doc/salome/gui/GAUSS/image62.gif | Bin 0 -> 7492 bytes doc/salome/gui/GAUSS/image63.gif | Bin 0 -> 53512 bytes doc/salome/gui/GAUSS/image64.gif | Bin 0 -> 37728 bytes doc/salome/gui/GAUSS/image65.gif | Bin 0 -> 316 bytes doc/salome/gui/GAUSS/image66.gif | Bin 0 -> 592 bytes doc/salome/gui/GAUSS/image67.gif | Bin 0 -> 3591 bytes doc/salome/gui/GAUSS/image68.gif | Bin 0 -> 16685 bytes doc/salome/gui/GAUSS/image69.gif | Bin 0 -> 2498 bytes doc/salome/gui/GAUSS/image7.gif | Bin 0 -> 14013 bytes doc/salome/gui/GAUSS/image70.gif | Bin 0 -> 53167 bytes doc/salome/gui/GAUSS/image71.gif | Bin 0 -> 419 bytes doc/salome/gui/GAUSS/image72.gif | Bin 0 -> 44353 bytes doc/salome/gui/GAUSS/image73.gif | Bin 0 -> 53190 bytes doc/salome/gui/GAUSS/image74.gif | Bin 0 -> 2285 bytes doc/salome/gui/GAUSS/image75.gif | Bin 0 -> 60739 bytes doc/salome/gui/GAUSS/image76.gif | Bin 0 -> 25675 bytes doc/salome/gui/GAUSS/image77.gif | Bin 0 -> 1894 bytes doc/salome/gui/GAUSS/image78.gif | Bin 0 -> 11375 bytes doc/salome/gui/GAUSS/image79.gif | Bin 0 -> 21595 bytes doc/salome/gui/GAUSS/image8.gif | Bin 0 -> 10360 bytes doc/salome/gui/GAUSS/image80.gif | Bin 0 -> 22677 bytes doc/salome/gui/GAUSS/image81.gif | Bin 0 -> 3819 bytes doc/salome/gui/GAUSS/image82.gif | Bin 0 -> 3241 bytes doc/salome/gui/GAUSS/image83.gif | Bin 0 -> 52480 bytes doc/salome/gui/GAUSS/image84.gif | Bin 0 -> 18447 bytes doc/salome/gui/GAUSS/image85.gif | Bin 0 -> 6262 bytes doc/salome/gui/GAUSS/image86.gif | Bin 0 -> 51893 bytes doc/salome/gui/GAUSS/image87.gif | Bin 0 -> 5161 bytes doc/salome/gui/GAUSS/image88.gif | Bin 0 -> 4314 bytes doc/salome/gui/GAUSS/image89.gif | Bin 0 -> 14984 bytes doc/salome/gui/GAUSS/image9.gif | Bin 0 -> 4593 bytes doc/salome/gui/GAUSS/image90.gif | Bin 0 -> 60895 bytes doc/salome/gui/GAUSS/image91.gif | Bin 0 -> 82011 bytes doc/salome/gui/GAUSS/image92.gif | Bin 0 -> 82375 bytes doc/salome/gui/GAUSS/image93.gif | Bin 0 -> 92157 bytes doc/salome/gui/GAUSS/image94.gif | Bin 0 -> 73241 bytes doc/salome/gui/GAUSS/image95.gif | Bin 0 -> 85677 bytes doc/salome/gui/GAUSS/image96.gif | Bin 0 -> 55451 bytes doc/salome/gui/GAUSS/image97.gif | Bin 0 -> 51146 bytes doc/salome/gui/GAUSS/image98.gif | Bin 0 -> 52348 bytes doc/salome/gui/GAUSS/image99.gif | Bin 0 -> 5169 bytes .../{VISU/files/a4.htm => GAUSS/index.htm} | 29 +- doc/salome/gui/GAUSS/info_blue.jpg | Bin 0 -> 1903 bytes .../loading_of_previously_saved_data.htm | 118 + doc/salome/gui/GAUSS/making_an_avi_clip.htm | 213 + .../gui/GAUSS/managing_configurations.htm | 257 + .../GAUSS/navigation_using_the_keyboard.htm | 177 + .../gui/GAUSS/navigation_using_the_mouse.htm | 230 + .../GAUSS/navigation_using_the_spacemouse.htm | 272 ++ doc/salome/gui/GAUSS/picking_general.htm | 166 + doc/salome/gui/GAUSS/purple_right_sm.jpg | Bin 0 -> 439 bytes doc/salome/gui/GAUSS/robohhre.lng | 101 + ...alome-visu_preferences_display_results.htm | 135 + .../gui/GAUSS/salome_visu_preferences.htm | 109 + ...references_navigation_within_the_scene.htm | 191 + .../GAUSS/salome_visu_preferences_picking.htm | 178 + doc/salome/gui/GAUSS/segmentation_general.htm | 109 + ...c_additional_commands_for_fields_items.htm | 232 + doc/salome/gui/GAUSS/webhelp.cab | Bin 0 -> 89619 bytes doc/salome/gui/GAUSS/webhelp.jar | Bin 0 -> 134517 bytes doc/salome/gui/GAUSS/whcsh_home.htm | 600 +++ doc/salome/gui/GAUSS/whcshdata.htm | 88 + doc/salome/gui/GAUSS/whdata/whftdata.js | 25 + doc/salome/gui/GAUSS/whdata/whftdata0.htm | 53 + doc/salome/gui/GAUSS/whdata/whfts.htm | 21 + doc/salome/gui/GAUSS/whdata/whfts.js | 40 + doc/salome/gui/GAUSS/whdata/whfwdata.js | 37 + doc/salome/gui/GAUSS/whdata/whfwdata0.htm | 267 ++ doc/salome/gui/GAUSS/whdata/whfwdata1.htm | 259 + doc/salome/gui/GAUSS/whdata/whfwdata2.htm | 258 + doc/salome/gui/GAUSS/whdata/whfwdata3.htm | 102 + doc/salome/gui/GAUSS/whdata/whgdata.js | 26 + doc/salome/gui/GAUSS/whdata/whglo.htm | 15 + doc/salome/gui/GAUSS/whdata/whglo.js | 34 + doc/salome/gui/GAUSS/whdata/whidata.js | 89 + doc/salome/gui/GAUSS/whdata/whidx.htm | 15 + doc/salome/gui/GAUSS/whdata/whidx.js | 34 + doc/salome/gui/GAUSS/whdata/whtdata.js | 64 + doc/salome/gui/GAUSS/whdata/whtdata0.htm | 61 + doc/salome/gui/GAUSS/whdata/whtoc.htm | 16 + doc/salome/gui/GAUSS/whdata/whtoc.js | 31 + doc/salome/gui/GAUSS/whestart.ico | Bin 0 -> 10134 bytes doc/salome/gui/GAUSS/whfbody.htm | 37 + doc/salome/gui/GAUSS/whfdhtml.htm | 30 + doc/salome/gui/GAUSS/whfform.htm | 136 + doc/salome/gui/GAUSS/whfhost.js | 945 ++++ doc/salome/gui/GAUSS/whform.js | 216 + doc/salome/gui/GAUSS/whframes.js | 79 + doc/salome/gui/GAUSS/whgbody.htm | 35 + doc/salome/gui/GAUSS/whgdata/whexpbar.gif | Bin 0 -> 67 bytes doc/salome/gui/GAUSS/whgdata/whlstf0.htm | 48 + doc/salome/gui/GAUSS/whgdata/whlstf1.htm | 43 + doc/salome/gui/GAUSS/whgdata/whlstf2.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstf3.htm | 51 + doc/salome/gui/GAUSS/whgdata/whlstf4.htm | 47 + doc/salome/gui/GAUSS/whgdata/whlstf5.htm | 47 + doc/salome/gui/GAUSS/whgdata/whlstf6.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstf7.htm | 53 + doc/salome/gui/GAUSS/whgdata/whlstf8.htm | 40 + doc/salome/gui/GAUSS/whgdata/whlstfl0.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl1.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl10.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl11.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl12.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl13.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl14.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl15.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl16.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl17.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl18.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl19.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl2.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl20.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl21.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl22.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl23.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl3.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl4.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl5.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl6.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl7.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl8.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstfl9.htm | 45 + doc/salome/gui/GAUSS/whgdata/whlstg0.htm | 38 + doc/salome/gui/GAUSS/whgdata/whlsti0.htm | 41 + doc/salome/gui/GAUSS/whgdata/whlstt0.htm | 61 + doc/salome/gui/GAUSS/whgdata/whlstt1.htm | 62 + doc/salome/gui/GAUSS/whgdata/whlstt10.htm | 62 + doc/salome/gui/GAUSS/whgdata/whlstt11.htm | 62 + doc/salome/gui/GAUSS/whgdata/whlstt2.htm | 65 + doc/salome/gui/GAUSS/whgdata/whlstt3.htm | 64 + doc/salome/gui/GAUSS/whgdata/whlstt4.htm | 67 + doc/salome/gui/GAUSS/whgdata/whlstt5.htm | 64 + doc/salome/gui/GAUSS/whgdata/whlstt6.htm | 62 + doc/salome/gui/GAUSS/whgdata/whlstt7.htm | 68 + doc/salome/gui/GAUSS/whgdata/whlstt8.htm | 66 + doc/salome/gui/GAUSS/whgdata/whlstt9.htm | 64 + doc/salome/gui/GAUSS/whgdata/whnvf30.htm | 13 + doc/salome/gui/GAUSS/whgdata/whnvf31.htm | 15 + doc/salome/gui/GAUSS/whgdata/whnvf32.htm | 15 + doc/salome/gui/GAUSS/whgdata/whnvf33.htm | 15 + doc/salome/gui/GAUSS/whgdata/whnvl31.htm | 72 + doc/salome/gui/GAUSS/whgdata/whnvl32.htm | 72 + doc/salome/gui/GAUSS/whgdata/whnvl33.htm | 43 + doc/salome/gui/GAUSS/whgdata/whnvp30.htm | 16 + doc/salome/gui/GAUSS/whgdata/whnvp31.htm | 16 + doc/salome/gui/GAUSS/whgdata/whnvp32.htm | 16 + doc/salome/gui/GAUSS/whgdata/whnvp33.htm | 16 + doc/salome/gui/GAUSS/whgdata/whnvt30.htm | 47 + doc/salome/gui/GAUSS/whgdata/whnvt31.htm | 45 + doc/salome/gui/GAUSS/whgdata/whnvt32.htm | 45 + doc/salome/gui/GAUSS/whgdata/whnvt33.htm | 45 + doc/salome/gui/GAUSS/whgdef.htm | 98 + doc/salome/gui/GAUSS/whgdhtml.htm | 150 + doc/salome/gui/GAUSS/whghost.js | 247 + doc/salome/gui/GAUSS/whhost.js | 1305 +++++ doc/salome/gui/GAUSS/whibody.htm | 284 ++ doc/salome/gui/GAUSS/whidhtml.htm | 30 + doc/salome/gui/GAUSS/whiform.htm | 91 + doc/salome/gui/GAUSS/whihost.js | 424 ++ doc/salome/gui/GAUSS/whlang.js | 453 ++ doc/salome/gui/GAUSS/whmozemu.js | 67 + doc/salome/gui/GAUSS/whmsg.js | 69 + doc/salome/gui/GAUSS/whnjs.htm | 25 + doc/salome/gui/GAUSS/whphost.js | 581 +++ doc/salome/gui/GAUSS/whproj.htm | 24 + doc/salome/gui/GAUSS/whproj.js | 85 + doc/salome/gui/GAUSS/whproj.xml | 3 + doc/salome/gui/GAUSS/whproxy.js | 74 + doc/salome/gui/GAUSS/whres.xml | 256 + doc/salome/gui/GAUSS/whrstart.ico | Bin 0 -> 10134 bytes doc/salome/gui/GAUSS/whskin_banner.htm | 49 + doc/salome/gui/GAUSS/whskin_blank.htm | 10 + doc/salome/gui/GAUSS/whskin_frmset01.htm | 172 + doc/salome/gui/GAUSS/whskin_frmset010.htm | 50 + doc/salome/gui/GAUSS/whskin_homepage.htm | 139 + doc/salome/gui/GAUSS/whskin_info.htm | 20 + doc/salome/gui/GAUSS/whskin_mbars.htm | 59 + doc/salome/gui/GAUSS/whskin_papplet.htm | 360 ++ doc/salome/gui/GAUSS/whskin_pdhtml.htm | 64 + doc/salome/gui/GAUSS/whskin_pickup.htm | 229 + doc/salome/gui/GAUSS/whskin_plist.htm | 238 + doc/salome/gui/GAUSS/whskin_tbars.htm | 101 + doc/salome/gui/GAUSS/whskin_tw.htm | 63 + doc/salome/gui/GAUSS/whst_topics.xml | 82 + doc/salome/gui/GAUSS/whstart.ico | Bin 0 -> 10134 bytes doc/salome/gui/GAUSS/whstart.js | 432 ++ doc/salome/gui/GAUSS/whstub.js | 159 + doc/salome/gui/GAUSS/wht_abge.jpg | Bin 0 -> 6210 bytes doc/salome/gui/GAUSS/wht_abgi.jpg | Bin 0 -> 4967 bytes doc/salome/gui/GAUSS/wht_abgw.jpg | Bin 0 -> 5659 bytes doc/salome/gui/GAUSS/wht_abte.jpg | Bin 0 -> 9810 bytes doc/salome/gui/GAUSS/wht_abti.jpg | Bin 0 -> 3863 bytes doc/salome/gui/GAUSS/wht_abtw.jpg | Bin 0 -> 3973 bytes doc/salome/gui/GAUSS/wht_fts_h.gif | Bin 0 -> 188 bytes doc/salome/gui/GAUSS/wht_fts_n.gif | Bin 0 -> 188 bytes doc/salome/gui/GAUSS/wht_glo_h.gif | Bin 0 -> 142 bytes doc/salome/gui/GAUSS/wht_glo_n.gif | Bin 0 -> 142 bytes doc/salome/gui/GAUSS/wht_go.gif | Bin 0 -> 260 bytes doc/salome/gui/GAUSS/wht_hide.gif | Bin 0 -> 842 bytes doc/salome/gui/GAUSS/wht_idx_h.gif | Bin 0 -> 168 bytes doc/salome/gui/GAUSS/wht_idx_n.gif | Bin 0 -> 168 bytes doc/salome/gui/GAUSS/wht_logo1.gif | Bin 0 -> 1405 bytes doc/salome/gui/GAUSS/wht_logo2.gif | Bin 0 -> 1393 bytes doc/salome/gui/GAUSS/wht_next.gif | Bin 0 -> 73 bytes doc/salome/gui/GAUSS/wht_next_g.gif | Bin 0 -> 73 bytes doc/salome/gui/GAUSS/wht_prev.gif | Bin 0 -> 73 bytes doc/salome/gui/GAUSS/wht_prev_g.gif | Bin 0 -> 73 bytes doc/salome/gui/GAUSS/wht_spac.gif | Bin 0 -> 43 bytes doc/salome/gui/GAUSS/wht_sync.gif | Bin 0 -> 846 bytes doc/salome/gui/GAUSS/wht_tab0.gif | Bin 0 -> 285 bytes doc/salome/gui/GAUSS/wht_tab1.gif | Bin 0 -> 237 bytes doc/salome/gui/GAUSS/wht_tab2.gif | Bin 0 -> 226 bytes doc/salome/gui/GAUSS/wht_tab3.gif | Bin 0 -> 209 bytes doc/salome/gui/GAUSS/wht_tab4.gif | Bin 0 -> 198 bytes doc/salome/gui/GAUSS/wht_tab5.gif | Bin 0 -> 221 bytes doc/salome/gui/GAUSS/wht_tab6.gif | Bin 0 -> 212 bytes doc/salome/gui/GAUSS/wht_tab7.gif | Bin 0 -> 236 bytes doc/salome/gui/GAUSS/wht_tab8.gif | Bin 0 -> 225 bytes doc/salome/gui/GAUSS/wht_toc1.gif | Bin 0 -> 124 bytes doc/salome/gui/GAUSS/wht_toc2.gif | Bin 0 -> 922 bytes doc/salome/gui/GAUSS/wht_toc3.gif | Bin 0 -> 911 bytes doc/salome/gui/GAUSS/wht_toc4.gif | Bin 0 -> 953 bytes doc/salome/gui/GAUSS/wht_toc_h.gif | Bin 0 -> 204 bytes doc/salome/gui/GAUSS/wht_toc_n.gif | Bin 0 -> 195 bytes doc/salome/gui/GAUSS/wht_ws.gif | Bin 0 -> 973 bytes doc/salome/gui/GAUSS/wht_ws_g.gif | Bin 0 -> 949 bytes doc/salome/gui/GAUSS/whtbar.js | 2043 ++++++++ doc/salome/gui/GAUSS/whtdhtml.htm | 49 + doc/salome/gui/GAUSS/whthost.js | 1504 ++++++ doc/salome/gui/GAUSS/whtopic.js | 724 +++ doc/salome/gui/GAUSS/whutils.js | 527 ++ doc/salome/gui/GAUSS/whver.js | 103 + doc/salome/gui/GAUSS/whxdata/whftdata0.xml | 39 + doc/salome/gui/GAUSS/whxdata/whfts.xml | 10 + doc/salome/gui/GAUSS/whxdata/whfwdata0.xml | 253 + doc/salome/gui/GAUSS/whxdata/whfwdata1.xml | 245 + doc/salome/gui/GAUSS/whxdata/whfwdata2.xml | 244 + doc/salome/gui/GAUSS/whxdata/whfwdata3.xml | 88 + doc/salome/gui/GAUSS/whxdata/whglo.xml | 4 + doc/salome/gui/GAUSS/whxdata/whidx.xml | 4 + doc/salome/gui/GAUSS/whxdata/whtdata0.xml | 61 + doc/salome/gui/GAUSS/whxdata/whtoc.xml | 4 + doc/salome/gui/Makefile.in | 4 + doc/salome/gui/VISU/animation.gif | Bin 348495 -> 0 bytes doc/salome/gui/VISU/createfieldprsnt.gif | Bin 602357 -> 0 bytes doc/salome/gui/VISU/createpresent.gif | Bin 254115 -> 0 bytes doc/salome/gui/VISU/createtable.gif | Bin 384392 -> 0 bytes doc/salome/gui/VISU/cshdat_robohelp.htm | 2 +- doc/salome/gui/VISU/cshdat_webhelp.htm | 2 +- doc/salome/gui/VISU/files/a.htm | 81 - doc/salome/gui/VISU/files/a5.htm | 81 - .../gui/VISU/files/cut_lines_presentation.htm | 109 +- .../gui/VISU/files/cut_lines_resentation.htm | 79 +- .../files/deformed_shape_presentation.htm | 65 +- doc/salome/gui/VISU/files/getting_started.htm | 12 +- .../gui/VISU/files/importing_med_objects.htm | 2 + .../VISU/files/iso_surfaces_presentation.htm | 36 +- .../VISU/files/scalar_map_presentation.htm | 127 +- .../files/setting_properties_of_xy_plots.htm | 18 +- .../VISU/files/stream_lines_presentation.htm | 153 +- .../gui/VISU/files/vectors_presentation.htm | 48 +- doc/salome/gui/VISU/importmed.gif | Bin 167738 -> 0 bytes doc/salome/gui/VISU/launchvisu.gif | Bin 72505 -> 0 bytes doc/salome/gui/VISU/pics/viewsettings.png | Bin 22166 -> 23377 bytes doc/salome/gui/VISU/visu.htm | 2 +- doc/salome/gui/VISU/visu.log | 13 +- doc/salome/gui/VISU/visu_csh.htm | 2 +- doc/salome/gui/VISU/visu_rhc.htm | 2 +- doc/salome/gui/VISU/whcshdata.htm | 2 +- doc/salome/gui/VISU/whdata/whfwdata0.htm | 37 +- doc/salome/gui/VISU/whgdata/whlstf0.htm | 4 +- doc/salome/gui/VISU/whgdata/whlstf1.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstf2.htm | 8 +- doc/salome/gui/VISU/whgdata/whlstf3.htm | 8 +- doc/salome/gui/VISU/whgdata/whlstf4.htm | 6 +- doc/salome/gui/VISU/whgdata/whlstf5.htm | 6 +- doc/salome/gui/VISU/whgdata/whlstf6.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl0.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl1.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl10.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl11.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl12.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl13.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl14.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl15.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl16.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl17.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl18.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl19.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl2.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl20.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl21.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl22.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl23.htm | 45 + doc/salome/gui/VISU/whgdata/whlstfl3.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl4.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl5.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl6.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl7.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl8.htm | 2 +- doc/salome/gui/VISU/whgdata/whlstfl9.htm | 2 +- doc/salome/gui/VISU/whgdata/whnvl32.htm | 48 +- doc/salome/gui/VISU/whnjs.htm | 2 +- doc/salome/gui/VISU/whskin_homepage.htm | 2 +- doc/salome/gui/VISU/whskin_info.htm | 2 +- doc/salome/gui/VISU/whxdata/whfwdata0.xml | 37 +- doc/salome/tui/VISU/doxyfile | 95 +- idl/VISU_Gen.idl | 194 +- resources/VISU_en.xml | 2 + resources/VISU_fr.xml | 2 + resources/Vertex_Program_ARB.txt | 21 + resources/Visu_PlaneSegmentation.png | Bin 0 -> 241 bytes resources/Visu_SphereSegmentation.png | Bin 0 -> 893 bytes resources/Visu_gauss_points.png | Bin 0 -> 689 bytes resources/Visu_load_texture.png | Bin 0 -> 231 bytes resources/Visu_recording_pause.png | Bin 0 -> 220 bytes resources/Visu_recording_play.png | Bin 0 -> 256 bytes resources/Visu_recording_start.png | Bin 0 -> 260 bytes resources/Visu_recording_stop.png | Bin 0 -> 208 bytes resources/Visu_scalarmapondeformedshape.png | Bin 0 -> 531 bytes resources/Visu_vvtk_switch.png | Bin 0 -> 782 bytes resources/sprite_alpha.bmp | Bin 0 -> 822 bytes resources/sprite_texture.bmp | Bin 0 -> 822 bytes src/CONVERTOR/Makefile.in | 32 +- src/CONVERTOR/VISUConvertor.cxx | 126 +- src/CONVERTOR/VISU_Convertor.cxx | 73 +- src/CONVERTOR/VISU_Convertor.hxx | 485 +- src/CONVERTOR/VISU_ConvertorDef.hxx | 78 + src/CONVERTOR/VISU_ConvertorUtils.cxx | 39 +- src/CONVERTOR/VISU_ConvertorUtils.hxx | 19 + src/CONVERTOR/VISU_Convertor_impl.cxx | 2566 ++++++++-- src/CONVERTOR/VISU_Convertor_impl.hxx | 987 +++- src/CONVERTOR/VISU_IDMapper.cxx | 77 + src/CONVERTOR/VISU_IDMapper.hxx | 150 + src/CONVERTOR/VISU_MedConvertor.cxx | 2724 ++++++++--- src/CONVERTOR/VISU_MedConvertor.hxx | 265 +- src/CONVERTOR/VISU_MergeFilter.cxx | 418 ++ src/CONVERTOR/VISU_MergeFilter.hxx | 99 + src/ENGINE/VISU_Engine_i.cc | 15 + src/ENGINE/VISU_Engine_i.hh | 3 + src/Makefile.in | 2 +- src/OBJECT/Makefile.in | 43 +- src/OBJECT/VISU_Actor.cxx | 540 ++- src/OBJECT/VISU_Actor.h | 243 +- src/OBJECT/VISU_ActorFactory.h | 68 + src/OBJECT/VISU_Event.h | 47 + src/OBJECT/VISU_GaussPtsAct.cxx | 1511 ++++++ src/OBJECT/VISU_GaussPtsAct.h | 471 ++ src/OBJECT/VISU_GaussPtsActorFactory.h | 57 + src/OBJECT/VISU_GaussPtsDeviceActor.cxx | 686 +++ src/OBJECT/VISU_GaussPtsDeviceActor.h | 236 + src/OBJECT/VISU_GaussPtsSettings.cxx | 106 + src/OBJECT/VISU_GaussPtsSettings.h | 231 + src/OBJECT/VISU_MeshAct.cxx | 402 +- src/OBJECT/VISU_MeshAct.h | 98 +- src/OBJECT/VISU_ScalarMapAct.cxx | 48 +- src/OBJECT/VISU_VectorsAct.cxx | 61 +- src/OBJECT/VISU_VectorsAct.h | 25 +- src/PIPELINE/Makefile.in | 79 +- src/PIPELINE/SALOME_ExtractGeometry.cxx | 174 +- src/PIPELINE/SALOME_ExtractGeometry.h | 43 +- src/PIPELINE/VISUPipeLine.cxx | 50 +- src/PIPELINE/VISU_CutLinesPL.cxx | 2 +- src/PIPELINE/VISU_CutPlanesPL.cxx | 2 +- src/PIPELINE/VISU_DeformedShapePL.cxx | 17 +- src/PIPELINE/VISU_Extractor.cxx | 75 +- src/PIPELINE/VISU_FieldTransform.cxx | 198 +- src/PIPELINE/VISU_GaussPointsPL.cxx | 699 +++ src/PIPELINE/VISU_GaussPointsPL.hxx | 291 ++ src/PIPELINE/VISU_ImplicitFunctionWidget.cxx | 136 + src/PIPELINE/VISU_ImplicitFunctionWidget.hxx | 79 + src/PIPELINE/VISU_IsoSurfacesPL.cxx | 9 +- src/PIPELINE/VISU_LookupTable.cxx | 144 +- src/PIPELINE/VISU_LookupTable.hxx | 9 +- src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx | 884 ++++ src/PIPELINE/VISU_OpenGLPointSpriteMapper.hxx | 285 ++ src/PIPELINE/VISU_PipeLine.cxx | 262 +- src/PIPELINE/VISU_PipeLine.hxx | 174 +- src/PIPELINE/VISU_PipeLineUtils.hxx | 20 +- src/PIPELINE/VISU_PlanesWidget.cxx | 1614 +++++++ src/PIPELINE/VISU_PlanesWidget.hxx | 312 ++ src/PIPELINE/VISU_Plot3DPL.cxx | 2 +- src/PIPELINE/VISU_ScalarBarCtrl.cxx | 520 ++ src/PIPELINE/VISU_ScalarBarCtrl.hxx | 138 + .../VISU_ScalarMapOnDeformedShapePL.cxx | 239 + .../VISU_ScalarMapOnDeformedShapePL.hxx | 95 + src/PIPELINE/VISU_ScalarMapPL.cxx | 181 +- src/PIPELINE/VISU_ScalarMapPL.hxx | 116 +- src/PIPELINE/VISU_SphereWidget.cxx | 622 +++ src/PIPELINE/VISU_SphereWidget.hxx | 134 + src/PIPELINE/VISU_StreamLinesPL.cxx | 7 +- src/PIPELINE/VISU_VectorsPL.cxx | 133 +- src/PIPELINE/VISU_VectorsPL.hxx | 9 +- src/PIPELINE/VISU_WidgetCtrl.cxx | 364 ++ src/PIPELINE/VISU_WidgetCtrl.hxx | 120 + src/PIPELINE/VISU_img2vti.cxx | 88 + src/VISUGUI/Makefile.in | 41 +- src/VISUGUI/VISUM_images.po | 67 + src/VISUGUI/VISUM_msg_en.po | 757 +++ src/VISUGUI/VISU_icons.po | 3 + src/VISUGUI/VISU_images.po | 3 + src/VISUGUI/VISU_msg_en.po | 31 + src/VISUGUI/VisuGUI.cxx | 464 +- src/VISUGUI/VisuGUI.h | 9 +- src/VISUGUI/VisuGUI_ActionsDef.h | 2 + src/VISUGUI/VisuGUI_BuildProgressDlg.cxx | 392 ++ src/VISUGUI/VisuGUI_BuildProgressDlg.h | 111 + src/VISUGUI/VisuGUI_ClippingDlg.cxx | 1 + src/VISUGUI/VisuGUI_CubeAxesDlg.cxx | 594 --- src/VISUGUI/VisuGUI_CubeAxesDlg.h | 132 - src/VISUGUI/VisuGUI_Displayer.cxx | 15 +- src/VISUGUI/VisuGUI_Factory.cxx | 4 +- src/VISUGUI/VisuGUI_FontWg.cxx | 149 - src/VISUGUI/VisuGUI_GaussPointsDlg.cxx | 733 +++ src/VISUGUI/VisuGUI_GaussPointsDlg.h | 162 + src/VISUGUI/VisuGUI_Module.cxx | 1663 +++++++ src/VISUGUI/VisuGUI_Module.h | 192 + src/VISUGUI/VisuGUI_NonIsometricDlg.h | 40 - src/VISUGUI/VisuGUI_OffsetDlg.cxx | 2 +- src/VISUGUI/VisuGUI_Plot3DDlg.cxx | 1 + src/VISUGUI/VisuGUI_PopupTools.cxx | 115 +- src/VISUGUI/VisuGUI_PopupTools.h | 4 + src/VISUGUI/VisuGUI_Prs3dTools.h | 135 +- src/VISUGUI/VisuGUI_ScalarBarDlg.cxx | 79 +- src/VISUGUI/VisuGUI_ScalarBarDlg.h | 9 +- .../VisuGUI_ScalarMapOnDeformedShapeDlg.cxx | 404 ++ .../VisuGUI_ScalarMapOnDeformedShapeDlg.h | 111 + src/VISUGUI/VisuGUI_Selection.cxx | 106 +- src/VISUGUI/VisuGUI_Selection.h | 4 +- src/VISUGUI/VisuGUI_TimeAnimation.cxx | 329 +- src/VISUGUI/VisuGUI_TimeAnimation.h | 11 +- src/VISUGUI/VisuGUI_Timer.cxx | 104 + src/VISUGUI/VisuGUI_Timer.h | 43 + src/VISUGUI/VisuGUI_Tools.cxx | 248 +- src/VISUGUI/VisuGUI_Tools.h | 39 +- src/VISUGUI/VisuGUI_TransparencyDlg.cxx | 245 + src/VISUGUI/VisuGUI_TransparencyDlg.h | 76 + src/VISUGUI/VisuGUI_ViewTools.cxx | 74 + src/VISUGUI/VisuGUI_ViewTools.h | 255 + src/VISU_I/Makefile.in | 170 +- src/VISU_I/VISUConfig.cc | 20 +- src/VISU_I/VISUConfig.hh | 8 +- src/VISU_I/VISU_ColoredPrs3d_i.cc | 747 +++ src/VISU_I/VISU_ColoredPrs3d_i.hh | 304 ++ src/VISU_I/VISU_CorbaMedConvertor.cxx | 933 ++-- src/VISU_I/VISU_CorbaMedConvertor.hxx | 158 +- src/VISU_I/VISU_CutLines_i.cc | 32 +- src/VISU_I/VISU_CutLines_i.hh | 8 +- src/VISU_I/VISU_CutPlanes_i.cc | 27 +- src/VISU_I/VISU_CutPlanes_i.hh | 8 +- src/VISU_I/VISU_DeformedShape_i.cc | 31 +- src/VISU_I/VISU_DeformedShape_i.hh | 9 +- src/VISU_I/VISU_GaussPoints_i.cc | 835 ++++ src/VISU_I/VISU_GaussPoints_i.hh | 343 ++ src/VISU_I/VISU_Gen_i.cc | 141 +- src/VISU_I/VISU_Gen_i.hh | 373 +- src/VISU_I/VISU_I.cxx | 54 + src/VISU_I/VISU_IsoSurfaces_i.cc | 26 +- src/VISU_I/VISU_IsoSurfaces_i.hh | 8 +- src/VISU_I/VISU_Mesh_i.cc | 54 +- src/VISU_I/VISU_Mesh_i.hh | 10 +- src/VISU_I/VISU_Plot3D_i.cc | 55 +- src/VISU_I/VISU_Plot3D_i.hh | 7 +- src/VISU_I/VISU_Prs3d_i.cc | 355 +- src/VISU_I/VISU_Prs3d_i.hh | 211 +- src/VISU_I/VISU_Result_i.cc | 1273 ++++- src/VISU_I/VISU_Result_i.hh | 71 +- src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc | 286 ++ src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh | 133 + src/VISU_I/VISU_ScalarMap_i.cc | 518 +- src/VISU_I/VISU_ScalarMap_i.hh | 224 +- src/VISU_I/VISU_StreamLines_i.cc | 44 +- src/VISU_I/VISU_StreamLines_i.hh | 9 +- src/VISU_I/VISU_Table_i.cc | 64 +- src/VISU_I/VISU_Table_i.hh | 2 + src/VISU_I/VISU_TimeAnimation.cxx | 407 +- src/VISU_I/VISU_TimeAnimation.h | 11 +- src/VISU_I/VISU_Vectors_i.cc | 28 +- src/VISU_I/VISU_Vectors_i.hh | 9 +- src/VISU_I/VISU_ViewManager_i.cc | 27 +- src/VISU_I/VISU_View_i.cc | 59 +- src/VISU_SWIG/Makefile.in | 5 +- src/VISU_SWIG/VISU_Gen_s.cc | 3 +- src/VISU_SWIG/visu.py | 106 +- src/VVTK/Makefile.in | 80 + src/VVTK/VVTK.h | 13 + src/VVTK/VVTK_ImageWriter.cxx | 112 + src/VVTK/VVTK_ImageWriter.h | 64 + src/VVTK/VVTK_ImageWriterMgr.cxx | 105 + src/VVTK/VVTK_ImageWriterMgr.h | 65 + src/VVTK/VVTK_InteractorStyle.cxx | 294 ++ src/VVTK/VVTK_InteractorStyle.h | 149 + src/VVTK/VVTK_MainWindow.cxx | 537 +++ src/VVTK/VVTK_MainWindow.h | 222 + src/VVTK/VVTK_PickingDlg.cxx | 378 ++ src/VVTK/VVTK_PickingDlg.h | 100 + src/VVTK/VVTK_PrimitiveBox.cxx | 358 ++ src/VVTK/VVTK_PrimitiveBox.h | 121 + src/VVTK/VVTK_Recorder.cxx | 464 ++ src/VVTK/VVTK_Recorder.h | 166 + src/VVTK/VVTK_RecorderDlg.cxx | 183 + .../VVTK_RecorderDlg.h} | 66 +- src/VVTK/VVTK_Renderer.cxx | 432 ++ src/VVTK/VVTK_Renderer.h | 179 + src/VVTK/VVTK_SegmentationCursorDlg.cxx | 839 ++++ src/VVTK/VVTK_SegmentationCursorDlg.h | 182 + src/VVTK/VVTK_SizeBox.cxx | 350 ++ src/VVTK/VVTK_SizeBox.h | 119 + src/VVTK/VVTK_ViewManager.cxx | 26 + src/VVTK/VVTK_ViewManager.h | 28 + src/VVTK/VVTK_ViewModel.cxx | 208 + src/VVTK/VVTK_ViewModel.h | 70 + src/VVTK/VVTK_ViewWindow.cxx | 297 ++ src/VVTK/VVTK_ViewWindow.h | 124 + 613 files changed, 69717 insertions(+), 6644 deletions(-) create mode 100644 doc/salome/VISU_index.html create mode 100644 doc/salome/gui/GAUSS/activation_of_commands_display_results.htm create mode 100644 doc/salome/gui/GAUSS/animation_function.htm create mode 100644 doc/salome/gui/GAUSS/blue_down.jpg create mode 100644 doc/salome/gui/GAUSS/blue_left.jpg create mode 100644 doc/salome/gui/GAUSS/blue_right.jpg create mode 100644 doc/salome/gui/GAUSS/blue_up.jpg create mode 100644 doc/salome/gui/GAUSS/cameras.htm create mode 100644 doc/salome/gui/GAUSS/command_activation.htm create mode 100644 doc/salome/gui/GAUSS/command_activation_in_display_meshes.htm create mode 100644 doc/salome/gui/GAUSS/command_activation_picking.htm create mode 100644 doc/salome/gui/GAUSS/command_activation_segmentation.htm create mode 100644 doc/salome/gui/GAUSS/command_activation_timestamps_animation.htm create mode 100644 doc/salome/gui/GAUSS/command_deactivation.htm create mode 100644 doc/salome/gui/GAUSS/command_description_in_display_meshes.htm create mode 100644 doc/salome/gui/GAUSS/command_description_segmentation.htm create mode 100644 doc/salome/gui/GAUSS/command_description_timestamps_animation.htm create mode 100644 doc/salome/gui/GAUSS/command_result.htm create mode 100644 doc/salome/gui/GAUSS/cshdat_robohelp.htm create mode 100644 doc/salome/gui/GAUSS/cshdat_webhelp.htm create mode 100644 doc/salome/gui/GAUSS/default.css create mode 100644 doc/salome/gui/GAUSS/default_ns.css create mode 100644 doc/salome/gui/GAUSS/description_of_commands_display_results.htm create mode 100644 doc/salome/gui/GAUSS/description_of_the_picking_functionality.htm create mode 100644 doc/salome/gui/GAUSS/display_meshes_general.htm create mode 100644 doc/salome/gui/GAUSS/display_results_at_gauss_points_general.htm create mode 100644 doc/salome/gui/GAUSS/ehelp.xml create mode 100644 doc/salome/gui/GAUSS/ehlpdhtm.js create mode 100644 doc/salome/gui/GAUSS/ex_green.jpg create mode 100644 doc/salome/gui/GAUSS/gauss points viewer.log create mode 100644 doc/salome/gui/GAUSS/gauss_points_viewer.htm create mode 100644 doc/salome/gui/GAUSS/gauss_points_viewer_csh.htm create mode 100644 doc/salome/gui/GAUSS/gauss_points_viewer_rhc.htm rename doc/salome/gui/{VISU/files/a2.htm => GAUSS/general.htm} (51%) mode change 100755 => 100644 rename doc/salome/gui/{VISU/files/a1.htm => GAUSS/general_navigation_within_the_scene.htm} (53%) mode change 100755 => 100644 create mode 100644 doc/salome/gui/GAUSS/general_storage_of_produced_data.htm rename doc/salome/gui/{VISU/files/a3.htm => GAUSS/general_timestamps_animation.htm} (51%) mode change 100755 => 100644 create mode 100644 doc/salome/gui/GAUSS/image1.gif create mode 100644 doc/salome/gui/GAUSS/image10.gif create mode 100644 doc/salome/gui/GAUSS/image100.gif create mode 100644 doc/salome/gui/GAUSS/image101.gif create mode 100644 doc/salome/gui/GAUSS/image102.gif create mode 100644 doc/salome/gui/GAUSS/image103.gif create mode 100644 doc/salome/gui/GAUSS/image104.gif create mode 100644 doc/salome/gui/GAUSS/image105.gif create mode 100644 doc/salome/gui/GAUSS/image106.gif create mode 100644 doc/salome/gui/GAUSS/image107.gif create mode 100644 doc/salome/gui/GAUSS/image108.gif create mode 100644 doc/salome/gui/GAUSS/image109.gif create mode 100644 doc/salome/gui/GAUSS/image11.gif create mode 100644 doc/salome/gui/GAUSS/image110.gif create mode 100644 doc/salome/gui/GAUSS/image111.gif create mode 100644 doc/salome/gui/GAUSS/image112.gif create mode 100644 doc/salome/gui/GAUSS/image113.gif create mode 100644 doc/salome/gui/GAUSS/image114.gif create mode 100644 doc/salome/gui/GAUSS/image115.gif create mode 100644 doc/salome/gui/GAUSS/image116.gif create mode 100644 doc/salome/gui/GAUSS/image117.gif create mode 100644 doc/salome/gui/GAUSS/image12.gif create mode 100644 doc/salome/gui/GAUSS/image13.gif create mode 100644 doc/salome/gui/GAUSS/image28.gif create mode 100644 doc/salome/gui/GAUSS/image29.gif create mode 100644 doc/salome/gui/GAUSS/image3.gif create mode 100644 doc/salome/gui/GAUSS/image30.gif create mode 100644 doc/salome/gui/GAUSS/image31.gif create mode 100644 doc/salome/gui/GAUSS/image32.gif create mode 100644 doc/salome/gui/GAUSS/image33.gif create mode 100644 doc/salome/gui/GAUSS/image34.gif create mode 100644 doc/salome/gui/GAUSS/image35.gif create mode 100644 doc/salome/gui/GAUSS/image36.gif create mode 100644 doc/salome/gui/GAUSS/image37.gif create mode 100644 doc/salome/gui/GAUSS/image38.gif create mode 100644 doc/salome/gui/GAUSS/image39.gif create mode 100644 doc/salome/gui/GAUSS/image4.gif create mode 100644 doc/salome/gui/GAUSS/image40.gif create mode 100644 doc/salome/gui/GAUSS/image41.gif create mode 100644 doc/salome/gui/GAUSS/image42.gif create mode 100644 doc/salome/gui/GAUSS/image45.gif create mode 100644 doc/salome/gui/GAUSS/image46.gif create mode 100644 doc/salome/gui/GAUSS/image47.gif create mode 100644 doc/salome/gui/GAUSS/image48.gif create mode 100644 doc/salome/gui/GAUSS/image49.gif create mode 100644 doc/salome/gui/GAUSS/image5.gif create mode 100644 doc/salome/gui/GAUSS/image50.gif create mode 100644 doc/salome/gui/GAUSS/image51.gif create mode 100644 doc/salome/gui/GAUSS/image52.gif create mode 100644 doc/salome/gui/GAUSS/image53.gif create mode 100644 doc/salome/gui/GAUSS/image54.gif create mode 100644 doc/salome/gui/GAUSS/image55.gif create mode 100644 doc/salome/gui/GAUSS/image56.gif create mode 100644 doc/salome/gui/GAUSS/image57.gif create mode 100644 doc/salome/gui/GAUSS/image58.gif create mode 100644 doc/salome/gui/GAUSS/image59.gif create mode 100644 doc/salome/gui/GAUSS/image6.gif create mode 100644 doc/salome/gui/GAUSS/image60.gif create mode 100644 doc/salome/gui/GAUSS/image61.gif create mode 100644 doc/salome/gui/GAUSS/image62.gif create mode 100644 doc/salome/gui/GAUSS/image63.gif create mode 100644 doc/salome/gui/GAUSS/image64.gif create mode 100644 doc/salome/gui/GAUSS/image65.gif create mode 100644 doc/salome/gui/GAUSS/image66.gif create mode 100644 doc/salome/gui/GAUSS/image67.gif create mode 100644 doc/salome/gui/GAUSS/image68.gif create mode 100644 doc/salome/gui/GAUSS/image69.gif create mode 100644 doc/salome/gui/GAUSS/image7.gif create mode 100644 doc/salome/gui/GAUSS/image70.gif create mode 100644 doc/salome/gui/GAUSS/image71.gif create mode 100644 doc/salome/gui/GAUSS/image72.gif create mode 100644 doc/salome/gui/GAUSS/image73.gif create mode 100644 doc/salome/gui/GAUSS/image74.gif create mode 100644 doc/salome/gui/GAUSS/image75.gif create mode 100644 doc/salome/gui/GAUSS/image76.gif create mode 100644 doc/salome/gui/GAUSS/image77.gif create mode 100644 doc/salome/gui/GAUSS/image78.gif create mode 100644 doc/salome/gui/GAUSS/image79.gif create mode 100644 doc/salome/gui/GAUSS/image8.gif create mode 100644 doc/salome/gui/GAUSS/image80.gif create mode 100644 doc/salome/gui/GAUSS/image81.gif create mode 100644 doc/salome/gui/GAUSS/image82.gif create mode 100644 doc/salome/gui/GAUSS/image83.gif create mode 100644 doc/salome/gui/GAUSS/image84.gif create mode 100644 doc/salome/gui/GAUSS/image85.gif create mode 100644 doc/salome/gui/GAUSS/image86.gif create mode 100644 doc/salome/gui/GAUSS/image87.gif create mode 100644 doc/salome/gui/GAUSS/image88.gif create mode 100644 doc/salome/gui/GAUSS/image89.gif create mode 100644 doc/salome/gui/GAUSS/image9.gif create mode 100644 doc/salome/gui/GAUSS/image90.gif create mode 100644 doc/salome/gui/GAUSS/image91.gif create mode 100644 doc/salome/gui/GAUSS/image92.gif create mode 100644 doc/salome/gui/GAUSS/image93.gif create mode 100644 doc/salome/gui/GAUSS/image94.gif create mode 100644 doc/salome/gui/GAUSS/image95.gif create mode 100644 doc/salome/gui/GAUSS/image96.gif create mode 100644 doc/salome/gui/GAUSS/image97.gif create mode 100644 doc/salome/gui/GAUSS/image98.gif create mode 100644 doc/salome/gui/GAUSS/image99.gif rename doc/salome/gui/{VISU/files/a4.htm => GAUSS/index.htm} (54%) mode change 100755 => 100644 create mode 100644 doc/salome/gui/GAUSS/info_blue.jpg create mode 100644 doc/salome/gui/GAUSS/loading_of_previously_saved_data.htm create mode 100644 doc/salome/gui/GAUSS/making_an_avi_clip.htm create mode 100644 doc/salome/gui/GAUSS/managing_configurations.htm create mode 100644 doc/salome/gui/GAUSS/navigation_using_the_keyboard.htm create mode 100644 doc/salome/gui/GAUSS/navigation_using_the_mouse.htm create mode 100644 doc/salome/gui/GAUSS/navigation_using_the_spacemouse.htm create mode 100644 doc/salome/gui/GAUSS/picking_general.htm create mode 100644 doc/salome/gui/GAUSS/purple_right_sm.jpg create mode 100644 doc/salome/gui/GAUSS/robohhre.lng create mode 100644 doc/salome/gui/GAUSS/salome-visu_preferences_display_results.htm create mode 100644 doc/salome/gui/GAUSS/salome_visu_preferences.htm create mode 100644 doc/salome/gui/GAUSS/salome_visu_preferences_navigation_within_the_scene.htm create mode 100644 doc/salome/gui/GAUSS/salome_visu_preferences_picking.htm create mode 100644 doc/salome/gui/GAUSS/segmentation_general.htm create mode 100644 doc/salome/gui/GAUSS/specific_additional_commands_for_fields_items.htm create mode 100644 doc/salome/gui/GAUSS/webhelp.cab create mode 100644 doc/salome/gui/GAUSS/webhelp.jar create mode 100644 doc/salome/gui/GAUSS/whcsh_home.htm create mode 100644 doc/salome/gui/GAUSS/whcshdata.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whftdata.js create mode 100644 doc/salome/gui/GAUSS/whdata/whftdata0.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whfts.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whfts.js create mode 100644 doc/salome/gui/GAUSS/whdata/whfwdata.js create mode 100644 doc/salome/gui/GAUSS/whdata/whfwdata0.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whfwdata1.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whfwdata2.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whfwdata3.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whgdata.js create mode 100644 doc/salome/gui/GAUSS/whdata/whglo.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whglo.js create mode 100644 doc/salome/gui/GAUSS/whdata/whidata.js create mode 100644 doc/salome/gui/GAUSS/whdata/whidx.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whidx.js create mode 100644 doc/salome/gui/GAUSS/whdata/whtdata.js create mode 100644 doc/salome/gui/GAUSS/whdata/whtdata0.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whtoc.htm create mode 100644 doc/salome/gui/GAUSS/whdata/whtoc.js create mode 100644 doc/salome/gui/GAUSS/whestart.ico create mode 100644 doc/salome/gui/GAUSS/whfbody.htm create mode 100644 doc/salome/gui/GAUSS/whfdhtml.htm create mode 100644 doc/salome/gui/GAUSS/whfform.htm create mode 100644 doc/salome/gui/GAUSS/whfhost.js create mode 100644 doc/salome/gui/GAUSS/whform.js create mode 100644 doc/salome/gui/GAUSS/whframes.js create mode 100644 doc/salome/gui/GAUSS/whgbody.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whexpbar.gif create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf0.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf1.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf2.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf3.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf4.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf5.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf6.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf7.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstf8.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl0.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl1.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl10.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl11.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl12.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl13.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl14.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl15.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl16.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl17.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl18.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl19.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl2.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl20.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl21.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl22.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl23.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl3.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl4.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl5.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl6.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl7.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl8.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstfl9.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstg0.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlsti0.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt0.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt1.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt10.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt11.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt2.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt3.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt4.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt5.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt6.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt7.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt8.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whlstt9.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvf30.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvf31.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvf32.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvf33.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvl31.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvl32.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvl33.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvp30.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvp31.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvp32.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvp33.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvt30.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvt31.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvt32.htm create mode 100644 doc/salome/gui/GAUSS/whgdata/whnvt33.htm create mode 100644 doc/salome/gui/GAUSS/whgdef.htm create mode 100644 doc/salome/gui/GAUSS/whgdhtml.htm create mode 100644 doc/salome/gui/GAUSS/whghost.js create mode 100644 doc/salome/gui/GAUSS/whhost.js create mode 100644 doc/salome/gui/GAUSS/whibody.htm create mode 100644 doc/salome/gui/GAUSS/whidhtml.htm create mode 100644 doc/salome/gui/GAUSS/whiform.htm create mode 100644 doc/salome/gui/GAUSS/whihost.js create mode 100644 doc/salome/gui/GAUSS/whlang.js create mode 100644 doc/salome/gui/GAUSS/whmozemu.js create mode 100644 doc/salome/gui/GAUSS/whmsg.js create mode 100644 doc/salome/gui/GAUSS/whnjs.htm create mode 100644 doc/salome/gui/GAUSS/whphost.js create mode 100644 doc/salome/gui/GAUSS/whproj.htm create mode 100644 doc/salome/gui/GAUSS/whproj.js create mode 100644 doc/salome/gui/GAUSS/whproj.xml create mode 100644 doc/salome/gui/GAUSS/whproxy.js create mode 100644 doc/salome/gui/GAUSS/whres.xml create mode 100644 doc/salome/gui/GAUSS/whrstart.ico create mode 100644 doc/salome/gui/GAUSS/whskin_banner.htm create mode 100644 doc/salome/gui/GAUSS/whskin_blank.htm create mode 100644 doc/salome/gui/GAUSS/whskin_frmset01.htm create mode 100644 doc/salome/gui/GAUSS/whskin_frmset010.htm create mode 100644 doc/salome/gui/GAUSS/whskin_homepage.htm create mode 100644 doc/salome/gui/GAUSS/whskin_info.htm create mode 100644 doc/salome/gui/GAUSS/whskin_mbars.htm create mode 100644 doc/salome/gui/GAUSS/whskin_papplet.htm create mode 100644 doc/salome/gui/GAUSS/whskin_pdhtml.htm create mode 100644 doc/salome/gui/GAUSS/whskin_pickup.htm create mode 100644 doc/salome/gui/GAUSS/whskin_plist.htm create mode 100644 doc/salome/gui/GAUSS/whskin_tbars.htm create mode 100644 doc/salome/gui/GAUSS/whskin_tw.htm create mode 100644 doc/salome/gui/GAUSS/whst_topics.xml create mode 100644 doc/salome/gui/GAUSS/whstart.ico create mode 100644 doc/salome/gui/GAUSS/whstart.js create mode 100644 doc/salome/gui/GAUSS/whstub.js create mode 100644 doc/salome/gui/GAUSS/wht_abge.jpg create mode 100644 doc/salome/gui/GAUSS/wht_abgi.jpg create mode 100644 doc/salome/gui/GAUSS/wht_abgw.jpg create mode 100644 doc/salome/gui/GAUSS/wht_abte.jpg create mode 100644 doc/salome/gui/GAUSS/wht_abti.jpg create mode 100644 doc/salome/gui/GAUSS/wht_abtw.jpg create mode 100644 doc/salome/gui/GAUSS/wht_fts_h.gif create mode 100644 doc/salome/gui/GAUSS/wht_fts_n.gif create mode 100644 doc/salome/gui/GAUSS/wht_glo_h.gif create mode 100644 doc/salome/gui/GAUSS/wht_glo_n.gif create mode 100644 doc/salome/gui/GAUSS/wht_go.gif create mode 100644 doc/salome/gui/GAUSS/wht_hide.gif create mode 100644 doc/salome/gui/GAUSS/wht_idx_h.gif create mode 100644 doc/salome/gui/GAUSS/wht_idx_n.gif create mode 100644 doc/salome/gui/GAUSS/wht_logo1.gif create mode 100644 doc/salome/gui/GAUSS/wht_logo2.gif create mode 100644 doc/salome/gui/GAUSS/wht_next.gif create mode 100644 doc/salome/gui/GAUSS/wht_next_g.gif create mode 100644 doc/salome/gui/GAUSS/wht_prev.gif create mode 100644 doc/salome/gui/GAUSS/wht_prev_g.gif create mode 100644 doc/salome/gui/GAUSS/wht_spac.gif create mode 100644 doc/salome/gui/GAUSS/wht_sync.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab0.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab1.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab2.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab3.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab4.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab5.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab6.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab7.gif create mode 100644 doc/salome/gui/GAUSS/wht_tab8.gif create mode 100644 doc/salome/gui/GAUSS/wht_toc1.gif create mode 100644 doc/salome/gui/GAUSS/wht_toc2.gif create mode 100644 doc/salome/gui/GAUSS/wht_toc3.gif create mode 100644 doc/salome/gui/GAUSS/wht_toc4.gif create mode 100644 doc/salome/gui/GAUSS/wht_toc_h.gif create mode 100644 doc/salome/gui/GAUSS/wht_toc_n.gif create mode 100644 doc/salome/gui/GAUSS/wht_ws.gif create mode 100644 doc/salome/gui/GAUSS/wht_ws_g.gif create mode 100644 doc/salome/gui/GAUSS/whtbar.js create mode 100644 doc/salome/gui/GAUSS/whtdhtml.htm create mode 100644 doc/salome/gui/GAUSS/whthost.js create mode 100644 doc/salome/gui/GAUSS/whtopic.js create mode 100644 doc/salome/gui/GAUSS/whutils.js create mode 100644 doc/salome/gui/GAUSS/whver.js create mode 100644 doc/salome/gui/GAUSS/whxdata/whftdata0.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whfts.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whfwdata0.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whfwdata1.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whfwdata2.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whfwdata3.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whglo.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whidx.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whtdata0.xml create mode 100644 doc/salome/gui/GAUSS/whxdata/whtoc.xml delete mode 100755 doc/salome/gui/VISU/animation.gif delete mode 100755 doc/salome/gui/VISU/createfieldprsnt.gif delete mode 100755 doc/salome/gui/VISU/createpresent.gif delete mode 100755 doc/salome/gui/VISU/createtable.gif delete mode 100755 doc/salome/gui/VISU/files/a.htm delete mode 100755 doc/salome/gui/VISU/files/a5.htm delete mode 100755 doc/salome/gui/VISU/importmed.gif delete mode 100755 doc/salome/gui/VISU/launchvisu.gif create mode 100755 doc/salome/gui/VISU/whgdata/whlstfl23.htm create mode 100755 resources/Vertex_Program_ARB.txt create mode 100644 resources/Visu_PlaneSegmentation.png create mode 100644 resources/Visu_SphereSegmentation.png create mode 100644 resources/Visu_gauss_points.png create mode 100755 resources/Visu_load_texture.png create mode 100644 resources/Visu_recording_pause.png create mode 100644 resources/Visu_recording_play.png create mode 100644 resources/Visu_recording_start.png create mode 100644 resources/Visu_recording_stop.png create mode 100644 resources/Visu_scalarmapondeformedshape.png create mode 100644 resources/Visu_vvtk_switch.png create mode 100644 resources/sprite_alpha.bmp create mode 100644 resources/sprite_texture.bmp create mode 100644 src/CONVERTOR/VISU_ConvertorDef.hxx create mode 100644 src/CONVERTOR/VISU_IDMapper.cxx create mode 100644 src/CONVERTOR/VISU_IDMapper.hxx create mode 100644 src/CONVERTOR/VISU_MergeFilter.cxx create mode 100644 src/CONVERTOR/VISU_MergeFilter.hxx create mode 100644 src/OBJECT/VISU_ActorFactory.h create mode 100644 src/OBJECT/VISU_Event.h create mode 100644 src/OBJECT/VISU_GaussPtsAct.cxx create mode 100644 src/OBJECT/VISU_GaussPtsAct.h create mode 100644 src/OBJECT/VISU_GaussPtsActorFactory.h create mode 100644 src/OBJECT/VISU_GaussPtsDeviceActor.cxx create mode 100644 src/OBJECT/VISU_GaussPtsDeviceActor.h create mode 100644 src/OBJECT/VISU_GaussPtsSettings.cxx create mode 100644 src/OBJECT/VISU_GaussPtsSettings.h create mode 100644 src/PIPELINE/VISU_GaussPointsPL.cxx create mode 100644 src/PIPELINE/VISU_GaussPointsPL.hxx create mode 100644 src/PIPELINE/VISU_ImplicitFunctionWidget.cxx create mode 100644 src/PIPELINE/VISU_ImplicitFunctionWidget.hxx create mode 100755 src/PIPELINE/VISU_OpenGLPointSpriteMapper.cxx create mode 100755 src/PIPELINE/VISU_OpenGLPointSpriteMapper.hxx create mode 100644 src/PIPELINE/VISU_PlanesWidget.cxx create mode 100644 src/PIPELINE/VISU_PlanesWidget.hxx create mode 100644 src/PIPELINE/VISU_ScalarBarCtrl.cxx create mode 100644 src/PIPELINE/VISU_ScalarBarCtrl.hxx create mode 100644 src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.cxx create mode 100644 src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.hxx create mode 100755 src/PIPELINE/VISU_SphereWidget.cxx create mode 100755 src/PIPELINE/VISU_SphereWidget.hxx create mode 100644 src/PIPELINE/VISU_WidgetCtrl.cxx create mode 100644 src/PIPELINE/VISU_WidgetCtrl.hxx create mode 100644 src/PIPELINE/VISU_img2vti.cxx create mode 100644 src/VISUGUI/VISUM_images.po create mode 100644 src/VISUGUI/VISUM_msg_en.po create mode 100644 src/VISUGUI/VisuGUI_BuildProgressDlg.cxx create mode 100644 src/VISUGUI/VisuGUI_BuildProgressDlg.h delete mode 100755 src/VISUGUI/VisuGUI_CubeAxesDlg.cxx delete mode 100755 src/VISUGUI/VisuGUI_CubeAxesDlg.h delete mode 100755 src/VISUGUI/VisuGUI_FontWg.cxx create mode 100644 src/VISUGUI/VisuGUI_GaussPointsDlg.cxx create mode 100644 src/VISUGUI/VisuGUI_GaussPointsDlg.h create mode 100644 src/VISUGUI/VisuGUI_Module.cxx create mode 100644 src/VISUGUI/VisuGUI_Module.h delete mode 100644 src/VISUGUI/VisuGUI_NonIsometricDlg.h create mode 100644 src/VISUGUI/VisuGUI_ScalarMapOnDeformedShapeDlg.cxx create mode 100644 src/VISUGUI/VisuGUI_ScalarMapOnDeformedShapeDlg.h create mode 100644 src/VISUGUI/VisuGUI_Timer.cxx create mode 100644 src/VISUGUI/VisuGUI_Timer.h create mode 100644 src/VISUGUI/VisuGUI_TransparencyDlg.cxx create mode 100644 src/VISUGUI/VisuGUI_TransparencyDlg.h create mode 100644 src/VISUGUI/VisuGUI_ViewTools.cxx create mode 100644 src/VISUGUI/VisuGUI_ViewTools.h create mode 100644 src/VISU_I/VISU_ColoredPrs3d_i.cc create mode 100644 src/VISU_I/VISU_ColoredPrs3d_i.hh create mode 100644 src/VISU_I/VISU_GaussPoints_i.cc create mode 100644 src/VISU_I/VISU_GaussPoints_i.hh create mode 100644 src/VISU_I/VISU_I.cxx create mode 100644 src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc create mode 100644 src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh create mode 100755 src/VVTK/Makefile.in create mode 100755 src/VVTK/VVTK.h create mode 100755 src/VVTK/VVTK_ImageWriter.cxx create mode 100755 src/VVTK/VVTK_ImageWriter.h create mode 100755 src/VVTK/VVTK_ImageWriterMgr.cxx create mode 100755 src/VVTK/VVTK_ImageWriterMgr.h create mode 100644 src/VVTK/VVTK_InteractorStyle.cxx create mode 100644 src/VVTK/VVTK_InteractorStyle.h create mode 100644 src/VVTK/VVTK_MainWindow.cxx create mode 100644 src/VVTK/VVTK_MainWindow.h create mode 100644 src/VVTK/VVTK_PickingDlg.cxx create mode 100644 src/VVTK/VVTK_PickingDlg.h create mode 100644 src/VVTK/VVTK_PrimitiveBox.cxx create mode 100644 src/VVTK/VVTK_PrimitiveBox.h create mode 100755 src/VVTK/VVTK_Recorder.cxx create mode 100755 src/VVTK/VVTK_Recorder.h create mode 100644 src/VVTK/VVTK_RecorderDlg.cxx rename src/{VISUGUI/VisuGUI_FontWg.h => VVTK/VVTK_RecorderDlg.h} (52%) mode change 100755 => 100644 create mode 100644 src/VVTK/VVTK_Renderer.cxx create mode 100644 src/VVTK/VVTK_Renderer.h create mode 100644 src/VVTK/VVTK_SegmentationCursorDlg.cxx create mode 100644 src/VVTK/VVTK_SegmentationCursorDlg.h create mode 100644 src/VVTK/VVTK_SizeBox.cxx create mode 100644 src/VVTK/VVTK_SizeBox.h create mode 100644 src/VVTK/VVTK_ViewManager.cxx create mode 100644 src/VVTK/VVTK_ViewManager.h create mode 100644 src/VVTK/VVTK_ViewModel.cxx create mode 100644 src/VVTK/VVTK_ViewModel.h create mode 100755 src/VVTK/VVTK_ViewWindow.cxx create mode 100755 src/VVTK/VVTK_ViewWindow.h diff --git a/adm_local/unix/make_commence.in b/adm_local/unix/make_commence.in index 549610f5..574db11c 100644 --- a/adm_local/unix/make_commence.in +++ b/adm_local/unix/make_commence.in @@ -37,6 +37,7 @@ CXX_DEPEND_FLAG = @CXX_DEPEND_FLAG@ # BOOST Library BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ +BOOST_LIBS = @BOOST_LIBS@ # JAVA diff --git a/doc/salome/VISU_index.html b/doc/salome/VISU_index.html new file mode 100644 index 00000000..dce35eb1 --- /dev/null +++ b/doc/salome/VISU_index.html @@ -0,0 +1,86 @@ + + + + + + + + Post-Pro Module Documentation + + + +
  +
+
                   +   
+ + + + + + + + + +
+ + + +
+ +
+
+
+

Post-Pro MODULE Documentation

+
+
+ + + + + +
+
+ +
+

Application-About.png +     

+
+ +
+ + + + +
+
+
+
+
+ +
GUI Documentation
+ +
+ +
Gauss Viewer User Guide
+ +
+ +
TUI Documentation
+ +

+
+
+
+
+
+
+ + diff --git a/doc/salome/VISU_index_v3.1.0.html b/doc/salome/VISU_index_v3.1.0.html index d123d0aa..dce35eb1 100644 --- a/doc/salome/VISU_index_v3.1.0.html +++ b/doc/salome/VISU_index_v3.1.0.html @@ -65,25 +65,16 @@
-
-
GUI Documentation
-
- -
+
+ +
Gauss Viewer User Guide
-

-
- -
+
TUI Documentation
- -
- -
- +


diff --git a/doc/salome/gui/GAUSS/activation_of_commands_display_results.htm b/doc/salome/gui/GAUSS/activation_of_commands_display_results.htm new file mode 100644 index 00000000..97430cd1 --- /dev/null +++ b/doc/salome/gui/GAUSS/activation_of_commands_display_results.htm @@ -0,0 +1,191 @@ + + + + + +Activation of commands display results + + + + + + + + + + + +

Activation of commands

+ +

The user has to select in the tree browser the time stamp value to display, by a right-mouse + button click. Items concerned by this command are all sub-items of ‘Fields’ entry.

+ +

Then, a contextual popup menu displays possible display modes, depending + whether the time stamps contains scalar and/or vector values:

+ +

 

+ + +++ + + + + + + + +
+

Options for fields containing only Vector and/or Scalar + values:

+

Options for fields containing only Scalar values:

+

+

+ +

 

+ +

Fig. 4 : Different display mode for results

+ +

 

+ +

These commands are also accessible from the Visualization + menu and from the Visualization + toolbar and are applied to the current selected field.

+ +

 

+ +

+ +

 

+ +

Fig. 5 : Visualization toolbar

+ +

 

+ +

Note:

+ +

In the case of data assigned + to Gauss Points, these existing modes of presentation may give incorrect + presentations because of the algorithms used for the translation of data + from Gauss points to the whole mesh element. Therefore, a message will + be displayed to inform the user about that and let him the possibility + to go on anyway or to cancel the operation:

+ +

 

+ +

+ +

 

+ +

Fig. 6 : Notification message for existing and not modified + VISU presentation

+ +

 

+ +

Two new options are added to the popup menus (scalar and scalar/vector), + the menu bar and the toolbar:

+ +

 

+ +

+ +

 

+ +

Fig. 7 : New command dedicated to Gauss points support

+ +

 

+ +

The first one displays results + of a computation at Gauss points, the second one displays only the Gauss + points (geometry) in the 3D view + for checking purpose.

+ +

This latest option should be understood as a debug mode to check if + coordinates of Gauss points are correctly computed by the system. Later + on, this option could be moved to the ‘Families’ entry of the tree browser + – like for Mesh entities – but this requires modifying the MED file data + model, and is out of the scope of this specification.

+ + + + diff --git a/doc/salome/gui/GAUSS/animation_function.htm b/doc/salome/gui/GAUSS/animation_function.htm new file mode 100644 index 00000000..997b817d --- /dev/null +++ b/doc/salome/gui/GAUSS/animation_function.htm @@ -0,0 +1,94 @@ + + + + + +Animation function + + + + + + + + + + + +

Animation function

+ +

When a field defines several timestamps, a right-mouse + button click display an ‘Animation’ + popup menu that allows user to define an animation of the results between + 2 date.

+ +

 

+ +

This option will be extended + to results at Gauss point, later on, in the frame of lot 3 – Advanced + version of the viewer.

+ + + + diff --git a/doc/salome/gui/GAUSS/blue_down.jpg b/doc/salome/gui/GAUSS/blue_down.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5376a154a5f0dc66f0c43c4f32b112e559349918 GIT binary patch literal 806 zcmex=J4j*U&$?YOzOo%)}-M@CBq z81f0J`b%9}F*oKr|IuRydhBLwRFC!isVd2G;aQ!`tGYWOf3>giYH9vwxb*CK(Q(h5 zSsBs2x}t`gKTkIkx4*Uc_HM}x&FrK@Iw!hzIE-inlY7Sg@@(reUl24YrKM# z9*eQgXnuJrW6|Sne6RDxnx3}Ky>{^MjZ^n$L~k}!HPfF{5;|*7Tffz`XE!CMi8^F> zid?@c$kFzFPwcU|J33EXF=O27=Dnii$oPvldc+2_ujJ}JJ8f4{bD!S&;OT9*&) z+goYny1Mr9wz%j_^~aT5PlBUNe`~jWW!^RSnnaJZ607^Pr>Cci9o-`JC@93M^2@hX zD+0dS_3r)=v&fF4;Q7|Hv#+w-El%#ZWmU&J`?_q}Dfy7&KD*z~UEF2P-+KC3o`S%F xg<7kaxYS#%CeF6LH2YrFo;Ftn3&sBood?z42CM)8 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GAUSS/blue_left.jpg b/doc/salome/gui/GAUSS/blue_left.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ceb91efb3b75f1a0afb197c683167dc5d35f5794 GIT binary patch literal 747 zcmex=Fr!$i~FND!{^+XutI#El1qh5p}S;9&-e3Ni~a*fWG~H@WlNw}$zI zXQ1GVvZ~H<$(xc@P1&ae7rF5`yv+^W6O*Uxdcq}m$Il0sJ(jFm?7Ds1mzkDUZkF?% z_qQBaWxdD#KZEDG7wcwQPOWKPw)=|p@|@has%b(~rKJ0p{9Jb;g|#VIEIM*?(d*<(wry@ZX$GleAOpR6zl3&UBCE@d?$4gf1<~Mv(?jxn7eB8HZPycnUodTPi zH-DOzvTm{!?^2l#-B~69PpxHqw|iWaVP_FIa9mI&B;=^&$ME&{Cz&}ZW$13btmnyg z_IKo~W%qxsyHV_NU1w30chQw6doCC)c)01bEr){3jD$;i_H{~|W~yf|{bdob#LJ`N jb5O9z-ud&-9=^TncV_?6cU9+K_djlD618U%|9=wzFdO6% literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GAUSS/blue_right.jpg b/doc/salome/gui/GAUSS/blue_right.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf6f924028e9282c4dfa083ff4d5f7a20c6480f3 GIT binary patch literal 792 zcmex=~Mn^83ciTRup10WDQI#oVf9#@c&y3Jj_7b1epaH z>>0wg);|60Zl!Q`{mYooQ^WIiOnGtjQQlN<%bp(3Jd4XN>pHulmRwpoZ+8CfeCbo? z*MC{TB)e6ogKrbtYWquhArE;@pN=VCCOo<0LvwmW>&zKpD_IrK*O^Rh*^qXiG-Tag z$*B4XCtNPP3AxvHTTGvA$K~`_4D)7t=s$Y!>qXy{NiPovNxHAPvv^5*oafb>Yc8zj zS^V*d!JY##yvrSP6bd*+d^iPN0|NuaQ+#?VFB@~VO?V|5IQO~tk+Nl_#j7}GO+FqBE-bnfrg3Vj&Kb)nz7OUfLqkMdl?20fRh|tC zww$rC+kB?}<(sl6XM6}>I45%PnWc3aUiBMR?|fIPu6j>+zU=`4^NXuPqNEonDa{cS zx~jBg`tr)s@@$u1=GE`R&-3tn+SHZ-4kL?tc2ZgRcK?0szI(2p9kW literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GAUSS/blue_up.jpg b/doc/salome/gui/GAUSS/blue_up.jpg new file mode 100644 index 0000000000000000000000000000000000000000..383840fdb1334d5d2b6a81967ab24a4b8dc01ef5 GIT binary patch literal 799 zcmex=oA_xov7FITP0R{$EMs}dHVXA??VPO?y5E2$)W9Lv*;xu#= z6%S105(KJeW@BZADFcQLv!Ef9V_+iC6ve`WLLw74DhVt9zs11A%m{Q0vmk>#L+GDb zmFBnmm@@dgQ&wC09-f)Ay4RNJYoc;kZikZdsZ%qp=9+a%FZ2pH67$7VL71bnB)U4^ za^=qAr1S;HZ`EAkSaJGD{ufT=oxfY+jEeh0g-?0gM(i?=Uv*dF$rGNZfkr;^3pySw z+Q7MPk?LE6faZG)S}}RGs~^>^;cs2^rZT?d$&^de-dxVvR`j!A-J_)NZEv-sZgb7* z)qknoZ>@2;?UGG<`qISc*Q#j`9?yL>C28iQ#6#-BDlB0RLab*36d4u-+G;S!UAy(B z=kmT(-S6{G$O#&JnN+H=@uTvl*@Y+kLUp%G&lfnBW$C7|$|ZH?g0Ci5j3cVHU3+Ti8zHZ} z+w{oXpO0DE?tKo+v-i)KI?uQ$)AHt}m)BY*xEvE(kiIN-2SaB|hWFq5ja%;89)D4! z<8qZ*QBG{3^B#te&mX6!?qu^#K05co#mk$`J;DVy%(}Ve@nTa}hod|^pPSihnHI#y mP2JM#`sZ#!?V~kH94`cd))(xop8B$E`u>owTZ6>^-vj{my8!wC literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GAUSS/cameras.htm b/doc/salome/gui/GAUSS/cameras.htm new file mode 100644 index 00000000..9f55bd5c --- /dev/null +++ b/doc/salome/gui/GAUSS/cameras.htm @@ -0,0 +1,236 @@ + + + + + +Cameras + + + + + + + + + + + +

Cameras

+ +

Salome provides a simple way to store and retrieve a + specific point of view corresponding to the scene really seen by user. + This behaviour will be kept without any change for the project.

+ +

 

+ +

This command is activated by right clicking with the mouse on the 3D + view. Then a popup menu is opened, and user can select the ‘Save + view parameters’.

+ +

 

+ +

The selection of this command creates a new child node in the Study + and is shown in the Study browser under the main entry ‘Post-Pro’ – i.e. + nodes are located at the same levels as MED files.

+ +

 

+ +

From these nodes, 4 options are accessible through another contextual + popup menu, as described in the following figure:

+ +

 

+ +

+ +

 

+ +

Fig. 37 : Popup menu from a ‘Camera’ item of the tree

+ +

 

+ + + +++ + + + + + + + + + + + + + + + + + + + + +
+

Command

+

Purpose

+

Restore view parameters

+

Apply the current settings of the view parameter to the current 3D view.

+

Save view parameters

+

Save current parameters of the 3D view to the current entry of the tree + (position, view point and focal distance).

+

Rename

+

Allows user to redefine the name of the element. A dialog is opened + to realize the input.

+

Delete

+

Remove the element from the study browser.

+ +

 

+ +

Persistence of ‘View parameters’ is ensured as a standard Salome behavior + and consists in storing/retrieving the corresponding SALOMEDS Study attribute.

+ +

 

+ +

Movement + of the camera between 2 positions

+ +

In certain situation, the movement of camera is slow and smooth to allow + user to understand the displacement. Situation concerned are:

+ +

 

+ + + +

 

+ +

The path between 2 positions will be interpolated by a number of steps + computed by the system according to an angular step defined in the preferences.

+ +

 

+ +

The interpolated movement takes care about initial and final positions + and orientations of the view point and the focal point.

+ +

 

+ +

+ +

 

+ +

Fig. 38 : Transformation between 2 cameras

+ +

 

+ +

Changing the view point to a predefined state

+ +

The user can also change the view point by any of the pre-defined icons + of the 3D view (top, down, front, back, left, right, axo):

+ +

 

+ +
    + +
  • The camera is smoothly + modified to the standard pre-defined + state of the corresponding pre-defined view (position, focus, focal + distance)

  • + +
  • The center of dynamic rotation of the view is + modified to the one corresponding to the pre-defined view

  • + +
  • In the case a point is selected, it remains selected

  • +
+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_activation.htm b/doc/salome/gui/GAUSS/command_activation.htm new file mode 100644 index 00000000..a0800633 --- /dev/null +++ b/doc/salome/gui/GAUSS/command_activation.htm @@ -0,0 +1,112 @@ + + + + + +Command Activation + + + + + + + + + + + +

Command Activation

+ +

The command is defined in the ‘File’ + menu of the VISU module:

+ +

Click File +  Import + from file    Displays + a selection file dialog box.

+ +

 

+ +

+ +

 

+ +

Fig. 1 : Opening a MED file in Salome

+ +

 

+ +

The dialog allows the user to browse the files hierarchy accessible + from his PC. When user found the file, he validates its choice by pressing + the ‘Open’ button.

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_activation_in_display_meshes.htm b/doc/salome/gui/GAUSS/command_activation_in_display_meshes.htm new file mode 100644 index 00000000..38d7269d --- /dev/null +++ b/doc/salome/gui/GAUSS/command_activation_in_display_meshes.htm @@ -0,0 +1,114 @@ + + + + + +Command Activation in Display Meshes + + + + + + + + + + + +

Activation of commands

+ +

The user has to select in the tree browser the mesh element + to display by a right-mouse button click. Items concerned by this command + are all sub-items of ‘Families’ + and ‘Groups’ entries.

+ +

 

+ +

Then, a contextual popup menu displays possible actions:

+ +

 

+ +
    + +
  • If the element has never been yet displayed, a + unique ‘Create PresentationÂ’ action + is proposed to load corresponding data from the MED file and to compute + the graphical presentation of the element. Element is then displayed in + the current default mode.

  • + +
  • If the element has already been loaded, then several + options are proposed. They are defined in the next paragraph.

  • +
+ +

 

+ +

These commands are also accessible from the menu bar and from the Representation toolbar and are applied + to the current selection of the tree.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_activation_picking.htm b/doc/salome/gui/GAUSS/command_activation_picking.htm new file mode 100644 index 00000000..36c242ad --- /dev/null +++ b/doc/salome/gui/GAUSS/command_activation_picking.htm @@ -0,0 +1,139 @@ + + + + + +Command Activation picking + + + + + + + + + + + +

Command activation

+ +

The activation of the command is possible from:

+ +

 

+ +
    + +
  • The menu bar: Picking + ► Gauss Point Info

  • + +
  • A + new icon from a new ‘Gauss PointÂ’ toolbarÂ’

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 46 : New Gauss Point + toolbar

+ +

 

+ +

This new toolbar will be connected to the main + 3D view only. The second icon will be explained in Segmentation.

+ +

 

+ +

Note:

+ +

The timestamp popup menu + will not provide this functionality since the picking, as defined for + Gauss points behaviour, is implemented as a View + attribute. Thus, picking will be enabled for all presentation displayed + in the 3D view.

+ +

 

+ +

The activation of the command is done by selection of the ‘Gauss + Point Info’ item from either the menu bar or the toolbar icon. + A check mark will be added on + the left side of the corresponding menu bar item to remind to user that + the option is active. In the case of the toolbar icon, the button remains + pressed when command is activated.

+ +

 

+ +

Reversibly, the deactivation of the command is done by another selection + of the command, which acts as a toggle option. The check mark will then + be erased from the menu item, and button from the toolbar will be released.

+ + + + diff --git a/doc/salome/gui/GAUSS/command_activation_segmentation.htm b/doc/salome/gui/GAUSS/command_activation_segmentation.htm new file mode 100644 index 00000000..444733ad --- /dev/null +++ b/doc/salome/gui/GAUSS/command_activation_segmentation.htm @@ -0,0 +1,174 @@ + + + + + +Command Activation Segmentation + + + + + + + + + + + +

Command Activation

+ +

The activation of the command is possible from:

+ +

 

+ + + +

 

+ +
    + +
  • The menu bar: Segmentation + ► Sphere Segmentation

  • + +
      + +
    • A new icon from the updated + ‘Gauss PointÂ’ toolbar

    • +
    +
+ +

 

+ +

Note:

+ +

As for picking command, + the timestamp popup menu will not provide this functionality since the + segmentation is also implemented as a View attribute. Thus, segmentation + will be enabled for all presentation displayed in the 3D view.

+ +

 

+ +

As for plane segmentation + command, the timestamp popup menu will not provide this functionality + since the segmentation is also implemented as a View attribute. Thus, + segmentation will be enabled for all presentation displayed in the 3D + view.

+ +

 

+ +

The activation of the command is done by selection of the ‘Box + Segmentation’ item from either the menu bar or the toolbar icon. + A check mark will be added on + the left side of the corresponding menu bar item to remind to user that + the option is active. In the case of the toolbar icon, the button remains + pressed when command is activated.

+ +

 

+ +

Reversibly, the deactivation of the command is done by another selection + of the command, which acts as a toggle option. The check mark will then + be erased from the menu item, and button from the toolbar will be released.

+ +

 

+ +

The activation of the command is done by selection of the ‘Sphere + Segmentation’ item from either the menu bar or the toolbar icon. + A check mark will be added on + the left side of the corresponding menu bar item to remind to user that + the option is active. In the case of the toolbar icon, the button remains + pressed when command is activated.

+ +

 

+ +

Reversibly, the deactivation of the command is done by another selection + of the command, which acts as a toggle option. The check mark will then + be erased from the menu item, and button from the toolbar will be released.

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_activation_timestamps_animation.htm b/doc/salome/gui/GAUSS/command_activation_timestamps_animation.htm new file mode 100644 index 00000000..d415fd30 --- /dev/null +++ b/doc/salome/gui/GAUSS/command_activation_timestamps_animation.htm @@ -0,0 +1,108 @@ + + + + + +Command activation timestamps animation + + + + + + + + + + + +

Command activation

+ +

The command can be activated from the study browser only:

+ +

 

+ +
    + +
  • Mouse right button click over a ‘FieldÂ’ + of the study tree browser

  • +
+ +

 

+ +

This opens a popup menu with only one option: ‘Animation’

+ +

 

+ +

+ +

 

+ +

Fig. 29 : ‘Animation’ popup menu

+ + + + diff --git a/doc/salome/gui/GAUSS/command_deactivation.htm b/doc/salome/gui/GAUSS/command_deactivation.htm new file mode 100644 index 00000000..417b38b0 --- /dev/null +++ b/doc/salome/gui/GAUSS/command_deactivation.htm @@ -0,0 +1,101 @@ + + + + + +Command deactivation + + + + + + + + + + + +

Command deactivation

+ +

When user exits the picking function (see Picking + command activation), the system performs the following tasks:

+ +

 

+ +
    + +
  • Erase the parent mesh element if displayed

  • + +
  • Erase the marker from the scalar bar (except the + case of Gauss point without result)

  • + +
  • Remove the information window

  • + +
  • Unselect the current selected Gauss point (if + any)

  • +
+ + + + diff --git a/doc/salome/gui/GAUSS/command_description_in_display_meshes.htm b/doc/salome/gui/GAUSS/command_description_in_display_meshes.htm new file mode 100644 index 00000000..0aaa8d3d --- /dev/null +++ b/doc/salome/gui/GAUSS/command_description_in_display_meshes.htm @@ -0,0 +1,283 @@ + + + + + +Command Description in Display Meshes + + + + + + + + + + + +

Description of commands

+ +

The popup + menu proposes two main lists of commands related to the display of the + meshes elements, in addition to a few other standards actions:

+ +

 

+ +

+ +

 

+ +

Fig. 3 : Families or Groups item Popup menu

+ +

 

+ + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Command

+

Purpose

+

Sub-commands of Representation + menu

+

Points

+

Display all nodes of the meshes elements

+

Wireframe

+

Display meshes elements (skin of the elements) by drawing lines on their + boundaries.

+
    + +
  • Quadrangular items are represented by 4 lines + (and not 2 triangles)

  • + +
  • Quadratic elements are displayed like linear ones + (i.e.: boundaries) as a standard display.

  • +
+

+

Remark: + in the frames of this project, only Standard + display will be implemented.

+

Surface

+

Shaded display of the skin of the elements

+

Insideframe

+

Same as Wireframe, + but extended to all elements (inside included)

+

Surfaceframe

+

Equivalent to Surface + Wireframe + display mode.

+

Shrink

+

Explode elements to distinguish their boundaries from each other (homothetic + transformation). This mode can be activated either for Wireframe or Surface + display mode.

+

Unshrink

+

Cancels Shrink toggle option

+

Sub-commands of Properties menu

+

Color

+

Or both:

+

   Cell + Color

+

   Edge + Color

+

in the case of ‘Surfaceframe’ presentation

+

Allows user to define the color property of the elements through a standard + dialog:

+

+

 

+

Color is applied once user has pressed the OK + button.

+

Opacity

+

Allows user to define the transparency property of the elements. The + existing functionality allows to define a new value from a dialog and + to apply it by pressing the OK + button.

+

This behaviour will be changed + to a modeless dialog, as it is already implemented in the SMESH module, + so that the application of the transparency will be done in real time + (using a slider).

+

+

 

+

To exit the dialog, user has to press the Close + button (the current choice will be kept).

+

Line width

+

Allows user to define the line width property of the elements through + a standard dialog.

+

Values can be set from 1 to 10 units.

+

 

+

+

 

+

Property is applied once user has pressed the OK + button.

+

Note: this option affects only wireframe-based presentation.

+

Other commands

+

Rename

+

Allows user to redefine the name of the element. A dialog is opened + to realize the input.

+

Erase

+

Erase the elements from the 3D view.

+

Display Only

+

Clear the 3D view and display the element alone.

+

Delete

+

Erase the elements from the 3D view and remove it from the study browser.

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_description_segmentation.htm b/doc/salome/gui/GAUSS/command_description_segmentation.htm new file mode 100644 index 00000000..5eb50285 --- /dev/null +++ b/doc/salome/gui/GAUSS/command_description_segmentation.htm @@ -0,0 +1,529 @@ + + + + + +Command description segmentation + + + + + + + + + + + + +

Command description

+ +

Box Segmentation

+ +

Once the command is activated, a new window, below + the main 3D view and docked + within the desktop is created to display the content of the segmentation + cursor.

+ +

 

+ +

A dialog box (see Fig. + 52 : Segmentation configuration dialog) is also displayed to manually + configure the segmentation cursor parameters.

+ +

 

+ +

As an example of the expected results, the next picture shows the 2 + views of the PERFECT viewer:

+ +

 

+ +

+ +

 

+ +

Fig. 51 : PERFECT viewer segmentation

+ +

 

+ +

Sphere Segmentation

+ +

 

+ +

As for plane segmentation, once the command + is activated, a new window, below the + main 3D view and docked + within the desktop is created to display the content of the segmentation + cursor.

+ +

 

+ +

A dialog + box (see Fig. + 54 : Sphere Segmentation configuration dialog) is also displayed to + manually configure the segmentation cursor parameters.

+ +

 

+ +

 

+ +
    + +
  • The main view (top) shows the results at Gauss + points with its scalar bars as described in the previous chapter. In addition, + a semi-transparent segmentation cursor + – in the form of a box with an axis to define its orientation – is added + to define the part of the variables to be inspected. Two + different presentations for Gauss points are used, depending on + location of points: inside or outside the segmentation cursor. Inside + points uses the normal presentation for Gauss points as defined in Fig. + 10 : Results at Gauss points primitive configuration dialog. Outside + points presentation is to be defined in the segmentation configuration + dialog.

  • +
+ +

 

+ +
    + +
  • The second view (bottom) – also called segmentation + viewer – shows, in real time, the results at Gauss points only (no meshes + elements) that are located inside + the segmentation cursor. Gauss points are displayed with the same + presentation as the one used for points + inside the cursor of the first view. This view is automatically + updated when the cursor is changed in the first view.

  • +
+ +

 

+ +

 

+ +

Picking capabilities

+ +

The picking functionality, as defined in Picking, + is available in both views. The picked point is also highlighted by the + 3D cursor in both views simultaneously. The semi-transparent information + window is displayed in the view used for the picking.

+ +

 

+ +

In the case a picked point (from the first view) is not visible in the + second view – i.e.: the point is not contained within the segmentation + cursor – only the picking cursor is displayed in the second view till + the selection is cancelled.

+ +

 

+ +

 

+ +

Edition of the box segmentation cursor

+ +

A dialog with 2 tabs is opened when the function is activated. When + user exits this dialog, the function is ended and the second view (segmentation + cursor viewer) is erased.

+ +

 

+ +

The following dialog + describes configuration of the segmentation cursor:

+ +

 

+ +

+ +

 

+ +

Fig. 52 : Segmentation configuration dialog

+ +

 

+ +

This dialog defines the coordinates of the origin of the segmentation + cursor, in addition to its direction and depth.

+ +

 

+ +

Parameters are explained as follows:

+ +

 

+ +

+ +

 

+ +

Fig. 53 : Understanding segmentation cursor parameters

+ +

 

+ +

It is also possible to graphically edit + these parameters directly from the first 3D view with the mouse:

+ +

 

+ +
    + +
  • Translation (dragging) of the lower plane along + the V axis changes the origin of the cursor

  • + +
  • Rotating the V axis around its origin defines + a new direction for the cursor

  • + +
  • Dragging the second plane (upper one) along its + axis changes the depth of the cursor. It is not possible to move this + second plane under the first one (minimum depth is set to 0).

  • +
+ +

 

+ +

The dialog is automatically updated.

+ +

 

+ +

 

+ +

Edition of the segmentation cursor

+ +

 

+ +

A dialog with 2 tabs is opened when the function is activated. When + user exits this dialog, the function is ended and the second view (segmentation + cursor viewer) is erased.

+ +

 

+ +

The following + dialog describes configuration of the segmentation cursor:

+ +

 

+ +

+ +

 

+ +

Fig. 54 : Sphere Segmentation configuration dialog

+ +

 

+ +

This dialog defines the coordinates of + the origin of the segmentation cursor, in addition to its radius.

+ +

 

+ +
    + +
  • Origin + defines the coordinates of the origin of the segmentation cursor. Default is set to the CAD origin.

  • +
+ +

 

+ +
    + +
  • Radius + corresponds to the radius of the sphere. Default + is set to 5% of the diagonal of the bounding box for the scene + (i.e.: diameter is then equal to 10% of the diagonal).

  • +
+ +

 

+ +
    + +
  • +/- + Ratio corresponds to the number by which the radius will be respectively + multiplied or divided at edition. Default + is set to 2 mm.

  • +
+ +

 

+ +

Keyboard: + During rendering the scene, it is possible to modify the radius + (multiply/divide by the radius ratio) by using ‘D’, + ‘d’ keys of the keyboard when + the 3D view is active. The effect is immediately applied. The value of + the ratio is only defined through the dialog box.

+ +

 

+ +

Parameters are explained as follows:

+ +

 

+ +

+ +

 

+ +

Fig. 55 : Understanding segmentation cursor parameters

+ +

 

+ +

It is also possible to graphically edit these parameters directly from + the first 3D view with the mouse:

+ +

 

+ +
    + +
  • Translation (dragging) of the sphere by moving + the centre (glyph) of the sphere

  • + +
  • Change the radius my moving the boundary glyph + on the top of the sphere (minimum radius is set to 0)

  • +
+ +

 

+ +

The dialog is automatically updated accordingly.

+ +

 

+ +

 

+ +

The second tab provides the user with + the ability to change both presentations of Gauss points inside and outside + the segmentation cursor within the same dialog. This is applicable for + all segmentation cursors (plane & sphere).

+ +

Therefore, + dialogs are made of two parts:

+ +

 

+ +
    + +
  • First + part defines primitives inside the cursor

  • + +
  • Second + part defines primitives outside the cursor

  • +
+ +

 

+ +

Note:

+ +

the next dialogs only + described the content of primitive parameterisation inside the cursor, + intended that all the three primitives are also applicable outside the + cursor.

+ +

 

+ +

Primitive presentation definition for + Gauss points and in the case of a segmentation are defined by the following + dialogs:

+ +

 

+ +

+ +

 

+ +

Fig. 56 : Segmentation Gauss points primitive – Point + sprite parameters

+ +

 

+ +

+ +

 

+ +

Fig. 57 : Segmentation Gauss points primitive – OpenGL + parameters

+ +

 

+ +

+ +

 

+ +

Fig. 58 : Segmentation Gauss points primitive – Geometrical + sphere parameters

+ +

 

+ +

 

+ +

The first part of the dialog is the same as for Fig. + 10 : Results at Gauss points primitive configuration dialog.

+ +

 

+ +
    + +
  • Size: defines the size of Gauss points located + outside the segmentation cursor. It is a percentage of the normal size + of Gauss points defined in Fig. + 10 : Results at Gauss points primitive configuration dialog.

  • + +
  • Color: define the unique color used for Gauss + points located outside the segmentation cursor. It is a button control. + When user press it, he can choose a color from a standard color configuration + dialog:

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 59 : Standard color dialog

+ +

 

+ +

Predefined view for the segmentation 3D view

+ +

A new toolbar is defined for the second view only (segmentation viewer) + to define certain pre-defined point of view:

+ +

 

+ +

+ +

 

+ +

Fig. 60 : New toolbar for the segmentation viewer 3D view

+ +

 

+ +

From left to right, the predefined points of view are:

+ +

 

+ +
    + +
  • Front

  • + +
  • Back

  • + +
  • Top

  • + +
  • Bottom

  • + +
  • Left

  • + +
  • Right

  • + +
  • Cursor (front)

  • + +
  • Cursor (back)

  • +
+ +

 

+ +

This toolbar is docked to the frame of the second view.

+ +

 

+ +

Note:

+ +

The possibility to adjust + in real time the segmentation viewer to the segmentation cursor can be + proposed as a future improvement of this functionality, but is out of + the scope of this project.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_description_timestamps_animation.htm b/doc/salome/gui/GAUSS/command_description_timestamps_animation.htm new file mode 100644 index 00000000..215d21ec --- /dev/null +++ b/doc/salome/gui/GAUSS/command_description_timestamps_animation.htm @@ -0,0 +1,172 @@ + + + + + +Command description timestamps animation + + + + + + + + + + + +

Command description

+ +

Selection of the ‘Animation’ + popup menu opens the following modeless dialog:

+ +

 

+ +

+ +

 

+ +

Fig. 30 : ‘Animation’ dialog

+ +

 

+ +
    + +
  • Setup Animation + opens another dialog to define presentation to animate. It is described + later on in this chapter

  • +
+ +

 

+ +
    + +
  • Generate frames + button computes all presentation on selected timestamps (see Setup Animation). + Presentations are kept in memory.

  • +
+ +

 

+ +
    + +
  • The other buttons acts as a record player (to + play, move forward, move backward, and so on), define speed for animation + and save a bitmap file for each timestamp on disk.

  • +
+ +

 

+ +

‘Close’ button stops the on + going animation, clear memory and exits the animation mode.

+ +

To go on the explanation, ‘Setup Animation’ + button open the next dialog:

+ +

 

+ +

+ +

 

+ +

Fig. 31 : ‘Setup Animation’ dialog

+ +

 

+ +
    + +
  • Use range of timestamps allows user to define + a range for timestamps to consider. If not checked, all available timestamps + of the variable are considered

  • +
+ +

 

+ +
    + +
  • Field shows the list of fields available

  • +
+ +

 

+ +
    + +
  • Properties area is defined by two buttons. The + first one allows user to select the presentation mode he want to see during + the animation. The second one launches the configuration dialogs corresponding + to the selected presentation (already described in GUI specs of LOT 1 + and LOT 3).

  • +
+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/command_result.htm b/doc/salome/gui/GAUSS/command_result.htm new file mode 100644 index 00000000..93c7c89a --- /dev/null +++ b/doc/salome/gui/GAUSS/command_result.htm @@ -0,0 +1,115 @@ + + + + + +Command Result + + + + + + + + + + + +

Command Result

+ +

The validation of the command starts the process of loading + data (see 'Loading MED files‘).

+ +

 

+ +

The browser, corresponding to the current study, is updated by the logical structure of the loaded MED + file in the form of a hierarchical tree.

+ +

 

+ +

The navigation within the tree is made possible by pressing either [+] to expand or [-] + to collapse a node. Node names correspond to names associated to entities + from the MED file.

+ +

 

+ +

+ +

 

+ +

Fig. 2 : Study browser populated by data loaded from MED + file

+ +

 

+ +

The 3D viewer is still not updated at this time (i.e.: nothing is yet + displayed in the 3D viewer).

+ + + + diff --git a/doc/salome/gui/GAUSS/cshdat_robohelp.htm b/doc/salome/gui/GAUSS/cshdat_robohelp.htm new file mode 100644 index 00000000..0867a68f --- /dev/null +++ b/doc/salome/gui/GAUSS/cshdat_robohelp.htm @@ -0,0 +1,258 @@ + + +Gauss Points Viewer + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/cshdat_webhelp.htm b/doc/salome/gui/GAUSS/cshdat_webhelp.htm new file mode 100644 index 00000000..ac72b5e2 --- /dev/null +++ b/doc/salome/gui/GAUSS/cshdat_webhelp.htm @@ -0,0 +1,251 @@ + + +Gauss Points Viewer + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/default.css b/doc/salome/gui/GAUSS/default.css new file mode 100644 index 00000000..321e4fcf --- /dev/null +++ b/doc/salome/gui/GAUSS/default.css @@ -0,0 +1,76 @@ +BODY { + font-family:Arial; + background-color:#ffffff; } +H1 { + font-weight:bold; + font-size:24.0pt; } +LI.kadov-H1 { + font-weight:bold; + font-size:24.0pt; } +H2 { + font-weight:bold; + font-size:18.0pt; } +LI.kadov-H2 { + font-weight:bold; + font-size:18.0pt; } +H3 { + font-weight:bold; + font-size:14.0pt; } +LI.kadov-H3 { + font-weight:bold; + font-size:14.0pt; } +H4 { + font-weight:bold; + font-size:12.0pt; } +LI.kadov-H4 { + font-weight:bold; + font-size:12.0pt; } +H5 { + font-weight:bold; + font-size:10.0pt; } +LI.kadov-H5 { + font-weight:bold; + font-size:10.0pt; } +H6 { + font-weight:bold; + font-size:8.0pt; } +LI.kadov-H6 { + font-weight:bold; + font-size:8.0pt; } +P { + font-size:12.0pt; + margin-top:0pt; + margin-bottom:0pt; } +LI.kadov-P { + font-size:12.0pt; + margin-top:0pt; + margin-bottom:0pt; } +A.expandspot { + color:#008000; + cursor:hand; + font-style:italic; + text-decoration:none; } +SPAN.expandtext { + font-style:italic; + font-weight:normal; + color:#ff0000; } +A.dropspot { + cursor:hand; + color:#008000; + font-style:italic; + text-decoration:none; } +A.glossterm { + color:#800000; + cursor:hand; + font-style:italic; + text-decoration:none; } +SPAN.glosstext { + font-style:italic; + font-weight:normal; + color:#0000ff; } +OL { + margin-top:0px; + margin-bottom:0px; } +UL { + margin-top:0px; + margin-bottom:0px; } diff --git a/doc/salome/gui/GAUSS/default_ns.css b/doc/salome/gui/GAUSS/default_ns.css new file mode 100644 index 00000000..dbda41ef --- /dev/null +++ b/doc/salome/gui/GAUSS/default_ns.css @@ -0,0 +1,93 @@ +BODY { + font-family:Arial; + background-color:#ffffff; } +H1 { + font-weight:bold; + font-size:24.0pt; + font-family:Arial; } +LI.kadov-H1 { + font-weight:bold; + font-size:24.0pt; } +H2 { + font-weight:bold; + font-size:18.0pt; + font-family:Arial; } +LI.kadov-H2 { + font-weight:bold; + font-size:18.0pt; } +H3 { + font-weight:bold; + font-size:14.0pt; + font-family:Arial; } +LI.kadov-H3 { + font-weight:bold; + font-size:14.0pt; } +H4 { + font-weight:bold; + font-size:12.0pt; + font-family:Arial; } +LI.kadov-H4 { + font-weight:bold; + font-size:12.0pt; } +H5 { + font-weight:bold; + font-size:10.0pt; + font-family:Arial; } +LI.kadov-H5 { + font-weight:bold; + font-size:10.0pt; } +H6 { + font-weight:bold; + font-size:8.0pt; + font-family:Arial; } +LI.kadov-H6 { + font-weight:bold; + font-size:8.0pt; } +P { + font-size:12.0pt; + margin-top:1pt; + margin-bottom:1pt; + font-family:Arial; } +LI.kadov-P { + font-size:12.0pt; + margin-top:0pt; + margin-bottom:0pt; } +A.expandspot { + color:#008000; + cursor:hand; + font-style:italic; + text-decoration:none; } +SPAN.expandtext { + font-style:italic; + font-weight:normal; + color:#ff0000; } +A.dropspot { + cursor:hand; + color:#008000; + font-style:italic; + text-decoration:none; } +A.glossterm { + color:#800000; + cursor:hand; + font-style:italic; + text-decoration:none; } +SPAN.glosstext { + font-style:italic; + font-weight:normal; + color:#0000ff; } +OL { + margin-top:0px; + margin-bottom:0px; + font-family:Arial; } +UL { + margin-top:0px; + margin-bottom:0px; + font-family:Arial; } +ol ol { + margin-top:1px; } +ol ul { + margin-top:1px; } +ul ul { + margin-top:1px; } +ul ol { + margin-top:1px; } diff --git a/doc/salome/gui/GAUSS/description_of_commands_display_results.htm b/doc/salome/gui/GAUSS/description_of_commands_display_results.htm new file mode 100644 index 00000000..038a88ff --- /dev/null +++ b/doc/salome/gui/GAUSS/description_of_commands_display_results.htm @@ -0,0 +1,952 @@ + + + + + +Description of commands display results + + + + + + + + + + + + +

Description of commands

+ +

Results at Gauss Points

+ +

 

+ +

This mode corresponds to a new development that will be performed in + the frame of this project.

+ +

 

+ +

Values are displayed at Gauss points as point sprites in the 3D view.

+ +

 

+ +
    + +
  • Point sprites are processed using 2 textures (16x16 + pixels):

  • +
+ +

 

+ +
+ + +++ + + + + + + + + +
+

Texture for intensity (brightness)  

+

+

Texture for alpha channel (transparency)  

+

+
+

 

+ +
    + +
  • Color and size of the points depend on the value + of the results (scalar, modulus of vectors or each component of a vector, + tensor or matrix)

  • + +
  • The default sizes to use for point sprites presentation + will be computed by the system. (therefore, these parameters cannot be + defined in the preferences). Nevertheless, the minimum and maximum range + values for the rendering will be parameterized in the configuration dialog.

  • + +
  • The maximum size of the point sprite is limited + (clamp) so that when user applies a high zoom factor, the whole scene + remains visible

  • + +
  • A point sprite is displayed in a 3D environment + so that its size is depending on location within the 3D scene. At a given + computed size, a point sprite will be bigger when it is near from the + camera, than when it is far from the camera.

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 8 : Point sprite display mode

+ +

 

+ +

Two different scalar bars are displayed simultaneously:

+ +

 

+ +
    + +
  • The first scale – global + – corresponds to the minimum and maximum values founded for the variable + at all time stamps (located on + the left side). When active, the second is greyed and disabled (not used).

  • + +
  • The second scale – local + – defines the minimum and maximum values at the current + time stamp for the variable (located on the right side). When active, + the first one shows the limits of the second one by 2 black lines.

  • + +
  • Possibility to display only one bar (defined in + the preferences). In this case it is the local one.

  • +
+ +

 

+ +
    + +
  • Two modes are defined for these scalar bars:

  • + +
      + +
    • Palette of colours (rainbow scale)

    • + +
    • 2 colors (bicolor scale)

    • +
    +
+ +

 

+ +
    + +
  • Only one is active at a time. It uses all the + available colors.

  • +
+ +

 

+ + + +++++ + + + + + + + + + + + + + + + + + + +
+

Mode

+

2 bars / + active = global bar

+

2 bars / active = local bar

+

1 active bar = local bar

+

Palette

+

+

+

+

Bicolor

+

red > 0

+

blue < 0

+

+

+

+ +

 

+ +

Fig. 9 : Scalar bars for results at Gauss point

+ +

 

+ +

The necessity to display simultaneously 2 synchronized scalars bars + requires defining a new dialog for the configuration.

+ +

 

+ +

Besides, a dedicated dialog is also defined to customize the point sprite + behaviour. Thus, when user activates the command, he is prompted by a + dialog with 2 tabs. They are defined as follows:

+ +

+ +

+ +

 

+ +

Fig. 10 : Results at Gauss points primitive configuration + dialog

+ +

 

+ +
    + +
  • Primitives + allows user to choose the graphic primitive to use to display results + at Gauss points. As a first step, the ‘point + spriteÂ’ only will be used (LOT 1). Other primitives will be discussed + later on at LOT 3, and are suggested here for information purpose only.

  • +
+ +

 

+ +

When user activates the Results at Gauss + points function, the dialog of the ‘Primitive’ tab is moved to an auto-adaptable + dialog which content depends on the selected primitive. Three different + primitives are available and defined as follows:

+ +

 

+ +

+ +

 

+ +

Fig. 11 : Results at Gauss points – Point sprite primitive + configuration dialog

+ +

 

+ +
    + +
  • Point sprite parameters remain unchanged + regarding the definition given in LOT 1 specification.

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 12 : Results at Gauss points – OpenGL primitive configuration + dialog

+ +

 

+ +
    + +
  • OpenGL + point is a new mode to display results as simple OpenGL points. The Clamp parameter defines the maximum + size of the OpenGL point as it is defined for the Point sprite option.

  • +
+ +

 

+ +

 

+ +

+ +

 

+ +

Fig. 13 : OpenGL points presentations

+ +

 

+ +

+ +

 

+ +

Fig. 14 : Results at Gauss points – Geometrical sphere + primitive configuration dialog

+ +

 

+ +
    + +
  • Geometrical + Sphere is the second new mode that displays results using a standard + sphere with a number of faces to be defined thought a Resolution + parameter. Default Resolution is set + to 8. This number corresponds to the Latitude and Longitude definitions + of VTK sphere. The Number of Faces + parameter – not editable – is computed by the system ( NbrFaces = 2*Resolution + x  [Resolution-2] + ) and displayed for information purpose to end-user.

  • +
+ +

 

+ +

    

+ +

 

+ +

Fig. 15 : Sphere presentations (resp. with resolution + 8 and 6)

+ +

 

+ +

        Note:

+ +

In the case the number + of faces (equal to the total number of points in the scene when no segmentation + cursor is used or number of points within the cursor when a segmentation + is in progress, multiplied by the number of faces of one Sphere in the + current resolution) to display is greater than the number defined in the + “Notify when number of faces exceeds:” parameter, then user is prompted + by a dialog to continue or to cancel the display operation.

+ +

 

+ +

+ +

 

+ +

Fig. 16 : Notification message for existing and not modified + VISU presentation

+ +

 

+ +
    + +
  • Size block remains unchanged + as well.

  • +
+ +

 

+ +

For both of these new modes – OpenGL points + and Sphere – the computation of size and the definition of colors + applied to points are done in the same way as for point sprite.

+ +

 

+ +
    + +
  • The Maximum Size + (Clamp) value corresponds to the maximum size that can have a point + sprite during rendering whatever is the magnification of the point or + the zoom of the view. Technically, it corresponds to setting up a clamp + in the vertex shader. The unit is the pixel, and minimum value is defined + to 1, maximum value can be either set to 512 pixels or read from the hardware + by using OpenGL extension functions. + Default value is set to 256 pixels.

  • + +
  • Textures + allows user to define the 2 textures (16x16 pixels) used for point sprite + rendering. The main defines the shape of the point sprite, the alpha channel + one defines the transparency filter by the threshold parameter (default is 0.1). The buttons at the + end of each ‘edit-boxÂ’ control open a standard open file dialog to look + for a texture within the directory structure of the disk:

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 17 : Open file dialog to load a texture

+ +

 

+ +
    + +
  • Range for min/max + defines 2 values that will be respectively multiplied by a reference + length (representative of the average size of cells of the mesh) + to define the range for minimum and maximum size of a point during rendering + (at magnification = 100%). Default values are:

  • +
+ +

 

+ +
    + +
      + +
    • Rainbow + scale: min = 10%, max + = 33%

    • + +
        + +
      • Min size will + be associated to the smallest real value (included negative values) of + a result.

      • + +
      • Max size will + be associated to the largest real values of results

      • +
      + +
    • Bicolor + scale: min = 0 (not editable), + max = 33%

    • + +
        + +
      • Null size + will be associated to the 0 scalar value of a result.

      • + +
      • Max size will + be associated to the largest absolute values of results

      • +
      +
    +
+ +

 

+ +

Both values are dynamically + updated by the system according to the selected scalar bar (see Fig. + 18: Scalar bar configuration). In the case of a bicolor scale, the + minimum value is set to 0 in the dialog and the control is disabled.

+ +
    + +
  • Magnification + (%) corresponds to the change of the size in 2D of a result + at Gauss point primitive or Gauss + point primitives (not applicable on other existing presentations). + Acceptable values are in the range ]0;N[. 100% means no magnification, + 50% means half of its size, 200% mean twice its size and so forth. Default is set to 100%.

  • + +
  • +/- Ratio + corresponds to the number by which the magnification will be respectively + multiplied or divided at edition. Minimum value is defined to 0.01, maximum + is defined to 10. Default is set to 2.

  • +
+ +

 

+ +

Keyboard:

+ +

During rendering the scene, it is possible to modify the magnification + (multiply/divide by the magnification ratio) by using ‘M’, + ‘m’ keys of the keyboard when + the 3D view is active. The effect is immediately applied. The ratio is + only defined through the dialog box.

+ +

 

+ +

Spacemouse:

+ +

The dynamic modification of the magnification is also possible using + 2 buttons of the Spacemouse Plus + (see Navigation + using the spacemouse).

+ +

+ +

+ +

 

+ +

Fig. 18 : Scalar bar configuration

+ +

 

+ +

This last dialog allows user to define the characteristics of the scalar + bars to display within the scene.

+ +

 

+ +
    + +
  • Active bar section

  • + +
      + +
    • Local: + when selected, the local bar will be active. Colors used for rendering + the results are taken from this bar. If displayed, global bar will be + greyed and 2 markers will define the limits of the local min/max.

    • + +
    • Global: + when selected, the global bar will be active. Colors for results are taken + in this bar (i.e.: not all colors may be used to display results at a + given time stamp). Local bar is greyed and inactive.

    • + +
    • Displayed: + when checked, the global bar is displayed, else it is not seen. This control + is systematically checked and disabled when the global bar is defined + as active.

    • +
    +
+ +

 

+ +
    + +
  • Scalar range

  • + +
      + +
    • Scalar Mode: + this feature is the same as for standard scalar bar. It allows refining + the value to be inspected:

    • + +
        + +
      • Modulus: value of a scalar or modulus + of a vector

      • + +
      • Component N: Nth component of a vector, + a tensor or a matrix

      • +
      +
    +
+ +

 

+ +
    + +
  • Colors and labels

  • + +
      + +
    • Bicolor: + 2 colors will be used for the active bar:

    • + +
        + +
      • Red for positive values

      • + +
      • Blue for negative values

      • +
      +
    +
+ +

These colors also correspond to colors associated + to min/max values of the palette option.

+ +
    + +
      + +
    •  Rainbow: + A palette of several colors will be used to render the results. A regular + and linear progression is considered from min to max.

    • + +
    • Nb. of colors: + defines the number of color to design the palette (up to 256 colors can + be used).

    • + +
    • Nb. of labels: + defines the number of labels to be written in the bar as text markers.

    • +
    +
+ +

 

+ +
    + +
  • Orientation

  • + +
      + +
    • Vertical: + bar will be vertical

    • + +
    • Horizontal: + bar will be horizontal

    • +
    +
+ +

 

+ +
    + +
  • Origin

  • + +
      + +
    • X: + abscissa of the origin of the bar (from the left side)

    • + +
    • Y: + ordinate of the origin of the bar (from the bottom)

    • +
    +
+ +

 

+ +
    + +
  • Dimension

  • + +
      + +
    • Width: + width of the each bar

    • + +
    • Height: + height of each bar

    • + +
    • Spacing: + space between both bar (only if the 2 bars are to be displayed)

    • +
    +
+ +
    + +
  •  
  • +
+ +

 

+ +
    + +
  • Text properties + button: correspond to the standard feature to define the font and text + associated to the active bar

  • +
+ +

 

+ +

Finally, to exit the dialog and apply choices, press the OK + button, else CANCEL button, to + quit.

+ +

 

+ +

 

+ +

 

+ +

Gauss + Points – Geometry (new presentation)

+ +

 

+ +

This mode corresponds to a new development + that will be performed in the frame of this project. It is very similar + to the presentation of Results as Gauss points (discussed in the previous + paragraph), so only differences are presented here.

+ +

 

+ +

Roughly, the differences between this presentation and the one for results + at Gauss points are:

+ +

 

+ +
    + +
  • Size of points and color are fixed (because there + is no result)

  • + +
  • There are no scalar bars

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 19 : Point sprite display mode (no results case)

+ +

 

+ +

Besides, a dedicated dialog is also defined to customize the point sprite + behaviour. Thus, when user activates the command, he is prompted by a + dialog box defined as follow:

+ +

 

+ +

+ +

 

+ +

Fig. 20 : Gauss points (Geometry) – Point sprite primitive + configuration dialog

+ +

 

+ +

+ +

 

+ +

Fig. 21 : Gauss points (Geometry) – OpenGL primitive configuration + dialog

+ +

 

+ +

+ +

 

+ +

Fig. 22 : Gauss points (Geometry) – Geometrical Sphere + primitive configuration dialog

+ +

 

+ +

 

+ +

The first part of the dialog is the same as for Fig. + 10 : Results at Gauss points primitive configuration dialog.

+ +

 

+ +
    + +
  • Size defines + a value that will be multiplied by a reference length (representative + of the average size of cells of the mesh) to define the size of points + during rendering (at magnification = 100%). Default + values 10%.

  • + +
  • Magnification + and Ratio have the same meaning + as for Results at Gauss points presentation.

  • + +
  • Color: + define the unique color for Gauss. It is a button control. When user press + it, he can choose a color from a standard color configuration dialog:

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 23 : Standard color dialog

+ +

 

+ +

 

+ +

Display of a deformed shape

+ +

 

+ +

Once the option is activated, user is prompted + by a dialog made of two tabs. First tab defined the following dialog to + set-up the presentation at Gauss points and scale factor:

+ +

 

+ +

+ +

 

+ +

Fig. 24 : Deformed Shape dialog – Point sprite primitive

+ +

 

+ +
    + +
  • Scale + Factor is a ratio that is applied to the deformation at each Gauss + points to amplify it for user understanding

  • +
+ +

 

+ +
    + +
  • All other parameters + have already been explained. Content is modified depending on chosen Primitive.

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 25 : Deformed Shape dialog – OpenGL primitive

+ +

 

+ +

+ +

 

+ +

Fig. 26 : Deformed Shape dialog – Geometrical Sphere primitive

+ +

 

+ +

The second tab of the dialog allows the user + to set-up scalar bars in the same way as for Display Results at Gauss + points presentation.

+ +

 

+ +

When user validates the dialog by pressing + the ‘OK’ button, the 3D view is + updated to display the Gauss points, using the selected primitive form, + at their new location.

+ +

 

+ +

In this display mode, the + mesh is never displayed.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/description_of_the_picking_functionality.htm b/doc/salome/gui/GAUSS/description_of_the_picking_functionality.htm new file mode 100644 index 00000000..37072e5c --- /dev/null +++ b/doc/salome/gui/GAUSS/description_of_the_picking_functionality.htm @@ -0,0 +1,234 @@ + + + + + +Description of the picking functionality + + + + + + + + + + + +

Description of the picking functionality

+ +

In default mode, moving the mouse over the results at + Gauss points presentation produces the display of a specific + 3D cursor on each detected + Gauss points. Then, user has the possibility to select the detected item + to analyse it.

+ +

 

+ +

The specific cursor used for both modes, detection (pre-highlight) and + selection (highlight), is defined by a six-pyramids 3D graphic primitive + centred on the Gauss points. For more convenience, detection and selection + mode have different colors (same as Salome VISU) and cursor is displayed + in reverse-video.

+ +

 

+ +

+ +

 

+ +

Fig. 47 : Cursor for detection and selection of a result + at Gauss point

+ +

 

+ +

Selection of a point

+ +

There are two to way to select the current detected point:

+ +

Mouse: + A left-mouse button click on the detected point

+ +

Keyboard: +  Â‘SÂ’ (or ‘sÂ’) + key of the keyboard when the 3D view is active

+ +

 

+ +

Note:

+ +

Only one point can be + selected at a time. Thus, selection of another point automatically unselects + the possibly selected one.

+ +

 

+ +

Modification of the camera after picking + of a point

+ +

Two situations occur:

+ +

 

+ +

i) No point is yet selected (>> first selection)

+ +
    + +
  • The camera is smoothly moved, as defined in Movement + of the camera between 2 positions, in such a way that the centre of + the 3D view becomes the selected point (focus + is set to this point) and focal distance + is adapted to increase the zoom (x 1.5).

  • + +
  • The center of + dynamic rotations of the view is modified to the selected point

  • +
+ +

 

+ +

ii) A point is already selected (>> Nth + selection)

+ +
    + +
  • The camera is smoothly moved, as defined in Movement + of the camera between 2 positions, in such a way that the centre of + the 3D view becomes the selected point (focus + is set to this point). The focal distance + is not changed.

  • + +
  • The center of + dynamic rotations of the view is modified to the selected point

  • +
+ +

 

+ +

 

+ +

Display information

+ +

Once a point is selected, a semi-transparent window is displayed next + to the selected point and shows the following information:

+ +

 

+ +
    + +
  • The ID of the point within its parent mesh element

  • + +
  • Coordinates of the Gauss point

  • + +
  • In the case of a result at Gauss point: Scalar + value being inspected + all components individually

  • + +
  • Name of its parent mesh element

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 48 : Sample of semi-transparent window

+ +

 

+ +

In addition, the active scalar bar is updated to highlight the corresponding + value of the selected scalar value by a black line (not applicable for + a Gauss point without result).

+ +

 

+ +

Display parent mesh element

+ +

Once a point is selected, it is possible to display/erase + the parent mesh element in wireframe by using one of the following toggle + options:

+ +

 

+ +

Mouse: + Popup menu on the selected point: ‘Display + Parent mesh element’ (a check + mark on the left of the item informs if the parent is displayed + or not)

+ +

Keyboard: + ‘P’ (or ‘p’) + key of the keyboard when the 3D view is active (toggle option)

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/display_meshes_general.htm b/doc/salome/gui/GAUSS/display_meshes_general.htm new file mode 100644 index 00000000..a09de98b --- /dev/null +++ b/doc/salome/gui/GAUSS/display_meshes_general.htm @@ -0,0 +1,92 @@ + + + + + +Display Meshes General + + + + + + + + + + + +

General

+ +

This functionality allows the user to display in the + 3D view the loaded meshes entities.

+ +

 

+ +

There are several standard ways in Salome to display meshes and to modify + corresponding properties. Commands are accessible from the menu bar, contextual + popup menus and a toolbar. All these resources are defined and embedded + within VISU module.

+ + + + diff --git a/doc/salome/gui/GAUSS/display_results_at_gauss_points_general.htm b/doc/salome/gui/GAUSS/display_results_at_gauss_points_general.htm new file mode 100644 index 00000000..ef79772d --- /dev/null +++ b/doc/salome/gui/GAUSS/display_results_at_gauss_points_general.htm @@ -0,0 +1,111 @@ + + + + + +Display results at Gauss Points_General + + + + + + + + + + + +

General

+ +

The current functionality of SALOME allows user to display + in the 3D view the results of a calculation when known for each element + or each nodes. The capability to consider results at Gauss Points is a + new behaviour of this project.

+ +

 

+ +

Note:

+ +

The current existing + presentations for results on nodes of elements or on elements – in VISU + – will not be modified in this project. These modes are briefly presented + in this specification + for information purpose. Reversibly, presentation of results at + Gauss Points corresponds to a new functionality that will be added to + the VISU module. This + new display mode will be the only way to visualize results at Gauss points. + The GUI of this new presentation will be fully defined in the next paragraphs.

+ +

 

+ +

The process to access these commands is similar to the one defined for + displaying meshes elements. That is: menu bar, contextual popup menu and + toolbar. They are described here after.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/ehelp.xml b/doc/salome/gui/GAUSS/ehelp.xml new file mode 100644 index 00000000..7a1defe4 --- /dev/null +++ b/doc/salome/gui/GAUSS/ehelp.xml @@ -0,0 +1,10 @@ + + + + + + + + WebSearch + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/ehlpdhtm.js b/doc/salome/gui/GAUSS/ehlpdhtm.js new file mode 100644 index 00000000..6cfd2e46 --- /dev/null +++ b/doc/salome/gui/GAUSS/ehlpdhtm.js @@ -0,0 +1,4239 @@ +// eHelp® Corporation Dynamic HTML JavaScript +// Copyright© 1998-2003 eHelp® Corporation.All rights reserved. +// Version=4.82 + +// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten. + +//// Segment Begin -- (JavaScript 1.0) + +/// Section Begin - General and relative topics(JavaScript 1.0) + +//{{HH_SYMBOL_SECTION +var HH_ChmFilename = ""; +var HH_WindowName = ""; +var HH_GlossaryFont = ""; +var HH_Glossary = ""; +var HH_Avenue = ""; +var HH_ActiveX = false; +//}}HH_SYMBOL_SECTION + +//Begin to support previous generic parameters +//Get the information about the browser. +var gstrBsAgent = navigator.userAgent.toLowerCase(); +var gnBsVer = parseInt(navigator.appVersion); + +var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1); +var gbBsKonqueror = (gstrBsAgent.indexOf('konqueror') != -1); +var gbBsSafari = (gstrBsAgent.indexOf('safari') != -1); +var gbBsIE = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; +var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; + +var gbBsMac = (gstrBsAgent.indexOf('mac') != -1); +var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1)); +var gbBsSunOS = (gstrBsAgent.indexOf("sunos") != -1); + +var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2)); +var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3)); + +var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2)); +var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3)); +var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1))); +var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1)); + +var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4)); +var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5)); +var gbBsNS7 = false; + +var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4)); +var gbBsIE5 = false; +var gbBsIE55 = false; + +var gbBsOpera6 = false; +var gbBsOpera7 = false; + +var gbBsKonqueror3 = false; + + + +gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;; +if (gbBsIE) +{ + if (parseInt(navigator.appVersion) >= 4) { + gbBsIE4 = true; + if (gbBsIE4) { + var nPos = gstrBsAgent.indexOf("msie"); + var strIEversion = gstrBsAgent.substring(nPos + 5); + var nVersion = parseFloat(strIEversion); + if (nVersion >= 5) + gbBsIE5 = true; + if (nVersion >= 5.5) + gbBsIE55 = true; + } + } +} +if (gbBsNS6) +{ + var nPos=gstrBsAgent.indexOf("gecko"); + if(nPos!=-1) + { + var nPos2=gstrBsAgent.indexOf("/", nPos); + if(nPos2!=-1) + { + var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1)); + if (nVersion>=20020823) + gbBsNS7=true; + } + } +} +if (gbBsOpera) +{ + var nPos = gstrBsAgent.indexOf("opera"); + if(nPos!=-1) + { + var nVersion = parseFloat(gstrBsAgent.substring(nPos+6)); + if (nVersion >= 6) + { + gbBsOpera6=true; + if (nVersion >=7) + gbBsOpera7=true; + } + } +} +if (gbBsKonqueror) +{ + var nPos = gstrBsAgent.indexOf("konqueror"); + if(nPos!=-1) + { + var nVersion = parseFloat(gstrBsAgent.substring(nPos+10)); + if (nVersion >= 3) + { + gbBsKonqueror3=true; + } + } +} + +function insertAdjacentHTML(obj, where, htmlStr) +{ + if (gbBsIE || gbBsOpera7) + { + obj.insertAdjacentHTML(where, htmlStr); + } + else if (gbBsNS6 || gbBsSafari) + { + var r = obj.ownerDocument.createRange(); + r.setStartBefore(obj); + var parsedHTML = r.createContextualFragment(htmlStr); + + switch (where){ + case 'beforeBegin': + obj.parentNode.insertBefore(parsedHTML,obj); + break; + case 'afterBegin': + obj.insertBefore(parsedHTML,obj.firstChild); + break; + case 'beforeEnd': + obj.appendChild(parsedHTML); + break; + case 'afterEnd': + if (obj.nextSibling){ + obj.parentNode.insertBefore(parsedHTML,obj.nextSibling); + } else { + obj.parentNode.appendChild(parsedHTML); + } + break; + } + } +} + +// Utilities functions. +function BsscHasExtJs() +{ + if( gbBsIE3Before || gbBsNS3Before) + return false; + return true; +} + +// Register event handler +var gBsOnLoads = new Array(); // An array holds all the onload event handler. +var gBsOnClicks = new Array(); // An array holds all the onClick event handler. +var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler. +var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler. +var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler. + +var gbOrignalOnMouseDown = null; + +function BsscRegisterOnLoad(funcHandler) +{ + var nLength = gBsOnLoads.length; + gBsOnLoads[nLength] = funcHandler; +} + +function BsscRegisterOnClick(funcHandler) +{ + var nLength = gBsOnClicks.length; + gBsOnClicks[nLength] = funcHandler; +} + +function BsscRegisterOnUnLoad(funcHandler) +{ + var nLength = gBsOnUnLoads.length; + gBsOnUnLoads[nLength] = funcHandler; +} + +function BsscRegisterOnMouseOver(funcHandler) +{ + var nLength = gBsOnMouseOvers.length; + gBsOnMouseOvers[nLength] = funcHandler; +} + +function BsscRegisterOnMouseOut(funcHandler) +{ + var nLength = gBsOnMouseOuts.length; + gBsOnMouseOuts[nLength] = funcHandler; +} + +function BsGeneralOnLoad() +{ + if (!gbBsIE4 && !gbBsNS4) + return; + + // Make everything visible in navigator + if (gbBsNS4 && !gbBsNS6) { + // Make some special effects items visible + for (var iLayer = 0; iLayer < document.layers.length; iLayer++) { + document.layers[iLayer].visibility = "show"; + document.layers[iLayer].left = 0; + } + } +} + +// If resize the netscape browser, need to reload it. +function BsReDo() +{ + if (innerWidth != origWidth || innerHeight != origHeight) + location.reload(); +} +// End of the local functions. + +// The following functions are used by the html files. +function BSSCOnLoad() +{ + if( !BsscHasExtJs() ) + return; + for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--) + gBsOnLoads[nElement](); +} + +function BSSCOnClick() +{ + if (!BsscHasExtJs()) return; + + for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--) + gBsOnClicks[nElement](); +} + +function BSSCOnUnload() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--) + gBsOnUnLoads[nElement](); +} + +function BSSCOnMouseOver() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--) + gBsOnMouseOvers[nElement](); +} + +function BSSCOnMouseOut() +{ + if (!BsscHasExtJs()) return; + for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--) + { + gBsOnMouseOuts[nElement](); + } +} +// End of invocation of the event handle functions. + +// Add the GereralOnLoad to the onload array. +if (typeof(BsscRegisterOnLoad) != "undefined") +{ + BsscRegisterOnLoad(BsGeneralOnLoad); +} +if (gbBsNS4&&!gbBsNS6) { + origWidth = innerWidth; + origHeight = innerHeight; + onresize = BsReDo; +} +//End to support previous generic parameters + +//Begin to support previous HHActiveX invoking +function BsHHActivateComponents() +{ + if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0]))) + { + var objBody = getElementsByTag(document,"BODY")[0]; + if( typeof(objBody) == "object" ) + { + insertAdjacentHTML(objBody, "beforeEnd", ''); + if (HHComponentActivator.object) + HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue); + } + } +} + +function BsHHActivXOnLoad() +{ + if( gbBsIE4 ) + BsHHActivateComponents(); +} + +if( typeof(BsscRegisterOnLoad) != "undefined" ) +{ + BsscRegisterOnLoad(BsHHActivXOnLoad); +} +//End to support previous HHActiveX invoking + +//Begin to support previous relative topics +//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here +var gbPopupMenuTimeoutExpired = false; +var gbInPopupMenu = false; +var gbPopupMenuTopicList = null; +var gOlddocumentClick = null; + +////////////////////////////////////////////////////////////////////////////////////////// +// +// Popup Menu code +// +////////////////////////////////////////////////////////////////////////////////////////// + +var g_bIsPopupMenuInit = false; +function _WritePopupMenuLayer() +{ + if (!g_bIsPopupMenuInit) + { + if (gbBsNS4&&!gbBsNS6) { +//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page... + document.write("
"); + } else{ + document.write(""); + if (!(gbBsNS4&&!gbBsNS6)) { + document.write(""); + } + } + g_bIsPopupMenuInit = true; + } +} + +//Seek for the bsscright frame +function _SeekFrameByName( cRoot, strName ) +{ + if( cRoot == null ) return null; + if( cRoot.frames == null ) return null; + if( cRoot.frames[strName] != null ) return cRoot.frames[strName]; + for (var i=0; i'; + } 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 || gbBsOpera7) { + + layerPopup = getElement("PopupMenu"); + layerPopup.innerHTML = strMenu; + stylePopup = layerPopup.style; + + _BSPSGetClientSize(); + + // Get the position of the item causing the event (relative to its parent) + nEventX = window.event.clientX; + nEventY = window.event.clientY; + + if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) { + nEventY += document.body.scrollTop + 10; + } else { + nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20; + } + stylePopup.top = nEventY; + + var nPopupWidth = layerPopup.scrollWidth; + if (gbBsMac) { + nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup. + } + if (nEventX + nPopupWidth + 20 > gBsClientWidth) { + if (gBsClientWidth - nPopupWidth < 5) { + stylePopup.left = 5; + } else { + stylePopup.left = gBsClientWidth - nPopupWidth - 5; + } + } else { + stylePopup.left = nEventX + document.body.scrollLeft + 20; + } + + stylePopup.visibility = "visible"; + if (!gOlddocumentClick && document.onclick) + gOlddocumentClick = document.onclick; + document.onclick = PopupMenu_HandleClick; + + } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) { + layerPopup = getElement("PopupMenu"); + layerPopup.style.visibility = "hidden"; + + if (gbBsNS6) + { + var e = fn_arguments[0]; + nEventX = e.pageX; + nEventY = e.pageY; + } + else + { + nEventX = window.event.clientX; + nEventY = window.event.clientY; + } + _BSPSGetClientSize(); + layerPopup.innerHTML = strMenu; + + if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) { + nEventY += 20; + } else { + nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20; + } + + if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) { + if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) { + nEventX = 5; + } else { + nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20; + } + } else { + nEventX += 20; + } + layerPopup.style.top = nEventY; + layerPopup.style.left = nEventX; + // set again to avoid the stupid frash in netscape 6. + layerPopup.innerHTML = strMenu; + layerPopup.style.visibility = "visible"; + //window.captureEvents(Event.MOUSEDOWN); + if (!gOlddocumentClick && document.onclick) + gOlddocumentClick = document.onclick; + window.onclick = PopupMenu_HandleClick; + } + else if (gbBsNS4) { + layerPopup = document.layers.PopupMenu; + layerPopup.visibility = "hide"; + stylePopup = layerPopup.document; + stylePopup.write(strMenu); + stylePopup.close(); + var e = fn_arguments[0]; + nEventX = e.pageX; + nEventY = e.pageY; + _BSPSGetClientSize(); + if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) { + nEventY += 20; + } else { + nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20; + } + layerPopup.top = nEventY; + + if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) { + if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) { + nEventX = 5; + } else { + nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20; + } + } else { + nEventX += 20; + } + + layerPopup.left = nEventX; + + layerPopup.visibility = "show"; + + window.captureEvents(Event.MOUSEDOWN); + if (!gOlddocumentClick && document.onmousedown) + gOlddocumentClick = document.onmousedown; + window.onmousedown = PopupMenu_HandleClick; + } + + window.gbInPopupMenu = true; + window.gbPopupMenuTimeoutExpired = false; + setTimeout("PopupMenu_Timeout();", 100); + return false; +} + +function PopupMenu_Timeout() +{ + window.gbPopupMenuTimeoutExpired = true; +} + +function PopupMenu_Over(e) +{ + if (gbBsIE4||gbBsOpera7) + e.srcElement.className = "PopupOver"; + else if (gbBsNS6) + e.target.parentNode.className = "PopupOver"; + return; +} + +function PopupMenu_Out(e) +{ + if (gbBsIE4||gbBsOpera7) + e.srcElement.className = "PopupNotOver"; + else if (gbBsNS6) + e.target.parentNode.className = "PopupNotOver"; + return; +} + +function PopupMenu_HandleClick(e) +{ + if (window.gbPopupMenuTimeoutExpired) { + window.gbInPopupMenu = false; + if (gbBsNS4 && !gbBsNS6) { + window.releaseEvents(Event.MOUSEDOWN); + } + + var layerPopup = null; + if (gbBsNS4&&!gbBsNS6) { + layerPopup = document.layers.PopupMenu; + layerPopup.visibility = "hide"; + } else { + layerPopup = getElement("PopupMenu"); + layerPopup.style.visibility = "hidden"; + } + + if (gOlddocumentClick) + { + if (gbBsNS4 && !gbBsNS6) + document.onmousedown = gOlddocumentClick; + else + document.onclick = gOlddocumentClick; + } + } + return; +} + +function BSSCPopup_ClickMac() +{ + if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7)) + { + var bClickOnAnchor = false; + var el; + if ((window.event != null) && + (window.event.srcElement != null)) + { + el = window.event.srcElement; + while (el != null) + { + if ((el.tagName == "A") || (el.tagName == "AREA")) { + bClickOnAnchor = true; + break; + } + if (el.tagName == "BODY") { + break; + } + el = getParentNode(el); + } + } + if (BSSCPopup_IsPopup()) + { + if (!bClickOnAnchor) { + parent.window.gPopupWindow = null; + self.close(); + } + } + else + { + bClosePopupWindow = true; + if ((bClickOnAnchor) && + (el.href) && + ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1))) + { + bClosePopupWindow = false; + } + if (bClosePopupWindow) + { + if (window.gPopupWindow != null && !window.gPopupWindow.closed ) + { + window.gPopupWindow.close(); + } + } + } + } +} + +function BsPopupOnClick() +{ + if (!gbBsIE4 && !gbBsOpera7) + return; + + BSSCPopup_ClickMac(); +} + +function _BSSCOnError(message) +{ + if(-1 != message.indexOf("denied") + || -1 != message.indexOf("Object required")) + return true; +} + +//End to support previous relative topics + +/// Section End - General and relative topics (JavaScript 1.0) + +/// Section Begin - Popup (JavaScript 1.0) +//Begin to support previous popup functions + +//variables used to isolate the browser type +var gBsStyVisShow = null; +var gBsStyVisHide = null; +var gBsClientWidth = 640; +var gBsClientHeight = 480; + +// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others. +var gBRateH_W = 0.618; // 1.618 Golden cut. +var gBMaxXOfParent = 0.8; +var gBMaxYOfParent = 0.8; +var gBscrollHeight = 16; +var gBscrollWidth = 16; +var gBpermitXDelta = 3; +var gBpermitYDelta = 3; + + +var arrayPopupURL = new Array(); +var arrayAbsPopupURL = new Array(); + +var arrayDirty = new Array(); + +function setAbsPopupURL(nIndex, strURL) +{ + arrayAbsPopupURL[nIndex] = strURL; +} + +function getAbsPopupURL(nIndex) +{ + if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null; + else + return arrayAbsPopupURL[nIndex]; +} + +function getPopupURL(nIndex) +{ + if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null; + else + return arrayPopupURL[nIndex]; +} + +function getPopupID(nIndex) +{ + return gstrPopupID + nIndex; +} + +function getPopupShadowID(nIndex) +{ + return gstrPopupShadowID + nIndex; +} + +function getPopupTopicID(nIndex) +{ + return gstrPopupTopicID + nIndex; +} + +function getPopupIFrameID(nIndex) +{ + return gstrPopupIFrameID + nIndex; +} + +function getPopupIFrameName(nIndex) +{ + return gstrPopupIFrameName + nIndex; +} + + +function getPopupTopicStyle(nIndex) +{ + return getElement(getPopupTopicID(nIndex)).style; +} + +function getPopupShadowStyle(nIndex) +{ + return getElement(getPopupShadowID(nIndex)).style; +} + +function getPopupIFrame(nIndex) +{ + if (gbBsNS6) + return eval("window.frames['" + getPopupIFrameName(nIndex) + "']"); + else + return eval("document.frames['" + getPopupIFrameName(nIndex) + "']"); +} + +function getPopupDivStyle(nIndex) +{ + return getElement(getPopupID(nIndex)).style; +} + +function getPopupIFrameStyle(nIndex) +{ + return getElement(getPopupIFrameID(nIndex)).style; +} + + +function findDiv(strURL) +{ + for (var i = 0; i < arrayPopupURL.length; i ++ ) { + if (arrayPopupURL[i] == strURL) { + return i; + } + } + return -1; +} + +var gnToken = -1; +function takeToken() +{ + gnToken ++; + if (gnToken > 10000) gnToken = 0; + return gnToken; +} + +function IsValidToken(nToken) +{ + return (gnToken == nToken); +} + +function addDiv(strURL) +{ + for (var i = 0; i < arrayPopupURL.length; i ++) { + if (arrayPopupURL[i] == null) { + arrayPopupURL[i] = strURL; + return i; + } + } + arrayPopupURL[i] = strURL; + arrayDirty[i] = true; + return i; +} + +function setDirty() +{ + for (var i = 0; i < arrayPopupURL.length; i ++ ) + arrayDirty[i] = true; +} + +function IsDirty(nIndex) +{ + if (nIndex == -1) + return true; + else + if (arrayDirty.length > nIndex) + return arrayDirty[nIndex]; + else + return true; +} + +function hideAll() +{ + for (var i = 0; i < arrayPopupURL.length; i ++ ) + { + getPopupDivStyle(i).visibility = gBsStyVisHide; + getPopupIFrameStyle(i).visibility = gBsStyVisHide; + } +} + +function getCurrentPopupIFrame() +{ + for (var i = 0; i < arrayPopupURL.length; i ++) + if (getPopupDivStyle(i).visibility == gBsStyVisShow) + return getPopupIFrame(i); + return null; +} + +function setClear(nIndex) +{ + if (nIndex != -1) + arrayDirty[nIndex] = false; +} + +function _BSSCCreatePopupDiv(strURL) +{ + var nIndex = findDiv(strURL); + if (nIndex == -1 ) { + nIndex = addDiv(strURL); + BsPopup_CreateDiv(nIndex); + } + else { + if (IsDirty(nIndex)) { + if("object" == typeof(getPopupIFrame(nIndex).document)) + getPopupIFrame(nIndex).document.location.href = strURL; + } + } + return nIndex; +} + +//Here is the browser type +function _BSPSGetBrowserInfo() +{ + if (gbBsNS4&&!gbBsNS6) + { + gBsStyVisShow = "show"; + gBsStyVisHide = "hide"; + } + else + { + gBsStyVisShow = "visible"; + gBsStyVisHide = "hidden"; + } +} + +_BSPSGetBrowserInfo(); + +//Get client size info +function _BSPSGetClientSize() +{ + if (gbBsNS4||gbBsKonqueror3||gbBsSafari) + { + gBsClientWidth = innerWidth; + gBsClientHeight = innerHeight; + } + else if (gbBsIE4 || gbBsOpera7) + { + gBsClientWidth = document.body.clientWidth; + gBsClientHeight = document.body.clientHeight; + } +} + +var gstrPopupID = 'BSSCPopup'; +var gstrPopupShadowID = 'BSSCPopupShadow'; +var gstrPopupTopicID = 'BSSCPopupTopic'; +var gstrPopupIFrameID = 'BSSCPopupIFrame'; +var gstrPopupIFrameName = 'BSSCPopupIFrameName'; + +var gstrPopupSecondWindowName = 'BSSCPopup'; + +var gPopupWindow = null; +var gnPopupClickX = 0; +var gnPopupClickY = 0; + +var gnPopupScreenClickX = 0; +var gnPopupScreenClickY = 0; + +var gbPopupTimeoutExpired = false; + +function DHTMLPopupSupport() +{ + if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) { + return true; + } + return false; +} + +function BSSCPopup_IsPopup() +{ + if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) { + return true; + } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) { + return true; + } else { + return false; + } +} + +// If there is a hyperlink in a popup window, display the hyperlink in +// the original window. (bsscright) +if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) { + document.write(""); +} + +// 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 = getElementsByTag(document, "BODY")[0]; + if( typeof(objBody) != "object" ) + return; + + insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv); +} + +function handleLoadNS() +{ + if (this.id) + { + var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length)); + BSSCPopup_PostWork(nIndex); + } +} + +function BSSCPopup_PostWork(nIndex) +{ + getPopupDivStyle(nIndex).visibility = gBsStyVisShow; + getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow; + + setClear(nIndex); + window.gbPopupTimeoutExpired = true; + + BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document); + if (gbBsNS6) + getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false); + else + getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked; + + if (!gbOrignalOnMouseDown && document.onmousedown) + gbOrignalOnMouseDown = document.onmousedown; + + if (gbBsNS6) + document.addEventListener("mousedown", BSSCPopupParentClicked,false); + else + document.onmousedown = BSSCPopupParentClicked; +} + +function BSSCPopup_Timeout(nIndex, nToken) +{ + if (!IsValidToken(nToken)) return; + + if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") && + (getPopupIFrame(nIndex).document.body != null))) { + BSSCPopup_PostWork(nIndex); + } else { + setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100); + } +} + +// VH 08/10/00 +// do not change target to parent if the href is using javascript +function BSSCPopup_ChangeTargettoParent(tagsObject) +{ + var collA = getElementsByTag(tagsObject, "A"); + BSSCPopup_ChangeTargettoParent2(collA); + + var collIMG = getElementsByTag(tagsObject,"IMG"); + BSSCPopup_ChangeTargettoParent2(collIMG); +} + +function BSSCPopup_ChangeTargettoParent2(colls) +{ + if (colls != null) { + for (var j = 0; j < colls.length; j ++ ) + { + var strtemp = colls[j].href; + if (strtemp) + { + strtemp = strtemp.toLowerCase(); + if (strtemp.indexOf("javascript:") == -1) + if (colls[j].target == "") + colls[j].target = "_parent"; + } + } + } +} + +function BSPSPopupTopicWinHelp(strURL) +{ + _BSSCPopup(strURL); + return; +} + +function _BSSCPopup(strURL, width, height) +{ + var cuswidth = 0; + var cusheight = 0; + if ("undefined" != typeof(width) && "undefined" != typeof(height)) { + cuswidth = width; + cusheight= height; + } + + if (DHTMLPopupSupport()) { + var nToken = takeToken(); // take token first. + var nIndex = _BSSCCreatePopupDiv(strURL); + window.gbPopupTimeoutExpired = false; + var ntWidth = gBsClientWidth; + var ntHeight = gBsClientHeight; + _BSPSGetClientSize(); + if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) { + setDirty(); + } + + if (IsDirty(nIndex)) { + if (gbBsMac) { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400); + } else { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100); + } + } + else { + MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight); + } + } else { + _BSSCPopup2(strURL, cuswidth, cusheight); + } + return; +} + +if (gbBsIE55) +{ + var ehlpdhtm_fOldBefureUnload = window.onbeforeunload; + var gnBsUnload=0; + window.onbeforeunload = window_BUnload; +} + +function window_BUnload() +{ + gnBsUnload++; + if (gnBsUnload>1) + return; + for (var i = 0; i < arrayPopupURL.length; i ++) + removeThis(document.all(getPopupID(i))); + arrayPopupURL.length = 0; + if (ehlpdhtm_fOldBefureUnload) + ehlpdhtm_fOldBefureUnload(); +} + +function _BSSCPopup2(strURL, width, height) +{ + if (gbBsOpera6&&gbBsMac) + { + var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName); + wmTemp.close(); + setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100); + } + else + _BSSCPopup3(strURL, width, height); +} + +function _BSSCPopup3(strURL, width, height) +{ + if (window.name == gstrPopupSecondWindowName) { + window.location = strURL; + } else { + if (!gbBsMac || !gbBsNS4) { + BSSCHidePopupWindow(); + } + var nX = 0; + var nY = 0; + var nHeight = 300; + var nWidth = 400; + if (width > 0 && height > 0) { + nHeight = height; + nWidth = width; + } + _BSPSGetClientSize(); + + nX = window.gnPopupScreenClickX; + nY = window.gnPopupScreenClickY; + + if (nY + nHeight + 40 > screen.availHeight) { + nY = screen.availHeight - nHeight - 40; + } + if (nX + nWidth + 40 > screen.availWidth) { + nX = screen.availWidth - nWidth - 40; + } + + // Launch a separate window + var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes"; + if (gbBsNS) { + if (gbBsNS6) { + strParam += ",Height=" + nHeight + ",Width=" + nWidth; + strParam += ",screenX=" + nX + ",screenY=" + nY; + strParam += ",dependent=yes"; + } + else { + strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth; + strParam += ",screenX=" + nX + ",screenY=" + nY; + strParam += ",dependent=yes"; + } + } + else { + strParam += ",height=" + nHeight + ",width=" + nWidth; + strParam += ",left=" + nX + ",top=" + nY; + } + if (gbBsSafari) + { + if (window.gPopupWindow) + window.gPopupWindow.close(); + window.gPopupWindow = window.open(strURL, "", strParam); + window.gPopupWindow.name = gstrPopupSecondWindowName; + window.gPopupWindow.moveTo(nX, nY); + widnow.gPopupWindow.document.location.reload(); + } + else + { + var wmTemp=null; + if (gbBsKonqueror3) + { + if (window.gPopupWindow) + window.gPopupWindow.close(); + } + if (gbBsOpera&&gbBsMac) + { + wmTemp= window.open(document.location.href, "Temp", strParam); + } + window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam); + if (!gbBsIE) + window.gPopupWindow.focus(); + + if (wmTemp) + wmTemp.close(); + } + + if (gbBsNS4) + setEventHandle(); + else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) + setTimeout("setPopupFocus();", 100); + } + return; +} + +function setEventHandle() +{ + window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR); + window.gPopupWindow.onclick = NonIEPopup_HandleClick; + window.gPopupWindow.onblur = NonIEPopup_HandleBlur; +} + +function setPopupFocus() +{ + window.gPopupWindow.focus(); +} + +function NonIEPopup_HandleBlur(e) +{ + window.gPopupWindow.focus(); +} + +function NonIEPopup_HandleClick(e) +{ + // Because navigator will give the event to the handler before the hyperlink, let's + // first route the event to see if we are clicking on a Popup menu in a popup. + document.routeEvent(e); + + // If a popup menu is active then don't do anything with the click + if (window.gPopupWindow.gbInPopupMenu) { + window.gPopupWindow.captureEvents(Event.CLICK); + window.gPopupWindow.onclick = NonIEPopup_HandleClick; + return false; + } + + // Close the popup window + if(e.target.href) + { + if(e.target.href.indexOf("javascript:")==-1) + { + if (e.target.target=="") + window.location.href = e.target.href; + else + window.open(e.target.href, e.target.target); + this.close(); + } + } + else + this.close(); + return false; +} + +function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight) +{ + if (!window.getPopupIFrame(nIndex).document) { + _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight); + return; + } + + if (!IsValidToken(nToken)) return; + + if (gbBsNS6) + { + setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. + BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); + return; + } + + if ((window.getPopupIFrame(nIndex).document.readyState == "complete") && + (window.getPopupIFrame(nIndex).document.body != null)) { + if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe. + window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + } + else + { + setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. + BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); + } + } else { + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + } +} + +function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight) +{ + if (window.gbPopupTimeoutExpired) return; + + if (!IsValidToken(nToken)) return; + + getPopupDivStyle(nIndex).visibility = gBsStyVisHide; + getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide; + + // Determine the width and height for the window + _BSPSGetClientSize(); + + var size = new BSSCSize(0, 0); + + if (cuswidth <= 0 || cusheight <= 0) + BSSCGetContentSize(window.getPopupIFrame(nIndex), size); + else { + size.x = cuswidth; + size.y = cusheight; + } + + // Determine the width and height for the window + var nWidth = size.x; + var nHeight = size.y; + + // for small popup size, we should allow any size. + // The popup size should be ok if bigger than 0 + if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong. + + getPopupDivStyle(nIndex).width = nWidth; + getPopupDivStyle(nIndex).height = nHeight; + + getPopupShadowStyle(nIndex).width = nWidth; + getPopupShadowStyle(nIndex).height = nHeight; + getPopupTopicStyle(nIndex).width = nWidth; + getPopupTopicStyle(nIndex).height = nHeight; + if (gbBsIE55) + { + getPopupShadowStyle(nIndex).width = nWidth + 2; + getPopupShadowStyle(nIndex).height = nHeight + 2; + getPopupTopicStyle(nIndex).width = nWidth + 2; + getPopupTopicStyle(nIndex).height = nHeight + 2; + } + + getPopupIFrameStyle(nIndex).width = nWidth; + getPopupIFrameStyle(nIndex).height = nHeight; + if (gbBsIE55 || gbBsNS6) + { + getPopupIFrameStyle(nIndex).top = 0; + getPopupIFrameStyle(nIndex).left = 0; + } + + var strURL = getPopupURL(nIndex); + if (strURL.indexOf("#") != -1&&gbBsNS6) + getPopupIFrame(nIndex).location.reload(); + else if (strURL.indexOf("#") != -1||gbBsNS6) + getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5. + + MoveDivAndShow(nIndex, nToken, cuswidth, cusheight); +} + +function getScrollLeft() +{ + if (document.body.scrollLeft) + return document.body.scrollLeft; + else if (window.pageXOffset) + return window.pageXOffset; + else + return 0; +} + +function getScrollTop() +{ + if (document.body.scrollTop) + return document.body.scrollTop; + else if (window.pageYOffset) + return window.pageYOffset; + else + return 0; +} + + +function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight) +{ + if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again. + window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); + setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); + return; + } + + // Determine the position of the window + var nClickX = window.gnPopupClickX; + var nClickY = window.gnPopupClickY; + var nTop = 0; + var nLeft = 0; + + var nWidth = parseInt(getPopupDivStyle(nIndex).width); + var nHeight = parseInt(getPopupDivStyle(nIndex).height); + + if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) { + nTop = nClickY + 10; + } else { + nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20; + } + if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) { + nLeft = nClickX; + } else { + nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8; + } + + if (nTop < getScrollTop()) nTop = getScrollTop() + 1; + if (nLeft< getScrollLeft()) nLeft = getScrollLeft() + 1; + + getPopupDivStyle(nIndex).left = nLeft; + getPopupDivStyle(nIndex).top = nTop; + + // Set the location of the background blocks + getPopupShadowStyle(nIndex).left = 6; + getPopupShadowStyle(nIndex).top = 6; + if (gbBsIE55) + { + getPopupShadowStyle(nIndex).left = 4; + getPopupShadowStyle(nIndex).top = 4; + } + + if (gbBsMac&&gbBsIE4) { + // Total hack on the iMac to get the IFrame to position properly + getPopupIFrameStyle(nIndex).pixelLeft = 100; + getPopupIFrameStyle(nIndex).pixelLeft = 0; + // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it + getPopupIFrame(nIndex).window.BSSCOnLoad(); + } + + if (gbBsNS6&&IsDirty(nIndex)) + getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false); + else + BSSCPopup_Timeout(nIndex , nToken ); + return; +} + +function BSSCSize(x, y) +{ + this.x = x; + this.y = y; +} + +function BSSCGetContentSize(thisWindow, size) +{ + if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4) + return; + + if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) { + size.x = 320; + size.y = 180; + return; + } + + // Resize the width until it is wide enough to handle the content + // The trick is to start wide and determine when the scrollHeight changes + // because then we know a scrollbar is necessary. We can then go back + // to the next widest size (for no scrollbar) + + var ClientRate = gBsClientHeight / gBsClientWidth; + + + var GoldenSize = new BSSCSize(0,0); + GoldenSize.x = gBsClientWidth * gBMaxXOfParent; + GoldenSize.y = gBsClientHeight *gBMaxYOfParent ; + + if (ClientRate > gBRateH_W) { + GoldenSize.y = GoldenSize.x * gBRateH_W; + } + else { + GoldenSize.x = GoldenSize.y / gBRateH_W; + } + + // Try to using parent specified max x. + var x = 0; + var maxgoldx = GoldenSize.x; + var maxx = gBsClientWidth * gBMaxXOfParent; + + // This double resize causes the document to re-render (and we need it to) + if (!gbBsIE5) + thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4. + + thisWindow.resizeTo(1, 1); + thisWindow.resizeTo(1, 1); + thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); + thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); + + var miny = thisWindow.document.body.scrollHeight + gBscrollHeight; + + if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can + { + thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); + thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); + + miny = thisWindow.document.body.scrollHeight + gBscrollHeight; + maxy = gBsClientHeight * gBMaxYOfParent; + + if (miny > maxy) { // the popup must have a scroll, OK let it be. + miny = maxy; + size.x = maxx; + size.y = maxy; + thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little. + } + else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent. + size.y = miny; + + // downsize from maxx , now I try to using binary divide. + x = maxx; + deltax = -maxx/2; + //j = 0; + while (true) { + x = x + deltax; + thisWindow.resizeTo(x, miny); + thisWindow.resizeTo(x, miny); + diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate; + if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter + deltax = Math.abs(deltax) /2; + else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter + deltax = -Math.abs(deltax) /2; + else + // the y is close enough to wanted. + break; + if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. + break; + } + size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; + size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight; + thisWindow.document.body.scroll = 'no'; + } + } + else { + if (thisWindow.document.body.scrollWidth > maxgoldx) { + size.x = maxx; + size.y = miny; + thisWindow.document.body.scroll = 'yes'; + } + else { + // downsize from maxgoldx , now I try to using binary divide. + x = maxgoldx; + deltax = -maxgoldx/2; + while (true) { + x = x + deltax; + thisWindow.resizeTo(x, miny); + thisWindow.resizeTo(x, miny); + diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W; + if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter + deltax = Math.abs(deltax) /2; + else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter + deltax = -Math.abs(deltax) /2; + else + // the y is close enough to wanted. + break; + if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. + break; + } + size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; + size.y = thisWindow.document.body.scrollHeight ; + thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little. + thisWindow.resizeTo(size.x, size.y); + if (thisWindow.document.body.scrollWidth > size.x) + { + size.x = thisWindow.document.body.scrollWidth; + } + if (thisWindow.document.body.scrollHeight > size.y) + { + size.y = thisWindow.document.body.scrollHeight; + } + } + } + thisWindow.resizeTo(size.x, size.y); + thisWindow.resizeTo(size.x, size.y); + return; +} + +function BSSCPopupParentClicked() +{ + if (!window.gbPopupTimeoutExpired) { + return false; + } + + document.onmousedown = gbOrignalOnMouseDown; + + // Simply hide the popup + hideAll(); + + window.gbPopupTimeoutExpired = false; + + return true; +} + +function isInsideHyperLink(obj) +{ + if (obj&&obj!=getParentNode(obj)) + { + if (obj.tagName=="A"||obj.tagName=="IMG") + return true; + else + return isInsideHyperLink(getParentNode(obj)); + } + else + return false; +} + +function BSSCPopupClicked(e) +{ + if (!window.gbPopupTimeoutExpired) { + return false; + } + + var popupIFrame = getCurrentPopupIFrame(); + if (popupIFrame == null) { + return true; + } + + if (gbBsIE4 && (!((popupIFrame.window.event != null) && + (popupIFrame.window.event.srcElement != null) && + isInsideHyperLink(popupIFrame.window.event.srcElement)))) { + document.onmousedown = gbOrignalOnMouseDown; + + // Simply hide the popup + hideAll(); + window.gbPopupTimeoutExpired = false; + return true; + } + else if (gbBsNS6 && (!((e != null) && + (e.target!= null) && isInsideHyperLink(e.target)))) + { + document.addEventListener("mousedown", gbOrignalOnMouseDown,false); + // Simply hide the popup + hideAll(); + window.gbPopupTimeoutExpired = false; + return true; + } +} + +//trace the mouse over's position for hotspot +function BSPSPopupOnMouseOver(event) +{ + if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) { + window.gnPopupClickX = event.clientX + getScrollLeft(); + window.gnPopupClickY = event.clientY + getScrollTop(); + window.gnPopupScreenClickX = event.screenX; + window.gnPopupScreenClickY = event.screenY; + } else if (gbBsSafari) { + window.gnPopupClickX = event.clientX + getScrollLeft(); + window.gnPopupClickY = event.clientY + getScrollTop(); + window.gnPopupScreenClickX = event.screenX + window.screenX; + window.gnPopupScreenClickY = event.screenY + window.screenY; + } else if (gbBsNS4) { + window.gnPopupClickX = event.pageX - window.pageXOffset; + window.gnPopupClickY = event.pageY - window.pageYOffset; + window.gnPopupScreenClickX = event.screenX - window.pageXOffset; + window.gnPopupScreenClickY = event.screenY - window.pageYOffset; + } +} + +function BSSCHidePopupWindow() +{ + if (window.gPopupWindow != null) { + if (gbBsNS4) { + if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) { + window.gPopupWindow.close(); + window.gPopupWindow = null; + } + } + } + return; +} + +// Add the PopupOnClick to the onclick array. +if (typeof(BsscRegisterOnClick) != "undefined") +{ + BsscRegisterOnClick(BsPopupOnClick); +} +//End to support previous popup functions + +/// Section End - Popup (JavaScript 1.0) + +/// Section Begin - Embedded Stub (JavaScript 1.0) + +function BSSCCreatePopupDiv() +{ + return; +} + +function WritePopupMenuLayer() +{ + if (BsscHasExtJs()) {_WritePopupMenuLayer();} +} + +function BSSCPopup(strURL, width, height) +{ + var re = new RegExp("'", 'g'); + strURL = strURL.replace(re, "%27"); + + if (BsscHasExtJs()) { + _BSSCPopup(strURL, width, height); + }else{ + //Create a temporary window first to ensure the real popup comes up on top + var wndTemp = null; + if (!gbBsNS3) { + wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4"); + } + // Create the real popup window + var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400"); + // Close the temporary + if (!gbBsNS3) { + wndTemp.close(); + } else { + wndPopup.focus(); + } + } +} + +var gbWndTemp = null, gbWndPopupLinks = null; +var gbstrParaTotal = ""; + +function PopupMenu_Invoke() +{ + if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function') + { + if (Number(gsSkinVersion) > 2 && IsFlashSupported()) + { + return wfRelatedTopic(PopupMenu_Invoke.arguments); + } + } + if (BsscHasExtJs()) { + return _PopupMenu_Invoke(PopupMenu_Invoke.arguments); + } + if (gbBsNS3Before || gbBsIE3Before ) { + var argLen = PopupMenu_Invoke.arguments.length; + if (argLen < 5) { + window.document.location.href = PopupMenu_Invoke.arguments[3]; + return false; + } + gbWndTemp = null; + gbWndPopupLinks = null; + gbstrParaTotal = ""; + for (var i = 0; i < (argLen - 2) / 2; i++) { + var strParaLine = ""; + if (gbBsNS2){ + strParaLine += "" + strParaLine += PopupMenu_Invoke.arguments[2 * i + 2]; + strParaLine += ""; + } else { + strParaLine += ""); + if (gbBsNS2) { + 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 (!gbBsNS3 && gbWndTemp != null) { + gbWndTemp.close(); + }else { + gbWndPopupLinks.focus(); + } + + return true; + } + return false; +} + +/// Section End - Embedded Stub (JavaScript 1.0) + +//// Segment End -- (JavaScript 1.0) + +//// Segment Begin -- (JavaScript 1.2) +/// Section Begin - kadov DHTM (JavaScript 1.2) + +//Begin to support extended and dropdown text effects. +function kadovIsParagraph(el) +{ + return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false; +} + +function kadovInitEachChild(el) +{ + for(var i=0; i "") ) + 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( typeof(el) == "string" ) + el = getElement(el); + + var src = el.getAttribute( "x-use-popup" ); + var bNeedMove=true; + if(!src&&el.id) + { + for (var i=0;i"); + 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 + "
"; + + removeThis(srcDiv); // empty the original DIV tag + var elParentPra = kadovFindParentParagraph(el); + if( elParentPra ) + insertAdjacentHTML(elParentPra, "afterEnd", newDiv ); + } + else if( type == "expanding" ) + { + var inner = kadovRetrieveTextInner(srcDiv); + if( inner == "" ) + inner = srcDiv.innerHTML; + var strAdjust = kadovAdjustObjectTag(inner,0); + var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); + strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); + var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext"; + var newSpan = ""; + removeThis(srcDiv); // empty the original DIV tag + insertAdjacentHTML(el, "afterEnd", newSpan ); + } + } + } + else + { + srcDiv.style.display = "none"; + } + return 0; +} + +function getElementsByTag(obj,sTagName) +{ + if(obj.getElementsByTagName) + return obj.getElementsByTagName(sTagName); + else if(obj.all) + return obj.all.tags(sTagName); + return null; +} + +function getElement(sID) +{ + if(document.getElementById) + return document.getElementById(sID); + else if(document.all) + return document.all(sID); + return null; +} + +function getParentNode(obj) +{ + if(obj.parentNode) + return obj.parentNode; + else if(obj.parentElement) + return obj.parentElement; + return null; +} + +function getChildNodes(obj) +{ + if(obj.childNodes) + { + var children = new Array(); + for (var i = 0; i < obj.childNodes.length; i++) + { + if (obj.childNodes[i].nodeType == 1) + children[children.length] = obj.childNodes[i]; + } + return children; + } + else if(obj.children) + return obj.children; + return null; +} + +function removeThis(obj) +{ + if(obj.parentNode) + obj.parentNode.removeChild(obj); + else + obj.outerHTML=""; +} + +function kadovTextPopup( el ) +{ + if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 ) + return; + + var bNeedMove=true; + + if (window.event) + window.event.cancelBubble = true; + + if( typeof(el) == "string" ) + el = getElement(el); + + if (!el||el==window) + return; + + var src = el.getAttribute( "x-use-popup" ); + if(!src&&el.id) + { + for (var i=0;i= 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( (!gbBsWindows && !gbBsSunOS && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID + return; // we don't support Navigator yet + + if( typeof(event_type) == "string" ) + event_type = event_type.toLowerCase(); + if( typeof(action_type) == "string" ) + action_type = action_type.toLowerCase(); + if( typeof(action_setting) == "string" ) + action_setting = action_setting.toLowerCase(); + + // to get the target element then add it to the target list + var eleTarget = CCSSP.GetObject( target_ID ); + if( (eleTarget != null) && (event_type != null) && (action_type != null) ) + { + CEngine.AddOneTarget( target_ID, eleTarget ); + CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional); + } + + // to validate the trigger_ID parameter + if( typeof(trigger_ID) == "string" && trigger_ID != "" ) + CEngine.BuildTriggerObject( trigger_ID, target_ID ); +} +//End the definition of one entry to DHTML effects + +/// Section End - kadov DHTM (JavaScript 1.2) + +/// Section Begin - CCSSP DHTM (JavaScript 1.2) + +//Begin JavaScript libary for cross-platform positioning object. +function CCSSP(){} // constructor of CCSSP class + +CCSSP.GetObject = function( obj ) +{//convert object name string or reference into a valid object reference + if( typeof(obj) == "object" ) + return obj; + else if( typeof(obj) == "string" && obj != "") + { + if( gbBsNS4 ) + return eval("document." + obj); + else + return eval("document.all(\"" + obj + "\")"); + } + else + return null; +} + +CCSSP.MoveObjectTo = function(obj, x, y) +{//positioning an object at a specific pixel coordinate + if( gbBsNS4 ) + obj.moveTo(x,y); + else + { + obj.style.pixelLeft = x; + obj.style.pixelTop = y; + } +} + +CCSSP.MoveObjectBy = function(obj, dx, dy) +{//moveing a object by x and/or y pixel + if( gbBsNS4 ) + obj.moveBy(dx,dy); + else + { + obj.style.pixelLeft += dx; + obj.style.pixelTop += dy; + } +} + +CCSSP.SetObjectBGColor = function(obj, color) +{//set the background color of an object + if( gbBsNS4 ) + obj.bgColor = color; + else + obj.style.backgroundColor = color; +} + +CCSSP.ShowObject = function(obj, bShow) +{// set the object to be visible or invisible + if( gbBsNS4 ) + obj.visibility = (bShow == true) ? 'show' : 'hide'; + else + obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space. +} + +CCSSP.GetObjectLeft = function(obj) +{// retrieve the x coordinate of a posionable object + if( gbBsNS4 ) + return obj.left; + else + return obj.style.pixelLeft; +} + +CCSSP.GetObjectTop = function(obj) +{// retrieve the y coordinate of a posionable object + if( gbBsNS4 ) + return obj.top; + else + return obj.style.pixelTop; +} + +CCSSP.GetObjectContainLeft = function(obj) +{// retrieve the x coordinate of a posionable object relative to it's parent element + if( gbBsNS4 ) + return obj.pageX; + else + { + if( obj == document.body ) + return obj.clientLeft; + else + return obj.offsetLeft; + } +} + +CCSSP.GetObjectWindowLeft = function(obj) +{// retrieve the x coordinate of a posionable object relative to browser window + if( gbBsNS4 ) + return obj.pageX; + else + { + var nOffsetWindowLeft = 0; + for(var element = obj; element; element = element.offsetParent) + nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element); + return nOffsetWindowLeft; + } +} + +CCSSP.GetObjectContainTop = function(obj) +{// retrieve the y coordinate of a posionable object relative to it's parent element + if( gbBsNS4 ) + return obj.pageY; + else + { + if( obj == document.body ) + return obj.clientTop; + else + return obj.offsetTop; + } +} + +CCSSP.GetObjectWindowTop = function(obj) +{// retrieve the y coordinate of a posionable object relative to browser window + if( gbBsNS4 ) + return obj.pageY; + else + { + var nOffsetWindowTop = 0; + for(var element = obj; element; element = element.offsetParent) + nOffsetWindowTop += CCSSP.GetObjectContainTop(element); + return nOffsetWindowTop; + } +} + +CCSSP.GetObjectHeight = function(obj) +{// retrieve the height of a posionable object + if( gbBsNS4 ) + return obj.clip.height; + else + return obj.offsetHeight; +} + +CCSSP.GetObjectWidth = function(obj) +{// retrieve the width of a posionable object + if( gbBsNS4 ) + return obj.clip.width; + else + return obj.offsetWidth; +} + +CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler ) +{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined + if (gbBsNS4 && !gbBsNS6) + return ; + + var oldHandler = ""; + + if (gbBsMac &&gbBsIE4&&!gbBsIE5) + { + if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown") + { //search for + Gauss Points Viewer + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/gauss_points_viewer_csh.htm b/doc/salome/gui/GAUSS/gauss_points_viewer_csh.htm new file mode 100644 index 00000000..c6162136 --- /dev/null +++ b/doc/salome/gui/GAUSS/gauss_points_viewer_csh.htm @@ -0,0 +1,106 @@ + + +Gauss Points Viewer + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/gauss_points_viewer_rhc.htm b/doc/salome/gui/GAUSS/gauss_points_viewer_rhc.htm new file mode 100644 index 00000000..25bc79e3 --- /dev/null +++ b/doc/salome/gui/GAUSS/gauss_points_viewer_rhc.htm @@ -0,0 +1,106 @@ + + +Gauss Points Viewer + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/VISU/files/a2.htm b/doc/salome/gui/GAUSS/general.htm old mode 100755 new mode 100644 similarity index 51% rename from doc/salome/gui/VISU/files/a2.htm rename to doc/salome/gui/GAUSS/general.htm index eaca4e40..4a6d09ed --- a/doc/salome/gui/VISU/files/a2.htm +++ b/doc/salome/gui/GAUSS/general.htm @@ -3,18 +3,18 @@ -a2 +Data Loading General - - - - - + + + + + -

+

General

+ +

This standard behaviour already exists in Salome and + does not need to be modified here. The objective consists in handling + a Gauss point as an enhancement of the VISU module capabilities.

+ +

 

+ +

We will first briefly remind here how the standard behaviour works. + Secondly, we will explain how Gauss points will be supported.

- - - - + + + + + -

+

General

+ +

This section describes how to navigate within a 3D graphic + scene using a mouse, the keyboard or a spacemouse. It also describes the + type of movement for a camera to go from one point of view to another + one.

+ + + + + + + + +

Saving data

+ +

Information created during a session:

+ +

 

+ +
    + +
  • Cameras

  • + +
  • Configurations

  • +
+ +

 

+ +

have been published within the Study document and are visible in the + tree browser of the Study.

+ +

 

+ +

Salome provides a standard way to store this Study document – Mesh, + Results, Cameras and Segmentation cursors – in the form of an HDF file. + This behaviour will be used without modification.

+ +

 

+ +

The storage of the Study document is accessed from:

+ +

 

+ +
    + +
  • The menu bar: File + ► Save or File ► Save As

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 61 : Salome ‘File’ menu

+ +

 

+ +

The ‘Save’ option automatically updates the file on disk by keeping + its name. When this command is run for the first time on a new document, + then the ‘Save As’ command is executed. The ‘Save As’ command opens a + dialog that allows user:

+ +

 

+ +
    + +
  • To define the location of the file (pathname)

  • + +
  • To rename the file

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 62 : Salome ‘Save As’ dialog

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/VISU/files/a3.htm b/doc/salome/gui/GAUSS/general_timestamps_animation.htm old mode 100755 new mode 100644 similarity index 51% rename from doc/salome/gui/VISU/files/a3.htm rename to doc/salome/gui/GAUSS/general_timestamps_animation.htm index 5d744852..02ca52b9 --- a/doc/salome/gui/VISU/files/a3.htm +++ b/doc/salome/gui/GAUSS/general_timestamps_animation.htm @@ -3,18 +3,18 @@ -a3 +General timestamps animation - - - - - + + + + + -

+

General

+ +

Salome defines a standard way to show a timestamps animation. + This functionality will be extended to Results Gauss points.

+ +

 

+ +

The general behaviour of this command will not be changed in the frame + of this project. The following sections explain briefly how the animation + function of Salome is running.

- - - - + + + + + -

+

Introduction

+ +

This documentation describes the graphical user interface + – GUI – for each functionality concerned by the Code_Aster data viewer + at Gauss points in Salome.

+ + + + + + + + +

Loading previously saved data

+ +

Mutually, Salome provides an open command from:

+ +

 

+ +
    + +
  • The menu bar: + File ► Open

  • +
+ +

 

+ +

It opens up a dialog to browse the directory structure and to select + an HDF Study file.

+ +

 

+ +

+ +

 

+ +

Fig. 63 : Salome ‘Open’ dialog

+ +

 

+ +

Once selected, user presses the ‘Open’ button to load the Study in the + Salome session.

+ +

A new document is created and the Study is loaded within this clear + document.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/making_an_avi_clip.htm b/doc/salome/gui/GAUSS/making_an_avi_clip.htm new file mode 100644 index 00000000..c30992f6 --- /dev/null +++ b/doc/salome/gui/GAUSS/making_an_avi_clip.htm @@ -0,0 +1,213 @@ + + + + + +Making an AVI clip + + + + + + + + + + + +

Making an AVI clip

+ +

In order to satisfy all possible requests for video recording, + the functionality should be implemented as a background task. In this + case, user can start the video recording and manage it as he want. The + functionality will be available at any time for all contents of the 3D + scene. So, video recording of animation or segmentation will be performed + in the same way.

+ +

 

+ +

User can manage the video recording by using the following GUI controls:

+ +

 

+ + + +++ + + + + + + + + + + + + + + + + +
+

+

Start button – starts the video recording session into the defined output + file. Corresponding file dialog will be proposed first in order to define + the output file.

+

+

Play button  Â– + continue the video recording into previously defined output file.

+

+

Pause button – pause the video recording.

+

+

Stop button – stop the video recording.

+ +

 

+ +

Fig. 32 : Video recording GUI controls

+ +

 

+ +

Those video recording buttons will be grouped into one corresponding + toolbar. The toolbar will have three following sates.

+ +

 

+ + + +++ + + + + + + + + + + + + +
+

+

Disable video recording state. The animation is not active.

+

In order to start the video recording, button should + be pressed.

+

+

Play video recording state. The animation is activated and all content + of the VTK view is recorded into defined video file.

+

It is possible to pause the video recording by pushing the button .

+

Button stops the session of the video recording.

+

+

Pause animation state. The animation is active but the video recording + is paused.

+

In order to continue the video recording button should + be pushed.

+

Button stops the session of the video recording.

+ +

 

+ +

Fig. 33 : Video recording toolbar states.

+ +

 

+ +

Each VTK view will have its own video recording toolbar. So, in segmentation + mode video recording of main view and segmented view will be managed separately.

+ + + + diff --git a/doc/salome/gui/GAUSS/managing_configurations.htm b/doc/salome/gui/GAUSS/managing_configurations.htm new file mode 100644 index 00000000..1f4e1b95 --- /dev/null +++ b/doc/salome/gui/GAUSS/managing_configurations.htm @@ -0,0 +1,257 @@ + + + + + +Managing configurations + + + + + + + + + + + +

Managing configurations

+ +

A new command is introduced, in the frame of this project, + to allow the user to memorize the current configuration and to be able + to restore it later on, even in another session.

+ +

 

+ +
    + +
  • From a 3D view, the popup menu proposes to ‘Store current configurationÂ’.

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 39 : 3D View popup menu

+ +

 

+ +

If not already existing, this action creates a new entry ‘Configurations’, + as a child of root ‘Post-Pro’ + node, in the tree browser of the study to store all current parameters.

+ +

 

+ +

Then a new child is added, with an automatic name in the form of ‘Config:X’ where X is an incremental + integer. All parameters of the current configuration are stored at this + node

+ +

 

+ +
+ +

 

+ +

+ +

 

+ +

Fig. 40 : Study browser with ‘Configurations’ node

+ +

 

+ +

This new ‘Configurations’ node will be stored (resp. retrieved) within + (from) the Study document by the use of standard SALOMEDS attribute. Persistence + will be managed in the same way as for Cameras.

+ +

 

+ +

Note:

+ +

Configurations are independent + from Segmentation cursors and Cameras. Therefore, applying a registered + configuration will apply configuration parameters in terms of Camera, + Segmentation cursor and Gauss point presentation. From this time, user + can freely navigate within the browser to display another timestamp or + variable. The view will be updated accordingly without changing the Camera + and the Segmentation cursor. This navigation within the tree will also + not affect the registered parameters of the configuration until user decides + to store them.

+ +

 

+ +

Edition of this last item – ‘Config:X’ + – through a right-mouse button click opens the following popup menu:

+ +

 

+ +

+ +

 

+ +

Fig. 41 : ‘Config’ entry popup menu

+ +

 

+ + + +++ + + + + + + + + + + + + + + + + + + + + +
+

Command

+

Purpose

+

Rename

+

Allows the user to redefine the name of the element. A standard dialog + in Salome is opened to realize the input.

+

Edit / Apply

+

Restore all registered parameters: camera and presentations in the current + main 3D view.

+

If a cursor is stored, then the ‘Segmentation’ command (see Segmentation) + is activated with the cursor parameters defined in the configuration (open + a segmentation viewer and display the segmentation dialog box for edition).

+

If a selection is active, then the ‘Picking’ command (see Picking) + is activated and the selected point defined in the configuration is highlighted.

+

Erase

+

Erase the elements from the 3D view.

+

Delete

+

Erase the elements from the 3D view and remove it from the study browser.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/navigation_using_the_keyboard.htm b/doc/salome/gui/GAUSS/navigation_using_the_keyboard.htm new file mode 100644 index 00000000..c6e990a6 --- /dev/null +++ b/doc/salome/gui/GAUSS/navigation_using_the_keyboard.htm @@ -0,0 +1,177 @@ + + + + + +Navigation using the keyboard + + + + + + + + + + + +

Navigation using the keyboard

+ +

Salome does not provide any + way to navigate within the scene using certain keys of the keyboard. Thus + the following actions will be created.

+ +

 

+ + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Action

+

Key

+

Movement

+

Dynamic rotation

+

[CTRL] key +

+

[ ], [ ],

+

[ ], [ ]

+

Rotation centred on the focal point

+

Dynamic panning

+

[ ], [ ],

+

[ ], [ ]

+

+

Translation in any direction

+

Dynamic zoom

+

[PageUp],

+

[PageDn]

+

  Increase + or decrease the zoom ratio

+

Speed increment

+

[ + ],

+

[ - ]

+

Increase (resp. decrease) by 1 the speed increment used for the movement + previously defined

+ +

 

+ +
    + +
  • This support will be active at any time during + a VISU session.

  • +
+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/navigation_using_the_mouse.htm b/doc/salome/gui/GAUSS/navigation_using_the_mouse.htm new file mode 100644 index 00000000..7a1d35a9 --- /dev/null +++ b/doc/salome/gui/GAUSS/navigation_using_the_mouse.htm @@ -0,0 +1,230 @@ + + + + + +Navigation using the mouse + + + + + + + + + + + +

Navigation using the mouse

+ +

To simplify the explanation of actions connected to the + mouse, we define the following conventions:

+ +

 

+ +

+ +

 

+ +

Fig. 34 : Mouse buttons convention

+ +

 

+ +

Salome standard

+ +

The mouse is supported as a standard pointer in Salome. Default actions, + for a 3 mouse buttons are connected as follows:

+ +

 

+ + + ++++ + + + + + + + + + + + + + + + + + + + + +
+

Action

+

Command

+

Movement

+

Dynamic rotation

+

[CTRL] key + MB3

+

Rotation centred on the focal point

+

Dynamic panning

+

[CTRL] key + MB2

+

+

Translation in any direction

+

Dynamic zoom

+

[CTRL] key + MB1

+

 Increase + or decrease the zoom ratio

+ +

 

+ +

New capability

+ +

A new connectivity free + of extra keyboard keys is introduced in the frame of this project + and will be defined as ‘Mouse only’ convention:

+ +

 

+ + + ++++ + + + + + + + + + + + + + + + + + + + + +
+

Action

+

Command

+

Movement

+

Dynamic rotation

+

MB1

+

Rotation centred on the focal point

+

Dynamic panning

+

MB2

+

+

Translation in any direction

+

Dynamic zoom

+

MB1 + MB2

+

 Increase + or decrease the zoom ratio

+ +

 

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/navigation_using_the_spacemouse.htm b/doc/salome/gui/GAUSS/navigation_using_the_spacemouse.htm new file mode 100644 index 00000000..27d05366 --- /dev/null +++ b/doc/salome/gui/GAUSS/navigation_using_the_spacemouse.htm @@ -0,0 +1,272 @@ + + + + + +Navigation using the spacemouse + + + + + + + + + + + +

Navigation using the spacemouse

+ +

Salome does not provide any way to navigate within the + scene using a spacemouse. Thus the support of this new pointer will be + added and managed as defined below.

+ +

 

+ +

The spacemouse introduces a local coordinate system, and 6 degrees of + freedom, which are independent from the 3D view coordinate system. They + are defined as follows:

+ +

 

+ +

+ +

 

+ +

Fig. 35 : Spacemouse local co-ordinate system

+ +

 

+ +

Move 3D models and scenes on screen based on the corresponding direction + the user moves the cap on the controller.

+ +

The commands available using the spacemouse are then defined as follows:

+ +

 

+ + ++++ + + + + + + + + + + + + + + + + + + + + + + + +
+

Action

+

Move

+

Description

+

Dynamic rotation

+

+

Tilt the controller head left + and right or forward and backward to rotate accordingly (X-Z axis).

+

 

+

Note: + Left/right capability will be disabled.

+

+

Twist clockwise and counterclockwise + to rotate the model accordingly (Y-axis)

+

Dynamic panning

+

+

Pull up and + push down to move the model up and down.

+

Move left and right + to move the model left and right.

+

Dynamic zoom

+

+

Push forward or pull + backwards to respectively decrease or increase the zoom ratio.

+ +

 

+ +
    + +
  • This support will be active at any time during + a VISU session.

  • +
+ +

 

+ +

Buttons of the spacemouse are also used to change the magnification + for Gauss points:

+ +

 

+ +

+ +

 

+ +

Fig. 36 : Spacemouse buttons control

+ +

 

+ +

By default, buttons are defined as follow, but user can change them + in the preferences:

+ +

 

+ + + +++ + + + + + + + + + + + + + + + + + + + + + + + + +
+

Button

+

Description

+

Button 1

+

Decrease by 1 the speed increment used for the keyboard (same as [-] + key)

+

Button 2

+

Increase by 1 the speed increment used for the keyboard (same as [+] + key)

+

Button 10

+

Divide the current magnification by the magnification ratio

+

Button 11

+

Multiply the current magnification by the magnification ratio

+

Button Star

+

Toggle button to switch to dominant or combined movements

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/picking_general.htm b/doc/salome/gui/GAUSS/picking_general.htm new file mode 100644 index 00000000..0c699630 --- /dev/null +++ b/doc/salome/gui/GAUSS/picking_general.htm @@ -0,0 +1,166 @@ + + + + + +Picking General + + + + + + + + + + + +

General

+ +

The existing picking functionality + in Salome is available on both meshes element and time stamps. It can + be activated either from:

+ +

 

+ +
    + +
  • The menu bar: Selection + ► Selection Info

  • + +
  • The popup menu opened on a time stamp of the browser + (see Gauss + Points – Geometry (new presentation)), item ‘Selection + InfoÂ’

  • + +
  • The popup menu opened on a presentation in the + 3D view, item ‘Selection InfoÂ’

  • +
+ +

 

+ +

All these actions open a dialog box that drives the functionality.

+ +

 

+ +

+ +

 

+ +

Fig. 44 : Standard Salome picking on a field

+ +

 

+ +

The dialog allows user to graphically select an element and displays + its corresponding information.

+ +

 

+ +

+ +

 

+ +

Fig. 45 : Standard Salome picking on a mesh

+ +

 

+ +

Selection is possible on:

+ +

 

+ +
    + +
  • Mesh element: node, edge, face and volume

  • + +
  • Fields elements: cell, edge of cell

  • + +
  • Graphic presentation of an object (actor)

  • +
+ +

 

+ +

When moving the mouse in the graphic area, any suitable element – that + is, corresponding to the defined ‘filter’ – is pre-highlighted (or detected) + and displayed in shading for more convenience to the end user. When user + presses the left-mouse button to select the detected element, it is redisplayed + in another color, and the information related to the selection is refreshed + in the dialog box, in the form of an array of data.

+ +

 

+ +

Since this behaviour does not fully correspond to EDF expectation, the + picking function for results at Gauss + point and Gauss point (geometry) + will be redefined as described in the following paragraphs.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/purple_right_sm.jpg b/doc/salome/gui/GAUSS/purple_right_sm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cef046c9258ad47225a9c5730c8b24fe16075f43 GIT binary patch literal 439 zcmex=?vmvA^3c^Ut<8 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GAUSS/robohhre.lng b/doc/salome/gui/GAUSS/robohhre.lng new file mode 100644 index 00000000..297538b0 --- /dev/null +++ b/doc/salome/gui/GAUSS/robohhre.lng @@ -0,0 +1,101 @@ +[GlossaryTab] +TabCaption=&Glossary +TermCaption=&Term +DefinitionCaption=&Definition For: + +[BrowseSequence] +PreCaption=Previous +PreTooltip=Previous Topic +NextCaption=Next +NextTooltip=Next Topic +BlockTooltip=Select Block + +[Common] +Contents=Contents +Index=Index +Search=Search +Glossary=Glossary +Logo/Author=Powered By +Show=Show +Hide=Hide +SyncToc=SyncToc +Prev=<< +Next=>> +Disabled Prev=<< +Disabled Next=>> +Seperate = | + +[WebHelp] +Cancel=Cancel +CantOpenURLorFile=Can't open URL or file +CompletingContents=Completing Contents... +Display=Display +Term=Term: +Definition=Definition: +Done=Done +Find=Find +IndexInputPrompt=Type in the keyword to find: +RelateTopicListPrompt=Click a topic, then click Display. +LoadingData=Loading data, please wait... +LoadingContents=Loading contents, please wait... +LoadingContentsData=Loading, click here to cancel... +LoadingFTS=Reading Search Data... +LoadingIndex=Loading Index... +LoadingTOCItem=Loading Table of Contents: +Searching=Searching... +FtsInputPrompt=Type in the word(s) to search for: +TopicsFound=Topics Found +BrowserLimitedMessage=Your browser does not support frames. We recommend that you update your browser to a version that supports frames. +SuggestViewNoFrameMessage=To view the Help system without frames click on this +SuggestViewNoFrameMsg2=hyperlink. +TopicsNotFound=No Topics Found. +CantSearch=Cannot search for that phrase. +JS_alert_appletNotLoad = Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited. +JS_alert_colorlimitation=WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors. +Blank_topic_text=This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink. +JS_alert_ProjectLoadingFail=Could not load correctly, please click Refresh. +JS_alert_cantLoadProject=Can't load project: +JS_alert_ErrorInLoading=Error in Loading navigation component. Please regenerate WebHelp. +IndexBtnText=Go +FtsBtnText=Go +ToolBarSearchBtnText=Go +InTopicSearchBtnText=Go +SearchLabel=Search +SearchPrompt=- Search - +PreTooltip=Previous Topic +NextTooltip=Next Topic +WebSearch=WebSearch +SyncTocTooltip=Sync TOC +Book=Book +Page=Page +Remote_Page=Remote Page +Show_Navigation_Component=Show Navigation Component +Hide_Navigation_Component=Hide Navigation Component +nls_edit_label=Type in your question: +nls_button_go_hint=Go Search +nls_button_go_text=Go +nls_body_instruction=Enter your question in the text box above, then click GO. +nls_body_empty=Sorry, we were unable to find a good answer for your question. +IndexSelectTopicTitle=Select a Topic +IndexSelectTopicLabel=Select a topic, then click Display +IndexSelectTopicError=Please select a topic. +IndexAlphabetBookmarks=ABCDEFGHIJKLMNOPQRSTUVWXYZ +MergeError1=The merged Help system +MergeError2=is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system. +PoweredBy=Powered by +GeneratedBy=Generated by +Author=Author +About=About +Print=Print + +[PrintedDoc] +TableOfContents=Table Of Contents +TitlePage=Title Page +ChapterFileNamePrefix=Chapter_ +TitlePageFileName=Chapter__Title_Page.doc +CrossReferencePrefix=See +GlossaryHeadingStyleName=Glossary Heading +GlossaryTermStyleName=Glossary Term +GlossaryDefinitionStyleName=Glossary Definition +TitlePageTitleStyleName=Title Page Title +TocPageTitleStyleName=Table of Contents Page Title diff --git a/doc/salome/gui/GAUSS/salome-visu_preferences_display_results.htm b/doc/salome/gui/GAUSS/salome-visu_preferences_display_results.htm new file mode 100644 index 00000000..d4cbfc9a --- /dev/null +++ b/doc/salome/gui/GAUSS/salome-visu_preferences_display_results.htm @@ -0,0 +1,135 @@ + + + + + +SALOME-VISU preferences display results + + + + + + + + + + + +

SALOME-VISU preferences

+ +

VISU defines a few additional parameters to define default + display modes.

+ +

 

+ +

Commands are defined in the ‘Preferences + ► Post-proÂ’ menu of the + VISU module:

+ +

 

+ +
    + +
  • Post-pro ► + Scalar Bar    Displays + a dialog to customize default scalar bar presentation

  • + +
  • Post-pro ► + Sweeping     Displays + a dialog to customize default sweeping parameters

  • +
+ +

 

+ +

New options will be added to refine default mode applicable for results + at Gauss points:

+ +

 

+ + + +

 

+ +
    + +
  • Post-pro ► + Gauss Points ► Scalar Bar  Displays a dialog + to customize default parameters for scalar bars used for display of results + at Gauss points. It is the same dialog as the one defined on Fig. + 18 : Scalar bar configuration

  • +
+ + + + diff --git a/doc/salome/gui/GAUSS/salome_visu_preferences.htm b/doc/salome/gui/GAUSS/salome_visu_preferences.htm new file mode 100644 index 00000000..63b35208 --- /dev/null +++ b/doc/salome/gui/GAUSS/salome_visu_preferences.htm @@ -0,0 +1,109 @@ + + + + + +SALOME-VISU preferences + + + + + + + + + + + +

Salome-Visu preferences

+ +

VISU defines a few additional parameters to define default + parameters.

+ +

 

+ +

The command is defined in the ‘Preferences + ► Post-proÂ’ menu of VISU module:

+ +

 

+ +

Click Post-pro ► Full MED loading + Toggle option: load + MED file at once or when needed

+ +

 

+ +

When this option is checked, the MED file is fully loaded in the study, + so that no additional physical access to the MED file are needed to go + on the session.

+ +

 

+ +

Reversibly, when unchecked, the MED file is loaded on demand. This is + the default behaviour in SALOME and recommended for big files to optimize + memory usage.

+ + + + diff --git a/doc/salome/gui/GAUSS/salome_visu_preferences_navigation_within_the_scene.htm b/doc/salome/gui/GAUSS/salome_visu_preferences_navigation_within_the_scene.htm new file mode 100644 index 00000000..f559c04c --- /dev/null +++ b/doc/salome/gui/GAUSS/salome_visu_preferences_navigation_within_the_scene.htm @@ -0,0 +1,191 @@ + + + + + +Salome-Visu preferences Navigation within the scene + + + + + + + + + + + +

Salome-Visu preferences

+ +

The VISU preferences are modified as follow:

+ +

 

+ +
    + +
  • Post-pro ► + Navigation ► Pointer    Displays + a dialog to configure the pointer to use.

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 42 : Navigation pointers configuration dialog

+ +

 

+ +
    + +
  • Mouse: + allows defining type of navigation provided by the mouse.

  • + +
      + +
    • Salome Standard (default)

    • + +
    • Keyboard free

    • +
    +
+ +

 

+ +
    + +
  • Keyboard: + defines the value of the increment applied when user uses keyboard keys + to navigate within the 3D scene. Only one value is defined for all kind + of movement.

  • + +
      + +
    • Translation (panning): value understood in + millimetres.

    • + +
    • Rotation: value understood in degrees.

    • + +
    • Zoom: value understood in millimetres (focal + distance).

    • +
    +
+ +

 

+ +
    + +
  • Spacemouse: + defines buttons for:

  • + +
      + +
    • Changing the speed increment when keyboard + navigation is used

    • + +
    • Changing the Gauss points magnification

    • + +
    • Filter the spacemouse movement (dominant or + combined)

    • +
    +
+ +

 

+ +

Choose Post-pro ► Navigation + ► Camera movement    Displays + a dialog to customize the displacement between 2 cameras.

+ +

 

+ +

+ +

 

+ +

Fig. 43 : Camera movement configuration dialog

+ +

 

+ +
    + +
  • Angular step: + allows user to define the angular step (in degree – 2 by default) used + to compute the number of intermediary positions for the camera during + a move (this number of intermediary positions corresponds to the parameter + to give to vtkRenderWindowInteractor::FlyTo() VTK function).

  • +
+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/salome_visu_preferences_picking.htm b/doc/salome/gui/GAUSS/salome_visu_preferences_picking.htm new file mode 100644 index 00000000..52b718d3 --- /dev/null +++ b/doc/salome/gui/GAUSS/salome_visu_preferences_picking.htm @@ -0,0 +1,178 @@ + + + + + +Salome-Visu preferences picking + + + + + + + + + + + +

Salome-Visu preferences

+ +

The ‘Preferences‘ + menu of VISU is modified as follow:

+ +

 

+ +

Choose Post-pro ► Gauss Points + ► Picking    Displays + a dialog to customize the picking parameters.

+ +

 

+ +

Description + of the dialog and associated parameters:

+ +

 

+ +
    + +
  • Height of the + pyramid: define the length of each of the 6 pyramids of the cursor. + The cursor is dynamically generated so that apexes of each pyramid touch + the point sprite boundary, and height of pyramid is fixed.

  • +
+ +

 

+ +

+ +

 

+ +

Fig. 49 : Definition of the picking cursor ‘height’ parameter

+ +

 

+ +

+ +

 

+ +

Fig. 50 : Picking configuration dialog

+ +

 

+ +
    + +
  • Information window: + allows defining the transparency + (from 0% = opaque to 100% = transparent) and position + of the windows. Possible values for position are:

  • + +
      + +
    • Centred below the point

    • + +
    • Top-left corner of the 3D view

    • +
    +
+ +

 

+ +
    + +
  • Zoom at first + selected point: This value is used to define the focal distance + at the first selected point (at the end of the movement of the camera). + This value is a ratio that will be multiplied by the current zoom value.

  • +
+ +

 

+ +
    + +
  • Picking + optimisation: This section will be implemented only if the implementation + of the picking function is based on vtkPointLocator + functions. No parameters are needed if implementation is based on vtkPointPicker. (see Picking + for more details).

  • +
+ +

 

+ +

Both parameters are used + to customize the data structure of the searching underlying functionality.

+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/segmentation_general.htm b/doc/salome/gui/GAUSS/segmentation_general.htm new file mode 100644 index 00000000..8398b6a3 --- /dev/null +++ b/doc/salome/gui/GAUSS/segmentation_general.htm @@ -0,0 +1,109 @@ + + + + + +Segmentation General + + + + + + + + + + + +

General

+ +

In Salome, the SMESH module defines a function to inspect + the mesh quality by cutting the mesh by a plane that cuts the space in + 2 half-spaces.

+ +

 

+ +

Besides, VISU does not define such a function so that the segmentation + for results at Gauss points consists in defining a new behaviour.

+ +

 

+ +

Naming convention

+ +

 

+ +

The following naming convention for segmentation cursors has been established:

+ +

 

+ +

Simple segmentation (box) is named: ‘Plane + Segmentation’

+ +

 

+ +

Advanced segmentation (sphere) is named: ‘Sphere + Segmentation’

+ + + + diff --git a/doc/salome/gui/GAUSS/specific_additional_commands_for_fields_items.htm b/doc/salome/gui/GAUSS/specific_additional_commands_for_fields_items.htm new file mode 100644 index 00000000..cc5c6968 --- /dev/null +++ b/doc/salome/gui/GAUSS/specific_additional_commands_for_fields_items.htm @@ -0,0 +1,232 @@ + + + + + +Specific additional commands for Fields items + + + + + + + + + + + +

Specific additional commands for Fields items

+ +

In Description of commands, + we introduced a number of possible actions applicable on Families + or Groups items of the tree. When + applied to a Fields presentation, 4 additional options are possible.

+ +

 

+ +

+ +

 

+ +

Fig. 27 : VISU standard fields presentation popup menu

+ +

 

+ + + +++ + + + + + + + + + + + + + + + + + + + + +
+

Command

+

Purpose

+

Edit

+

Edition of presentation display mode.

+

This option will be extended to the + new Gauss point mode.

+

Sweep

+

Displays a pseudo-animation of field presentation at a given time.

+

This option will not + be extended to the new Gauss point mode.

+

Selection Info

+

Display a dialog to analyse the value of certain data picked in the + 3D view.

+

This option will be extended to the new + Gauss point mode but in a different way.

+

Same As

+

Duplicate the presentation of the selected field at the same level of + the tree

+

This option will not + be extended to the new Gauss point mode.

+ +

 

+ +

In case of results at Gauss points fields, + the popup will have the following items:

+ +

 

+ +

+ +

 

+ +

Fig. 28 : Results at Gauss point popup menu

+ +

 

+ + + +++ + + + + + + + + + + + + +
+

Command

+

Purpose

+

Edit

+

Activate the dialog corresponding to the results at Gauss points presentation + and allows user to modify current parameters.

+

Same As

+

This option will be disabled + in the case of results at Gauss points.

+ +

 

+ +
    + +
  • The ‘Selection InfoÂ’ + equivalent function will be described in the Picking + chapter.

  • +
+ +

 

+ + + + diff --git a/doc/salome/gui/GAUSS/webhelp.cab b/doc/salome/gui/GAUSS/webhelp.cab new file mode 100644 index 0000000000000000000000000000000000000000..b942f642f9b003eeb7959f3378d4681fd302ed68 GIT binary patch literal 89619 zcmaf)Wmp_o(zbDT5AN<3+}+)SySrO(cbDJ}!QEW~1lQp1u7U9N>}KYjoiEwt2iJ(hGtg^5e5a0_{7x<3{AliR@2Lb{G1_sjk`5YYy2nY%Y7)TrB=L>b$YNUbw5Iu=_KT1Xv&-Yt`T43I>i&f7Kof8VKlz{%=_oJ1Y}g3(vpsIRJ@a z`TygRKg;)LVSZ*w1`x>cf5HDOija$iweeq0=mA!U*1vc1rPPoKaSeZBO+*Q zVDJ1_G)91Ewgdi)m6D0Eg`r^%ms0yxmf{%^E`f$e`fV1ok!^2zz1CO;kA0QRe{;y1L4iMz9)qlv*!mJJY0 zQQfat7iVWXTLl*JtRb#xT9b$0al$x#5h+U3J9I57h&6G>+i zn|}%UCrtJZ(5GI01v@+a!~YM!zVo01bo{f4|8+3LoSps_<}qMDxX6ExDO>&3f3?7Y zfJo_nfr?w({lj@UVCQ_9e~mgh88~|U5dkUF&#ZO_6t-}(CCk5u54jz^>fu70O}(CD^%Fr#n#HiSj52jPgTwXSPhB)!Tv*I3;>)? z^1s+f+M51(U@2jMfOMpO#r|==g$<0%O@2l_47gf?RDMO;8k@NPV@omsMV9{8Jn`>K z{VzR8{sI3@5lR3-?%Dos)qm9ZkN*DN=~u9vi_QOEyLAL0AU2m@;4%ibW-fsAer5&< z&<|?RuehIw?C%|Jf(Qr*JLJE>KNr0LAO|JC;QnZ7$|lav7Pe+T(KkS6UMc$p3b?4O z|9L3Q0hL{@{Uz*V=i+E&B4c6rb6pP%>SDISI7Pt04zG7*{%MHvord8qfw*+%vzVf=Kdip9zgoU*nkcDXQNTE zGy0pX=m0a5F7@xRza891fUYC|X#W3PQB_Gs%);740x;iN|CM?m01V{+742kV{KsDX zxu<}M6GG^}aDR@!RsfNLi~R!phxWq({m@?Jmz<-si-GmuySy3TP(5k>AM5OBV&V#D zS33W?v;pG#8RQTkX?@-Q!YThtQ9tQ^fK18tenBf+7+M3=ENl*#`cwd}e)0}RKtM;P zzu^C1{>bhh(dYnBt+9Xee~j{gG5*i_Q|HeoKbIy4>{-+JuTj8_^OJ%{1_Jsv|6A(s z6$=4SNBh4;rA<5}{~Fhf0d=rD`Yo&Sx9)8V=&rMuzeUymhWY|h68!#a6maGJ>mK`= z*E|621_KBTpxA#F>QD4ih*FDzZj3#~sp|Fq#H zo5}i$E+w5u5!5cLMGu|_B7~Tm(X@nNc|~b)T@YO;DXWCwGRYaj?Ht-3B-?v*im)$Y zp>GjNmn6(j}@3!2LltuTa;uvtvahKcGV^@e$ z1*a#vUc1nV^xXAD#os2{_-!G%1G6$#KEPeGgZ1}5lEY`kU4TKNVQrFJ>6;JIgT)Xg z2vLmZRvOxQt|x1}Ds1?wmO<3#QW9L}rU_a^zwcb9DHAJUKr)9u687ZyEJ!s@KIbIj zq*dEqyIIu+v8Nz5iXK$d=t_+b@zf?#3m&f`j4t@Kf9{juJPLOU5)Q@?wwc&n-iU7} znWiB!Z6QkJJ9A#oH&dPGB5bx$v%ONvk6%C zRtcog#07&T_>V#6WeIUYr}<%ExU0H{A2{5%P<{bp4J{(KuYs&w>%vY@y)XK~ zWMJ(e4I5>M=97LX3IrLO8a1-4hydgSW-wbCXi<;_ec&?6)O#M>nH`#@FvPxnxVtCT zQh&!jjnU2P3>o{z^&0%xC!hXjn6c<^`l^;T8p%`*6M075Fx)A9d=-|`HVxoHB?`Gy zZwPQf?A0?*dws@pe^Iy;t>qFLeE1N^&*LM|>^|KLg}q7|LZvANkjg_s=!3ms;>H@n z%;iPBmpW}J`yȲ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

oXOQ}Ge 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

3mV47(J-nnng03vOv>=_>hgK# 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

jXOi6?t#$#G}IAv2Hl%J5%3!6tRS8@BUs?+ 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 S;Xri<|BOHhBg2fJ@%{&*t^2zG literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GAUSS/whcsh_home.htm b/doc/salome/gui/GAUSS/whcsh_home.htm new file mode 100644 index 00000000..7a1ac9d2 --- /dev/null +++ b/doc/salome/gui/GAUSS/whcsh_home.htm @@ -0,0 +1,600 @@ + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whcshdata.htm b/doc/salome/gui/GAUSS/whcshdata.htm new file mode 100644 index 00000000..c50f91ce --- /dev/null +++ b/doc/salome/gui/GAUSS/whcshdata.htm @@ -0,0 +1,88 @@ + + +Gauss Points Viewer + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whftdata.js b/doc/salome/gui/GAUSS/whdata/whftdata.js new file mode 100644 index 00000000..071ae6fc --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whftdata.js @@ -0,0 +1,25 @@ +// WebHelp 5.10.001 +var gTEA = new Array(); +function aTE(sTopicTitle, sTopicURL) +{ + var len = gTEA.length; + gTEA[len] = new topicEntry(sTopicTitle, sTopicURL); +} + +function topicEntry(sTopicTitle, sTopicURL) +{ + this.sTopicTitle = sTopicTitle; + this.sTopicURL = sTopicURL; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putFtsTData) + { + parent.putFtsTData(gTEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whftdata0.htm b/doc/salome/gui/GAUSS/whdata/whftdata0.htm new file mode 100644 index 00000000..47a03180 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whftdata0.htm @@ -0,0 +1,53 @@ + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whfts.htm b/doc/salome/gui/GAUSS/whdata/whfts.htm new file mode 100644 index 00000000..d89f173d --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfts.htm @@ -0,0 +1,21 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whfts.js b/doc/salome/gui/GAUSS/whdata/whfts.js new file mode 100644 index 00000000..2b667869 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfts.js @@ -0,0 +1,40 @@ +// WebHelp 5.10.001 +var gaFileMapping = new Array(); +var gaFileTopicMapping = new Array(); + +function fileMapping(sStartKey, sEndKey, sFileName) +{ + this.sStartKey = sStartKey; + this.sEndKey = sEndKey; + this.sFileName = sFileName; + this.aFtsKeys = null; +} + +function fileTopicMapping(nIdBegin, nIdEnd, sFileName) +{ + this.nBegin = nIdBegin; + this.nEnd = nIdEnd; + this.sFileName = sFileName; + this.aTopics = null; +} + + +function iWM(sStartKey, sEndKey, sFileName) +{ + gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName); +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.ftsReady) + { + parent.ftsReady(gaFileMapping, gaFileTopicMapping); + } +} + +function iTM(nIdBegin, nIdEnd, sFileName) +{ + gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName); +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/GAUSS/whdata/whfwdata.js b/doc/salome/gui/GAUSS/whdata/whfwdata.js new file mode 100644 index 00000000..e9e8bc6c --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfwdata.js @@ -0,0 +1,37 @@ +// WebHelp 5.10.001 +var gWEA = new Array(); +function aWE() +{ + var len = gWEA.length; + gWEA[len] = new ftsEntry(aWE.arguments); +} + +function ftsEntry(fn_arguments) +{ + if (fn_arguments.length && fn_arguments.length >= 1) + { + this.sItemName = fn_arguments[0]; + this.aTopics = null; + var nLen = fn_arguments.length; + if (nLen > 1) + { + this.aTopics = new Array(); + for (var i = 0; i < nLen - 1; i ++ ) + { + this.aTopics[i] = fn_arguments[i + 1]; + } + } + } +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putFtsWData) + { + parent.putFtsWData(gWEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whfwdata0.htm b/doc/salome/gui/GAUSS/whdata/whfwdata0.htm new file mode 100644 index 00000000..a4f6334f --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfwdata0.htm @@ -0,0 +1,267 @@ + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whfwdata1.htm b/doc/salome/gui/GAUSS/whdata/whfwdata1.htm new file mode 100644 index 00000000..c843a0ac --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfwdata1.htm @@ -0,0 +1,259 @@ + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whfwdata2.htm b/doc/salome/gui/GAUSS/whdata/whfwdata2.htm new file mode 100644 index 00000000..fbb15f84 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfwdata2.htm @@ -0,0 +1,258 @@ + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whfwdata3.htm b/doc/salome/gui/GAUSS/whdata/whfwdata3.htm new file mode 100644 index 00000000..2cb202a7 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whfwdata3.htm @@ -0,0 +1,102 @@ + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whgdata.js b/doc/salome/gui/GAUSS/whdata/whgdata.js new file mode 100644 index 00000000..77e0107f --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whgdata.js @@ -0,0 +1,26 @@ +// WebHelp 5.10.001 +var gIEA = new Array(); +function aGE(sName, sDef) +{ + var len = gIEA.length; + gIEA[len] = new gloEntry(sName, sDef); +} + +function gloEntry(sName, sDef) +{ + this.sName = sName; + this.sDef = sDef; + this.nNKOff = 0; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putData) + { + parent.putData(gIEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whglo.htm b/doc/salome/gui/GAUSS/whdata/whglo.htm new file mode 100644 index 00000000..62e94498 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whglo.htm @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whglo.js b/doc/salome/gui/GAUSS/whdata/whglo.js new file mode 100644 index 00000000..e0519afc --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whglo.js @@ -0,0 +1,34 @@ +// WebHelp 5.10.001 +var gaFileMapping = new Array(); +function fileMapping(sBK, sEK, sFileName, nNum) +{ + this.sBK = sBK; + this.sEK = sEK; + this.sFileName = sFileName; + this.aKs = null; + this.nNum = nNum; + this.oUsedItems = null; +} + + +function iFM(sBK, sEK, sFileName, nNum) +{ + var i = gaFileMapping.length; + gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); + if (i == 0) { + gaFileMapping[i].nTotal = nNum; + } + else { + gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; + } +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) + { + parent.projReady(gaFileMapping); + } +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/GAUSS/whdata/whidata.js b/doc/salome/gui/GAUSS/whdata/whidata.js new file mode 100644 index 00000000..9f0eb15e --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whidata.js @@ -0,0 +1,89 @@ +// WebHelp 5.10.001 +// const strings +var gIEA = new Array(); +function aIE() +{ + var len = gIEA.length; + gIEA[len] = new indexEntry(aIE.arguments); +} + +function topic(sName, sURL) +{ + this.sName = sName; + this.sURL = sURL; +} + +function indexEntry(fn_arguments) +{ + if (fn_arguments.length && fn_arguments.length >= 3) + { + this.nType = fn_arguments[0]; + this.nPKOff = 0; + this.nNKOff = fn_arguments[1]; + this.sName = fn_arguments[2]; + this.aTopics = null; + var nLen = fn_arguments.length; + if (Math.floor(nLen / 2) * 2 == nLen) + { + this.sTarget = fn_arguments[3]; + if (nLen > 5) + { + this.aTopics = new Array(); + for (var i = 0; i < (nLen - 5)/2; i++) + { + this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]); + } + } + + } + else + { + if (nLen > 4) + { + this.aTopics = new Array(); + for (var i = 0; i < (nLen - 4)/2; i++) + { + this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]); + } + } + } + } +} + +function getIndexTopicMappingList(nItemIndex) +{ + var sTopics = ""; + if (gIEA.length > nItemIndex) + { + if (gIEA[nItemIndex].aTopics) + { + var i = 0; + var nLen = gIEA[nItemIndex].aTopics.length; + for (i = 0; i < nLen; i ++) + { + sTopics += "," + gIEA[nItemIndex].aTopics[i]; + } + } + } + return sTopics; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putData) + { + for (var i = 0; i < gIEA.length; i ++ ) + { + if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length) + { + + gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff; + } + } + parent.putData(gIEA); + } + } +} + +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whidx.htm b/doc/salome/gui/GAUSS/whdata/whidx.htm new file mode 100644 index 00000000..0a0deedd --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whidx.htm @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whidx.js b/doc/salome/gui/GAUSS/whdata/whidx.js new file mode 100644 index 00000000..e0519afc --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whidx.js @@ -0,0 +1,34 @@ +// WebHelp 5.10.001 +var gaFileMapping = new Array(); +function fileMapping(sBK, sEK, sFileName, nNum) +{ + this.sBK = sBK; + this.sEK = sEK; + this.sFileName = sFileName; + this.aKs = null; + this.nNum = nNum; + this.oUsedItems = null; +} + + +function iFM(sBK, sEK, sFileName, nNum) +{ + var i = gaFileMapping.length; + gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); + if (i == 0) { + gaFileMapping[i].nTotal = nNum; + } + else { + gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; + } +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) + { + parent.projReady(gaFileMapping); + } +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/GAUSS/whdata/whtdata.js b/doc/salome/gui/GAUSS/whdata/whtdata.js new file mode 100644 index 00000000..d5428a7d --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whtdata.js @@ -0,0 +1,64 @@ +// WebHelp 5.10.001 +var gTEA = new Array(); +function aTE() +{ + gTEA[gTEA.length] = new tocEntry(aTE.arguments); +} + +function tocEntry(fn_arguments) +{ + if (fn_arguments.length < 3) + { + alert ("data format wrong!!!"); + return; + } + + this.nType = fn_arguments[0]; + this.nContents = fn_arguments[1]; + this.sItemName = fn_arguments[2]; + + if (this.nType == 1 || this.nType == 2 || this.nType == 16) + { + if (fn_arguments.length > 3) + { + this.sItemURL = fn_arguments[3]; + if (fn_arguments.length > 4) + { + this.sTarget = fn_arguments[4]; + if (fn_arguments.length > 5) + this.sIconRef = fn_arguments[5]; + } + } + } + if (this.nType == 4 || this.nType == 8) + { + if (fn_arguments.length > 3) + { + this.sRefURL = fn_arguments[3]; + if (this.nType == 4) + { + if(this.sRefURL.lastIndexOf("/")!=this.sRefURL.length-1) + this.sRefURL+="/"; + } + if (fn_arguments.length > 4) + { + this.sItemURL = fn_arguments[4]; + if (fn_arguments.length > 5) + { + this.sTarget = fn_arguments[5]; + if (fn_arguments.length > 6) + this.sIconRef = fn_arguments[6]; + } + } + } + } +} + + +function window_OnLoad() +{ + if (parent && parent != this && parent.putData) { + parent.putData(gTEA); + } +} +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whtdata0.htm b/doc/salome/gui/GAUSS/whdata/whtdata0.htm new file mode 100644 index 00000000..5a5c4c66 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whtdata0.htm @@ -0,0 +1,61 @@ + + + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whdata/whtoc.htm b/doc/salome/gui/GAUSS/whdata/whtoc.htm new file mode 100644 index 00000000..54e0cbf2 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whtoc.htm @@ -0,0 +1,16 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whdata/whtoc.js b/doc/salome/gui/GAUSS/whdata/whtoc.js new file mode 100644 index 00000000..163d8cc9 --- /dev/null +++ b/doc/salome/gui/GAUSS/whdata/whtoc.js @@ -0,0 +1,31 @@ +// WebHelp 5.10.001 +// const strings +var gaProj = new Array(); +var gsRoot = ""; + +function setRoot(sRoot) +{ + gsRoot = sRoot +} + +function aPE(sProjPath, sRootPath) +{ + gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath); +} + +function tocProjEntry(sProjPath, sRootPath) +{ + if(sProjPath.lastIndexOf("/")!=sProjPath.length-1) + sProjPath+="/"; + this.sPPath = sProjPath; + this.sRPath = sRootPath; +} + + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) { + parent.projReady(gsRoot, gaProj); + } +} +window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whestart.ico b/doc/salome/gui/GAUSS/whestart.ico new file mode 100644 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/GAUSS/whfdhtml.htm b/doc/salome/gui/GAUSS/whfdhtml.htm new file mode 100644 index 00000000..236beec7 --- /dev/null +++ b/doc/salome/gui/GAUSS/whfdhtml.htm @@ -0,0 +1,30 @@ + + +Search Frame + + + + + + + + + diff --git a/doc/salome/gui/GAUSS/whfform.htm b/doc/salome/gui/GAUSS/whfform.htm new file mode 100644 index 00000000..f592a738 --- /dev/null +++ b/doc/salome/gui/GAUSS/whfform.htm @@ -0,0 +1,136 @@ + + +Search Form + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GAUSS/whfhost.js b/doc/salome/gui/GAUSS/whfhost.js new file mode 100644 index 00000000..167acc45 --- /dev/null +++ b/doc/salome/gui/GAUSS/whfhost.js @@ -0,0 +1,945 @@ +// WebHelp 5.10.003 +var gsSK2=null; +var gsSK=null; +var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7"; +var gnCLF=0; +var gsHelpCannotSearch="Cannot search for that phrase."; +var gsNoTopics="No Topics Found."; +var gsLoadingDivID="LoadingDiv"; +var gsLoadingMsg="Loading data, please wait..."; +var gsSearchMsg="Searching..."; +var gsResultDivID="ResultDiv"; +var gaaFCD=new Array(); +var gaaFTCD=new Array(); +var goCF=null; +var goCTF=null; +var gaTI=null; +var gnCurrentOp=0; +var gbNot=false; +var gbReady=false; +var gnLoadFts=1; +var gnCacheLimits=5; +var gaCCD=new Array(); +var gbXML=false; +var gaData=new Array(); +var gsBgColor="#ffffff"; +var gsBgImage=""; +var gsMargin="0pt"; +var gsIndent="0pt"; +var gsCheckKey=null; +var gnIndexNum=0; +var gaFtsContentsCon=null; +var gaTopicCheckInfo=null; +var gnTopicCheck=0; +var goFont=null; +var goErrFont=null; +var goHoverFont=null; +var gsABgColor="#cccccc"; +var gbWhFHost=false; +var gbFirst=false; + +function setBackground(sBgImage) +{ + gsBgImage=sBgImage; +} + +function setBackgroundcolor(sBgColor) +{ + gsBgColor=sBgColor; +} + +function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + if(sType=="Normal") + goFont=vFont; + else if(sType=="Error") + goErrFont=vFont; + else if(sType=="Hover") + goHoverFont=vFont; +} + +function setActiveBgColor(sBgColor) +{ + gsABgColor=sBgColor; +} + +function setMargin(sMargin) +{ + gsMargin=sMargin; +} + +function setIndent(sIndent) +{ + gsIndent=sIndent; +} + +function updateCache(oCF) +{ + var len=gaCCD.length; + if(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="

"; + 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(); + } + else{ + displayTopics(); + checkAgain(); + } +} + +function checkAgain() +{ + gsCheckKey = ""; + gnIndexNum = 0; + gsSK=gsSK2; + gsSK2=null; + if(gsSK!=null) + setTimeout("findFTSKey();",1); +} + +function displayTopics() +{ + var sHTML=""; + var sLine=""; + for(var i=0;i"+_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